Advertisement
Guest User

Hiddos

a guest
Dec 27th, 2010
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.42 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #if defined _weappick_included
  4.     #endinput
  5. #endif
  6. #define _weappick_included
  7.  
  8. #define DRAW_DISTANCE 20.0 //Drawing distance for the 3D text draw.
  9. #define RANGE 5.4 //The range for the player in which he needs to be to access the pickup
  10. #define PRIM_INTERVAL 750 //Primary interval for the first check
  11. #define SEC_INTERVAL 450 //When the player has bought a weapon, reduce the waiting time
  12. #define ARMOR 0 //Don't touch this
  13. enum wInfo
  14. {
  15.     pid,
  16.     weap,
  17.     ammu,
  18.     cost,
  19.     Text3D:label,
  20.     Float:X,
  21.     Float:Y,
  22.     Float:Z,
  23.     bool:created
  24. }
  25.  
  26. new wPick[MAX_PICKUPS][wInfo];
  27.  
  28. forward BuyItem(playerid, weappickid);
  29.  
  30. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  31. {
  32.     if(oldkeys & KEY_SECONDARY_ATTACK && !(newkeys & KEY_SECONDARY_ATTACK) && GetPVarInt(playerid, "HID_WeapTimer") != 0)
  33.     {
  34.         KillTimer(GetPVarInt(playerid, "HID_WeapTimer") - 1);
  35.         DeletePVar(playerid, "HID_WeapTimer");
  36.         return 1;
  37.     }
  38.    
  39.     if(newkeys & KEY_SECONDARY_ATTACK && !(oldkeys & KEY_SECONDARY_ATTACK))
  40.     {
  41.         for(new p; p < MAX_PICKUPS; p++)
  42.         {
  43.             if(!wPick[p][created]) continue;
  44.  
  45.             if(IsPlayerInRangeOfPoint(playerid, RANGE, wPick[p][X], wPick[p][Y], wPick[p][Z]))
  46.             {
  47.                 SetPVarInt(playerid, "HID_WeapTimer", SetTimerEx("BuyItem", PRIM_INTERVAL, 0, "ii", playerid, p) + 1);
  48.                 break;
  49.             }
  50.         }
  51.     }
  52.     CallLocalFunction("WEAPHID_OnPlayerKeyStateChange", "iii", playerid, newkeys, oldkeys);
  53.     return 1;
  54. }
  55.  
  56. #if defined _ALS_OnPlayerKeyStateChange
  57.     #undef OnPlayerKeyStateChange
  58. #else
  59.     #define _ALS_OnPlayerKeyStateChange
  60. #endif
  61.  
  62. #define OnPlayerKeyStateChange WEAPHID_OnPlayerKeyStateChange
  63. forward WEAPHID_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  64.  
  65. public BuyItem(playerid, weappickid)
  66. {
  67.     if(!IsPlayerInRangeOfPoint(playerid, RANGE, wPick[weappickid][X], wPick[weappickid][Y], wPick[weappickid][Z])) return;
  68.     if(GetPlayerMoney(playerid) < wPick[weappickid][cost])  PlayerPlaySound(playerid, 1055, 0, 0, 0);
  69.     else
  70.     {
  71.         GivePlayerMoney(playerid, -wPick[weappickid][cost]);
  72.         if(wPick[weappickid][weap] != 0) GivePlayerWeapon(playerid, wPick[weappickid][weap], wPick[weappickid][ammu]);
  73.         else SetPlayerArmour(playerid, 100);
  74.         PlayerPlaySound(playerid, 1054, 0, 0, 0);
  75.     }
  76.     SetPVarInt(playerid, "HID_WeapTimer", SetTimerEx("BuyItem", SEC_INTERVAL, 0, "ii", playerid, weappickid) + 1);
  77. }
  78.  
  79. stock CreateWeaponPickup(weaponid, ammo, money, Float:x, Float:y, Float:z)
  80. {
  81.     for(new p; p < MAX_PICKUPS; p++)
  82.     {
  83.         if(wPick[p][created] == false && !IsValidObject(p))
  84.         {
  85.             new string[128];
  86.             GetWeaponName(weaponid, string, sizeof string);
  87.             format(string, sizeof string, "%s\nAmmo: %i\nCost: $%i\nHold F to buy!", string, ammo, money);
  88.             wPick[p][pid] = CreatePickup(RetrieveObjectModelFromWeaponID(weaponid), 1, x, y, z);
  89.             wPick[p][weap] = weaponid;
  90.             wPick[p][ammu] = ammo;
  91.             wPick[p][cost] = money;
  92.             wPick[p][label] = Create3DTextLabel(string, 0x33ccffaa, x, y, z, DRAW_DISTANCE, 0, 0);
  93.             wPick[p][X] = x;
  94.             wPick[p][Y] = y;
  95.             wPick[p][Z] = z;
  96.             wPick[p][created] = true;
  97.             return p;
  98.         }
  99.     }
  100.     return 0;
  101. }
  102.  
  103. stock RetrieveObjectModelFromWeaponID(weaponid)
  104. {
  105.     switch(weaponid)
  106.     {
  107.         case 0: return 373;
  108.         case 1: return 331;
  109.         case 2: return 333;
  110.         case 3: return 334;
  111.         case 4: return 335;
  112.         case 5: return 336;
  113.         case 6: return 337;
  114.         case 7: return 338;
  115.         case 8: return 339;
  116.         case 9: return 341;
  117.         case 10: return 321;
  118.         case 11: return 322;
  119.         case 12: return 323;
  120.         case 13: return 324;
  121.         case 14: return 325;
  122.         case 15: return 326;
  123.         case 16: return 342;
  124.         case 17: return 343;
  125.         case 18: return 344;
  126.         case 22: return 346;
  127.         case 23: return 347;
  128.         case 24: return 348;
  129.         case 25: return 349;
  130.         case 26: return 350;
  131.         case 27: return 351;
  132.         case 28: return 352;
  133.         case 29: return 353;
  134.         case 30: return 355;
  135.         case 31: return 356;
  136.         case 32: return 372;
  137.         case 33: return 357;
  138.         case 34: return 358;
  139.         case 35: return 359;
  140.         case 36: return 360;
  141.         case 37: return 361;
  142.         case 38: return 362;
  143.         case 39: return 363;
  144.         case 40: return 364;
  145.         case 41: return 365;
  146.         case 42: return 366;
  147.         case 43: return 367;
  148.         case 44: return 368;
  149.         case 45: return 369;
  150.         case 46: return 371;
  151.     }
  152.     return 1486;
  153. }
  154.  
  155. /*
  156. native CreateWeaponPickup(weaponid, ammo, money, Float:x, Float:y, Float:z);
  157. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement