10.03.2013, 14:52
I have that code:
I get weapon,
But if i shot,
I lose the weapon [silenced pistol], why?
Код:
stock GiveWeapon(PlayerId,WeaponId,Ammunition) { for(new W = 0; W < 13; W++) { GetPlayerWeaponData(PlayerId,W,PlayerWeapon[PlayerId][W],PlayerAmmunition[PlayerId][W]); } PlayerWeapon[PlayerId][GetWeaponSlot(WeaponId)] = WeaponId; PlayerAmmunition[PlayerId][GetWeaponSlot(WeaponId)] = Ammunition; GivePlayerWeapon(PlayerId,WeaponId,Ammunition); SetPlayerAmmo(PlayerId,GetWeaponSlot(WeaponId),PlayerAmmunition[PlayerId][GetWeaponSlot(WeaponId)]); SetPlayerArmedWeapon(PlayerId,WeaponId); return 1; } stock ResetWeapon(PlayerId,WeaponId) { PlayerWeapon[PlayerId][GetWeaponSlot(WeaponId)] = 0; PlayerAmmunition[PlayerId][GetWeaponSlot(WeaponId)] = 0; SetPlayerAmmo(PlayerId,GetWeaponSlot(WeaponId),0); ResetPlayerWeapons(PlayerId); for(new W = 0; W < 13; W++) { GivePlayerWeapon(PlayerId,PlayerWeapon[PlayerId][W],PlayerAmmunition[PlayerId][W]); } SetPlayerArmedWeapon(PlayerId,0); return 1; } stock ResetWeapons(PlayerId) { for(new W = 0; W < 13; W++) { PlayerWeapon[PlayerId][W] = 0; PlayerAmmunition[PlayerId][W] = 0; SetPlayerAmmo(PlayerId,W,0); } ResetPlayerWeapons(PlayerId); SetPlayerArmedWeapon(PlayerId,0); return 1; } stock GetWeaponSlot(WeaponId) { switch(WeaponId) { case 0,1: return 0; case 2..9: return 1; case 10..15: return 10; case 16..18,39: return 8; case 22..24: return 2; case 25..27: return 3; case 28,29,32: return 4; case 30,31: return 5; case 33,34: return 6; case 35..38: return 7; case 40: return 12; case 41..43: return 9; case 44..46: return 11; } return -1; }
Код:
public OnPlayerSpawn(playerid) { PlayerSpawned[playerid] = 1; ResetWeapons(playerid); if(PlayerLevel[playerid] == 0) { GiveWeapon(playerid,23,500); GiveWeapon(playerid,46,1); }
Код:
public OnPlayerKeyStateChange(playerid,newkeys,oldkeys) { if(newkeys & KEY_FIRE && PlayerWeapon[playerid][GetWeaponSlot(GetPlayerWeapon(playerid))] != GetPlayerWeapon(playerid)) ResetWeapon(playerid,GetPlayerWeapon(playerid)); return 1; }