Advertisement
Guest User

SBSY - Weapon Config Edition

a guest
Jun 23rd, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.68 KB | None | 0 0
  1. /*---------------------------------------------------\*
  2.  
  3. ========================================
  4. Spawn Bölge | Silah Yasaklayıcı
  5. Weapon-Config Sürümü
  6. ========================================
  7.  
  8. Kodlama: NexoR
  9.  
  10. 04.02.2017
  11.  
  12. Güncelleme:
  13.  
  14. 23.06.2017
  15.  
  16. \*---------------------------------------------------*/
  17.  
  18. #include <a_samp>
  19. #include <streamer>
  20. #define N_MAX_BOLGE (15 + 1) // Max eklenecek bölge sayısı - Sadece 15 kısmını değiştirin.
  21.  
  22. enum n_bolgeData
  23. {
  24. Float: n_minx,
  25. Float: n_miny,
  26. Float: n_maxx,
  27. Float: n_maxy,
  28. n_worldid,
  29. n_interiorid,
  30. n_playerid,
  31. temp_a,
  32. n_sID
  33. };
  34. new n_BolgeIslem[N_MAX_BOLGE][n_bolgeData];
  35.  
  36. enum n_oSilahData
  37. {
  38. n_Silah[13],
  39. n_Mermi[13]
  40. };
  41. new n_SilahIslem[MAX_PLAYERS][n_oSilahData];
  42. new n_bCount = 0, n_PreHook[6];
  43.  
  44. public OnGameModeInit()
  45. {
  46. n_PreHook[0] = funcidx("_nHook_OnPlayerConnect") != -1;
  47. n_PreHook[1] = funcidx("_nHook_OnPlayerDisconnect") != -1;
  48. n_PreHook[2] = funcidx("_nHook_OnPlayerEnterDynamicArea") != -1;
  49. n_PreHook[3] = funcidx("_nHook_OnPlayerLeaveDynamicArea") != -1;
  50. n_PreHook[4] = funcidx("_nHook_OnPlayerWeaponShot") != -1;
  51. n_PreHook[5] = funcidx("_nHook_OnPlayerDamage") != -1;
  52. if (funcidx("_nHook_OnGameModeInit") != -1)
  53. {
  54. return CallLocalFunction("_nHook_OnGameModeInit", "");
  55. }
  56. return 1;
  57. }
  58.  
  59. #if defined _ALS_OnGameModeInit
  60. #undef OnGameModeInit
  61. #else
  62. #define _ALS_OnGameModeInit
  63. #endif
  64. #define OnGameModeInit _nHook_OnGameModeInit
  65. forward _nHook_OnGameModeInit();
  66.  
  67. public OnPlayerConnect(playerid)
  68. {
  69. for(new n_oSilahData: n; n < n_oSilahData; n++) n_SilahIslem[playerid][n] = 0;
  70. if (n_PreHook[0])
  71. {
  72. return CallLocalFunction("_nHook_OnPlayerConnect", "i",playerid);
  73. }
  74. return 1;
  75. }
  76.  
  77. #if defined _ALS_OnPlayerConnect
  78. #undef OnPlayerConnect
  79. #else
  80. #define _ALS_OnPlayerConnect
  81. #endif
  82. #define OnPlayerConnect _nHook_OnPlayerConnect
  83. forward _nHook_OnPlayerConnect(playerid);
  84.  
  85. public OnPlayerDisconnect(playerid, reason)
  86. {
  87. DeletePVar(playerid, "n_SpawnBolgesindeyim");
  88. DeletePVar(playerid, "n_TempCount");
  89. for(new n_oSilahData: n; n < n_oSilahData; n++) n_SilahIslem[playerid][n] = 0;
  90. if (n_PreHook[1])
  91. {
  92. return CallLocalFunction("_nHook_OnPlayerDisconnect", "ii",playerid, reason);
  93. }
  94. return 1;
  95. }
  96.  
  97. #if defined _ALS_OnPlayerDisconnect
  98. #undef OnPlayerDisconnect
  99. #else
  100. #define _ALS_OnPlayerDisconnect
  101. #endif
  102. #define OnPlayerDisconnect _nHook_OnPlayerDisconnect
  103. forward _nHook_OnPlayerDisconnect(playerid, reason);
  104.  
  105. public OnPlayerEnterDynamicArea(playerid, areaid)
  106. {
  107. for(new i = 0; i < N_MAX_BOLGE-1; i ++)
  108. {
  109. if(areaid == n_BolgeIslem[i][n_sID])
  110. {
  111. SetPVarInt(playerid, "n_SpawnBolgesindeyim", 1);
  112. SetPVarInt(playerid, "n_TempCount", 1);
  113. new n_TempSilahId = 0, n_TempMermi;
  114. for(new n = 0; n < 13; n++)
  115. {
  116. GetPlayerWeaponData(playerid, n, n_TempSilahId, n_TempMermi);
  117. if(n_TempSilahId != 0)
  118. {
  119. n_SilahIslem[playerid][n_Silah][n] = n_TempSilahId;
  120. n_SilahIslem[playerid][n_Mermi][n] = n_TempMermi;
  121. }
  122. }
  123. ResetPlayerWeapons(playerid);
  124. }
  125. }
  126. if(n_PreHook[2])
  127. {
  128. return CallLocalFunction("_nHook_OnPlayerEnterDynamicArea", "ii", playerid, areaid);
  129. }
  130. return 1;
  131. }
  132.  
  133. #if defined _ALS_OnPlayerEnterDynamicArea
  134. #undef OnPlayerEnterDynamicArea
  135. #else
  136. #define _ALS_OnPlayerEnterDynamicArea
  137. #endif
  138. #define OnPlayerEnterDynamicArea _nHook_OnPlayerEnterDynamicArea
  139. forward _nHook_OnPlayerEnterDynamicArea(playerid, areaid);
  140.  
  141. public OnPlayerLeaveDynamicArea(playerid, areaid)
  142. {
  143. for(new i = 0; i < N_MAX_BOLGE-1; i ++)
  144. {
  145. if(areaid == n_BolgeIslem[i][n_sID])
  146. {
  147. DeletePVar(playerid, "n_SpawnBolgesindeyim");
  148. DeletePVar(playerid, "n_TempCount");
  149. for(new n = 0; n < 13; n++)
  150. {
  151. if(n_SilahIslem[playerid][n_Silah][n] != 0)
  152. {
  153. GivePlayerWeapon(playerid, n_SilahIslem[playerid][n_Silah][n], n_SilahIslem[playerid][n_Mermi][n]);
  154. }
  155. }
  156. }
  157. }
  158. if(n_PreHook[3])
  159. {
  160. return CallLocalFunction("_nHook_OnPlayerLeaveDynamicArea", "ii", playerid, areaid);
  161. }
  162. return 1;
  163. }
  164.  
  165. #if defined _ALS_OnPlayerLeaveDynamicArea
  166. #undef OnPlayerLeaveDynamicArea
  167. #else
  168. #define _ALS_OnPlayerLeaveDynamicArea
  169. #endif
  170. #define OnPlayerLeaveDynamicArea _nHook_OnPlayerLeaveDynamicArea
  171. forward _nHook_OnPlayerLeaveDynamicArea(playerid, areaid);
  172.  
  173. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
  174. {
  175. if(GetPVarInt(playerid, "n_SpawnBolgesindeyim") == 1)
  176. {
  177. switch(weaponid)
  178. {
  179. case 0..46:
  180. {
  181. ResetPlayerWeapons(playerid);
  182. if(GetPVarInt(playerid, "n_TempCount") == 1)
  183. {
  184. SendClientMessage(playerid, 0x3DCFFFFF, "Uyari: {FFFFFF}Spawn bolgesinde silah kullanamazsin !");
  185. SetPVarInt(playerid, "n_TempCount", GetPVarInt(playerid, "n_TempCount")+1);
  186. }
  187. }
  188. }
  189. }
  190. if(n_PreHook[4])
  191. {
  192. return CallLocalFunction("_nHook_OnPlayerWeaponShot", "iiiifff", playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
  193. }
  194. return 1;
  195. }
  196.  
  197. #if defined _ALS_OnPlayerWeaponShot
  198. #undef OnPlayerWeaponShot
  199. #else
  200. #define _ALS_OnPlayerWeaponShot
  201. #endif
  202. #define OnPlayerWeaponShot _nHook_OnPlayerWeaponShot
  203. forward _nHook_OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
  204.  
  205. public OnPlayerDamage(&playerid, &Float:amount, &issuerid, &weapon, &bodypart)
  206. {
  207. if(issuerid != INVALID_PLAYER_ID)
  208. {
  209. if(GetPVarInt(playerid, "n_SpawnBolgesindeyim") == 1) return 0;
  210. }
  211. if(n_PreHook[5])
  212. {
  213. return CallLocalFunction("_nHook_OnPlayerDamage", "ifiii", playerid, Float: amount, issuerid, weapon, bodypart);
  214. }
  215. return 1;
  216. }
  217.  
  218. #if defined _ALS_OnPlayerDamage
  219. #undef OnPlayerDamage
  220. #else
  221. #define _ALS_OnPlayerDamage
  222. #endif
  223. #define OnPlayerDamage _nHook_OnPlayerDamage
  224. forward _nHook_OnPlayerDamage(&playerid, &Float:amount, &issuerid, &weapon, &bodypart);
  225.  
  226. stock n_sBolgeOlustur(Float:_n_minx, Float:_n_miny, Float:_n_maxx, Float:_n_maxy, _n_worldid = -1, _n_interiorid = -1, _n_playerid = -1)
  227. {
  228. n_bCount++;
  229. if(n_bCount >= N_MAX_BOLGE) return printf(" -> Spawn Bolgesi: Maksimum spawn bolge ekleme limitine ulasildi !");
  230. n_BolgeIslem[n_bCount][n_minx] = _n_minx;
  231. n_BolgeIslem[n_bCount][n_miny] = _n_miny;
  232. n_BolgeIslem[n_bCount][n_maxx] = _n_maxx;
  233. n_BolgeIslem[n_bCount][n_maxy] = _n_maxy;
  234. n_BolgeIslem[n_bCount][n_worldid] = _n_worldid;
  235. n_BolgeIslem[n_bCount][n_interiorid] = _n_interiorid;
  236. n_BolgeIslem[n_bCount][n_playerid] = _n_playerid;
  237. n_BolgeIslem[n_bCount][temp_a] = 1;
  238. n_BolgeIslem[n_bCount][n_sID] = CreateDynamicRectangle(_n_minx, _n_miny, _n_maxx, _n_maxy, _n_worldid, _n_interiorid, _n_playerid);
  239. printf(" -> Spawn Bolgesi: %d adet koruma bolgesi olusturuldu. [%d/%d]", n_bCount, n_bCount, N_MAX_BOLGE-1);
  240. return 1;
  241. }
  242.  
  243. stock n_sBolgeSil(playerid, n_BolgeID)
  244. {
  245. new n[85];
  246. if(n_BolgeIslem[n_BolgeID][temp_a] == 0)
  247. {
  248. format(n, sizeof(n), "Uyari: {FFFFFF}Kaldirmak istediginiz %d id'li spawn bolgesi olusturulmamis.", n_BolgeID);
  249. SendClientMessage(playerid, 0x3DCFFFFF, n);
  250. return 1;
  251. }
  252. format(n, sizeof(n), "Bilgi: {FFFFFF}Şuanda %d id'li spawn bölgesini kaldırdınız.", n_BolgeID);
  253. SendClientMessage(playerid, 0x3DCFFFFF, n);
  254. n_BolgeIslem[n_BolgeID][n_minx] = 0.0;
  255. n_BolgeIslem[n_BolgeID][n_miny] = 0.0;
  256. n_BolgeIslem[n_BolgeID][n_maxx] = 0.0;
  257. n_BolgeIslem[n_BolgeID][n_maxy] = 0.0;
  258. n_BolgeIslem[n_BolgeID][n_worldid] = -1;
  259. n_BolgeIslem[n_BolgeID][n_interiorid] = -1;
  260. n_BolgeIslem[n_BolgeID][n_playerid] = -1;
  261. n_BolgeIslem[n_BolgeID][temp_a] = 0;
  262. DestroyDynamicArea(n_BolgeIslem[n_BolgeID][n_sID]);
  263. return 1;
  264. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement