[Pomoc] Problem s chatovima

Započeo Matteo, Oktobar 16, 2010, 21:19:16 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 3 gostiju pregledaju ovu temu.

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!
Poslednja Izmena: Oktobar 16, 2010, 21:20:13 POSLE PODNE od matteokov

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;
}

skype: marko.pintaric1 :)

ZicMortal

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).
Poslednja Izmena: Oktobar 16, 2010, 21:58:13 POSLE PODNE od ZicMortal

Hvala puno, nekoristim ovaj oblik komadnu, te su mi ovo prve... Koristio sam obicne pa sam radio po njima... Jos jednom Hvala!

ZicMortal

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