Albert
30.12.2014, 13:41
Хочу создать команду /invite, но выдаёт ошибки. Не могу разобраться где, что и почему. Подскажите, пожалуйста, как правильно написать.
Переменные отвечающие за лидерку, фракцию и ранг:
pLeader,
pMember,
pRank,
Вместо PlayerInfo используется pInfo
Так вначале выглядит паблик отвечающий за команды:
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;
}
return 0;
}
После добавления команды /invite
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, "/invite", true) == 0)
{
new para1;
new ftext[32];
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, 0xFF0000FF, "Aaaaeoa: /invite [id]");
para1 = ReturnUser(tmp);
if(GetDistanceBetweenPlayers(playerid, para1) < 5.0)
{
if(pInfo[playerid][pLeader] == 1 || pInfo[playerid][pMember] == 1 && pInfo[playerid][pRank] >= 4)
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
new giveplayer[MAX_PLAYER_NAME];
new sendername[MAX_PLAYER_NAME];
if(IsPlayerInAnyVehicle(para1)) return SendClientMessage(playerid, 0xFF0000FF, "[ERROR] Ea?ie iaoiaeony a o?ainii?oa!");
if(pInfo[para1][pMember] != 0) return SendClientMessage(playerid, 0xFF0000FF, "[ERROR] Ea?ie o?a ninoieo a eaeie-oi i?aaiecaoee!");
//if(PlayerInfo[playerid][pLevel] < 2) return SendClientMessage(playerid, COLOR_RED, "[ERROR] I?eai aicii?ai oieuei n 2-o eao i?i?eaaiey a ooaoa");
if(pInfo[playerid][pLeader] == 1 || pInfo[playerid][pMember] == 1 && pInfo[playerid][pRank] == 4)
else { return true; }
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "Au i?eiyee %s ?aaioaou a %s", giveplayer,ftext);
SendClientMessage(playerid, COLOR_BLUE, string);
format(string, sizeof(string), "Au auee i?eiyou a %s eeaa?ii %s", ftext, sendername);
SendClientMessage(para1, 0x6495EDFF, string);
//FormaFrac[para1] = 0;
pInfo[para1][pMember] = 1;
pInfo[para1][pRank] = 1;
pInfo[para1][pJob] = 0;
SavePlayer(para1);
}
}
}
else return SendClientMessage(playerid, 0x6495EDFF, "[ERROR] O aan ia ainoaoi?ii i?aa aey eniieuciaaiey aaiiie eiiaiau!");
}
else return SendClientMessage(playerid, 0x6495EDFF, "[ERROR] Ea?ie aie?ai auou ?yaii n aaie!");
}
}
return 0;
}
Ошибки после добавления команды /invite
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(254) : 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(260) : 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(260) : 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(261) : 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(262) : 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(263) : error 017: undefined symbol "GetDistanceBetweenPlayers"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(277) : 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(278) : warning 225: unreachable code
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(280) : error 017: undefined symbol "string"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(280) : error 017: undefined symbol "string"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(280) : 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(280) : fatal error 107: too many error messages on one line
P.S. и напишет пожалуйста функцию, которая будет выдавать цвет ника для игрока
Переменные отвечающие за лидерку, фракцию и ранг:
pLeader,
pMember,
pRank,
Вместо PlayerInfo используется pInfo
Так вначале выглядит паблик отвечающий за команды:
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;
}
return 0;
}
После добавления команды /invite
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, "/invite", true) == 0)
{
new para1;
new ftext[32];
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, 0xFF0000FF, "Aaaaeoa: /invite [id]");
para1 = ReturnUser(tmp);
if(GetDistanceBetweenPlayers(playerid, para1) < 5.0)
{
if(pInfo[playerid][pLeader] == 1 || pInfo[playerid][pMember] == 1 && pInfo[playerid][pRank] >= 4)
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
new giveplayer[MAX_PLAYER_NAME];
new sendername[MAX_PLAYER_NAME];
if(IsPlayerInAnyVehicle(para1)) return SendClientMessage(playerid, 0xFF0000FF, "[ERROR] Ea?ie iaoiaeony a o?ainii?oa!");
if(pInfo[para1][pMember] != 0) return SendClientMessage(playerid, 0xFF0000FF, "[ERROR] Ea?ie o?a ninoieo a eaeie-oi i?aaiecaoee!");
//if(PlayerInfo[playerid][pLevel] < 2) return SendClientMessage(playerid, COLOR_RED, "[ERROR] I?eai aicii?ai oieuei n 2-o eao i?i?eaaiey a ooaoa");
if(pInfo[playerid][pLeader] == 1 || pInfo[playerid][pMember] == 1 && pInfo[playerid][pRank] == 4)
else { return true; }
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "Au i?eiyee %s ?aaioaou a %s", giveplayer,ftext);
SendClientMessage(playerid, COLOR_BLUE, string);
format(string, sizeof(string), "Au auee i?eiyou a %s eeaa?ii %s", ftext, sendername);
SendClientMessage(para1, 0x6495EDFF, string);
//FormaFrac[para1] = 0;
pInfo[para1][pMember] = 1;
pInfo[para1][pRank] = 1;
pInfo[para1][pJob] = 0;
SavePlayer(para1);
}
}
}
else return SendClientMessage(playerid, 0x6495EDFF, "[ERROR] O aan ia ainoaoi?ii i?aa aey eniieuciaaiey aaiiie eiiaiau!");
}
else return SendClientMessage(playerid, 0x6495EDFF, "[ERROR] Ea?ie aie?ai auou ?yaii n aaie!");
}
}
return 0;
}
Ошибки после добавления команды /invite
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(254) : 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(260) : 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(260) : 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(261) : 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(262) : 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(263) : error 017: undefined symbol "GetDistanceBetweenPlayers"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(277) : 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(278) : warning 225: unreachable code
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(280) : error 017: undefined symbol "string"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(280) : error 017: undefined symbol "string"
E:\Program Files\Virtual Reality\SA-MP 0.3z Windows Server\gamemodes\S.T.A.L.K.E.R..pwn(280) : 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(280) : fatal error 107: too many error messages on one line
P.S. и напишет пожалуйста функцию, которая будет выдавать цвет ника для игрока