Evo vam jedno jednostavno pitanje, a znam da puno ljudi ovdje nezna ako vec i napravi onda kopiraju prerade itd. iskljucivo mislim na pocetnike da nebi netko krivo shvatio, evo ja cu vam objasniti kako napraviti preko DCMD procesora kako npr. napraviti komandu /kill ili /explode za komande sa duzim params[] cemo koristiti DCMD & sscanf pa evo za pocetak cemo napraviti komandu /kill
ispod CommandText
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(kill,4,cmdtext);
return 0;
}
zatim...
dcmd_kill(playerid,params[])
{
new id;
if(IsPlayerAdmin(playerid))
{
if (strlen(params))
{
id = strval(params);
if (IsPlayerConnected(id))
{
SetPlayerHealth(id,0);
}
else
{
SendClientMessage(playerid, COLOR_RED, ": Igrac nije online.");
}
}
else
{
SendClientMessage(playerid, COLOR_ADMININFO, ": /kill ");
}
}
else
{
SendClientMessage(playerid, COLOR_RED, ": Moras biti RCON admin kako bi mogao koristiti ovu komandu.");
}
return 1;
}
Znaci da pojasnim na sto jednostavniji nacin kako smo mi dosli do fore da kad napises /kill da umre igrac ciji si ID upisao
Stavili smo tj. na neki nacin definirali new id;
onda ono IsPlayerAdmin(playerid) to znaci da ako je igrac RCON admin da moze koristi tu komandu...
if (strlen(params)), znacenje ovog koda je npr. strlen ucitava ono sta je igrac napiso dok strval ucitava broj znakova, params je mozemo reci ID igraca < to zapamtite
id = strval(params); gledajte sada sada je strval znaci prebrojava brojke i dolazi do konacnog broja
if (IsPlayerConnected(id)), provjera jeli igrac ciji ste ID napisali online mozete napraviti i ovako
if(!IsPlayerConnected(id))
{
SendClientMessage(playerid, COLOR_RED, ": Igrac nije online.");
return 1;
}
else
{
// sta ce se dogoditi ako je online
}
Evo moram ici negdje -.- sutra vam pokazem kako konbinirati DCMD & sscanf da napravite npr. /makeadmin
By: ExtremePower
Edit: Konvert iz strcmp u DCMD je kod
#define dcmd(%1,%2,%3) if (!strcmp((%3), #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
Zaključano
[TuT] DCMD procesor komande
Započeo Obrisan korisnik
•
pre 15 godina
5,963
pregleda
19
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
pre 15 godina
pre 15 godina
Mario Velickovski wrote on July 18, 2010, 12:39 pm:
Sta ima razlika od DCMD do CMD?
pre 15 godina
ExtremePower wrote on July 18, 2010, 12:39 pm:
Sta ima razlika od DCMD do CMD?
sta dobijem ako komandu napravim na ovaj nacin a ne na ovaj
if(strcmp(cmd, "/pomoc", true) == 0)
{
SendClientMessage(playerid,BOJA,"Tu napisite sta zelite za vasu pomoc komandu!");
}
return 1;
}
pre 15 godina
WhiteBurn wrote on July 18, 2010, 1:27 pm:
Jako dobar tutorial! Pomoci ce pocetnicima u savladavnju DCMD-a. I htio sam pitati da li ima razlika izmedu ZCMD-a i DCMD-a? Jer ja osobno koristim ZCMD pa me zanimalo da li je ZCMD mozda malo brzi i bolji od DCMD-a.
(; N1n0 😉 wrote on July 22, 2010, 10:44 am:
Extreme nisi objasnio komandu kill, evo ja cu:
dcmd(kill,4,cmdtext); - ovaj broj sto vidite 4 to je broj koliko sadrzi komanda slova, uvek morate da stavite tacno, ili komanda nece raditi.Mario Velickovski wrote on July 18, 2010, 12:39 pm:
Sta ima razlika od DCMD do CMD?
sta dobijem ako komandu napravim na ovaj nacin a ne na ovaj
if(strcmp(cmd, "/pomoc", true) == 0)
{
SendClientMessage(playerid,BOJA,"Tu napisite sta zelite za vasu pomoc komandu!");
}
return 1;
}Sta ti pricas ovaj tvoj strcmp nema niti strtok to je samo SUHA komanda
pre 15 godina
LordShigi wrote on July 22, 2010, 6:15 pm:
Nece niko napraviti za zcmd? Moram ja? Ajd dobro.
Za ZCMD već postoji ako nisi znao, samo je na engleskom jeziku.
pre 15 godina
LordShigi wrote on July 22, 2010, 6:22 pm:
Pa normalno da znam. Postoji na engleskom i za sve ostalo tu. Kolko ja znam i misao ovog podforuma je da tutoriali budu na hrvatskom. BTW upravo ga pišem
pre 15 godina
LordShigi wrote on July 22, 2010, 6:22 pm:
Pa normalno da znam. Postoji na engleskom i za sve ostalo tu. Kolko ja znam i misao ovog podforuma je da tutoriali budu na hrvatskom. BTW upravo ga pišem
Pitanje ti je bilo "da li je napravljeno?", a ne "da li je prevedno?".
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava