Informacje o języku PAWN

PAWN, poprzednio znany jako Small – prosty 32- oraz 64-bitowy język skryptowy. Rozwijany przez firmę CompuPhase, która pierwszą wersję PAWN wydała w 1998. Język PAWN powstał głównie dla systemów wbudowanych, ale może służyć także jako rozszerzenie aplikacji dodające możliwość jej programowania.

Właściwości
Składnia jest prawie identyczna jak w języku C, podobnie nie posiada wbudowanych funkcji.
Dzięki niewielkiemu rozmiarowi oraz specjalnej metodzie kompilacji można uruchamiać duże skrypty w urządzeniach mających mało pamięci (do uruchomienia prostego skryptu wystarczy 10 kB pamięci RAM) oraz niewielką moc obliczeniową.
Plik wynikowy kompilatora to kod bajtowy. Wykonywany jest on przez maszynę abstrakcyjną AMX (Abstract Machine eXecutor) opartą na rejestrach. Taka maszyna posiada dziewięć rejestrów: PRI (główny, używany jako akumulator), ALT – rejestr pomocniczy, oraz 7 rejestrów związanych ze stosem i offsetami.
Plik wynikowy jest plikiem o rozszerzeniu .amxx powstały w wyniku kompilacji kodu źródłowego czyli .sma. Kod źródłowy możemy dowolnie edytować, gdyż jest on rozumiany przez człowieka, zaś plik .amxx jest zaszyfrowany w sposób nie możliwy do odczytu przez człowieka a rozumiany przez komputer.

Używany przez
AMXMODX (używany w silniku gry wieloosobowej Half-Life)
Source Mod (modyfikacja silnika Source, która umożliwia tworzenie modyfikacji do gier takich jak Counter-Strike: Source, Counter-Strike: Global Offensive, Team Fortress 2, Left 4 Dead, Left 4 Dead 2 itp.)
San Andreas Multiplayer (modyfikacja Grand Theft Auto: San Andreas umożliwiająca grę wieloosobową)
„Vaul-Tec Multiplayer” (modyfikacja Fallout 3)

Przykładowy kod
Oto przykład kodu, który wyświetli 4 losowe liczby:

#include <core>
 
main(){
    new digit[4];// tworzy czterokomórkową tablicę
    for(new i=0;i<4;i++)// pętla, która wykona się 4 razy w celu zapełnienia tablicy digit
    {
        digit[i] = random(5000);// zapisuje losową wartość do itej komórki tablicy digit
        printf("Wartość digit[%d] to %d", i, digit[i]);// wyświetla wartość itej komórki zmiennej digit
    }
    return 1;
}

Przykładowy Hello world:

#include <core>
 
main(){
    print("Hello World!");   
}

Tutaj przykład Hello World! używając funkcji SourcePawn, które mogą posłużyć do tworzenia modyfikacji dla silnika Source. W tym przykładzie tworzymy komendę dla konsoli; osoba, która wpisze tę komendę w konsoli, powinna zobaczyć wiadomość ‚Hello World!’. Komenda ta będzie też działać, jeżeli na czacie napiszemy !helloworld lub /helloworld.

#include <sourcemod> //dołączamy funkcje sourcemoda
#pragma semicolon 1
 
main(){
    RegConsoleCmd("sm_helloworld", Command_HelloWorld, "Wyświetla wiadomość powitalną"); //rejestrujemy komendę o nazwie 'sm_helloworld'
}
 
Command_HelloWorld(client, args){ //ten callback wywoła się, gdy gracz wpiszę komendę sm_helloworld
    PrintToChat(client, "Hello world!"); //wyświetlamy wiadomość osobie, która wpisała tę komendę
    return Plugin_Handled;
}

Dodaj komentarz