PAWN

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
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

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 .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[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 wpiszę 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]