[Ajuda] Velocimetro continua.
#1

Olб, to fazendo um sistema de velocнmetro em minha GM e o tempo nгo tб parando (o settimerex). Tipo: Eu entro no veiculo ai comeзa o timer mostrando a velocidade sу que quando sai do veнculo, continua enviando a mensagem. O Timer nгo para.

Code:
PHP код:
public OnPlayerStateChange(playeridnewstateoldstate)
{
    if(
newstate == PLAYER_STATE_DRIVER)
    {
    
SetTimerEx("velo"10001"i"playerid);
    return 
1;
    }
    if(
oldstate == PLAYER_STATE_DRIVER)
    {
    
KillTimer(velo(playerid));
    
KillTimer(velo2(playerid));
    return 
1;
    }
    return 
1;
}
forward velo(playerid);
public 
velo(playerid)
{
SetTimerEx("velo2"501"i"playerid);
return 
1;
}
forward velo2(playerid);
public 
velo2(playerid)
{
format(Stringsizeof(String), "| INFO | Sua velocidade й de: %ikm/h"GetPlayerSpeed(playeridtrue));
SendClientMessage(playerid0xFF0000AAString);
return 
1;

Obs: sгo 2 velo pra dar o tempo. Pq quando entra no veiculo, ja aparece a velocidade, entгo quero que espere um tempo atй poder mostrar a velocidade.
Eu coloquei SendClientMessage sу pra testar. Em breve vou mudar pra textdraw.
Reply
#2

PHP код:
//No inнcio do GM.
new TimerVelo[MAX_PLAYERS];
new 
TimerVelo2[MAX_PLAYERS]; 
PHP код:
TimerVelo[playerid] = SetTimerEx("velo"10001"i"playerid);
TimerVelo2[playerid] = SetTimerEx("velo2"501"i"playerid); 
PHP код:
KillTimer(TimerVelo[playerid]); 
KillTimer(TimerVelo2[playerid]); 
Reply
#3

Mano identa seus cуdigos '-'

Olha se resolve:

Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
	new State = GetPlayerState(playerid);
    if (State == PLAYER_STATE_DRIVER)
    {
	    SetTimerEx("velo", 1000, 1, "i", playerid);
    }else if (State != PLAYER_STATE_DRIVER)
    {
	    KillTimer(velo(playerid));
	    KillTimer(velo2(playerid));
	}
    return 1;
}

forward velo(playerid); 
public velo(playerid) 
{ 
SetTimerEx("velo2", 50, 1, "i", playerid); 
return 1; 
} 

forward velo2(playerid); 
public velo2(playerid) 
{ 
format(String, sizeof(String), "| INFO | Sua velocidade й de: %ikm/h", GetPlayerSpeed(playerid, true)); 
SendClientMessage(playerid, 0xFF0000AA, String); 
return 1; 
}
Reply
#4

PHP код:
error028invalid subscript (not an array or too many subscripts): "velo2"
warning215expression has no effect
error
001expected token";"but found "]"
error029invalid expressionassumed zero
error fatal
107too many error messages on one line
Parte
:
if(
oldstate == PLAYER_STATE_DRIVER)
{
KillTimer(velo[playerid]); (343// se tirar essa, fica na debaixo.
KillTimer(velo2[playerid]); (344)
return 
1;

Ficou tudo assim:

PHP код:
public OnPlayerStateChange(playeridnewstateoldstate)
{
    if(
newstate == PLAYER_STATE_DRIVER)
    {
    
Timervelo[playerid] = SetTimerEx("velo"10001"i"playerid);
    return 
1;
    }
    if(
oldstate == PLAYER_STATE_DRIVER)
    {
    
KillTimer(velo[playerid]);
    
KillTimer(velo2[playerid]);
    return 
1;
    }
    return 
1;
}
forward velo(playerid);
public 
velo(playerid)
{
Timervelo2[playerid] = SetTimerEx("velo2"501"i"playerid);
return 
1;
}
forward velo2(playerid);
public 
velo2(playerid)
{
format(Stringsizeof(String), "| INFO | Sua velocidade й de: %ikm/h"GetPlayerSpeed(playeridtrue));
SendClientMessage(playerid0xFF0000AAString);
return 
1;

Reply
#5

Vocк estб chamando 2 timer nгo sei porque... e se vocк da uma boa estudada verб que nem vai precisar de usar o killtimer
Reply
#6

Quote:
Originally Posted by Tuznn
Посмотреть сообщение
Mano identa seus cуdigos '-'

Olha se resolve:

Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
	new State = GetPlayerState(playerid);
    if (State == PLAYER_STATE_DRIVER)
    {
	    SetTimerEx("velo", 1000, 1, "i", playerid);
    }else if (State != PLAYER_STATE_DRIVER)
    {
	    KillTimer(velo(playerid));
	    KillTimer(velo2(playerid));
	}
    return 1;
}

forward velo(playerid); 
public velo(playerid) 
{ 
SetTimerEx("velo2", 50, 1, "i", playerid); 
return 1; 
} 

forward velo2(playerid); 
public velo2(playerid) 
{ 
format(String, sizeof(String), "| INFO | Sua velocidade й de: %ikm/h", GetPlayerSpeed(playerid, true)); 
SendClientMessage(playerid, 0xFF0000AA, String); 
return 1; 
}
Agora aparece quando o player tб fora de veiculo.
Reply
#7

PHP код:
public OnPlayerStateChange(playeridnewstateoldstate)
{
if(
newstate == PLAYER_STATE_DRIVER)
{
    
SetTimerEx("velo"1000true"i"playerid);
    return 
1;
}

if(
oldstate == PLAYER_STATE_DRIVER)
{
    
KillTimer(velo(playerid));
    
KillTimer(velo2(playerid));
    return 
1;
}
return 
1;
}

forward velo(playerid);
public 
velo(playerid)
{
    
SetTimerEx("velo2"501"i"playerid);
    return 
1;
}

forward velo2(playerid);
public 
velo2(playerid)
{
    new 
State;
    
State GetPlayerState(playerid);
    if(
State == PLAYER_STATE_DRIVER)
    {
        
format(Stringsizeof(String), "| INFO | Sua velocidade й de: %ikm/h"GetPlayerSpeed(playeridtrue));
        
SendClientMessage(playerid0xFF0000AAString);
    }
    return 
1;

Arrumei o erro me baseando no Tuznn. Obrigado. +REP para todos.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)