Pawn
Pawn (původně Small) je open source programovací jazyk určený hlavně pro tvorbu módů do hry SA-MP a módů AMXX pro modifikace hry Half-Life(Counter Strike 1.6).
Příklad jazyka [editovat]
// Funkce strcmp() porovná řetězec cmdtext (zadaný hráčem) s řetězcem "/zbran 29" // a nastaví, aby ignorovala funkce velikost písma (, true). #define COLOR_YELLOW 0xFFFF00AA //nadefinujeme barvu, jsou to barvy HEX //new neco; //-Toto je promenna, a pozdeji se da nastavit na cislo,text.. stock GetPlayerID(name[]) //Stock nám umožňuje pomocí jednoho řádku udělat více věcí, což nám urychlí čas, než vše dělat znovu. //Čiže později budeme používat GetPlayerID("Nick_z_ktereho_chceme_ziskat_ID"); { for(new i=0;i<MAX_PLAYERS;i++) { if(strcmp(pName(i),name, false) == 0) { return i; } } return -1; } stock pName(playerid) { new n[21];//proměnnou s velikostí pole 21 (20 je maximální délka jména + 1 pro hodnotu null) GetPlayerName(playerid,n,21);//zjištění jména return n;//navrácení hodnoty (hodnota n bude 'nosičem' jména) } public OnPlayerCommandText(playerid, cmdtext[])//Může být maximálně jedenkrát v jednom gamemodu či filterscriptu { if(!strcmp(cmdtext, "/zbran 29", true, 9)) // 9 je délka charakterů { // Pošle hráči s ID = playerid zprávu: "Obdržel jsi MP5" ve žluté barvě SendClientMessage(playerid, COLOR_YELLOW, "Obdržel jsi MP5"); GivePlayerWeapon(prayerid, 29, 500); //Získá zbran s id 29 a 500 nábojú. return 1; //zamezí, aby to returnovalo na 0 } //sem můžeme dát další příkazy! return 0; }
== Takto vypadá celá poloha ==
// This is a comment // uncomment the line below if you want to write a filterscript //#define FILTERSCRIPT #include <a_samp> #if defined FILTERSCRIPT public OnFilterScriptInit() { print("\n--------------------------------------"); print(" Blank Filterscript by your name here"); print("--------------------------------------\n"); return 1; } public OnFilterScriptExit() { return 1; } #else main() { print("\n----------------------------------"); print(" Blank Gamemode by your name here"); print("----------------------------------\n"); } #endif public OnGameModeInit() { // Don't use these lines if it's a filterscript SetGameModeText("Blank Script"); AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); return 1; } public OnGameModeExit() { return 1; } public OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746); return 1; } public OnPlayerConnect(playerid) { return 1; } public OnPlayerDisconnect(playerid, reason) { return 1; } public OnPlayerSpawn(playerid) { return 1; } public OnPlayerDeath(playerid, killerid, reason) { return 1; } public OnVehicleSpawn(vehicleid) { return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/mycommand", cmdtext, true, 10) == 0) { // Do something here return 1; } return 0; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)//Tento public se vyvolá když hráč chce nastoupit, ne když je ve vozidle. { return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { return 1; } public OnPlayerEnterCheckpoint(playerid) { return 1; } public OnPlayerLeaveCheckpoint(playerid) { return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { return 1; } public OnPlayerLeaveRaceCheckpoint(playerid) { return 1; } public OnRconCommand(cmd[]) { return 1; } public OnPlayerRequestSpawn(playerid) { return 1; } public OnObjectMoved(objectid) { return 1; } public OnPlayerObjectMoved(playerid, objectid) { return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { return 1; } public OnVehicleMod(playerid, vehicleid, componentid) { return 1; } public OnVehiclePaintjob(playerid, vehicleid, paintjobid) { return 1; } public OnVehicleRespray(playerid, vehicleid, color1, color2) { return 1; } public OnPlayerSelectedMenuRow(playerid, row) { return 1; } public OnPlayerExitedMenu(playerid) { return 1; } public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { return 1; } public OnRconLoginAttempt(ip[], password[], success) { return 1; } public OnPlayerUpdate(playerid) { return 1; } public OnPlayerStreamIn(playerid, forplayerid) { return 1; } public OnPlayerStreamOut(playerid, forplayerid) { return 1; } public OnVehicleStreamIn(vehicleid, forplayerid) { return 1; } public OnVehicleStreamOut(vehicleid, forplayerid) { return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { return 1; } public OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; }
Seznam funkcí lze nalézt na San Andreas Multiplayer Wiki (vizte externí odkaz).
PAWNO [editovat]
Pawno je editor scriptovacího jazyka Pawn pro hru SA-MP. Tento editor je považován za oficiální editor, protože je vydáván vždy s novou verzí překladače jazyka Pawn a je přikládán k SA-MP Windows Server balíčku. Soubory jazyku Pawn mají obyčejně příponu .inc (includy, které mohou obsahovat vlastní definice a funkce) a .pwn (skripty, módy). Výstupem překladače jazyka Pawn je soubor .amxx, tento soubor obsahuje množinu hexadecimálních čísel, které lze zpětně editovat pomocí patřičného editoru. Na soubory .amxx existují různé dekompilátory, ze kterých je možno získat skoro totožný kód. Ovšem proměnné se nazývají jinak. Kvůli těmto 'fintám' se začaly vytvářet AntiDeAMX skripty, které se přidávají přímo do módu / filterscriptu (skript).
Ačkoliv se mnozí domnívají, že programovací jazyk a editor nesou stejný název, pravda je taková, že Pawn je jazyk a Pawno je editor.
Externí odkazy [editovat]
Pawno cz Však tato stránka změnila vzhled,a mnoha uživatelům se to nelíbilo, a tak vzniklo nové forúm a to * Web o jazyku PAWN