[ajuda] SetTimer, nгo funciona quando deve
#1

Tenho este comando para os gangґs um simples assalto que fiz para testes, queria muito melhorar mas nem consigo corrigir este settimer.

Como devia funcionar:
- O jogador faz o assalto, espera 10 minutos ao fim desses 10 minutos se nao for apanhado recebe os 600, caso tenha morrido ou preso ele nao recebe os dinheiro mas aparece na mesma a mensagem a dizer que nao conseguiu roubar o banco. ate aqui esta tudo bem.

O problema:
- O jogador faz o assalto, e mesmo quando consegue escapar a policia, passa os 10 minutos e nao aparece absolutamente nada.

Posso ate estar a escapar algo, e por vezes os que vem de fora apanham logo o erro ! Tentem ajudar Sff


Comando:

pawn Код:
if (strcmp("/Assalto", cmdtext, true, 10) == 0)
{
    if(gTeam[playerid] != 5 && gTeam[playerid] != 1) return SendClientMessage(playerid,TEAM_grove_COLOR,"Comando reservado apenas para Gangґs");
    if(IsPlayerInRangeOfPoint(playerid,50,-2764.4077,375.4866,6.3411)==0) return SendClientMessage(playerid, TEAM_Mafia_Yakuza_COLOR, "Nгo estas perto do banco Central");
    if(contar[playerid]!=0) return SendClientMessage(playerid, TEAM_Mafia_Yakuza_COLOR, "Ainda nao podes usar o comando!");
    {
    contar[playerid]= 1;
    SetTimer("Assalto" , 600000, true);
    SendClientMessage(playerid,TEAM_Mafia_Yakuza_COLOR,"O assalto foi iniciado, tens agora de te esconder da policia!");
    SendClientMessage(playerid,TEAM_Mafia_Yakuza_COLOR,"Nгo tentes esconder dentro de interiores ou serбs apanhado mais facilmente");
    SetPlayerWantedLevel(playerid, 2);
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    new string[248];
    format(string,sizeof(string),"{BD0000}Alerta a todas as unidades: {FFEA00}%s deu inicio ao roubo do banco!",pName);
    SendClientMessageToAll(TEAM_POLICIA_COLOR, string);
    }
    return 1;
}
aqui a public:

pawn Код:
forward Assalto(playerid);
public Assalto(playerid)
{
if(contar[playerid]== 2){
    SendClientMessage(playerid, TEAM_Mafia_Yakuza_COLOR, "Nгo conseguistes roubar o banco!");
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    new string[248];
    format(string,sizeof(string),"{FFA200}Noticia: {FF0000}%s {3C855F} Nгo consegue fugir com o dinheiro!",pName);
    SendClientMessageToAll(-1, string);
    SetTimer("TimerArmas" , 600000, true);
}
if(contar[playerid]== 1){
    SendClientMessage(playerid, servidor, "Agora estas livre ! a policia nada pode contra ti.");
    SetPlayerWantedLevel(playerid, 0);
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    new string[248];
    format(string,sizeof(string),"{FFA200}Noticia: {FF0000}%s {3C855F} consegue fazer um assalto ao banco sem ser apanhado !",pName);
    SendClientMessageToAll(-1, string);
    SetTimer("TimerArmas" , 600000, true);
    GivePlayerMoney(playerid, 600);
}
return 1;
}
forward TimerArmas(playerid);
public TimerArmas(playerid)
{
contar[playerid]=0;
return 1;
}
Reply
#2

Coloca KillTimer("Assalto"); na public q for preso e morto , ai na public assalto vc coloca else if na parte q qndo ele morre se й q me entende ;x
Reply
#3

Sim kinho, percebi, mas olha nao tenho de meter o Killtimer porque se eu prender o jogador ou ele morrer ele vai ficar com
pawn Код:
contar[playerid]= 2;
e ai quando acabar o tempo ele vai receber o tal
pawn Код:
if(contar[playerid]== 2){
em vez de
pawn Код:
if(contar[playerid]== 1){
Entendeu? =2 - nгo recebe a grana =1 recebe a grana


Edit:
serб que com
pawn Код:
switch
vai funcionar ?
Reply
#4

Troque SetTimer por SetTimerEx e coloque o devido parametro (playerid) nele
Reply
#5

Vou tentar assim
pawn Код:
Timerassalto[playerid] = SetTimerEx("Assalto", 600000, false, "n", playerid);
Edit:
Testei aqui e funcionou so comigo, vamos la ver se no host funciona.
Reply
#6

Okay se funcionou , blz
Reply
#7

eu acho que funcionaria melhor com "d"
pawn Код:
Timerassalto[playerid] = SetTimerEx("Assalto", 600000, false, "d", playerid);
Reply
#8

Qual seria a diferenзa? nao percebo bem isso de "d" ou "n" ou seja o que for
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)