PDA

Просмотр полной версии : [Вопрос] Простая команда /makeadmin



Albert
29.12.2014, 18:40
Вот мой код команды:


public OnPlayerCommandText(playerid, cmdtext[])
{

if(pInfo[playerid][pLogged]==false) return SendClientMessage(playerid,0xFF0000FF,"Âû íå àâòîðèçèðîâàíû!");
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here


return 1;
}

if(strcmp(cmd, "/makeadmin", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, 0xFF0000FF, " Èñïîëüçóéòå: /makeadmin [playerid/PartOfName] [level(1-5)]");
return 1;
}
new para1;
new level;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
level = strval(tmp);
if(level > 5 || level < 0) { SendClientMessage(playerid, 0xFF0000FF, "* Íåâîçìîæíî çíà÷åíèå ìåíåå 1, èëè áîëåå 5!"); return 1; }
if(PInfo[playerid][pAdmin] >= 5 || IsPlayerAdmin(playerid))
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PInfo[para1][pAdmin] = level;
printf("Ãëàâíûé Àäìèíèñòðàòîð %s Ïîâûñèë %s [Rank:%d]", sendername, giveplayer, level);
format(string, sizeof(string), "Ãëàâíûé Àäìèíèñòðàòîð %s Ïîâûñèë/ïîíèçèë âàñ [Rank:%d]", sendername, level);
SendClientMessage(para1, 0xFF0000FF, string);
format(string, sizeof(string), "Âû Ïîâûñèëè/ïîíèçèëè %s [Rank:%d]", giveplayer,level);
SendClientMessage(playerid, 0xFF0000FF, string);
format(string, sizeof(string), "%s Íàçíà÷èë Ìîäåðàòîðîì/Àäìèíèñòðàòîðîì %s.[Rank:%d]", sendername, giveplayer,level);
SendClientMessageToAll(0xFF0000FF, string);
}
}
}
else
{
SendClientMessage(playerid, 0xFF0000FF, " Âû íå óïîëíîìî÷åíû èñïîëüçîâàòü ýòó êîìàíäó!");
}
}
return 1;
}
return 0;


Выскакивает уйма ошибок.

E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(189) : error 017: undefined symbol "cmd"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(193) : error 017: undefined symbol "tmp"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(193) : error 017: undefined symbol "strtok"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(194) : error 017: undefined symbol "tmp"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(201) : error 017: undefined symbol "ReturnUser"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(202) : error 017: undefined symbol "tmp"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(202) : error 017: undefined symbol "strtok"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(203) : error 017: undefined symbol "tmp"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(205) : error 017: undefined symbol "PInfo"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(205) : warning 215: expression has no effect
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(205) : error 001: expected token: ";", but found "]"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(205) : error 029: invalid expression, assumed zero
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(205) : fatal error 107: too many error messages on one line
Как же мне максимально по простому сделать команду для выдачи игроку админки?

Mazzilla
06.01.2015, 22:18
Попробуйте написать команду самостоятельно, не используя уже готовые. Чтобы было легче, вам поможет этот урок:
http://pro-pawn.ru/showthread.php?5560-sscanf-OnPlayerCommandText&p=55897#post55897

L0ndl3m
06.01.2015, 22:56
Я Вам уже несколько раз показывал пример на командах, одна из них: /makeleader. Готовый код был полностью дан.