Salve ragazzi, in questa guida spiegerò come creare dei semplici comandi per IVMP.
● Comandi con più paramtetri ●
Iniziamo:
Andiamo sotto l'evento "onPlayerCommand(playerid, command)"
Codice:
function onPlayerCommand(playerid, command)
{
}
playerid e command sono i parametri che fornisce l'evento onPlayerCommand.
Quindi ora dobbiamo far si, che questo evento venga chiamato quando qualcuno digita un comando.
Codice:
function onPlayerCommand(playerid, command)
{
}
addEvent("playerCommand", onPlayerCommand);
La funzione che abbiamo appena aggiunto (AddEvent) fa appunto richiamare l'evento.
Adesso, possiamo già creare dei comandi, tipo /armour oppure /vita ecc.
Esempio:
Codice:
function onPlayerCommand(playerid, command)
{
local cmd = split(command, " ");
if(cmd[0] == "/aiuto")
{
//Funzione. Tipo sendPlayerMessage
}
}
addEvent("playerCommand", onPlayerCommand);
Quindi, queste righe che abbiamo messo controlla se la prima parte del comando è uguale a "/aiuto".
Ma ora sorge un problema perché l'operatore == è case sensitive, quindi se scriveremo /Aiuto non lo conterà come /aiuto.
Per risolvere questo problema si usa la funzione .tolower()Quindi il nostro IF diventerà:
Codice:
function onPlayerCommand(playerid, command)
{
local cmd = split(command, " ");
if(cmd[0].tolower() == "/aiuto")
{
//Funzione. Tipo sendPlayerMessage
}
}
addEvent("playerCommand", onPlayerCommand);
● Comandi con più paramtetri ●
Adesso, spiegerò come creare un comando con più parametri (Esempio: /setmyskin [SKINID]).
Allora, iniziamo:
Codice:
function onPlayerCommand(playerid, command)
{
local cmd = split(command, " ");
if(cmd[0].tolower() == "/setmyskin")
{
}
}
addEvent("playerCommand", onPlayerCommand);
Visto che è un comando con più parametri, dobbiamo controllare che il player non inserisca più di 2 parametri.
Farete cosi:
Codice:
function onPlayerCommand(playerid, command)
{
local cmd = split(command, " ");
if(cmd[0].tolower() == "/setmyskin")
{
if(cmd.len() != 2) return sendPlayerMessage(playerid, "Usare: /setmyskin [SKINID]");
local skin = cmd[1].tointeger();
setPlayerSkin(playerid, skin);
}
}
addEvent("playerCommand", onPlayerCommand);
Questo IF che ho appena aggiunto, controlla il numero di celle dell'array cmd se è diverso da due, in pratica controlla se ho scritto più di due parametri. (Esempio: /setmyskin 1 2 3343 4. Cosi mi invierebbe il messaggio di errore.).
Poi, ho fatto: Codice:
local skin = cmd[1].tointeger();
Che sarebbe la cosa scritta dopo /setmyskin (/Setmyskin parametro).
Con questo ho finito.
Se avete problemi, o domande, non esistate a chidere nei commenti, oppure a creare un topic in "Aiuto Programmazione & Supporto".
Guida creata interamente da S&C, Vietata la copia.
Enjoy