#include <a_samp>#define WEAPON_TYPE_NONE (0)#define WEAPON_TYPE_HEAVY (1)#define WEAPON_TYPE_LIGHT (2)#define WEAPON_TYPE_MELEE (3)//Nahkampfnew OldWeapon[MAX_PLAYERS];new HoldingWeapon[MAX_PLAYERS]; #define SetPlayerHoldingObject(%1,%2,%3,%4,%5,%6,%7,%8,%9) SetPlayerAttachedObject(%1,MAX_PLAYER_ATTACHED_OBJECTS-1,%2,%3,%4,%5,%6,%7,%8,%9)#define StopPlayerHoldingObject(%1) RemovePlayerAttachedObject(%1,MAX_PLAYER_ATTACHED_OBJECTS-1)//------------------------------------------------------------------------------------------------------public OnFilterScriptExit(){for(new i=0;i<MAX_PLAYERS;i++) if(IsPlayerConnected(i)) StopPlayerHoldingObject(i);return 1;}public OnPlayerConnect(playerid){OldWeapon[playerid]=0;HoldingWeapon[playerid]=0;return 1;}public OnPlayerStateChange(playerid, newstate, oldstate){if(oldstate==PLAYER_STATE_ONFOOT){StopPlayerHoldingObject(playerid);OldWeapon[playerid]=0;HoldingWeapon[playerid]=0;}return 1;}public OnPlayerUpdate(playerid){if(GetPlayerState(playerid)==PLAYER_STATE_ONFOOT){new weaponid=GetPlayerWeapon(playerid),oldweapontype=GetWeaponType(OldWeapon[playerid]);new weapontype=GetWeaponType(weaponid);if(HoldingWeapon[playerid]==weaponid) StopPlayerHoldingObject(playerid);if(OldWeapon[playerid]!=weaponid){ new modelid=GetWeaponModel(OldWeapon[playerid]); if(modelid!=0 && oldweapontype!=WEAPON_TYPE_NONE && oldweapontype!=weapontype) { HoldingWeapon[playerid]=OldWeapon[playerid]; switch(oldweapontype) { case WEAPON_TYPE_LIGHT: SetPlayerHoldingObject(playerid, modelid, 8,0.0,-0.1,0.15, -100.0, 0.0, 0.0); case WEAPON_TYPE_MELEE: SetPlayerHoldingObject(playerid, modelid, 7,0.0,0.0,-0.18, 100.0, 45.0, 0.0); case WEAPON_TYPE_HEAVY: SetPlayerHoldingObject(playerid, modelid, 1, 0.2,-0.125,-0.1,0.0,25.0,180.0); } }}if(oldweapontype!=weapontype) OldWeapon[playerid]=weaponid;}return 1;}//------------------------------------------------------------------------------------------------------GetWeaponType(weaponid){switch(weaponid){ case 22,23,24,26,28,32: return WEAPON_TYPE_LIGHT;case 3,4,16,17,18,39,10,11,12,13,14,40,41: return WEAPON_TYPE_MELEE;case 2,5,6,7,8,9,25,27,29,30,31,33,34,35,36,37,38: return WEAPON_TYPE_HEAVY;}return WEAPON_TYPE_NONE;}stock GetWeaponModel(weaponid){switch(weaponid){ case 1: return 331;case 2..8: return weaponid+331; case 9: return 341;case 10..15: return weaponid+311;case 16..18: return weaponid+326;case 22..29: return weaponid+324;case 30,31: return weaponid+325;case 32: return 372;case 33..45: return weaponid+324;case 46: return 371;}return 0;}