SA-MP Forums Archive
disarm only one weapon - 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)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: disarm only one weapon (/showthread.php?tid=254733)



disarm only one weapon - PawnNewCommer - 12.05.2011

Hi

Can you hlp me?

Hom made this:

Example, players have three weapon. Knife (id 4), Deagle(id 24) and M4(id 31).
How i can do function, when disarm player only Knife(id 4) ?


Re: disarm only one weapon - Cameltoe - 12.05.2011

pawn Код:
RemovePlayerWeapon(playerid, weaponid)
{
    if(!IsPlayerConnected(playerid) || weaponid < 0 || weaponid > 50)
      return;

    new
      saveweapon[13],
      saveammo[13];
     
    // Probably could be done using one loop
    for(new slot = 0; slot < 13; slot++)
      GetPlayerWeaponData(playerid, slot, saveweapon[slot], saveammo[slot]);

    ResetPlayerWeapons(playerid);

    for(new slot; slot < 13; slot++)
    {
        if(saveweapon[slot] == weaponid || saveammo[slot] == 0)
            continue;

        GivePlayerWeapon(playerid, saveweapon[slot], saveammo[slot]);
    }

    // give them weapon ID 0 to reset the current armed weapon
    // to a fist and not the last weapon in their inventory
    GivePlayerWeapon(playerid, 0, 1);

}



Re: disarm only one weapon - Seven_of_Nine - 12.05.2011

Untested:
pawn Код:
stock RemovePlayerWeapon(playerid,weapid) {
    new playerweaps[12], ammo[12];
    for(new i = 0; i < 12; i++) {
        GetPlayerWeaponData(playerid,i,playerweaps[i],ammo[i]);
    }
    ResetPlayerWeapons(playerid);
    for(new i = 0; i < 12; i++) {
        if(playerweaps[i] != weapid) {
            GivePlayerWeapon(playerid,playerweaps[i],ammo[i]);
        } else {
            return 1;
        }
    }
    return 0;
}