PDA

View Full Version : [Ajuda] Qual o Poblema???


Ichigo_Kurosaki
26/12/2011, 07:53 PM
Pessoal eu tenho esse comando:


if(strcmp(cmd,"/relato",true) ==0 || strcmp(cmd,"/re",true)==0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMuted] == 1)
{
SendClientMessage(playerid, COLOR_RED, "Você foi mutado por um admin, não pode falar.");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USO: /relato [texto]");
return 1;
}
if(RelatoTime[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GREY, " Você precisa esperar 30 segundos para usar esse comando denovo !");
return 1;
}
format(string, sizeof(string), "[Relato]%s[%d] relatou: %s", sendername,playerid, (result));
ABroadCast(COLOR_KICKBAN,string,1);
SetTimerEx("RelatoTimer", 30000, false, "i", playerid);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "O Relatório abaixo foi enviado com sucesso à Staff Brasil Play Perfect, aguarde mais informacões...");
format(string, sizeof(string), "[Relato]%s[%d] relatou: %s", sendername,playerid, (result));
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
return 1;
}


O poblema é que eu to podendo enviar 1milhão de relatos e o TIMER não está funcionando, eu queria que o cara só pudesse mandar relato de 30 em 30 seguntos!!!

Lós
26/12/2011, 07:55 PM
O problema está na public RelatoTimer.

Troque-a por está:

public RelatoTimer(playerid)
{
RelatoTime[playerid] = 0;
SendClientMessage(playerid, -1, "Você já pode enviar um relato novamente.");
return 1;
}

@Edit.

Troque o comando por este:

if(strcmp(cmd,"/relato",true) ==0 || strcmp(cmd,"/re",true)==0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMuted] == 1)
{
SendClientMessage(playerid, COLOR_RED, "Você foi mutado por um admin, não pode falar.");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USO: /relato [texto]");
return 1;
}
if(RelatoTime[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GREY, " Você precisa esperar 30 segundos para usar esse comando denovo !");
return 1;
}
format(string, sizeof(string), "[Relato]%s[%d] relatou: %s", sendername,playerid, (result));
ABroadCast(COLOR_KICKBAN,string,1);
SetTimerEx("RelatoTimer", 30000, false, "i", playerid);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "O Relatório abaixo foi enviado com sucesso à Staff Brasil Play Perfect, aguarde mais informacões...");
format(string, sizeof(string), "[Relato]%s[%d] relatou: %s", sendername,playerid, (result));
RelatoTime[playerid] = 1;
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
return 1;
}

Ichigo_Kurosaki
26/12/2011, 08:19 PM
O problema está na public RelatoTimer.

Troque-a por está:

public RelatoTimer(playerid)
{
RelatoTime[playerid] = 0;
SendClientMessage(playerid, -1, "Você já pode enviar um relato novamente.");
return 1;
}

@Edit.

Troque o comando por este:

if(strcmp(cmd,"/relato",true) ==0 || strcmp(cmd,"/re",true)==0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMuted] == 1)
{
SendClientMessage(playerid, COLOR_RED, "Você foi mutado por um admin, não pode falar.");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USO: /relato [texto]");
return 1;
}
if(RelatoTime[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GREY, " Você precisa esperar 30 segundos para usar esse comando denovo !");
return 1;
}
format(string, sizeof(string), "[Relato]%s[%d] relatou: %s", sendername,playerid, (result));
ABroadCast(COLOR_KICKBAN,string,1);
SetTimerEx("RelatoTimer", 30000, false, "i", playerid);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "O Relatório abaixo foi enviado com sucesso à Staff Brasil Play Perfect, aguarde mais informacões...");
format(string, sizeof(string), "[Relato]%s[%d] relatou: %s", sendername,playerid, (result));
RelatoTime[playerid] = 1;
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
return 1;
}

Brigado, poblema resolvido