Advertisement
Guest User

Untitled

a guest
Nov 19th, 2013
642
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.96 KB | None | 0 0
  1. #include <a_samp.inc>
  2.  
  3. #define MAX_DROPPED_WEAPONS                         250
  4.  
  5. #define WEAPONS_INFO_TYPE                           2 //0 = Gametext, 1 = 3DText, 2 = Both
  6.  
  7. enum wData
  8. {
  9.     wSlotOccupied,
  10.     wID,
  11.     wAmmo,
  12.     Float:wX,
  13.     Float:wY,
  14.     Float:wZ,
  15. };
  16. new weaponData[MAX_DROPPED_WEAPONS][wData];
  17. new weaponPickup[MAX_DROPPED_WEAPONS];
  18. #if WEAPONS_INFO_TYPE == 1 || WEAPONS_INFO_TYPE == 2
  19. new Text3D:weapon3DText[MAX_DROPPED_WEAPONS];
  20. #endif
  21.  
  22. new Float:positionOffsets[13][2] =
  23. {
  24.     {0.75, 0.0},
  25.     {-0.75, 0.0},
  26.     {0.0, 0.75},
  27.     {0.0, -0.75},
  28.     {0.75, 0.75},
  29.     {0.75, -0.75},
  30.     {-0.75, 0.75},
  31.     {-0.75, -0.75},
  32.     {1.50, 0.0},
  33.     {-1.50, 0.0},
  34.     {0.0, 1.50},
  35.     {0.0, -1.50},
  36.     {0.0, 0.0}
  37. };
  38.  
  39. public OnPlayerCommandText(playerid, cmdtext[])
  40. {
  41.     if (strcmp("/suicide", cmdtext, true, 10) == 0)
  42.     {
  43.         SetPlayerHealth(playerid, 0.0);
  44.         return 1;
  45.     }
  46.     return 0;
  47. }
  48.  
  49. public OnPlayerDeath(playerid, killerid, reason)
  50. {
  51.     return 1;
  52. }
  53.  
  54. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  55. {
  56.     if((newkeys & KEY_SECONDARY_ATTACK) && !(oldkeys & KEY_SECONDARY_ATTACK))
  57.     {
  58.         for(new weaponID = 0; weaponID < sizeof(weaponData); weaponID ++)
  59.         {
  60.             if(IsPlayerInRangeOfPoint(playerid, 0.5, weaponData[weaponID][wX], weaponData[weaponID][wY], weaponData[weaponID][wZ]))
  61.             {
  62.                 if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
  63.                 {
  64.                     if(weaponData[weaponID][wSlotOccupied] == 1)
  65.                     {
  66.                         GivePlayerWeapon(playerid, weaponData[weaponID][wID], weaponData[weaponID][wAmmo]);
  67.  
  68.                         weaponData[weaponID][wSlotOccupied] = 0;
  69.                         weaponData[weaponID][wID] = 0;
  70.                         weaponData[weaponID][wAmmo] = 0;
  71.                         weaponData[weaponID][wX] = 0.0000;
  72.                         weaponData[weaponID][wY] = 0.0000;
  73.                         weaponData[weaponID][wZ] = 0.0000;
  74.  
  75.                         DestroyPickup(weaponPickup[weaponID]);
  76.                         #if WEAPONS_INFO_TYPE == 1 || WEAPONS_INFO_TYPE == 2
  77.                             Delete3DTextLabel(weapon3DText[weaponID]);
  78.                         #endif
  79.                     }
  80.                 }
  81.             }
  82.         }
  83.     }
  84.     return 1;
  85. }
  86.  
  87. public OnPlayerPickUpPickup(playerid, pickupid)
  88. {
  89.     new weaponName[32];
  90.     for(new weaponID = 0; weaponID < sizeof(weaponData); weaponID ++)
  91.     {
  92.         if(pickupid == weaponPickup[weaponID])
  93.         {
  94.             if(weaponData[weaponID][wSlotOccupied] == 1)
  95.             {
  96.                 GetWeaponName(weaponData[weaponID][wID], weaponName, sizeof(weaponName));
  97.  
  98.                 #if WEAPONS_INFO_TYPE == 0 || WEAPONS_INFO_TYPE == 2
  99.                 new stringGameText[256];
  100.                
  101.                 format(stringGameText, sizeof(stringGameText), "~b~%s ~n~~y~Gloante: ~w~%d ~n~~y~Apasa ~n~~w~~k~~VEHICLE_ENTER_EXIT~ ~y~pentru a ridica arma", weaponName, weaponData[weaponID][wAmmo]);
  102.                 GameTextForPlayer(playerid, stringGameText, 3000, 4);
  103.                 #endif
  104.             }
  105.         }
  106.     }
  107.     return 1;
  108. }
  109.  
  110. stock DropPlayerWeapons(playerid)
  111. {
  112.     new Float:playerPos[3], playerVirtualWorld, playerWeapons[13][2], weaponID, string[256];
  113.     GetPlayerPos(playerid, playerPos[0], playerPos[1], playerPos[2]);
  114.     playerVirtualWorld = GetPlayerVirtualWorld(playerid);
  115.  
  116.     for(new playerWeaponSlot = 0; playerWeaponSlot < 12; playerWeaponSlot++) //13 slot = detonater
  117.     {
  118.         weaponID = GetEmptyWeaponIDSlot();
  119.  
  120.         GetPlayerWeaponData(playerid, playerWeaponSlot, playerWeapons[playerWeaponSlot][0], playerWeapons[playerWeaponSlot][1]);
  121.  
  122.         if(playerWeapons[playerWeaponSlot][0] != 0)
  123.         {
  124.             weaponData[weaponID][wSlotOccupied] = 1;
  125.             weaponData[weaponID][wID] = playerWeapons[playerWeaponSlot][0];
  126.             weaponData[weaponID][wAmmo] = playerWeapons[playerWeaponSlot][1];
  127.             weaponData[weaponID][wX] = playerPos[0] + positionOffsets[playerWeaponSlot][0];
  128.             weaponData[weaponID][wY] = playerPos[1] + positionOffsets[playerWeaponSlot][1];
  129.             weaponData[weaponID][wZ] = playerPos[2];
  130.  
  131.             weaponPickup[weaponID] = CreatePickup
  132.             (
  133.                 GetWeaponModelByID(playerWeapons[playerWeaponSlot][0]),
  134.                 1,
  135.                 weaponData[weaponID][wX],
  136.                 weaponData[weaponID][wY],
  137.                 weaponData[weaponID][wZ],
  138.                 playerVirtualWorld
  139.             );
  140.            
  141.                 #if WEAPONS_INFO_TYPE == 1 || WEAPONS_INFO_TYPE == 2
  142.                 format(string, sizeof(string), "{0049FF}%s \n{F3FF02}Gloante: {FFFFFF}%d \n{F3FF02}Apasa \n{FFFFFF}Enter sau F {F3FF02}pentru a ridica arma", weaponName, weaponData[weaponID][wAmmo]);
  143.                 weapon3DText[weaponID] = Create3DTextLabel(string, weaponData[weaponID][wX], weaponData[weaponID][wY], weaponData[weaponID][wZ], 20.0, 0, playerVirtualWorld;
  144.                 #endif
  145.         }
  146.     }
  147.     ResetPlayerWeapons(playerid);
  148.     return 1;
  149. }
  150.  
  151. stock GetEmptyWeaponIDSlot()
  152. {
  153.     for(new weaponID = 0; weaponID < sizeof(weaponData); weaponID ++)
  154.     {
  155.         if(weaponData[weaponID][wSlotOccupied] == 0)
  156.         {
  157.             return weaponID;
  158.         }
  159.     }
  160.     return 0;
  161. }
  162.  
  163. stock GetWeaponModelByID(WeaponID)
  164. {
  165.     if(WeaponID == 1) return 331;
  166.     if(WeaponID == 2) return 333;
  167.     if(WeaponID == 3) return 334;
  168.     if(WeaponID == 4) return 335;
  169.     if(WeaponID == 5) return 336;
  170.     if(WeaponID == 6) return 337;
  171.     if(WeaponID == 7) return 338;
  172.     if(WeaponID == 8) return 339;
  173.     if(WeaponID == 9) return 341;
  174.     if(WeaponID == 10) return 321;
  175.     if(WeaponID == 11) return 322;
  176.     if(WeaponID == 12) return 323;
  177.     if(WeaponID == 13) return 324;
  178.     if(WeaponID == 14) return 325;
  179.     if(WeaponID == 15) return 326;
  180.     if(WeaponID == 16) return 342;
  181.     if(WeaponID == 17) return 343;
  182.     if(WeaponID == 18) return 344;
  183.     if(WeaponID == 22) return 346;
  184.     if(WeaponID == 23) return 347;
  185.     if(WeaponID == 24) return 348;
  186.     if(WeaponID == 25) return 349;
  187.     if(WeaponID == 26) return 350;
  188.     if(WeaponID == 27) return 351;
  189.     if(WeaponID == 28) return 352;
  190.     if(WeaponID == 29) return 353;
  191.     if(WeaponID == 30) return 355;
  192.     if(WeaponID == 31) return 356;
  193.     if(WeaponID == 32) return 372;
  194.     if(WeaponID == 33) return 357;
  195.     if(WeaponID == 34) return 358;
  196.     if(WeaponID == 35) return 359;
  197.     if(WeaponID == 36) return 360;
  198.     if(WeaponID == 37) return 361;
  199.     if(WeaponID == 38) return 362;
  200.     if(WeaponID == 39) return 363;
  201.     if(WeaponID == 41) return 365;
  202.     if(WeaponID == 42) return 366;
  203.     if(WeaponID == 43) return 367;
  204.     if(WeaponID == 46) return 371;
  205.     else return -1;
  206. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement