Advertisement
Guest User

Double-O-Seven

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