SA-MP Forums Archive
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: OnPlayerUpdate (/showthread.php?tid=462274)



OnPlayerUpdate - XStormiest - 06.09.2013

I just have some questions: i work on a project and again i need your help with something.
1. So i created an weapon saving systems for 3 weapons: throwable weapon ( grenades, gas, molotov), secundary weapon ( pistols), primary weapons ( guns ) it work perfectly no errors/warnings, but when i set myself a grenade, it doesn't disappear when ammo is 0 ( in database), and it save the variable to 1:
So when i enter again on my server i get a grenade that should've disappear last date.

I used this under OnPlayerUpdate
pawn Код:
public OnPlayerUpdate(playerid)
{
    SetPlayerScore(playerid, Z_Info[playerid][Level]);
    //weapons and ammos
    new w_ammo = GetPlayerAmmo(playerid);
    new weapon = GetPlayerWeapon(playerid);
    if(weapon == Z_Info[playerid][Weapon1])
    {
       Z_Info[playerid][Weapon1Ammo] = w_ammo;
    }
    if(weapon == Z_Info[playerid][Weapon2])
    {
       Z_Info[playerid][Weapon2Ammo] = w_ammo;
    }
    if(weapon == Z_Info[playerid][Weapon3])
    {
       Z_Info[playerid][Weapon3Ammo] = w_ammo;
    }
    if(Z_Info[playerid][Weapon1Ammo] <= 0)
    {
       Z_Info[playerid][Weapon1] = 0;
    }
    if(Z_Info[playerid][Weapon2Ammo] <= 0)
    {
       Z_Info[playerid][Weapon2] = 0;
    }
    if(Z_Info[playerid][Weapon3Ammo] <= 0)
    {
       Z_Info[playerid][Weapon3] = 0;
    }
    //position saver
    if(fexist(GetFile(playerid) ) && IsSpawned[playerid] == 1 )
    {
       new Float: X, Float:Y, Float:Z;
       new interior = GetPlayerInterior(playerid);
       new vworld = GetPlayerVirtualWorld(playerid);
       GetPlayerPos(playerid, X, Y, Z);
       Z_Info[playerid][PosX] = X;
       Z_Info[playerid][PosY] = Y;
       Z_Info[playerid][PosZ] = Z;
       Z_Info[playerid][VWorld] = vworld;
       Z_Info[playerid][Interior] = interior;
    }

    return 1;
}
2. I should use a timer for this or continue to use OnPlayerUpdate?


Re: OnPlayerUpdate - Misiur - 06.09.2013

Definitely use a timer - OnPlayerUpdate is called very frequently per second.

In code you provided there isn't anything about saving/loading weapons.


Re: OnPlayerUpdate - XStormiest - 06.09.2013

I know it isn't but it works for guns that shoot: i mean ak47, m4 ....etc...
But it doesn't for the grenades... what's wrong with this
Anyway i'll show you the code for saving