Advertisement
Guest User

dropgun

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