[Ajuda] /Contar - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: Non-English (
https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (
https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (
https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] /Contar (
/showthread.php?tid=554868)
/Contar -
ArthurxD - 05.01.2015
Й o seguinte, fiz um comando de contagem pro meu servidor, so pra fazer um evento do meu clг de corrida.
Quando so estou eu no servidor ele funciona normalmente, mas se entra mais outros jogadores o timer buga e o tempo desce rapidгo.
pawn Код:
new TEMPOCONTAGEM;
new ContDow = 0;
pawn Код:
CMD:contar(playerid, params[]){
new Float:p[3];
GetPlayerPos(playerid, p[0], p[1], p[2]);
if(sscanf(params,"d",ContDow)) return SendClientMessage(playerid, Vermelho, "| ERRO |{FFFFFF} Digite: /Contar [tempo 1-15]");
if(ContDow < 1 || ContDow > 15) return SendClientMessage(playerid, ERRO, "| ERRO | O tempo deve ser de 1 а 15 segundos");
for(new i; i < MAX_PLAYERS; i++){
if(IsPlayerInRangeOfPoint(playerid, 20.0, p[0], p[1], p[2])){
SetCameraBehindPlayer(i);
TogglePlayerControllable(i,0);
}
}
TEMPOCONTAGEM = SetTimerEx("Contagem", 1000, true, "i", playerid);
return 1;
}
pawn Код:
public Contagem(playerid)
{
new str[50], Float:p[3];
GetPlayerPos(playerid, p[0], p[1], p[2]);
for(new i; i < MAX_PLAYERS; i++){
if(IsPlayerInRangeOfPoint(i, 20.0, p[0], p[1], p[2])){
TextDrawShowForPlayer(i, textocnn);
TogglePlayerControllable(i,0);
format(str, sizeof(str),"~r~~h~#~p~ Contagem:~w~ %d ~r~~h~#",ContDow);
TextDrawSetString(textocnn, str);
ContDow--;
if(ContDow < 0){
TextDrawHideForPlayer(i, textocnn);
ContDow = 0;
TogglePlayerControllable(i,1);
KillTimer(TEMPOCONTAGEM);
}
}
}
}
Aguardo ajuda.
Re: /Contar -
[BOPE]Seu._.Madruga - 05.01.2015
PHP код:
new TimerCount[MAX_PLAYERS], CountDown[MAX_PLAYERS];
forward Contagem(playerid);
PHP код:
CMD:contar(playerid, params[]) {
new Float:pos[3], Count = 0;
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
if(sscanf(params,"d", Count)) return SendClientMessage(playerid, -1, "| ERRO |{FFFFFF} Digite: /Contar [tempo 1-15]");
if(1 <= Count <= 15) return SendClientMessage(playerid, -1, "| ERRO | O tempo deve ser de 1 а 15 segundos");
for(new i; i < GetMaxPlayers(); i++)
{
if(IsPlayerInRangeOfPoint(i, 20.0, pos[0], pos[1], pos[2]))
{
SetCameraBehindPlayer(i);
TogglePlayerControllable(i, 0);
}
}
CountDown[playerid] = Count;
TimerCount[playerid] = SetTimerEx("Contagem", 1000, true, "i", playerid);
return 1;
}
PHP код:
public Contagem(playerid)
{
new str[50], Float:p[3];
GetPlayerPos(playerid, p[0], p[1], p[2]);
format(str, sizeof(str),"~r~~h~#~p~ Contagem:~w~ %d ~r~~h~#", CountDown[playerid]);
for(new i; i < GetMaxPlayers(); i++)
{
if(IsPlayerInRangeOfPoint(i, 20.0, p[0], p[1], p[2]))
{
if(CountDown[playerid] == 0)
{
TogglePlayerControllable(i, 1);
KillTimer(TimerCount[playerid]);
}
TextDrawHideForPlayer(i, textocnn);
TextDrawSetString(textocnn, str);
TextDrawShowForPlayer(i, textocnn);
}
}
CountDown[playerid] --;
return 1;
}