[GUIDA] Creare Comandi in strcmp, Spiegazione Di un Comando. - Niko_Hs

« Older   Newer »
  Share  
Niko_Hs™
CAT_IMG Posted on 4/10/2011, 21:09     +1   -1




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%29


Questo 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 comando

cmdtext[] : 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 GIALLO


SendClientMessageToAll



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 OnPlayerCommandText

CODICE
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.txt

Bene, 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
 
Top
Niko_Hs™
CAT_IMG Posted on 5/10/2011, 14:41     +1   -1




>> Aggiornato <<

 
Top
1 replies since 4/10/2011, 21:09   45 views
  Share