SA-MP Forums Archive
Help OnPlayerUpdate - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Help OnPlayerUpdate (/showthread.php?tid=429418)



Help OnPlayerUpdate - Jerry987 - 09.04.2013

I had a lot of thinks in OnPlayerUpdate so i want to put somethinks in a timer but how?

I have a timer how to put these in the timer

Код:
forward timer_refuel(playerid);
public timer_refuel(playerid)
{
    new vid = GetPlayerVehicleID(playerid);
    fuel[vid] = 100;
    isrefuelling[playerid] = 0;
    TextDrawSetString(td_fuel[playerid],"~r~GORIVO: ~w~100/100L");
    TogglePlayerControllable(playerid,1);
    return 1;
}
Thank you


Re: Help OnPlayerUpdate - RicaNiel - 09.04.2013

Quote:
Originally Posted by Jerry987
Посмотреть сообщение
I had a lot of thinks in OnPlayerUpdate so i want to put somethinks in a timer but how?

I have a timer how to put these in the timer

Код:
forward timer_refuel(playerid);
public timer_refuel(playerid)
{
    new vid = GetPlayerVehicleID(playerid);
    fuel[vid] = 100;
    isrefuelling[playerid] = 0;
    TextDrawSetString(td_fuel[playerid],"~r~GORIVO: ~w~100/100L");
    TogglePlayerControllable(playerid,1);
    return 1;
}
Thank you
just simply put this on

pawn Код:
OnGameModeInt{
SetTimer("timer_refuel",1000,true);
}



AW: Re: Help OnPlayerUpdate - Jerry987 - 09.04.2013

Quote:
Originally Posted by RicaNiel
Посмотреть сообщение
just simply put this on

pawn Код:
OnGameModeInt{
SetTimer("timer_refuel",1000,true);
}
but timer_refuel is in OnPLayerUpdate is then the lag not bigger?


Re: Help OnPlayerUpdate - Faisal_khan - 09.04.2013

Something like this under OnGameModeInit:
pawn Код:
SetTimerEx("timer_refuel", /*time*/, /*repeat(fales/True)*/, "i", playerid);



AW: Help OnPlayerUpdate - Jerry987 - 09.04.2013

but timer_refuel is in OnPLayerUpdate is then the lag not bigger?


Re: Help OnPlayerUpdate - Faisal_khan - 09.04.2013

Then don't add it under OnPlayerUpdate, run a loop under timer_refuel.
Like this:
pawn Код:
forward timer_refuel(playerid);
public timer_refuel(playerid)
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        new vid = GetPlayerVehicleID(i);
        fuel[vid] = 100;
        isrefuelling[i] = 0;
        TextDrawSetString(td_fuel[i],"~r~GORIVO: ~w~100/100L");
        TogglePlayerControllable(i,1);
    }
    return 1;
}



Re: Help OnPlayerUpdate - Riddick94 - 09.04.2013

Quote:
Originally Posted by Faisal_khan
Посмотреть сообщение
Something like this under OnGameModeInit:
pawn Код:
SetTimerEx("timer_refuel", /*time*/, /*repeat(fales/True)*/, "i", playerid);
Are you sure, under OnGameModeInit?

edit://
pawn Код:
forward timer_refuel(playerid);
public timer_refuel(playerid)
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        new vid = GetPlayerVehicleID(i);
        fuel[vid] = 100;
        isrefuelling[i] = 0;
        TextDrawSetString(td_fuel[i],"~r~GORIVO: ~w~100/100L");
        TogglePlayerControllable(i,1);
    }
    return 1;
}
That's a wrong code. Playerid parameter have a relationship between OnPlayerUpdate callback and timer, you don't have to use iteration.


Re: AW: Help OnPlayerUpdate - RicaNiel - 09.04.2013

Quote:
Originally Posted by Jerry987
Посмотреть сообщение
but timer_refuel is in OnPLayerUpdate is then the lag not bigger?
OMG
NO

it runs every One Thousand Millisecond or 1 second
why would it lag?

Is is checking the player every second


Re: Help OnPlayerUpdate - Faisal_khan - 09.04.2013

Quote:
Originally Posted by Riddick94
Посмотреть сообщение
Are you sure, under OnGameModeInit?

edit://
I see you fixed it now, okey.

edit2://
pawn Код:
forward timer_refuel(playerid);
public timer_refuel(playerid)
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        new vid = GetPlayerVehicleID(i);
        fuel[vid] = 100;
        isrefuelling[i] = 0;
        TextDrawSetString(td_fuel[i],"~r~GORIVO: ~w~100/100L");
        TogglePlayerControllable(i,1);
    }
    return 1;
}
That's a wrong code. Playerid parameter have a relationship between OnPlayerUpdate callback and timer, you don't have to use iteration.
I hoped that Jerry won't add the function under OnPlayerUpdate too after I gave this code.

Quote:
Originally Posted by RicaNiel
Посмотреть сообщение
OMG
NO

it runs every One Thousand Millisecond or 1 second
why would it lag?

Is is checking the player every second
OnPlayerUpdate gets called a few seconds(milliseconds) late.


Re: Help OnPlayerUpdate - Riddick94 - 09.04.2013

Jerry987, do you have any command for refueling vehicle? If so, you should put your SetTimerEx there but remember you have to kill the timer when fuel is equal to 100.