Bug stock Demitir -
SrBlu - 29.03.2019
Estou fazendo gamemode unico com sistema de ORGS que eu achei aqui e estou adaptando ela pro meu sevidor para deixa-lo unico;
Porem estou com um bug, assim que chama o cujo "stock demitir" ele da warning sscanf2 ( no console ) e fica dando respawn no jogador demitido.
Pelo que notei quando tem 2 jogadores, quando 1 deles da /pedircontas ou quando й demitido, ( chamado a stock
demitir ) ele da o warning sscanf2, e o jogador fica dando respawn sem parar.
OBS: ja atualizei todas as includes juntamente com os plugins, troquei a server-samp pelo atual, corriji .cfg.
Funзгo:
Stock demitir:
Код HTML:
stock Demitir(id)
{
new arquivo[100],
_string[100],
orgid = Player[id][pMembro];
format(arquivo, sizeof arquivo, "InfoOrg/Org%i.ini", orgid);
Player[id][pMembro] = 0;
Player[id][pCargo] = 0;
if(strcmp(Org[orgid][Lider], Nome(id), true) == 0)
{
SetPlayerSkin(id, 23);
strmid(Org[orgid][Lider], "Ninguem", 0 , strlen("Ninguem"), 128);
DOF2::SetString(arquivo, "Lider", "Ninguem");
SpawnPlayer(id);
DOF2::SaveFile();
return 1;
}
if(strcmp(Org[orgid][SubLider], Nome(id), true) == 0)
{
SetPlayerSkin(id, 23);
strmid(Org[orgid][SubLider], "Ninguem", 0, strlen("Ninguem"), 128);
DOF2::SetString(arquivo, "SubLider", "Ninguem");
SpawnPlayer(id);
DOF2::SaveFile();
return 1;
}
for(new i = 1; i < MAX_MEMBROS; ++i)
{
if(strcmp(Membros[orgid][i], Nome(id), true) == 0)
{
format(_string, sizeof _string, "Membro%i", i);
strmid(Membros[orgid][i], "Ninguem", 0, strlen("Ninguem"), 128);
DOF2::SetString(arquivo, _string, "Ninguem");
DOF2::SaveFile();
}
}
SetPlayerSkin(id, 23);
SpawnPlayer(id);
return 1;
}
Comando /pedircontas
Код HTML:
CMD:pedircontas(playerid)
{
format(BlueRed, sizeof(BlueRed), "{FFFFFF}[{00FF00} + {FFFFFF}] Vocк pediu conta da org {00FFFF}%s.", OrgName);
BRS::(playerid, -1, BlueRed);
Demitir(playerid);
return 1;
}
Comando /demitir
Код HTML:
CMD:demitir(playerid,params[])
{
new id, motivo[64];
if(Player[playerid][pMembro] == 0)
{
format(BlueRed, sizeof(BlueRed), "{FFFFFF}[{FF0000} x {FFFFFF}] Vocк nгo faz parte de uma organizaзгo .");
BRS::(playerid, -1,BlueRed);
return 1;
}
if(Player[playerid][pCargo] < 4)
{
format(BlueRed, sizeof(BlueRed), "{FFFFFF}[{FF0000} x {FFFFFF}] Somente lideres e sub-lideres podem fazer demiзхes.");
BRS::(playerid, -1,BlueRed);
return 1;
}
if(sscanf(params, "us[64]", id, motivo))
{
format(BlueRed, sizeof(BlueRed), "{FFFFFF}[{00FF00} ? {FFFFFF}] Use /demitir [id] [motivo].");
BRS::(playerid, -1,BlueRed);
return 1;
}
if(!IsPlayerConnected(id))
{
format(BlueRed, sizeof(BlueRed), "{FFFFFF}[{FF0000} x {FFFFFF}] ID offline ou invalido.");
BRS::(playerid, -1,BlueRed);
return 1;
}
if(id == playerid)
{
format(BlueRed, sizeof(BlueRed), "{FFFFFF}[{FF0000} x {FFFFFF}] Use '/pedircontas' caso queira se demitir !");
BRS::(playerid, -1,BlueRed);
return 1;
}
if(Player[id][pMembro] != Player[playerid][pMembro])
{
format(BlueRed, sizeof(BlueRed), "{FFFFFF}[{FF0000} x {FFFFFF}] Este player pertence a outra organizaзгo.");
BRS::(playerid, -1,BlueRed);
return 1;
}
format(BlueRed, sizeof(BlueRed), "{FFFFFF}[{FF0000} + {FFFFFF}] Vocк demitiu {00FFFF}%s{FFFFFF} da organizaзгo, Motivo: {00FFFF}%s{FFFFFF}.", Nome(id), motivo);
BRS::(playerid, -1, BlueRed);
format(BlueRed, sizeof(BlueRed), "{FFFFFF}[{FF0000} x {FFFFFF}] Vocк foi demitido da organizaзгo por {00FFFF}%s{FFFFFF}, Motivo: {00FFFF}%s{FFFFFF}.", Nome(playerid), motivo);
BRS::(id, -1, BlueRed);
Demitir(id);
return 1;
}
Re: Bug stock Demitir -
Felipealves - 29.03.2019
Aparentemente estб td certo, nгo encontrei nenhum erro.
Baixe essa sscanf,
aqui.