SA-MP Forums Archive
weapons loads with twice as much bullets - 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: weapons loads with twice as much bullets (/showthread.php?tid=589344)



weapons loads with twice as much bullets - thaKing - 18.09.2015

Well, after player spawns, they get the gun they left with, but with twice as much bullets.

I get no error or warnings in script, but this is something like script bug.

When player disconnects and SaveUser_data function has been called:
PHP код:
for (new 013++) if (playerData[playerid][gun][i] != && playerData[playerid][ammo][i] != 0){
    
format(wep_strsizeof(wep_str), "gun%d"i);
    
INI_WriteInt(Filewep_strplayerData[playerid][gun][i]);
    
    
format(wep_strsizeof(wep_str), "ammo%d"i);
    
INI_WriteInt(Filewep_strplayerData[playerid][ammo][i]);

When player connects (Clears the variables and player data):
PHP код:
ResetPlayerWeapons(playerid);
for (new 
013++) {
    
playerData[playerid][gun][i] = 0;
    
playerData[playerid][ammo][i] = 0;

OnPLayerSpawn:
PHP код:
SetTimerEx("LoadUserSpawn_data"500false"i"playerid); 
LoadUserSpawn_data:
PHP код:
forward LoadUserSpawn_data(playerid);
public 
LoadUserSpawn_data(playerid)
{
    new 
str[124];
    
// --------------------------
    
GivePlayerMoney(playeridplayerData[playerid][cash]);
    
SetPlayerHealth(playeridplayerData[playerid][health]);
    
SetPlayerArmour(playeridplayerData[playerid][armour]);
    
// --------------------------
    
format(strsizeof(str), "Health: %.1f Armour: %.1f\n%s [%i]"ReturnHealth(playerid), ReturnArmour(playerid), ReturnName(playerid0), playerid);
    
NameTag[playerid] = CreateDynamic3DTextLabel(strCOLOR_GRAY0.00.00.28.0playeridINVALID_VEHICLE_ID0, -1, -1, -18.0);
    
Attach3DTextLabelToPlayer(NameTag[playerid], playerid0.00.00.2);
    
// --------------------------
    
SetWeapons(playerid);
    
// --------------------------
    
playerSpawned[playerid] = true;
    return 
1;

SetWeapons:
PHP код:
SetWeapons(playerid)
{
    for (new 
013i++) {
        
GivePlayerWeapon(playeridplayerData[playerid][gun][i], playerData[playerid][ammo][i]);
    }
    return 
1;




Re: weapons loads with twice as much bullets - rappy93 - 18.09.2015

Did you check the ini file after the save function was called to see if it actually saves double ammo in the file?


Re: weapons loads with twice as much bullets - thaKing - 18.09.2015

Quote:
Originally Posted by rappy93
Посмотреть сообщение
Did you check the ini file after the save function was called to see if it actually saves double ammo in the file?
Yes, and in .ini file it doesn't double.


Re: weapons loads with twice as much bullets - rappy93 - 18.09.2015

So the problem is somewhere with the loading function.

Let's debug it.

SetWeapons(playerid)
{
for (new i = 0; i < 13; i++) {
GivePlayerWeapon(playerid, playerData[playerid][gun][i], playerData[playerid][ammo][i]);
}
print("SetWeapons called!");
return 1;
}

Now please compile. Clear your server log before joining. Join the server and then exit. Post the logs here afterwards.


Re: weapons loads with twice as much bullets - thaKing - 18.09.2015

Quote:
Originally Posted by rappy93
Посмотреть сообщение
So the problem is somewhere with the loading function.

Let's debug it.

SetWeapons(playerid)
{
for (new i = 0; i < 13; i++) {
GivePlayerWeapon(playerid, playerData[playerid][gun][i], playerData[playerid][ammo][i]);
}
print("SetWeapons called!");
return 1;
}

Now please compile. Clear your server log before joining. Join the server and then exit. Post the logs here afterwards.
Yes, thanks for that. The function is called twice, I'll check the script later, but thanks for this.

Код:
[16:08:27] SetWeapons called!
[16:08:27] SetWeapons called!



Re: weapons loads with twice as much bullets - rappy93 - 18.09.2015

No problem, basic debugging . Using 'print' like this will help you a lot. Cheers.