Guest User

Armas en la espalda

a guest
Feb 12th, 2013
469
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.97 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #define WEAPON_TYPE_NONE  (0)
  4. #define WEAPON_TYPE_HEAVY (1)
  5. #define WEAPON_TYPE_LIGHT (2)
  6. #define WEAPON_TYPE_MELEE (3)
  7. #define WEAPON_TYPE_RIFLE (4)//Nahkampf
  8. #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)
  9. #define StopPlayerHoldingObject(%1) RemovePlayerAttachedObject(%1,MAX_PLAYER_ATTACHED_OBJECTS-1)
  10. #define IsPlayerHoldingObject(%1) IsPlayerAttachedObjectSlotUsed(%1,MAX_PLAYER_ATTACHED_OBJECTS-1)
  11.  
  12.  
  13.  
  14.  
  15. new OldWeapon[MAX_PLAYERS];
  16. new HoldingWeapon[MAX_PLAYERS];
  17.  
  18. //------------------------------------------------------------------------------------------------------
  19.  
  20. public OnFilterScriptExit()
  21. {
  22. for(new i=0;i<MAX_PLAYERS;i++)
  23. if(IsPlayerConnected(i))
  24. StopPlayerHoldingObject(i);
  25. return 1;
  26. }
  27.  
  28. public OnPlayerConnect(playerid)
  29. {
  30. OldWeapon[playerid]=0;
  31. HoldingWeapon[playerid]=0;
  32. return 1;
  33. }
  34.  
  35. public OnPlayerStateChange(playerid, newstate, oldstate)
  36. {
  37. if(oldstate==PLAYER_STATE_ONFOOT)
  38. {
  39. //StopPlayerHoldingObject(playerid);
  40. OldWeapon[playerid]=0;
  41. HoldingWeapon[playerid]=0;
  42. }
  43. return 1;
  44. }
  45.  
  46. public OnPlayerUpdate(playerid)
  47. {
  48. if(GetPlayerState(playerid)==PLAYER_STATE_ONFOOT)
  49. {
  50. new weaponid=GetPlayerWeapon(playerid),oldweapontype=GetWeaponType(OldWeapon[playerid]);
  51. new weapontype=GetWeaponType(weaponid);
  52. if(HoldingWeapon[playerid]==weaponid)
  53. StopPlayerHoldingObject(playerid);
  54.  
  55. if(OldWeapon[playerid]!=weaponid)
  56. {
  57. new modelid=GetWeaponModel(OldWeapon[playerid]);
  58. if(modelid!=0 && oldweapontype!=WEAPON_TYPE_NONE && oldweapontype!=weapontype)
  59. {
  60. HoldingWeapon[playerid]=OldWeapon[playerid];
  61. switch(oldweapontype)
  62. {
  63. case WEAPON_TYPE_LIGHT:
  64. SetPlayerHoldingObject(playerid, modelid, 8,0.0,-0.1,0.15, -100.0, 0.0, 0.0);
  65.  
  66. case WEAPON_TYPE_MELEE:
  67. SetPlayerHoldingObject(playerid, modelid, 7,0.0,0.0,-0.18, 100.0, 45.0, 0.0);
  68.  
  69. case WEAPON_TYPE_HEAVY:
  70. SetPlayerHoldingObject(playerid, modelid, 1, 0.2,-0.125,-0.1,0.0,25.0,180.0);
  71.  
  72. case WEAPON_TYPE_RIFLE:
  73. SetPlayerHoldingObject(playerid, modelid, 16,-0.050984,0.115041,-0.002599,354.153564,314.602691,0.000000);
  74. }
  75. }
  76. }
  77.  
  78. if(oldweapontype!=weapontype)
  79. OldWeapon[playerid]=weaponid;
  80. }
  81. return 1;
  82. }
  83.  
  84. //------------------------------------------------------------------------------------------------------
  85.  
  86. GetWeaponType(weaponid)
  87. {
  88. switch(weaponid)
  89. {
  90. case 26,28,29,32:
  91. return WEAPON_TYPE_LIGHT;
  92.  
  93. case 3,4,10,11,12,13,14,16,17,18,39,40,41:
  94. return WEAPON_TYPE_MELEE;
  95.  
  96. case 25,27,33,34:
  97. return WEAPON_TYPE_RIFLE;
  98.  
  99. case 30,31,35,36,37,38:
  100. return WEAPON_TYPE_HEAVY;
  101. }
  102. return WEAPON_TYPE_NONE;
  103. }
  104.  
  105. stock GetWeaponModel(weaponid)
  106. {
  107. switch(weaponid)
  108. {
  109. case 1:
  110. return 331;
  111.  
  112. case 2..8:
  113. return weaponid+331;
  114.  
  115. case 9:
  116. return 341;
  117.  
  118. case 10..15:
  119. return weaponid+311;
  120.  
  121. case 16..18:
  122. return weaponid+326;
  123.  
  124. case 25..29:
  125. return weaponid+324;
  126.  
  127. case 30,31:
  128. return weaponid+325;
  129.  
  130. case 32:
  131. return 372;
  132.  
  133. case 33..45:
  134. return weaponid+324;
  135.  
  136. case 46:
  137. return 371;
  138. }
  139. return 0;
  140. }
Advertisement
Add Comment
Please, Sign In to add comment