Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #define WEAPON_TYPE_NONE (0)
- #define WEAPON_TYPE_HEAVY (1)
- #define WEAPON_TYPE_LIGHT (2)
- #define WEAPON_TYPE_MELEE (3)
- #define WEAPON_TYPE_RIFLE (4)//Nahkampf
- #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)
- #define IsPlayerHoldingObject(%1) IsPlayerAttachedObjectSlotUsed(%1,MAX_PLAYER_ATTACHED_OBJECTS-1)
- new OldWeapon[MAX_PLAYERS];
- new HoldingWeapon[MAX_PLAYERS];
- //------------------------------------------------------------------------------------------------------
- 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);
- case WEAPON_TYPE_RIFLE:
- SetPlayerHoldingObject(playerid, modelid, 16,-0.050984,0.115041,-0.002599,354.153564,314.602691,0.000000);
- }
- }
- }
- if(oldweapontype!=weapontype)
- OldWeapon[playerid]=weaponid;
- }
- return 1;
- }
- //------------------------------------------------------------------------------------------------------
- GetWeaponType(weaponid)
- {
- switch(weaponid)
- {
- case 26,28,29,32:
- return WEAPON_TYPE_LIGHT;
- case 3,4,10,11,12,13,14,16,17,18,39,40,41:
- return WEAPON_TYPE_MELEE;
- case 25,27,33,34:
- return WEAPON_TYPE_RIFLE;
- case 30,31,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 25..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;
- }
Advertisement
Add Comment
Please, Sign In to add comment