[ajuda] SetTimer, nгo funciona quando deve -
Rick_DR - 20.06.2012
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;
}
Re: [ajuda] SetTimer, nгo funciona quando deve -
kinhobryant - 20.06.2012
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
Re: [ajuda] SetTimer, nгo funciona quando deve -
Rick_DR - 20.06.2012
Sim kinho, percebi, mas olha nao tenho de meter o Killtimer porque se eu prender o jogador ou ele morrer ele vai ficar com
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
vai funcionar ?
Re: [ajuda] SetTimer, nгo funciona quando deve -
DrTHE - 20.06.2012
Troque SetTimer por SetTimerEx e coloque o devido parametro (playerid) nele
Re: [ajuda] SetTimer, nгo funciona quando deve -
Rick_DR - 20.06.2012
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.
Re: [ajuda] SetTimer, nгo funciona quando deve -
kinhobryant - 20.06.2012
Okay se funcionou , blz
Re: [ajuda] SetTimer, nгo funciona quando deve -
DrTHE - 20.06.2012
eu acho que funcionaria melhor com "d"
pawn Код:
Timerassalto[playerid] = SetTimerEx("Assalto", 600000, false, "d", playerid);
Re: [ajuda] SetTimer, nгo funciona quando deve -
Rick_DR - 21.06.2012
Qual seria a diferenзa? nao percebo bem isso de "d" ou "n" ou seja o que for