Dobar dan. Ovako, radim chatove za svoj server koji je raden od 0 Imam 4 chata, /me, /ad /b i /a. ova dva prva (/me i /ad) rade odlicno no ova dva (/b i /a) nerade:
Evo kodova:
za /me:
if(!strcmp(cmdtext, "/me", true, 3))
{
if(!cmdtext[3])return SendClientMessage(playerid, ORANGE, "KORISTNI: /me [akcija]");
new str[128];
GetPlayerName(playerid, str, sizeof(str));
format(str, sizeof(str), "* %s %s", str, cmdtext[4]);
SendClientMessageToAll(COLOR_PURPLE, str);
return 1;
}
za /ad
if(!strcmp(cmdtext, "/ad", true, 3)) // 3 is the length of /me
{
if(!cmdtext[3])return SendClientMessage(playerid, ORANGE, "KORISTI: /ad [oglas]");
new str[128];
GetPlayerName(playerid, str, sizeof(str));
format(str, sizeof(str), "OGLAS: %s %s", str, cmdtext[4]);
SendClientMessageToAll(COLOR_GREEN, str);
return 1;
}
i evo za /a
if(!strcmp(cmdtext, "/a", true, 3)) // 3 is the length of /me
{
if(!cmdtext[3])return SendClientMessage(playerid, ORANGE, "KORISTI: /a [bzvz]");
new str[128];
GetPlayerName(playerid, str, sizeof(str));
format(str, sizeof(str), "ADMIN: %s %s", str, cmdtext[4]);
SendClientMessageToAll(COLOR_RED, str);
return 1;
}
i ovaj drugi sta neradi, /b
if(!strcmp(cmdtext, "/b", true, 3))
{
if(!cmdtext[3])return SendClientMessage(playerid, ORANGE, "KORISTI: /b [nesto]");
new str[128];
GetPlayerName(playerid, str, sizeof(str));
format(str, sizeof(str), "* %s %s", str, cmdtext[4]);
SendClientMessageToAll(COLOR_WHITE, str);
return 1;
}
U cemu je greska da ovi dva nerade, a skoro su isti. Udem u server upisem /a napise Vi niste admin, kada se logiram za admina i napisem /a napise da komanda nepostoji. Za /b napise odma da komanda nepostoji
GM nema nikakvih bugova ni errora. Pomagajte... Unaprijed Hvala!
evo ti za /a
if(strcmp(cmd, "/admin", true) == 0 || strcmp(cmd, "/a", true) == 0)
{
if(IsPlayerConnected(playerid))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_LIGHTBLUE, "KORISTI: (/a)dmin [tekst]");
return 1;
}
new arank[64];
if(PlayerInfo[playerid][pAdmin] == 1) { arank = "Level 1 Admin"; }
else if(PlayerInfo[playerid][pAdmin] == 2) { arank = "Moderator"; }
else if(PlayerInfo[playerid][pAdmin] == 3) { arank = "GlobalModerator"; }
else if(PlayerInfo[playerid][pAdmin] == 4) { arank = "SuperModerator"; }
else if(PlayerInfo[playerid][pAdmin] == 1337) { arank = "Co-Administrator"; }
else if(PlayerInfo[playerid][pAdmin] == 1338) { arank = "Administrator"; }
else if(PlayerInfo[playerid][pAdmin] == 1339) { arank = "OWNER"; }
else if(PlayerInfo[playerid][pGameMaster] == 1) { arank = "GameMaster"; }
else if(PlayerInfo[playerid][pGameMaster] == 2) { arank = "GameMaster"; }
else if(PlayerInfo[playerid][pGameMaster] == 3) { arank = "GameMaster"; }
else if(PlayerInfo[playerid][pGameMaster] == 4) { arank = "GameMaster"; }
else { arank = "Level 1 Admin"; }
format(string, sizeof(string), "*** %s %s *** kaze: %s", arank, sendername, result);
if (PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pGameMaster] >= 1)
{
SendAdminMessage(COLOR_LIGHTBLUE, string);
}
printf("Admin %s: %s", sendername, result);
printf("GameMaster %s: %s", sendername, result);
}
return 1;
}
Pogreska ti je ocita...
if(!cmdtext[3])return SendClientMessage(playerid, ORANGE, "KORISTI: /a [bzvz]");
Naci CMDTEXT pise ti da ako ima tri znaka (slova) da ce ti ispisati to KORISTI: /a
A kosa crta i slovo a (/a) su ti dva simbola, a NE tri. Stoga u obje te komande moras promjeniti u 2 (cmdtext[2], a ne cmdtext[3] kako je bilo).
Hvala puno, nekoristim ovaj oblik komadnu, te su mi ovo prve... Koristio sam obicne pa sam radio po njima... Jos jednom Hvala!
Glavno da je tebi ovaj skopiro komandu iz moda.
Citat: ZicMortal poslato Oktobar 16, 2010, 23:11:58 POSLE PODNE
Glavno da je tebi ovaj skopiro komandu iz moda.
Ma gledo sam tvoju ne njegovu... Radi sad sve, po treci put Hvala! ;D