PAWN

Z Wikipedii, wolnej encyklopedii
PAWN
Logo języka PAWN
Logo języka
Pojawienie się

1998

Pochodne

SourceMod

Aktualna wersja stabilna

4.0.4733

Twórca

ITB CompuPhase

Licencja

Licencja zlib

Platforma sprzętowa

wieloplatformowy

Strona internetowa

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[edytuj | edytuj kod]

  • 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 .amx 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 .amx jest zaszyfrowany w sposób nie możliwy do odczytu przez człowieka a rozumiany przez komputer.

Używany przez[edytuj | edytuj kod]

Przykładowy kod[edytuj | edytuj 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 wpisze komendę sm_helloworld
    PrintToChat(client, "Hello world!"); //wyświetlamy wiadomość osobie, która wpisała tę komendę
    return Plugin_Handled;
}

Linki zewnętrzne[edytuj | edytuj kod]