[Ajuda] Problema de quando kiko alguem desliga o servidor
#1

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;
}
Reply
#2

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(playeridparams[])
{
    new 
iDmotivo[20];
    if(
Player[playerid][pAdmin] >= || Player[playerid][pFrente] >= || Player[playerid][pBOPE] >= || Player[playerid][pEXT] >= || Player[playerid][pPM] >= || Player[playerid][pReporter] >= 3)
     if(
sscanf(params"us",iDmotivo))return SendClientMessage(playerid,COR_USOCORRETO,"Uso: /kick [iD] [motivo]");
    if(!
IsPlayerConnected(iD))return SendClientMessage(playeridCOR_ERRO"ERRO: iD invбliDo!");
    if(
NickProibiDo[iD] == 1)return SendClientMessage(playeridCOR_ERRO"ERRO: Vocк nгo pode kikar alguйm com nick proнbiDo!");
    if(
Player[playerid][pBlockKick] == 1)return SendClientMessage(playeridCOR_ERRO"ERRO: Vocк estб com kick bloqueado!");
    if(
Player[playerid][DelayKick] == true)return SendClientMessage(playeridCOR_ERRO"ERRO: Aguarde um instante para poder kikar alguйm novamente.");
    if(
Player[iD][pAdmin] >= 5)return SendClientMessage(playeridCOR_ERRO"ERRO: Vocк nгo pode kikar superior!");
    if(
Player[playerid][pFrente] >= || Player[playerid][pBOPE] >= || Player[playerid][pEXT] >= || Player[playerid][pPM] >= || Player[playerid][pReporter] >= 3)
    if(
Player[iD][pAdmin]<1)return SendClientMessage(playeridCOR_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"10000"i"playerid);
    
SetTimerEx("MAXKICK"3000000"i"playerid);
    
Player[playerid][pMaxKick] --;
    
SendFormattedMessage(playerid0x00FF00AA"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"10000"i"playerid);
    
Server[Kicks] += 1;
    else 
SendClientMessage(playeridCOR_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(playeridparams[])
{
    new 
iDmotivo[20];
    if(
Player[playerid][pAdmin] >= || Player[playerid][pFrente] >= || Player[playerid][pBOPE] >= || Player[playerid][pEXT] >= || Player[playerid][pPM] >= || Player[playerid][pReporter] >= 3)
     if(
sscanf(params"us",iDmotivo))return SendClientMessage(playerid,COR_USOCORRETO,"Uso: /kick [iD] [motivo]");
    if(!
IsPlayerConnected(iD))return SendClientMessage(playeridCOR_ERRO"ERRO: iD invбliDo!");
    if(
NickProibiDo[iD] == 1)return SendClientMessage(playeridCOR_ERRO"ERRO: Vocк nгo pode kikar alguйm com nick proнbiDo!");
    if(
Player[playerid][pBlockKick] == 1)return SendClientMessage(playeridCOR_ERRO"ERRO: Vocк estб com kick bloqueado!");
    if(
Player[playerid][DelayKick] == true)return SendClientMessage(playeridCOR_ERRO"ERRO: Aguarde um instante para poder kikar alguйm novamente.");
    if(
Player[playerid][pFrente] >= || Player[playerid][pBOPE] >= || Player[playerid][pEXT] >= || Player[playerid][pPM] >= || Player[playerid][pReporter] >= 3)
    if(
Player[iD][pAdmin]<1)return SendClientMessage(playeridCOR_ERRO"ERRO: Vocк nгo pode kikar um admin");
    if(
Player[iD][pAdmin] >= 5)return SendClientMessage(playeridCOR_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(playeridparams[])
{
    new 
iDmotivo[20];
    if(
Player[playerid][pAdmin]<1)return SendClientMessage(playeridCOR_ERRO"ERRO: Vocк nгo й um admin");
    if(
sscanf(params"us",iDmotivo))return SendClientMessage(playerid,COR_USOCORRETO,"Uso: /kick [iD] [motivo]");
    if(
Player[iD][pAdmin]<1)return SendClientMessage(playeridCOR_ERRO"ERRO: Vocк nгo pode kikar um admin");
    
    if(!
IsPlayerConnected(iD))return SendClientMessage(playeridCOR_ERRO"ERRO: iD invбliDo!");
    
SendFormattedMessageToAll(0xFF7777AA"» %s foi kickado pelo BOT | Motivo: ultrapassar Mбximo de kick"Nome(iD));
    
Kick(iD);
    return 
1;

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)