HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include <amxmodx>
  4. #include <cstrike>
  5. #include <fun>
  6. #include <fakemeta>
  7. #include <fakemeta_util>
  8. #include <colorchat>
  9. #include <engine>
  10. #include <dhudmessage>
  11. #include <hamsandwich>
  12.  
  13. #define PLUGIN "Weapon Case 1.2"
  14. #define VERSION "1.2"
  15. #define AUTHOR "6almasok"
  16.  
  17. #define AWPNUMBER 2
  18.  
  19. new bool:choosedGun[33][2], cVars[7], tUseWP, ctUseWP, bEnt = -1, doNotShowHud, leftSec
  20.  
  21. new const case_model[] = "models/weap_case/case.mdl"
  22. new const case_sound[] = "weap_case/case_spawn.wav"
  23. new const prefix[] = "[Weapon Case]"
  24.  
  25. //CS-WeaponID, BPAMMO
  26. new const WeaponCSW[][] = {
  27. {CSW_AK47, 90},
  28. {CSW_M4A1, 90},
  29. {CSW_AWP, 30},
  30. {CSW_FAMAS, 90},
  31. {CSW_GALIL, 90},
  32. {CSW_AUG, 90},
  33. {CSW_SG552, 90},
  34. {CSW_SCOUT, 90},
  35. {CSW_M249, 200},
  36. {CSW_M3, 32},
  37. {CSW_XM1014, 32},
  38. {CSW_TMP, 120},
  39. {CSW_MAC10, 100},
  40. {CSW_MP5NAVY, 120},
  41. {CSW_UMP45, 100},
  42. {CSW_P90, 100}
  43. }
  44. new const PistolCSW[][] = {
  45. {CSW_GLOCK18, 120},
  46. {CSW_USP, 100},
  47. {CSW_P228, 52},
  48. {CSW_DEAGLE, 35},
  49. {CSW_FIVESEVEN, 100},
  50. {CSW_ELITE, 120}
  51. }
  52.  
  53. //Menu Name, WeaponID
  54. new const Weapons[][][] = {
  55. {"Ak-47", "weapon_ak47"},
  56. {"M4A1", "weapon_m4a1"},
  57. {"AWP Magnum", "weapon_awp"}, //position in "AWPNUMBER" (current 2)
  58. {"Famas", "weapon_famas"},
  59. {"Galil-AR", "weapon_galil"},
  60. {"AUG Bullpup","weapon_aug" },
  61. {"SG552", "weapon_sg552"},
  62. {"SCHMIDT Scout", "weapon_scout"},
  63. {"M249", "weapon_m249"},
  64. {"Shutgun", "weapon_m3"},
  65. {"Auto-Shotgun", "weapon_xm1014"},
  66. {"TMP", "weapon_tmp"},
  67. {"MAC-10", "weapon_mac10"},
  68. {"KM MP5-Navy", "weapon_mp5navy"},
  69. {"KM UMP45", "weapon_ump45"},
  70. {"P90-ES", "weapon_p90"}
  71. }
  72. new const Pistols[][][] = {
  73. {"Glock 18", "weapon_glock18"},
  74. {"HK USP", "weapon_usp"},
  75. {"P228", "weapon_p228"},
  76. {"Desert Eagle", "weapon_deagle"},
  77. {"Five-Seven", "weapon_fiveseven"},
  78. {"Dual Elites", "weapon_elite"}
  79. }
  80.  
  81. public plugin_init() {
  82. register_plugin(PLUGIN, VERSION, AUTHOR)
  83.  
  84. RegisterHam(Ham_Spawn, "player", "fw_player_spawn_post", 1)
  85.  
  86. register_touch("weap_case" ,"player" ,"caseTouched")
  87.  
  88. register_logevent("round_end", 2, "1=Round_End")
  89. register_logevent("round_start", 2, "1=Round_Start")
  90. register_event("Money", "setUserMoney", "b")
  91.  
  92. cVars[0] = register_cvar("weapc_killentitysec", "30")
  93. cVars[1] = register_cvar("weapc_needplaytowp", "3")
  94. cVars[2] = register_cvar("weapc_allsniper", "3")
  95. cVars[3] = register_cvar("weapc_gotflash", "2")
  96. cVars[4] = register_cvar("weapc_gotheg", "1")
  97. cVars[5] = register_cvar("weapc_gotsmoke", "1")
  98. cVars[6] = register_cvar("weapc_usepistolmenu", "1")
  99.  
  100. while((bEnt = find_ent_by_class(bEnt, "func_buyzone"))) entity_set_int(bEnt, EV_INT_team, 3);
  101. }
  102. public blockZone(id) return PLUGIN_HANDLED;
  103. public setUserMoney(id) {
  104. if(is_user_connected(id)) {
  105. set_pdata_int(id, 115, 0)
  106. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("Money"), _, id)
  107. write_long(0)
  108. write_byte(1)
  109. message_end()
  110. }
  111. }
  112. public fw_player_spawn_post(id) {
  113. choosedGun[id][0] = false
  114. choosedGun[id][1] = false
  115. }
  116. public caseTouched(ent, id) {
  117. open_WeapMENU(id)
  118. fm_strip_user_gun(id, 16, "weapon_usp")
  119. fm_strip_user_gun(id, 17, "weapon_glock18")
  120. }
  121. public plugin_precache() {
  122. precache_model(case_model)
  123. precache_sound(case_sound)
  124. }
  125. public round_end() {
  126. static id
  127. doNotShowHud = 1
  128. tUseWP = 0
  129. ctUseWP = 0
  130.  
  131. for(id = 1; id <= get_playersnum(); id++) if(is_user_connected(id)) strip_user_weapons(id)
  132. killEntity()
  133. }
  134. public round_start() {
  135. CaseLoad()
  136. timeZone()
  137.  
  138. doNotShowHud = 0
  139.  
  140. client_cmd(0, "spk %s", case_sound)
  141. }
  142. public timeZone() {
  143. leftSec++
  144.  
  145. if(leftSec < 30) set_task(1.0, "timeZone")
  146. else killEntity()
  147.  
  148. set_dhudmessage(0, 255, 0, -1.0, 0.16, 0, 6.0, 1.0)
  149. show_dhudmessage(0, "A fegyveres lada megjelent!^nMeg %i mp-ig tudtok vasarolni azutan eltunik.", get_pcvar_num(cVars[0])-leftSec)
  150. }
  151. public killEntity() {
  152. new fm_Null = FM_NULLENT
  153. while((fm_Null = fm_find_ent_by_class(fm_Null, "weap_case"))) engfunc(EngFunc_RemoveEntity, fm_Null);
  154.  
  155. if(doNotShowHud == 0){
  156. set_dhudmessage(0, 255, 0, -1.0, 0.16, 2, 6.0, 5.0)
  157. show_dhudmessage(0, "Letelt a fegyver vasarlasi ido!")
  158. }
  159. remove_task(0)
  160. leftSec = 0
  161. show_menu(0, 0, "^n", 1)
  162. }
  163. public CaseLoad() {
  164. new Float:pOrigin[3], Float:sOrigin[3]
  165.  
  166. sOrigin[0] = -650.0
  167. sOrigin[1] = -771.0
  168. sOrigin[2] = 164.0
  169.  
  170. pOrigin[0] = 325.0
  171. pOrigin[1] = 2305.0
  172. pOrigin[2] = -91.0
  173.  
  174. new pEnt = create_entity("info_target")
  175. new sEnt = create_entity("info_target")
  176.  
  177. //First Entity
  178. set_pev(pEnt, pev_classname, "weap_case")
  179. engfunc(EngFunc_SetModel, pEnt, case_model)
  180. set_pev(pEnt,pev_solid, SOLID_BBOX)
  181. set_pev(pEnt, pev_movetype, MOVETYPE_TOSS)
  182. engfunc(EngFunc_SetOrigin, pEnt, pOrigin)
  183. engfunc(EngFunc_SetSize, pEnt, Float:{-10.0,-10.0,0.0}, Float:{10.0,10.0,25.0})
  184. engfunc(EngFunc_DropToFloor, pEnt)
  185.  
  186. //Second Entity
  187. set_pev(sEnt, pev_classname, "weap_case")
  188. engfunc(EngFunc_SetModel, sEnt, case_model)
  189. set_pev(sEnt,pev_solid, SOLID_BBOX)
  190. set_pev(sEnt, pev_movetype, MOVETYPE_TOSS)
  191. engfunc(EngFunc_SetOrigin, sEnt, sOrigin)
  192. engfunc(EngFunc_SetSize, sEnt, Float:{-10.0,-10.0,0.0}, Float:{10.0,10.0,25.0})
  193. engfunc(EngFunc_DropToFloor, sEnt)
  194. }
  195. public open_WeapMENU(id) {
  196. if(choosedGun[id][0] && choosedGun[id][1]) return PLUGIN_HANDLED
  197. if(choosedGun[id][0] && !choosedGun[id][1]) {
  198. open_PistolMENU(id)
  199. return PLUGIN_HANDLED
  200. }
  201.  
  202. new szMenu[121]
  203. formatex(szMenu, charsmax(szMenu), "\r%s \yValassz Fegyvert", prefix)
  204. new menu = menu_create(szMenu, "choose_Gun");
  205.  
  206. for(new i; i < sizeof(Weapons); i++){
  207. formatex(szMenu, charsmax(szMenu), "%s%s", Weapons[i][0], get_pcvar_num(cVars[6]) ? "" : " \yCsomag")
  208. menu_additem(menu, szMenu, "", 0)
  209. }
  210.  
  211. menu_display(id, menu, 0)
  212. return PLUGIN_CONTINUE
  213. }
  214. public choose_Gun(id, menu, item) {
  215. if(item == MENU_EXIT)
  216. {
  217. menu_destroy(menu);
  218. return PLUGIN_HANDLED;
  219. }
  220.  
  221. if(item == AWPNUMBER)
  222. {
  223. new iPlayers[32], iNumCT , iNumT
  224. get_players(iPlayers, iNumCT, "e", "CT" );
  225. get_players(iPlayers, iNumT, "e", "TERRORIST");
  226.  
  227. if(iNumCT < get_pcvar_num(cVars[1]) || iNumT < get_pcvar_num(cVars[1])) {
  228. ColorChat(id, GREEN, "^4%s ^1Legalabb ^3%iv%i ^1kell legyen az AWP hasznalatahoz!", prefix, get_pcvar_num(cVars[1]), get_pcvar_num(cVars[1]));
  229. return PLUGIN_HANDLED;
  230. }
  231.  
  232. if(cs_get_user_team(id) == CS_TEAM_CT) {
  233. if(ctUseWP < get_pcvar_num(cVars[2])) ctUseWP++
  234. else
  235. {
  236. ColorChat(id, GREEN, "^4%s ^1Csapatodba max csak ^3%i ^1hasznalhat AWP-t!", prefix, get_pcvar_num(cVars[2]))
  237. return PLUGIN_HANDLED;
  238. }
  239. }
  240. else if(cs_get_user_team(id) == CS_TEAM_T) {
  241. if(tUseWP < get_pcvar_num(cVars[2])) tUseWP++
  242. else
  243. {
  244. ColorChat(id, GREEN, "^4%s ^1Csapatodba max csak ^3%i ^1hasznalhat AWP-t!", prefix, get_pcvar_num(cVars[2]))
  245. return PLUGIN_HANDLED;
  246. }
  247. }
  248. }
  249.  
  250. give_item(id, Weapons[item][1]);
  251. cs_set_user_bpammo(id, WeaponCSW[item][0], WeaponCSW[item][1])
  252. ColorChat(id, GREEN, "^4%s ^3%s%s ^1sikeresen kivalasztva.", prefix, Weapons[item][0], get_pcvar_num(cVars[2]) ? "" : " Csomag")
  253. choosedGun[id][0] = true
  254.  
  255. if(!get_pcvar_num(cVars[6])) {
  256. give_item(id, "weapon_deagle")
  257. cs_set_user_bpammo(id, CSW_DEAGLE, 35)
  258. addEquipMents(id)
  259. }
  260. else open_PistolMENU(id)
  261.  
  262. menu_destroy(menu);
  263. return PLUGIN_HANDLED;
  264. }
  265. public open_PistolMENU(id) {
  266. new szMenu[121]
  267. formatex(szMenu, charsmax(szMenu), "\r%s \yValassz Pisztolyt", prefix)
  268. new menu = menu_create(szMenu, "choose_Pistol");
  269.  
  270. for(new i=0; i < sizeof(Pistols); i++) {
  271. formatex(szMenu, charsmax(szMenu), "%s", Pistols[i][0])
  272. menu_additem(menu, szMenu, "", 0)
  273. }
  274.  
  275. menu_display(id, menu, 0)
  276. }
  277. public choose_Pistol(id, menu, item) {
  278. if(item == MENU_EXIT)
  279. {
  280. menu_destroy(menu);
  281. return PLUGIN_HANDLED;
  282. }
  283.  
  284. give_item(id, Pistols[item][1]);
  285. cs_set_user_bpammo(id, PistolCSW[item][0], PistolCSW[item][1])
  286. ColorChat(id, GREEN, "^4%s ^3%s ^1pistoly sikeresen kivalasztva.", prefix, Pistols[item][0])
  287. addEquipMents(id)
  288.  
  289. menu_destroy(menu);
  290. return PLUGIN_HANDLED;
  291. }
  292. public addEquipMents(id) {
  293. if(cs_get_user_team(id) == CS_TEAM_CT) give_item(id, "item_thighpack")
  294.  
  295. give_item(id, "item_assaultsuit")
  296. give_item(id, "weapon_knife")
  297.  
  298. if(get_pcvar_num(cVars[3])) {
  299. give_item(id, "weapon_flashbang")
  300. cs_set_user_bpammo(id, CSW_FLASHBANG, get_pcvar_num(cVars[3]))
  301. }
  302. if(get_pcvar_num(cVars[4])) {
  303. give_item(id, "weapon_hegrenade")
  304. cs_set_user_bpammo(id, CSW_HEGRENADE, get_pcvar_num(cVars[4]))
  305. }
  306. if(get_pcvar_num(cVars[5])) {
  307. give_item(id, "weapon_smokegrenade")
  308. cs_set_user_bpammo(id, CSW_SMOKEGRENADE, get_pcvar_num(cVars[5]))
  309. }
  310. choosedGun[id][1] = true
  311. }