Problema de quando kiko alguem desliga o servidor -
wainner - 05.08.2017
esse e o comando q eu estou deixando quando eu do /kick id motivo o servidor desliga sozinho ve se vocкs acham o problema ae..
dcmd_kick(playerid, params[])
{
if(Player[playerid][pAdmin] >= 1 || Player[playerid][pFrente] >= 1 || Player[playerid][pBOPE] >= 3 || Player[playerid][pEXT] >= 3 || Player[playerid][pPM] >= 3 || Player[playerid][pReporter] >= 3)
{
new tmp[256], tmp2[256], idx;
tmp = strtok(params, idx);
tmp2 = strtok2(params, idx);
if(!strlen(tmp)||!strlen(tmp2))
return SendClientMessage(playerid,COR_USOCORRETO,"Uso: /kick [id] [motivo]");
new id;
if(!IsNumeric(tmp))
id = ReturnPlayerID(tmp);
else
id = strval(tmp);
if(!IsPlayerConnected(id))
return SendClientMessage(playerid, COR_ERRO, "ERRO: ID invбlido!");
if(NickProibido[id] == 1)
return SendClientMessage(playerid, COR_ERRO, "ERRO: Vocк nгo pode kikar alguйm com nick proнbido!");
if(Player[playerid][pBlockKick] == 1)
return SendClientMessage(playerid, COR_ERRO, "ERRO: Vocк estб com kick bloqueado!");
if(Player[playerid][DelayKick] == true)
return SendClientMessage(playerid, COR_ERRO, "ERRO: Aguarde um instante para poder kikar alguйm novamente.");
if(Player[playerid][pAdmin] < 6)
{
if(Player[id][pAdmin] >= 5)return SendClientMessage(playerid, COR_ERRO, "ERRO: Vocк nгo pode kikar superior!");
}
if(Player[playerid][pFrente] >= 1 || Player[playerid][pBOPE] >= 3 || Player[playerid][pEXT] >= 3 || Player[playerid][pPM] >= 3 || Player[playerid][pReporter] >= 3)
{
if(Player[id][pAdmin])return SendClientMessage(playerid, COR_ERRO, "ERRO: Vocк nгo pode kikar um admin");
if(Player[playerid][pMaxKick] >= 6)
{
SendFormattedMessageToAll(0xFF7777AA, "» %s foi kickado pelo BOT | Motivo: ultrapassar Mбximo de kick", Nome(playerid));
Kick(playerid);
return 1;
}
SendFormattedMessageToAll(0xFF7777AA, "» %s foi kickado pelo %s | Motivo: %s", Nome(id), Nome(playerid), tmp2);
Kick(id);
Player[playerid][DelayKick] = true;
SetTimerEx("TimerKick", 1000, 0, "i", playerid);
SetTimerEx("MAXKICK", 300000, 0, "i", playerid);
Player[playerid][pMaxKick] --;
SendFormattedMessage(playerid, 0x00FF00AA, "Vocк kickou um player vocк tem mais %d kick, se ultrapassar Limite de kick em 5 minuto vocк vai ser kickado.", Player[playerid][pMaxKick]);
Server[Kicks] += 1;
return 1;
}
SendFormattedMessageToAll(0xFF7777AA, "» %s foi kickado pelo %s | Motivo: %s", Nome(id), Nome(playerid), tmp2);
Kick(id);
Player[playerid][DelayKick] = true;
SetTimerEx("TimerKick", 1000, 0, "i", playerid);
Server[Kicks] += 1;
}
else SendClientMessage(playerid, COR_ERRO, "ERRO: Vocк nгo tem permissгo para usar este comando!");
return 1;
}
Re: Problema de quando kiko alguem desliga o servidor -
DarkBr - 05.08.2017
Nгo sei mas estamos no sйculo 21 nгo querendo ser chato amigo, usa o plugin sscanf + compiler do zeex ZCMD
exemplo simples:
seu comando em zcmd e sscanf
PHP Code:
COMMAND:kick(playerid, params[])
{
new iD, motivo[20];
if(Player[playerid][pAdmin] >= 1 || Player[playerid][pFrente] >= 1 || Player[playerid][pBOPE] >= 3 || Player[playerid][pEXT] >= 3 || Player[playerid][pPM] >= 3 || Player[playerid][pReporter] >= 3)
if(sscanf(params, "us",iD, motivo))return SendClientMessage(playerid,COR_USOCORRETO,"Uso: /kick [iD] [motivo]");
if(!IsPlayerConnected(iD))return SendClientMessage(playerid, COR_ERRO, "ERRO: iD invбliDo!");
if(NickProibiDo[iD] == 1)return SendClientMessage(playerid, COR_ERRO, "ERRO: Vocк nгo pode kikar alguйm com nick proнbiDo!");
if(Player[playerid][pBlockKick] == 1)return SendClientMessage(playerid, COR_ERRO, "ERRO: Vocк estб com kick bloqueado!");
if(Player[playerid][DelayKick] == true)return SendClientMessage(playerid, COR_ERRO, "ERRO: Aguarde um instante para poder kikar alguйm novamente.");
if(Player[iD][pAdmin] >= 5)return SendClientMessage(playerid, COR_ERRO, "ERRO: Vocк nгo pode kikar superior!");
if(Player[playerid][pFrente] >= 1 || Player[playerid][pBOPE] >= 3 || Player[playerid][pEXT] >= 3 || Player[playerid][pPM] >= 3 || Player[playerid][pReporter] >= 3)
if(Player[iD][pAdmin]<1)return SendClientMessage(playerid, COR_ERRO, "ERRO: Vocк nгo pode kikar um admin");
if(Player[playerid][pMaxKick] >= 6)
SendFormattedMessageToAll(0xFF7777AA, "» %s foi kickado pelo BOT | Motivo: ultrapassar Mбximo de kick", Nome(playerid));
Kick(playerid);
return 1;//??
SendFormattedMessageToAll(0xFF7777AA, "» %s foi kickado pelo %s | Motivo: %s", Nome(iD), Nome(playerid), tmp2);
Kick(iD);
Player[playerid][DelayKick] = true;
SetTimerEx("TimerKick", 1000, 0, "i", playerid);
SetTimerEx("MAXKICK", 300000, 0, "i", playerid);
Player[playerid][pMaxKick] --;
SendFormattedMessage(playerid, 0x00FF00AA, "Vocк kickou um player vocк tem mais %d kick, se ultrapassar Limite de kick em 5 minuto vocк vai ser kickado.", Player[playerid][pMaxKick]);
Server[Kicks] += 1;
return 1;//??
SendFormattedMessageToAll(0xFF7777AA, "» %s foi kickado pelo %s | Motivo: %s", Nome(iD), Nome(playerid), tmp2);
Kick(iD);
Player[playerid][DelayKick] = true;
SetTimerEx("TimerKick", 1000, 0, "i", playerid);
Server[Kicks] += 1;
else SendClientMessage(playerid, COR_ERRO, "ERRO: Vocк nгo tem permissгo para usar este comando!");
return 1;
}
sу nгo entendi pra que tantos returnos 1 e vбrios kick e mensagens sem sentiDo algum
seu comando e forma mais compreensiva
PHP Code:
COMMAND:kick(playerid, params[])
{
new iD, motivo[20];
if(Player[playerid][pAdmin] >= 1 || Player[playerid][pFrente] >= 1 || Player[playerid][pBOPE] >= 3 || Player[playerid][pEXT] >= 3 || Player[playerid][pPM] >= 3 || Player[playerid][pReporter] >= 3)
if(sscanf(params, "us",iD, motivo))return SendClientMessage(playerid,COR_USOCORRETO,"Uso: /kick [iD] [motivo]");
if(!IsPlayerConnected(iD))return SendClientMessage(playerid, COR_ERRO, "ERRO: iD invбliDo!");
if(NickProibiDo[iD] == 1)return SendClientMessage(playerid, COR_ERRO, "ERRO: Vocк nгo pode kikar alguйm com nick proнbiDo!");
if(Player[playerid][pBlockKick] == 1)return SendClientMessage(playerid, COR_ERRO, "ERRO: Vocк estб com kick bloqueado!");
if(Player[playerid][DelayKick] == true)return SendClientMessage(playerid, COR_ERRO, "ERRO: Aguarde um instante para poder kikar alguйm novamente.");
if(Player[playerid][pFrente] >= 1 || Player[playerid][pBOPE] >= 3 || Player[playerid][pEXT] >= 3 || Player[playerid][pPM] >= 3 || Player[playerid][pReporter] >= 3)
if(Player[iD][pAdmin]<1)return SendClientMessage(playerid, COR_ERRO, "ERRO: Vocк nгo pode kikar um admin");
if(Player[iD][pAdmin] >= 5)return SendClientMessage(playerid, COR_ERRO, "ERRO: Vocк nгo pode kikar superior!");
if(Player[playerid][pMaxKick] >= 6)
SendFormattedMessageToAll(0xFF7777AA, "» %s foi kickado pelo BOT | Motivo: ultrapassar Mбximo de kick", Nome(playerid));
Kick(playerid);
return 1;
}
reveja seu cуdigo e tente assimilar para uma funзгo MAIS administrativa
PHP Code:
COMMAND:kick(playerid, params[])
{
new iD, motivo[20];
if(Player[playerid][pAdmin]<1)return SendClientMessage(playerid, COR_ERRO, "ERRO: Vocк nгo й um admin");
if(sscanf(params, "us",iD, motivo))return SendClientMessage(playerid,COR_USOCORRETO,"Uso: /kick [iD] [motivo]");
if(Player[iD][pAdmin]<1)return SendClientMessage(playerid, COR_ERRO, "ERRO: Vocк nгo pode kikar um admin");
if(!IsPlayerConnected(iD))return SendClientMessage(playerid, COR_ERRO, "ERRO: iD invбliDo!");
SendFormattedMessageToAll(0xFF7777AA, "» %s foi kickado pelo BOT | Motivo: ultrapassar Mбximo de kick", Nome(iD));
Kick(iD);
return 1;
}