| Niko_Hs™ |
| | Ecco una piccola guida per quelli che non sanno come creare comandi. Iniziamo col dire che questa è una guida per principianti, quindi, per quelli che hanno appena iniziato ad usare Pawn.
Essendo Principianti vi troverete meglio con il Strcmp. [INFO] : Come Potete vedere sulla "Sa-Mp Wiki" c'è una piccola spiegazione su di esso. -> http://wiki.sa-mp.com/wiki/Using_strcmp%28%29Questo Sotto è chiamato "CallBack". Viene Chiamato quando un giocatore digita sulla chat un comando SA-MP, Es ( / Aiuto ).CODICE public OnPlayerCommandText(playerid, cmdtext[]){ Esaminiamo Il Call-Back playerid : ID Del Player che esegue il comandocmdtext[] : Conferma l'esecuzione del comando (Usando la /)Return : Return 1 } Viene usato per avvisare il server che il comando è stato eseguito, con questo si evita "SERVER : Unknown command"
Return 0 } Avvisa il server che il comando non è stato eseguito correttamente, quindi, si otterrà l'errore " SERVER : Unknown command "__________________________________________________________________________________________________________ Sotto il Call Back -> public OnPlayerCommandText(playerid, cmdtext[]){
Si può iniziare a creare i comandi.[RICORDA] : Che non devi scrivere il call back per ogni comando.ES:CODICE public OnPlayerCommandText(playerid, cmdtext[]) { if(!strcmp(cmdtext, "/Aiuto", true)) { SendClientMessage(playerid, 0xFFFFFFFF, "[INFO]: Hai digitato il comando Aiuto."); return 1; } //********************************************************************************* if(!strcmp(cmdtext, "/Tele", true)) { SendClientMessage(playerid, 0xFFFFFFFF, "[INFO]: Hai digitato il comando Tele."); return 1; } return 1;} L'ultimo return 1;} Serve per il Call-Back, invece gli altri, per il comando stesso.CODICE //********************************************************************************* Sul Pawn, questo, non interferisce. Serve solo per aver un pò di ordine nello script.SendClientMessage CODICE if(!strcmp(cmdtext, "/Tele", true)) { SendClientMessage(playerid, COLORE, "[INFO]: Hai digitato il comando Tele."); return 1; } Questa messaggio verrà visualizzato solo dal player, quindi appena digiterà il comando il server gli invierà il messaggio tra le " .COLORE Questo, serve per definire il colore del messaggio.
E' possibile metterlo in codice HTML :CODICE SendClientMessage(playerid, -1, "{00FF04}Benvenuti {FFFFFF}Su {FF0000}Games-Universe!"); Quindi ; In Verde (Benvenuti), In Bianco (Su) e in Rosso (Games-Universe!)Altrimenti si può fare così, che è il metodo migliore :Inserire questo in Alto, sotto l'include a_samp.CODICE #define GIALLO 0xFFFF00AA A questo punto abbiamo definito il colore GIALLO
CODICE SendClientMessage(playerid, GIALLO, "Benvenuti Su Games-Universe!"); Difatti il messaggio uscirà del colore giallo nello Schermo. Questo è per evitare di Mettere ogni volta il codice "0xFFFF00AA" Al posto di GIALLOSendClientMessageToAll Questa funzione, quando richiamata, invia un messaggio a tutto il server.CODICE if (strcmp(cmdtext, "/Salutatutti", true) == 0) { SendClientMessageToAll(GIALLO, "Games-Universe Saluta Tutti."); return 1; } Se avete notato in questa funzione manca "playerid", ecco perchè invia il messaggio a tutti.____________________________ SetPlayerPos //Sempre sotto OnPlayerCommandTextCODICE if(!strcmp(cmdtext,"/bigear",true)) { SetPlayerPos(playerid,-308.3953,1517.3363,75.3594); //**Altre Funzioni. return 1; } SetPlayerPos è una funzione che teletrasporta il player nelle determinate coordinate.
Ad esempio nel comando sopra citato, trasporta il player al BigEar ( Grande Orecchio ).Esaminiamo la funzione : (playerid,Float:x,Float:y,Float:z)playerid ID del player a cui setta la posizione, quindi l'esecutore del comando.Float:x Coordinata X della posizione.Float:y Coordinata Y della posizione.Float:z Coordinata Z della posizione.______________________ SetVehiclePos Questa funzione, invece, serve per far teletrasportare il player insieme ad un veicolo nella determinata coordinata.CODICE if(!strcmp(cmdtext,"/bigear",true)) { if(IsPlayerInAnyVehicle(playerid)) { SetVehiclePos(GetPlayerVehicleID(playerid), -308.3953,1517.3363,75.3594); }else{ SetPlayerPos(playerid,-308.3953,1517.3363,75.3594); } return 1; } Nell'esempio sopra citato, teletrasporta il player con qualsiasi veicolo nella zona, la quale è il BigEar.
Ma Esaminiamo il codice :(GetPlayerVehicleID(playerid), X,Y,Z);Float:x-y-z Coordinate descritte sopra.playerid ID del player che esegue il comando.GetPlayerVehicleID Questa funzione ottiene sia l'id del veicolo che quello del player.IsPlayerInAnyVehicle Controlla se il player è in un veicolo.[INFO] Per Aver le coordinate di una zona basterà eseguire il comando /SAVE su sa-mp e il gioco automaticamente ti salverà le coordinate della posizione in cui hai digitato il comando in ;/Documenti/Gta San Andreas User File/SAMP/savedpositions.txtBene, spero di essere stato abbastanza chiaro su questa guida. Saluti, Niko. Se avete problemi, scriveteci in questo TOPIC. Crediti : Niko_Hs Edited by Niko_Hs™ - 9/10/2011, 11:02
| | |
| |
|