Advertisement
Guest User

DropGun

a guest
Aug 31st, 2011
914
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.48 KB | None | 0 0
  1. #include <a_samp>
  2. #include <streamer>
  3. #include <zcmd>
  4. #include <foreach>
  5. //=================//
  6. #define MAX_DROP_ITEMS 1000
  7. #define COLOR_ACTION 0xFFC0CBFF
  8. //=================//
  9. new string[128];
  10. new sendername[MAX_PLAYER_NAME];
  11. new DropObject[MAX_DROP_ITEMS];
  12. //=================//
  13. enum dData
  14. {
  15. DropGunAmmount[2],//ModelID & Bullets
  16. Float:DropGunPosX,
  17. Float:DropGunPosY,
  18. Float:DropGunPosZ,
  19. DropGunVWorld,
  20. DropGunInterior,
  21. };
  22. new DropInfo[MAX_DROP_ITEMS][dData];
  23. //=================//
  24. new GunObjectIDs[200] ={
  25.  
  26. 1575, 331, 333, 334, 335, 336, 337, 338, 339, 341, 321, 322, 323, 324, 325, 326, 342, 343, 344, -1, -1 , -1 ,
  27. 346, 347, 348, 349, 350, 351, 352, 353, 355, 356, 372, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367,
  28. 368, 369, 1575
  29. };
  30. //=================//
  31. public OnFilterScriptInit()
  32. {
  33. print("\n--------------------------------------");
  34. print("Drop Gun FS by a fat guy");
  35. print("--------------------------------------\n");
  36. return 1;
  37. }
  38. //=================//
  39. stock GetGunObjectID(WeaponID)
  40. {
  41. if (WeaponID < 0 || WeaponID > 64)
  42. {
  43. return 1575;
  44. }
  45. return GunObjectIDs[WeaponID];
  46. }
  47. //=================//
  48. stock DropGun(playerid, GunID, GunAmmo, Float:X, Float:Y, Float:Z, world, interior)
  49. {
  50. new name[MAX_PLAYER_NAME];
  51. GetPlayerName(playerid,name,sizeof(name));
  52. if(GunID != 0 && GunAmmo != 0)
  53. {
  54. for(new i = 0; i < sizeof(DropInfo); i++)
  55. {
  56. if(DropInfo[i][DropGunPosX] == 0.0 && DropInfo[i][DropGunPosY] == 0.0 && DropInfo[i][DropGunPosZ] == 0.0)
  57. {
  58. DropInfo[i][DropGunAmmount][0] = GunID;
  59. DropInfo[i][DropGunAmmount][1] = GunAmmo;
  60. DropInfo[i][DropGunPosX] = X;
  61. DropInfo[i][DropGunPosY] = Y;
  62. DropInfo[i][DropGunPosZ] = Z;
  63. DropInfo[i][DropGunVWorld] = world;
  64. DropInfo[i][DropGunInterior] = interior;
  65. DropObject[i] = CreateDynamicObject(GetGunObjectID(GunID), X, Y, Z-1, 80.0, 0.0, 0.0, world);
  66. return 1;
  67. }
  68. }
  69. return 1;
  70. }
  71. return 1;
  72. }
  73. //=================//
  74. stock RemovePlayerWeapon(playerid, weaponid)//Credits to Xalphox
  75. {
  76. if(!IsPlayerConnected(playerid) || weaponid < 0 || weaponid > 50)
  77. return;
  78. new saveweapon[13], saveammo[13];
  79. for(new slot = 0; slot < 13; slot++)
  80. GetPlayerWeaponData(playerid, slot, saveweapon[slot], saveammo[slot]);
  81. ResetPlayerWeapons(playerid);
  82. for(new slot; slot < 13; slot++)
  83. {
  84. if(saveweapon[slot] == weaponid || saveammo[slot] == 0)
  85. continue;
  86. GivePlayerWeapon(playerid, saveweapon[slot], saveammo[slot]);
  87. }
  88.  
  89. GivePlayerWeapon(playerid, 0, 1);
  90.  
  91. }
  92. //=================//
  93. public OnFilterScriptExit()
  94. {
  95. print("Drop Gun FS by a fat guy");
  96. return 1;
  97. }
  98. //=================//
  99. public OnPlayerDeath(playerid, killerid, reason)
  100. {
  101. new Float:X,Float:Y,Float:Z;
  102. GetPlayerPos(playerid, X, Y, Z);
  103. DropGun(playerid, GetPlayerWeapon(playerid),GetPlayerAmmo(playerid),X,Y,Z,GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid));
  104. return 1;
  105. }
  106. //=================//
  107. command(baci, playerid, params[])
  108. {
  109. new Float:X,Float:Y,Float:Z;
  110. new GunID = GetPlayerWeapon(playerid);
  111. new GunAmmo = GetPlayerAmmo(playerid);
  112. GetPlayerName(playerid, sendername, sizeof(sendername));
  113. GetPlayerPos(playerid, X, Y, Z);
  114. RemovePlayerWeapon(playerid, GunID);
  115. DropGun(playerid, GunID,GunAmmo,X,Y,Z,GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid));
  116. format(string, sizeof(string), "* %s je bacio oruzje na pod.", sendername);
  117. SendLocalMessage(playerid, string, 10.0, COLOR_ACTION, COLOR_ACTION);
  118. return 1;
  119. }
  120. //=================//
  121. command(podigni, playerid, params[])
  122. {
  123. for(new i = 0; i < sizeof(DropInfo); i++)
  124. {
  125. if (IsPlayerInRangeOfPoint(playerid, 2.0,DropInfo[i][DropGunPosX],DropInfo[i][DropGunPosY],DropInfo[i][DropGunPosZ]))
  126. {
  127. if(GetPlayerVirtualWorld(playerid) == DropInfo[i][DropGunVWorld] && GetPlayerInterior(playerid) == DropInfo[i][DropGunInterior])
  128. {
  129. GetPlayerName(playerid, sendername, sizeof(sendername));
  130. DestroyDynamicObject(DropObject[i]);
  131. GivePlayerWeapon(playerid,DropInfo[i][DropGunAmmount][0],DropInfo[i][DropGunAmmount][1]);
  132. DropInfo[i][DropGunPosX] = 0.0;
  133. DropInfo[i][DropGunPosY] = 0.0;
  134. DropInfo[i][DropGunPosZ] = 0.0;
  135. DropInfo[i][DropGunAmmount][0] = 0;
  136. DropInfo[i][DropGunAmmount][1] = 0;
  137. format(string, sizeof(string), "* %s je uzeo oruzje s poda.", sendername);
  138. SendLocalMessage(playerid, string, 10.0, COLOR_ACTION, COLOR_ACTION);
  139. return 1;
  140. }
  141. }
  142. }
  143. return 1;
  144. }
  145. //=================//
  146. stock SendLocalMessage(playerid, msg[], Float:MessageRange, Range1color, Range2color)
  147. {
  148. new Float: PlayerX, Float: PlayerY, Float: PlayerZ;
  149. GetPlayerPos(playerid, PlayerX, PlayerY, PlayerZ);
  150. foreach (Player, i)
  151. {
  152. if(IsPlayerInRangeOfPoint(i, MessageRange, PlayerX, PlayerY,PlayerZ))
  153. {
  154. SendClientMessage(i, Range1color, msg);
  155. }
  156. else if(IsPlayerInRangeOfPoint(i, MessageRange/2.0, PlayerX, PlayerY,PlayerZ))
  157. {
  158. SendClientMessage(i, Range2color, msg);
  159. }
  160. }
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement