[AJUDA] sistema de cinto
#1

E aн galera, seguinte, to querendo ajuda com um sistema de cinto mais avanзado que to tentando faze, sу que tipo nгo ta dando muito certo, a minha intenзгo era que de acordo com a forзa da batida maior fosse o tempo que o player fica tonto e maior a quantia de vida que o player perde. o que eu tentei fazer foi o seguinte:
pawn Код:
public OnVehicleDamageStatusUpdate(vehicleid,playerid)
{
   new Float:health;
   for(new i = 0; i < MAX_PLAYERS; i++)
   {
        if(IsPlayerConnected(i) && IsPlayerInVehicle(i,vehicleid))
        {
            if(CintoPlayer[i] == 0)
            {
                if(GetPlayerSpeed(i,true) >= 25)
                {
                    GetPlayerHealth(i,health);
                    SetPlayerHealth(i,health -9);
                    SetTimer("Tontura",3000,0);
                    SetPlayerDrunkLevel(playerid, 12000);
                }
                if(GetPlayerSpeed(i,true) >= 50)
                {
                    GetPlayerHealth(i,health);
                    SetPlayerHealth(i,health -18);
                    SetTimer("Tontura",4500,0);
                    SetPlayerDrunkLevel(playerid, 12000);
                }
                if(GetPlayerSpeed(i,true) >= 95)
                {
                    GetPlayerHealth(i,health);
                    SetPlayerHealth(i,health -27);
                    SetTimer("Tontura",6000,0);
                    SetPlayerDrunkLevel(playerid, 12000);
                }
                if(GetPlayerSpeed(i,true) >= 120)
                {
                    GetPlayerHealth(i,health);
                    SetPlayerHealth(i,health -36);
                    SetTimer("Tontura",7500,0);
                    SetPlayerDrunkLevel(playerid, 12000);
                }
                if(GetPlayerSpeed(i,true) >= 165)
                {
                    GetPlayerHealth(i,health);
                    SetPlayerHealth(i,health -45);
                    SetTimer("Tontura",9000,0);
                    SetPlayerDrunkLevel(playerid, 12000);
                }
                if(GetPlayerSpeed(i,true) >= 195)
                {
                    GetPlayerHealth(i,health);
                    SetPlayerHealth(i,health -54);
                    SetTimer("Tontura",10500,0);
                    SetPlayerDrunkLevel(playerid, 12000);
                }
                if(GetPlayerSpeed(i,true) >= 220)
                {
                    GetPlayerHealth(i,health);
                    SetPlayerHealth(i,health -63);
                    SetTimer("Tontura",12000,0);
                    SetPlayerDrunkLevel(playerid, 12000);
                }
            }
        }
   }
   return 1;
}
sу q tipo o player ou perde muita vida ou nгo perde nada, e normalmente ele fica sу uns 3 segundos tonto, pelo code axo q da pra percebe ql era minha intenзгo.

Se alguem puder me ajudar.

Valeu!
Reply
#2

Parece-me que este codigo estб correto ...

Quanto aos 3 segundos tonto, troque de 12000 para um numero maior e veja se faz diferenзa.
Reply
#3

Quote:
Originally Posted by Shadoww5
Посмотреть сообщение
Parece-me que este codigo estб correto ...

Quanto aos 3 segundos tonto, troque de 12000 para um numero maior e veja se faz diferenзa.
3 Segundos tonto = 3000
12000 = 12 segundos tonto.
Reply
#4

@arakuta

Vocк nгo entendeu, o 12000 que ele mandou eu aumentar й o nivel de bebado do player nгo o tempo.

#TOPIC

Agora o player ta perdendo a vida certo, mas ele nгo ta ficando tonto o tempo certo, agora vo almoзa, mais tarde tento corrigir o code, se conseguir posto aqui, mas enquanto isso, se alguem souber o problema, eu agradeзo kk
Reply
#5

Isto deve resolver o seu problema .


Lembre-se de que o nнvel de tontura diminui (padrгo do SA-MP) em 26 automaticamente a cada 1 segundo .



Ou seja, qualquer problema com o tempo da tontura, basta adaptar o nнvel, ou seja, diminuн-lo ou aumentб-lo para que fique do modo como vocк quer .



Aqui estб o cуdigo (imaginei que vocк queria que a public "Tontura" fosse usada para fazer a Tontura parar) :


pawn Код:
//O seu OnVehicleDamageStatusUpdate ficaria assim:


public OnVehicleDamageStatusUpdate(vehicleid,playerid)
{
    new Float:health;
    GetPlayerHealth(playerid,health);
    if(CintoPlayer[playerid] == 0)
    {
        if(GetPlayerSpeed(playerid,true) >= 25)
        {
            SetPlayerHealth(playerid,health -9);
            SetTimerEx("Tontura", 3000, false, "n", playerid);
            SetPlayerDrunkLevel(playerid, 12000);
        }
        else if(GetPlayerSpeed(playerid,true) >= 50)
        {
            SetPlayerHealth(playerid,health -18);
            SetTimerEx("Tontura", 4500, false, "n", playerid);;
            SetPlayerDrunkLevel(playerid, 12000);
        }
        else if(GetPlayerSpeed(playerid,true) >= 95)
        {
            SetPlayerHealth(playerid,health -27);
            SetTimerEx("Tontura", 6000, false, "n", playerid);
            SetPlayerDrunkLevel(playerid, 12000);
        }
        else if(GetPlayerSpeed(playerid,true) >= 120)
        {
            SetPlayerHealth(playerid,health -36);
            SetTimerEx("Tontura", 7500, false, "n", playerid);
            SetPlayerDrunkLevel(playerid, 12000);
        }
        else if(GetPlayerSpeed(playerid,true) >= 165)
        {
            SetPlayerHealth(playerid,health -45);
            SetTimerEx("Tontura", 9000, false, "n", playerid);
            SetPlayerDrunkLevel(playerid, 12000);
        }
        else if(GetPlayerSpeed(playerid,true) >= 195)
        {
            SetPlayerHealth(playerid,health -54);
            SetTimerEx("Tontura", 10500, false, "n", playerid);
            SetPlayerDrunkLevel(playerid, 12000);
        }
        else if(GetPlayerSpeed(playerid,true) >= 220)
        {
            SetPlayerHealth(playerid,health -63);
            SetTimerEx("Tontura", 12000, false, "n", playerid);
            SetPlayerDrunkLevel(playerid, 12000);
        }
    }
    return 1;
}




//Sua callback Tontura ficaria assim:


forward Tontura(playerid);
public Tontura(playerid) return SetPlayerDrunkLevel(playerid, 0);


Espero ter ajudado .
Reply
#6

@rjjj

Vou testar seu code dps edito aqui.

@EDIT

rjjj, agora o player nгo fica tonto nem se eu bater a uns 100 km/h. Vou tentar dar uma arrumada do meu jeito, se conseguir falo aqui!
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)