-
Sayanworld.
User deleted
L'uso di pawno è sicuramente la cosa più difficile di sa:mp.
Per introduzione vi spiego cosè pawno:
é un programma che serve per creare le gamemode(GM), cioè la modalità di gioco del vostro server.
Iniziamo col dire che ci mettero mesi e mesi per finire questa guida, dato che i codici di pawno sono così tanti da richiedere i calli alle mie mani.
Aprite pawno, e vedrete che in alto a destra c'è un immaggine di un foglio bianco, cliccate su quello.
A questo punto vi troverete davandi questi codici:CODICE#include <a_samp>
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
#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 OnPlayerRequestSpawn(playerid)
{
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 OnPlayerPrivmsg(playerid, recieverid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}
public OnPlayerInfoChange(playerid)
{
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
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 OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
Analizziamola insieme:
All'inizio di ogni gm per sa:mp c'è include a_samp
Per nostra comodità, prima della scritta main() andremo a "registrare i codici dei colori, mi spiego meglio:
Per dire alla gm che quando un giocatore è entrato nel server, andrete a scrivere:
public OnPlayerConnect(playerid)
{
SendClientMessageToAll(playerid,Quì il colore,"Quì il messaggio che devono vedere TUTTI");
SendClientMessage(playerid,Quì il colore,"Quì il messaggio che deve vedere SOLO il giocatore che è entrato");
}
return 1
Dove ho scritto "Quì il colore" dobbiamo mettere il codice del colore, ma ci viene più comodo mettere per esempio solo il nome, questo lo possiamo fare solo se sopra a main() andiamo a scrivere queste cose:
#define COLOR_RED 0xAA3333AA
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_BLUE 0x1111AAFF
#define COLOR_PINK 0xFF66FFAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_DARKRED 0x660000AA
#define COLOR_ORANGE 0xFF9900AA
Così, al posto del codice andrete a scrivere COLOR_ORANGE se lo volete arancione
Spiegato i colori e il messaggio quando una persona entra passiamo all'aggiunta di skin, veicoli e comandi:
Per aggiungere le skin (i personaggi) scrivete:
public
{
AddPlayerClass(id Skin,Cord.X,Cord.Y,Cord.Z,Angol.,1ARMA,Muniz,2ARMA,Muniz,3ARMA,Muniz);
}
return 1;
Fatto questo passiamo ai veicoli, che è molto simile:
public
{
AddStaticVehicle(id Veicolo,Cord.X,Cord.Y,Cord.Z,Angol,Colore1,Colore2);
}
return 1;
E ora passiamo ai comandi, cosa un po più varia, per esempio come ricaricarsi la vita scrivendo /heal:
public OnPlayerCommandText
if(strcmp(cmd, "/heal", true) == 0)
{
SetPlayerHealth(playerid,1000)
}
return 1;
Per Dire al server che un determinato comando può essere effettuato solamente da un Admin (il quale ha effettuato il login con /rcon login pass) dovremo mettere dopo la riga della funzione questo:
IsPlayerAdmin(playerid)
Quindi se vogliamo andare riservare il comando /heal che abbiamo spiegato sopra andremo a scrivere senpre sotto a
public OnPlayerCommandText
Questo:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmd,"/heal",true) == 0)
{
if IsPlayerAdmin(playerid);
{
SetPlayerHealth(playerid,1000);
} return 1;
else
{
SendClientMessage(playerid,NOSTRO_COLORE,"Non Sei Autorizzato Ad Usare Questo Comando");
} return 1;
} return 0;
--------->In Costruzione (Ultim. Aggiorn. 27 Nov 2008)<---------------
NON OFFRO AIUTO IN PRIVATO, PER INFO O ASSISTENZA, SCRIVETE SUL FORUM, GRAZIE
Edited by TheSt1fm31st3r - 6/6/2011, 17:56. -
Sayanworld.
User deleted
Se avete qualche dubbio o domanda non esitate e chiedere!! . -
Mini-Nova.
User deleted
MA QUANDO FACCI QUELLO K TU HAI SCRITTO.......VADO SU COMPILE E MI DA QUALKE ERRORE E QUESTO SIGNIFICA CHE NN POSSO ACCEDERE ALLA GM....MA PERCHE ALLORA MI DA DEGLI ERRORI???RISPONDIMI AL PIU PRESTO
--CIAO--. -
Sayanworld.
User deleted
Ma con quello che ho scritto fino ad ora ci fai le basi di una GM o di un FS.
Se premi sul tasto per compilare ti dovrebbe dire l'errore su quale riga stà (è il numeretto tra parentesi). Se trovi l'errore dimmelo e ti dico cosa devi cambiare. -
mercenaries.
User deleted
Te 6 un mito o_o mi serve questa guida sto cercando di creare un server...cmq volevo sapere una cosa...tutti questi codici come questo
public
{
AddPlayerClass(id Skin,Cord.X,Cord.Y,Cord.Z,Angol.,1ARMA,Muniz,2ARMA,Muniz,3ARMA,Muniz);
}
return 1;
dove si mettono??semper sopra a main() ??
e sempre sotto a tutti i codici detti prima cioè dei colori,e i messaggi??risp presto
mi da questi errori
C:Documents and SettingsutenteDesktopserver SA-MPpawnoprova server.pwn(43) : error 035: argument type mismatch (argument 2)
C:Documents and SettingsutenteDesktopserver SA-MPpawnoprova server.pwn(43) : error 017: undefined symbol "SERVER"
C:Documents and SettingsutenteDesktopserver SA-MPpawnoprova server.pwn(43) : error 029: invalid expression, assumed zero
C:Documents and SettingsutenteDesktopserver SA-MPpawnoprova server.pwn(43) : fatal error 107: too many error messages on one line. -
mercenaries.
User deleted
up . -
Sayanworld.
User deleted
no non si mettono su main, si devono mettere sotto
public OnGameModeInit()
{
AddPlayerClass(....);
return 1;
}
. -
[@]=Slayer=[@].
User deleted
raga per le auto che bisogna fà? . -
Sayanworld.
User deleted
public OnGameModeInit()
{
AddStaticVehicle(Id Modello, coordinata x, coordinata y, coordinata z, angolazione(90°), colore1, colore2);
Per gli id delle auto andate QUì
Per gli id dei colori andate QUì
Per le coordinate basta utilizzare il comando "/save" e verranno automaticamente salvate le coordinate in file che verrà creato nella cartella GTA san andreas, che troverete nella cartella Rockstar nel vostro hard-disk.
Il file si chiamerà "savedposition.txt"
Saluti. -
ELIO-X.
User deleted
uddiu questa guida mi serve, ora me la leggo... . -
Swemb.
User deleted
a me dice:
C:\Users\Davide\Desktop\GameHack server\gamemodes\lol.pwn(4) : fatal error 100: cannot read from file: "thx"
cosa devo fare HELP!!!. -
Sayanworld.
User deleted
se dice che non può leggere da un file è perchè avrai usato all'inizio della gm:
include thx;
dato che "thx" non è presente nella cartella
C:UsersDavideDesktopGameHack serverpawnoincludes
Te lo da come errore fatale e la gm non può essere compilata. -
virus98.
User deleted
weee swemb!!!! . -
Gaboso.
User deleted
Hai sbagliato un cosa nella guida... CODICEpublic OnPlayerConnect(playerid)
{
SendClientMessageToAll(playerid,Quì il colore,"Quì il messaggio che devono vedere TUTTI")
SendClientMessage(playerid,Quì il colore,"Quì il messaggio che deve vedere SOLO il giocatore che è entrato");
}
return 1
SendClientMessageToAll(playerid,Quì il colore,"Quì il messaggio che devono vedere TUTTI")
alla fine ci va il punto e virgola e playerid non ci va
. -
Sayanworld.
User deleted
Fatto, Grazie per l'avvertimento =) .