HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <cstrike>
  3. #include <engine>
  4. #include <fun>
  5. #include <hamsandwich>
  6. #include <fakemeta>
  7. #include <amxmisc>
  8.  
  9. #define PLUGIN "Hidden Mod"
  10. #define VERSION "3.5"
  11. #define AUTHOR "Oxygen"
  12.  
  13. // ===============================================================================
  14. // Change on what flag you want
  15. // ===============================================================================
  16. #define VIP_FLAG ADMIN_LEVEL_H
  17.  
  18. // ===============================================================================
  19. // Check if Player is valid
  20. // ===============================================================================
  21. #define is_valid_player(%1) (1 <= %1 <= 32)
  22.  
  23. // ===============================================================================
  24. // Integers
  25. // ===============================================================================
  26. new msgScreenFade
  27. new const saychatprefix[] = { "!g[!nHidden-Mod!g]!n" }
  28.  
  29. // ===============================================================================
  30. // Integer / Cvars
  31. // ===============================================================================
  32. //Joker Cvars
  33. new p_jokerhp, p_jokerspeed, p_jokerarmor, p_jokergravity, p_seconds, p_jokersilent, p_jokerinvis
  34. //Human Cvars
  35. new p_humanhp, p_humanarmor, p_humanspeed, p_humangravity, p_humansilent
  36. //Fog Cvar
  37. new p_fogenable, p_fogr, p_fogg, p_fogb, p_fogdens
  38. //Shop Cvars
  39. //Shop Ammount Cvars
  40. new p_shop, p_shophp, p_shopgravity, p_shoparmor, p_shopmaxjumps, p_shopspeed, p_shopthp
  41. //Shop Prices Cvars
  42. new p_hpcost, p_gravcost, p_armorcost, p_multicost, p_akmcost, p_damcost, p_speedcost ,p_hptcost, p_multitcost, p_damtcost
  43. //Unlock Prices Cvars
  44. new p_unlock, p_unlm4, p_unlak, p_unlgal, p_unlawp, p_unlp90, p_unldgl, p_unldual, p_unlaxe, p_unlstrong, p_unlcombat
  45. //Effects cvars
  46. new p_effects
  47. new p_time
  48. new g_TimerInvisible
  49. new p_huds
  50. new p_vipknife
  51. new p_newinvis
  52. //End of cvars
  53. new timer
  54. new sync_hud1
  55.  
  56.  
  57. // ===============================================================================
  58. // Booleans
  59. // ===============================================================================
  60. new NRTS[33] //Bool for change team
  61. new HasSpeed[33] //bool for each team speed
  62. new HasShopSpeed[33] //bool for speed in shop
  63. new HasGravity[33] //bool for gravity shop
  64. new HasDamage[33] //bool for double damage shop
  65. new HasMulti[33] //bool for multijump shop
  66. new jumpnum[33] //bool for multijump
  67. new dojump[33] //bool for multijump
  68. new knifes_used[33]
  69. new prima_used[33]
  70. new second_used[33]
  71. new is_joker[33]
  72.  
  73. //BOOL FOR NEW STYLE OF SHOP
  74. new itemunlocked[33][10]
  75. /*
  76. [0] = M4
  77. [1] = AK47
  78. [2] = Galil
  79. [3] = P90
  80. [4] = AWP
  81. [5] = Deagle
  82. [6] = Dual
  83. [7] = Strong
  84. [8] = Axe
  85. [9] = Combat
  86. */
  87.  
  88. // ===============================================================================
  89. // Stuff Removing Entities/Buyzone
  90. // ===============================================================================
  91. new g_HostageEnt
  92. new const g_sRemoveEntities[][] =
  93. {
  94. "func_bomb_target",
  95. "info_bomb_target",
  96. "hostage_entity",
  97. "monster_scientist",
  98. "func_hostage_rescue",
  99. "info_hostage_rescue",
  100. "info_vip_start",
  101. "func_vip_safetyzone",
  102. "func_escapezone",
  103. "armoury_entity"
  104. };
  105.  
  106. new const MAX_REMOVED_ENTITIES = sizeof(g_sRemoveEntities);
  107.  
  108. // ===============================================================================
  109. // Stuff AutoJoin Team
  110. // ===============================================================================
  111.  
  112. // Old Style Menus
  113. stock const FIRST_JOIN_MSG[] = "#Team_Select";
  114. stock const FIRST_JOIN_MSG_SPEC[] = "#Team_Select_Spect";
  115. stock const INGAME_JOIN_MSG[] = "#IG_Team_Select";
  116. stock const INGAME_JOIN_MSG_SPEC[] = "#IG_Team_Select_Spect";
  117. const iMaxLen = sizeof(INGAME_JOIN_MSG_SPEC);
  118.  
  119. // New VGUI Menus
  120. stock const VGUI_JOIN_TEAM_NUM = 2;
  121.  
  122. // ===============================================================================
  123. // Models/Sounds Stuff (CHANGE IF YOU WANT)
  124. // ===============================================================================
  125. //Sounds for joker's knife
  126. new g_szJokerSlash[][] =
  127. {
  128. "hidden-mod/joker_slash1.wav",
  129. "hidden-mod/joker_slash2.wav",
  130. "hidden-mod/joker_slash3.wav"
  131. }
  132.  
  133. new g_szJokerHit[][] =
  134. {
  135. "hidden-mod/joker_slash_hit1.wav",
  136. "hidden-mod/joker_slash_hit2.wav",
  137. "hidden-mod/joker_slash_hit3.wav"
  138. }
  139.  
  140. //Sounds when joker kills human
  141. new g_szJokerKill[][] =
  142. {
  143. "hidden-mod/joker_laugh1.wav",
  144. "hidden-mod/joker_laugh2.wav",
  145. "hidden-mod/joker_laugh3.wav"
  146. }
  147. //Speak Joker Sounds
  148. new g_szJokerSpeak[][] =
  149. {
  150. "hidden-mod/hidden_speak1.wav",
  151. "hidden-mod/hidden_speak2.wav",
  152. "hidden-mod/hidden_speak3.wav",
  153. "hidden-mod/hidden_speak4.wav",
  154. "hidden-mod/hidden_speak5.wav",
  155. "hidden-mod/hidden_speak6.wav",
  156. "hidden-mod/hidden_speak7.wav"
  157. }
  158. //When Joker Dies Sounds
  159. new g_szJokerDie[][] =
  160. {
  161. "hidden-mod/joker_death.wav"
  162. }
  163. //Joker Model
  164. new g_szJokerModel[][] =
  165. {
  166. "models/player/hm_joker/hm_joker.mdl"
  167. }
  168.  
  169. //Joker Knife Model
  170. new VIEW_MODELT[] = "models/hidden-mod/v_joker_knife.mdl"
  171. new PLAYER_MODELT[] = "models/hidden-mod/p_joker_knife.mdl"
  172.  
  173. // ===============================================================================
  174. // Stuff KnifeMod
  175. // ===============================================================================
  176. /* Booleans / Integers */
  177. new menu1
  178. new menu2
  179. new knifes
  180. new axe[33]
  181. new combat[33]
  182. new hammer[33]
  183. new strong[33]
  184. new defaul[33]
  185.  
  186. new jatekosok, HudUzenet
  187.  
  188. /* Cvar Integers */
  189. new knife_hp, knife_grav1, knife_dam, knife_speed, knife_grav2
  190.  
  191. /* Model / Sounf Stuff (CHANGE IF YOU WANT) */
  192. new VIEW_AXE[] = "models/hidden-mod/v_axe_knife.mdl"
  193. new PLAYER_AXE[] = "models/hidden-mod/p_axe_knife.mdl"
  194.  
  195. new VIEW_COMBAT[] = "models/hidden-mod/v_combat_knife.mdl"
  196. new PLAYER_COMBAT[] = "models/hidden-mod/p_combat_knife.mdl"
  197.  
  198. new VIEW_STRONG[] = "models/hidden-mod/v_strong_knife.mdl"
  199. new PLAYER_STRONG[] = "models/hidden-mod/p_strong_knife.mdl"
  200.  
  201. new VIEW_HAMMER[] = "models/hidden-mod/v_hammer_knife.mdl"
  202. new PLAYER_HAMMER[] = "models/hidden-mod/p_hammer_knife.mdl"
  203.  
  204. new VIEW_DEFAULT[] = "models/v_knife.mdl"
  205. new PLAYER_DEFAULT[] = "models/p_knife.mdl"
  206.  
  207. // ===============================================================================
  208. // The Main Brain
  209. // ===============================================================================
  210. public plugin_init()
  211. {
  212. register_plugin(PLUGIN, VERSION, AUTHOR)
  213.  
  214. RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1)
  215. RegisterHam(Ham_Touch, "armoury_entity", "FakemetaTouch")
  216. RegisterHam(Ham_Touch, "weaponbox", "FakemetaTouch")
  217. RegisterHam(Ham_TakeDamage, "player", "FwdTakeDamage", 0)
  218.  
  219. register_event("CurWeapon", "CurWeapon", "be", "1=1")
  220. register_event("DeathMsg", "Event_DeathMsg", "a")
  221. register_event("HLTV", "event_newround", "a", "1=0", "2=0")
  222.  
  223. register_message(get_user_msgid("VGUIMenu"), "message_VGUIMenu")
  224.  
  225. register_forward(FM_EmitSound, "Forward_EmitSound")
  226. register_forward(FM_ClientKill, "Forward_ClientKill")
  227.  
  228. msgScreenFade = get_user_msgid("ScreenFade")
  229. sync_hud1 = CreateHudSyncObj(6)
  230.  
  231. //COMMANDS
  232. register_clcmd("chooseteam", "jointeam")
  233. register_clcmd("jointeam", "jointeam")
  234. register_clcmd("joinclass", "jointeam")
  235. register_clcmd("say /bolt", "cmd_shop")
  236. register_clcmd("say /hidden", "cmd_menu")
  237. register_clcmd("say /fomenu", "cmd_menu")
  238. register_clcmd("say /fegyver", "cmd_knifes")
  239. register_clcmd("say /kes", "cmd_knifes")
  240. register_clcmd("say /fixspawn", "cmd_fixspawn")
  241. register_clcmd("say /ujra", "cmd_fixspawn")
  242. register_clcmd("say_team /bolt", "cmd_shop")
  243. register_clcmd("say_team /hidden", "cmd_menu")
  244. register_clcmd("say_team /fegyverek", "cmd_knifes")
  245. register_clcmd("say_team /fixspawn", "cmd_fixspawn")
  246.  
  247. //Remove Shadow // Thanks to connormcleod
  248. set_msg_block(get_user_msgid("ShadowIdx"), BLOCK_SET);
  249.  
  250. //CVARS
  251. //Jokers Cvars
  252. p_jokerhp = register_cvar("hm_joker_hp", "200")
  253. p_jokerspeed = register_cvar("hm_joker_speed", "350.0")
  254. p_jokerarmor = register_cvar("hm_joker_armor", "500.0")
  255. p_jokergravity = register_cvar("hm_joker_gravity", "0.7")
  256. p_jokerinvis = register_cvar("hm_joker_invisibility", "30")
  257. p_seconds = register_cvar("hm_joker_seconds_to_be_full_invisible", "60")
  258. p_jokersilent = register_cvar("hm_joker_silent_steps", "0")
  259. //Human Cvars
  260. p_humanhp = register_cvar("hm_human_hp", "30")
  261. p_humanarmor = register_cvar("hm_human_armor", "0")
  262. p_humanspeed = register_cvar("hm_hmuan_speed", "250")
  263. p_humangravity = register_cvar("hm_human_gravity", "1.0")
  264. p_humansilent = register_cvar("hm_human_silent_steps", "0")
  265. //Fog Cvars
  266. p_fogenable = register_cvar("hm_enable_fog", "0")
  267. p_fogr = register_cvar("hm_fog_red_color", "255")
  268. p_fogg = register_cvar("hm_fog_green_color", "255")
  269. p_fogb = register_cvar("hm_fog_blue_color", "255")
  270. p_fogdens = register_cvar("hm_fog_density", "2")
  271. //Shop Cavrs
  272. p_shop = register_cvar("hm_shop", "0")
  273. p_shophp = register_cvar("hm_shop_hp_ammout", "255")
  274. p_shopthp = register_cvar("hm_shop_hp_joker_ammount", "600")
  275. p_shopgravity = register_cvar("hm_shop_gravity_ammount", "0.6")
  276. p_shoparmor = register_cvar("hm_shop_armor_ammount", "200")
  277. p_shopmaxjumps = register_cvar("hm_shop_max_jumps", "2")
  278. p_shopspeed = register_cvar("hm_shop_speed_ammount", "450.0")
  279. p_hpcost = register_cvar("hm_shop_hp_cost", "4000")
  280. p_hptcost = register_cvar("hm_shop_hp_joker_cost", "5000")
  281. p_gravcost = register_cvar("hm_shop_gravity_cost", "7000")
  282. p_armorcost = register_cvar("hm_shop_armor_cost", "5000")
  283. p_speedcost = register_cvar("hm_shop_speed_cost", "8000")
  284. p_multicost = register_cvar("hm_shop_multijump_cost", "8000")
  285. p_multitcost = register_cvar("hm_shop_multijump_joker_cost", "10000")
  286. p_akmcost = register_cvar("hm_shop_ak_and_m4_cost", "9000")
  287. p_damcost = register_cvar("hm_shop_double_damage_cost", "10000")
  288. p_damtcost = register_cvar("hm_shop_double_damage_joker_cost", "13000")
  289. //Knife Mod Cvars
  290. knife_hp = register_cvar("hm_knife_hp_add", "0")
  291. knife_grav1 = register_cvar("hm_knife_gravity_combat", "1.0")
  292. knife_grav2 = register_cvar("hm_knife_gravity_default", "1.0")
  293. knife_speed = register_cvar("hm_knife_speed", "250.0")
  294. knife_dam = register_cvar("hm_knife_damage_multi", "1.5")
  295. p_vipknife = register_cvar("hm_vip_knife", "1")
  296. //Unlock Prices
  297. p_unlock = register_cvar("hm_unlock_system", "0")
  298. p_unlm4 = register_cvar("hm_unlock_m4a1", "8000")
  299. p_unlak = register_cvar("hm_unlock_ak47", "8000")
  300. p_unlgal = register_cvar("hm_unlock_galil", "6000")
  301. p_unlawp = register_cvar("hm_unlock_awp", "7000")
  302. p_unlp90 = register_cvar("hm_unlock_p90", "10000")
  303. p_unldgl = register_cvar("hm_unlock_deagle", "5000")
  304. p_unldual = register_cvar("hm_unlock_dualelites", "4000")
  305. p_unlaxe = register_cvar("hm_unlock_axe_knife", "3000")
  306. p_unlstrong = register_cvar("hm_unlock_strong_knife", "3500")
  307. p_unlcombat = register_cvar("hm_unlock_combat_knife", "3500")
  308. //Weather Effects Cvars
  309. p_effects = register_cvar("hm_weather_effects", "0") // 0 disabled, 1 earthquake ,2 fade screem, 3 both
  310. p_time = register_cvar("hm_countdown_time", "7")
  311. p_huds = register_cvar("hm_hudmessages", "1")
  312. p_newinvis = register_cvar("hm_new_invisibility_system", "1")
  313.  
  314. //CONFIGURATION FILE FOR CVARS
  315. new configsDir[64];
  316. get_localinfo("amxx_configsdir", configsDir, charsmax(configsDir))
  317. server_cmd("exec %s/hiddenmod.cfg", configsDir)
  318. register_event("ResetHUD","UjKorrrr","b")
  319.  
  320. set_task(0.1, "sebesmegtekint", 0, _, _, "b")
  321. HudUzenet = CreateHudSyncObj()
  322. jatekosok = get_maxplayers()
  323. }
  324. public sebesmegtekint()
  325. {
  326.  
  327. static Float:reszarany[3],Float:gyors, i, celpont
  328.  
  329. for(i=1; i<=jatekosok; i++){
  330. celpont = pev(i, pev_iuser1) == 4 ? pev(i, pev_iuser2) : i
  331. pev(celpont, pev_velocity, reszarany)
  332. gyors = floatsqroot(floatpower(reszarany[0], 2.0) + floatpower(reszarany[1], 2.0))
  333.  
  334. set_hudmessage(0, 0, 255, -1.0, 0.9, 0, 6.0, 1.0)
  335. ShowSyncHudMsg(i, HudUzenet, "Sebesseged : %3.2f", gyors)
  336. }
  337. }
  338. public UjKorrrr(id)
  339. {
  340. cs_reset_user_model(id)
  341. }
  342. public buyZoneSpawn(id)
  343. return HAM_SUPERCEDE;
  344. public plugin_precache()
  345. {
  346. register_forward(FM_Spawn, "fwdSpawn", 0);
  347.  
  348. new allocHostageEntity = engfunc(EngFunc_AllocString, "hostage_entity");
  349. do
  350. {
  351. g_HostageEnt = engfunc(EngFunc_CreateNamedEntity, allocHostageEntity);
  352. }
  353. while( !pev_valid(g_HostageEnt) );
  354.  
  355. engfunc(EngFunc_SetOrigin, g_HostageEnt, Float:{0.0, 0.0, -55000.0});
  356. engfunc(EngFunc_SetSize, g_HostageEnt, Float:{-1.0, -1.0, -1.0}, Float:{1.0, 1.0, 1.0});
  357. dllfunc(DLLFunc_Spawn, g_HostageEnt);
  358.  
  359. static i
  360.  
  361. //General Sounds
  362. //Knife Sounds
  363. for (i=0; i<sizeof g_szJokerHit; i++) precache_sound(g_szJokerHit[i])
  364. for (i=0; i<sizeof g_szJokerSlash; i++) precache_sound(g_szJokerSlash[i])
  365. //When Joker Kill sounds
  366. for (i=0; i<sizeof g_szJokerKill; i++) precache_sound(g_szJokerKill[i])
  367. //Player Spawn Sounds
  368. for (i=0; i<sizeof g_szJokerSpeak; i++) precache_sound(g_szJokerSpeak[i])
  369. //When Joker Dies sound
  370. for (i=0; i<sizeof g_szJokerDie; i++) precache_sound(g_szJokerDie[i])
  371. //Joker Model
  372. for (i=0; i<sizeof g_szJokerModel; i++) precache_model(g_szJokerModel[i])
  373.  
  374. RegisterHam(Ham_Spawn,"func_buyzone","buyZoneSpawn")
  375.  
  376. //Models
  377. //Knife for humans/jokers
  378. precache_model(VIEW_MODELT)
  379. precache_model(PLAYER_MODELT)
  380. precache_model(VIEW_AXE)
  381. precache_model(PLAYER_AXE)
  382. precache_model(VIEW_STRONG)
  383. precache_model(PLAYER_STRONG)
  384. precache_model(VIEW_COMBAT)
  385. precache_model(PLAYER_COMBAT)
  386. precache_model(VIEW_HAMMER)
  387. precache_model(PLAYER_HAMMER)
  388.  
  389. precache_sound("hidden-mod/5.wav")
  390. precache_sound("hidden-mod/4.wav")
  391. precache_sound("hidden-mod/3.wav")
  392. precache_sound("hidden-mod/2.wav")
  393. precache_sound("hidden-mod/1.wav")
  394.  
  395. }
  396.  
  397. public pfn_keyvalue( iEnt )
  398. {
  399. new szClassName[32], szCrap[2]
  400. copy_keyvalue(szClassName, charsmax(szClassName), szCrap, charsmax(szCrap), szCrap, charsmax(szCrap))
  401. if( equal(szClassName, "info_map_parameters") )
  402. {
  403. remove_entity(iEnt)
  404. return PLUGIN_HANDLED
  405. }
  406. return PLUGIN_CONTINUE
  407. }
  408. //Remove Entities
  409. public fwdSpawn(ent)
  410. {
  411. if( !pev_valid(ent) || ent == g_HostageEnt )
  412. {
  413. return FMRES_IGNORED;
  414. }
  415.  
  416. new sClass[32];
  417. pev(ent, pev_classname, sClass, 31);
  418.  
  419. for( new i = 0; i < MAX_REMOVED_ENTITIES; i++ )
  420. {
  421. if( equal(sClass, g_sRemoveEntities[i]) )
  422. {
  423. engfunc(EngFunc_RemoveEntity, ent);
  424. return FMRES_SUPERCEDE;
  425. }
  426. }
  427.  
  428. return FMRES_IGNORED
  429. }
  430.  
  431. public message_VGUIMenu(iMsgid, iDest, id)
  432. {
  433. if(get_msg_arg_int(1) != VGUI_JOIN_TEAM_NUM)
  434. {
  435. return PLUGIN_CONTINUE;
  436. }
  437. set_autojoin_task(id, iMsgid)
  438. return PLUGIN_HANDLED;
  439. }
  440.  
  441. public task_Autojoin(iParam[], id)
  442. {
  443. new iMsgBlock = get_msg_block(iParam[0]);
  444. set_msg_block(iParam[0], BLOCK_SET);
  445. new players[32], pnum
  446. get_players(players, pnum, "ace", "TERRORIST");
  447. if(pnum == 0)
  448. {
  449. engclient_cmd(id, "jointeam", "1")
  450. engclient_cmd(id, "joinclass", "1")
  451. if(is_user_alive(id))
  452. {
  453. user_silentkill(id)
  454. }
  455. set_task(3.0, "respawn", id)
  456. client_printc(id, "%s ujra eledsz 3 masodperc mulva", saychatprefix)
  457. }
  458. else
  459. {
  460. engclient_cmd(id, "jointeam", "2")
  461. engclient_cmd(id, "joinclass", "2")
  462. if(is_user_alive(id))
  463. {
  464. user_silentkill(id)
  465. }
  466. set_task(3.0, "respawn", id)
  467. client_printc(id, "%s ujra eledsz 3 masodperc mulva", saychatprefix)
  468. }
  469. set_msg_block(iParam[0], iMsgBlock)
  470. }
  471.  
  472. public jointeam(id)
  473. return PLUGIN_HANDLED
  474.  
  475. public cmd_fixspawn(id)
  476. {
  477. if(!is_user_alive(id))
  478. {
  479. user_silentkill(id)
  480. set_task(1.0, "respawn", id)
  481. }
  482. }
  483.  
  484. //No Kill
  485. public Forward_ClientKill(id)
  486. {
  487. if( !is_user_alive(id) )
  488. return FMRES_IGNORED
  489.  
  490. client_printc(id, "%s Nem tudod megolni magad!!!", saychatprefix)
  491. return FMRES_SUPERCEDE
  492. }
  493. public Event_DeathMsg()
  494. {
  495. new iKiller = read_data(1)
  496. new iVictim = read_data(2)
  497.  
  498. new killername[33], victimname[33]
  499. get_user_name(iKiller,killername,32)
  500. get_user_name(iVictim,victimname,32)
  501.  
  502. if(iKiller == iVictim)
  503. {
  504. set_task(3.0, "respawn", iKiller)
  505. client_printc(iKiller, "%s ujra eledsz 3 masodperc mulva", saychatprefix)
  506. return PLUGIN_HANDLED
  507. }
  508.  
  509. switch(cs_get_user_team(iKiller))
  510. {
  511. case CS_TEAM_T:
  512. {
  513. if(get_pcvar_num(p_huds) == 1)
  514. {
  515. set_hudmessage(0, 255, 0, 0.05, 0.3, 0, 6.0, 8.0)
  516. ShowSyncHudMsg(0, sync_hud1, "[Joker] %s - megolte - [Human] %s-t",killername,victimname)
  517. }
  518.  
  519. if(get_pcvar_num(p_effects) == 1 || get_pcvar_num(p_effects) == 3)
  520. {
  521. Util_ScreenShake(iKiller, 6.0, 256.0, 16.0)
  522. }
  523.  
  524. client_printc(0, "%s !g[Joker] !n%s - !tmegolte !n- !g[Human] !n%s", saychatprefix, killername, victimname)
  525. new rand = random_num(1,3)
  526. switch(rand)
  527. {
  528. case 1: client_cmd(0, "spk hidden-mod/joker_laugh1")
  529. case 2: client_cmd(0, "spk hidden-mod/joker_laugh2")
  530. case 3: client_cmd(0, "spk hidden-mod/joker_laugh3")
  531. }
  532.  
  533. g_TimerInvisible = 0
  534. invis_count()
  535. set_task(3.0, "respawn", iVictim)
  536. client_printc(iVictim, "%s ujra eledsz 3 masodperc mulva", saychatprefix)
  537. set_task(0.1, "give_screenfade", iKiller)
  538. }
  539. case CS_TEAM_CT:
  540. {
  541. if(get_pcvar_num(p_huds) == 1)
  542. {
  543. set_hudmessage(0, 255, 0, 0.05, 0.3, 0, 6.0, 8.0)
  544. ShowSyncHudMsg(0, sync_hud1, "[Human] %s - megolte - [Joker] %s-t",killername,victimname)
  545. }
  546.  
  547. if(get_pcvar_num(p_effects) == 1)
  548. {
  549. Util_ScreenShake(iKiller, 6.0, 256.0, 16.0)
  550. }
  551. else if(get_pcvar_num(p_effects) == 2)
  552. {
  553. screenfade(iKiller, 255, 0, 0, 25)
  554. }
  555. else if(get_pcvar_num(p_effects) == 3)
  556. {
  557. Util_ScreenShake(iKiller, 6.0, 256.0, 16.0)
  558. screenfade(iKiller, 255, 0, 0, 25)
  559. }
  560.  
  561. client_printc(0, "%s !g[Human] !n%s - !tmegolte !n- !g[Joker] !n%s-t", saychatprefix, killername, victimname)
  562. NRTS[iKiller] = true;
  563. NRTS[iVictim] = true;
  564. set_task(1.0, "Change_Teams", iVictim)
  565. client_cmd(0, "spk hidden-mod/joker_death")
  566. timer = get_pcvar_num(p_time)
  567. countdown()
  568. }
  569. }
  570. return PLUGIN_HANDLED
  571. }
  572.  
  573. public countdown()
  574. {
  575. if( timer == 5 )
  576. set_task(0.1, "countdown2")
  577. if( timer <= 0 )
  578. {
  579. set_hudmessage( 0, 255, 0, -1.0, 0.50, 2, 5.0, 8.0, 0.0, 0.0)
  580. show_hudmessage( 0, "Vigyazzatok a Joker most indul!!!")
  581. new players[32], pnum, tempid
  582. get_players(players, pnum, "ace", "CT");
  583. for( new i = 0; i<pnum; i++ )
  584. {
  585. tempid = players[i]
  586. set_task(1.0, "Change_Teams", tempid)
  587. }
  588. }
  589. else
  590. {
  591. client_print(0, print_center, "A kovetkezo Joker-t kivalasztjak %i masodperc mulva.", timer)
  592. timer--
  593. set_task(1.0, "countdown", 6875)
  594. }
  595. }
  596.  
  597. public countdown2()
  598. {
  599. set_task(1.0, "five")
  600. set_task(2.0, "four")
  601. set_task(3.0, "three")
  602. set_task(4.0, "two")
  603. set_task(5.0, "one")
  604. }
  605.  
  606. public five()
  607. {
  608. client_cmd(0, "spk hidden-mod/5")
  609. }
  610.  
  611. public four()
  612. {
  613. client_cmd(0, "spk hidden-mod/4")
  614. }
  615.  
  616. public three()
  617. {
  618. client_cmd(0, "spk hidden-mod/3")
  619. }
  620.  
  621. public two()
  622. {
  623. client_cmd(0, "spk hidden-mod/2")
  624. }
  625.  
  626. public one()
  627. {
  628. client_cmd(0, "spk hidden-mod/1")
  629. }
  630.  
  631. public FakemetaTouch(ent, id)
  632. {
  633. if (is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T )
  634. return HAM_SUPERCEDE
  635. return HAM_IGNORED
  636. }
  637.  
  638. public Change_Teams(id)
  639. {
  640. if(NRTS[id])
  641. {
  642. switch(cs_get_user_team(id))
  643. {
  644. case CS_TEAM_CT:
  645. {
  646. cs_set_user_team(id, CS_TEAM_T);
  647. client_printc(id, "%s Te most !tJoker !nlettel!", saychatprefix)
  648. set_task(0.1, "respawn", id)
  649. }
  650. case CS_TEAM_T:
  651. {
  652. cs_set_user_team(id, CS_TEAM_CT);
  653. client_printc(id, "%s Te most !tHuman !nvagy!", saychatprefix)
  654. set_task(0.1, "respawn", id)
  655. }
  656. }
  657. }
  658. }
  659.  
  660. public respawn(id)
  661. {
  662. if(is_user_connected(id))
  663. {
  664. ExecuteHamB(Ham_CS_RoundRespawn, id)
  665. }
  666. }
  667.  
  668. public ApplyHumanStuff(id)
  669. {
  670. if(!is_user_alive(id))
  671. return PLUGIN_HANDLED
  672.  
  673. //Primary / Special Features
  674. set_user_footsteps(id, get_pcvar_num(p_humansilent))
  675. set_user_health(id, get_pcvar_num(p_humanhp))
  676. set_user_armor(id, get_pcvar_num(p_humanarmor))
  677. set_user_maxspeed(id, get_pcvar_float(p_humanspeed))
  678. set_user_gravity(id, get_pcvar_float(p_humangravity))
  679. //Reset The Invisibility From Joker
  680. set_user_rendering(id, kRenderFxGlowShell, 0,0,0, kRenderTransAlpha, 255)
  681.  
  682. HasSpeed[id] = true
  683. is_joker[id] = false
  684.  
  685. //Open Guns' Menu
  686. cmd_knifes(id)
  687.  
  688. return PLUGIN_HANDLED
  689. }
  690.  
  691. public ApplyJokerStuff(id)
  692. {
  693. if(!is_user_alive(id))
  694. return PLUGIN_HANDLED
  695.  
  696. // Primary
  697. set_lights("f")
  698. //Set The Joker Model
  699. cs_set_user_model(id, "hm_joker")
  700. //Set The Joker's Knife Model
  701. set_pev(id, pev_viewmodel2, VIEW_MODELT)
  702. set_pev(id, pev_weaponmodel2, PLAYER_MODELT)
  703. //Set Some Special Features
  704. set_user_health(id, get_pcvar_num(p_jokerhp))
  705. set_user_gravity(id, get_pcvar_float(p_jokergravity))
  706. set_user_footsteps(id, get_pcvar_num(p_jokersilent))
  707. set_user_armor(id, get_pcvar_num(p_jokerarmor))
  708. //Some Delay About Speed
  709. set_task(2.0, "set_speed", id)
  710. HasSpeed[id] = true
  711.  
  712. //Spawn Sound
  713. client_cmd(0, "spk %s", g_szJokerSpeak[random(sizeof g_szJokerSpeak - 1)])
  714.  
  715. //Start The Invisible CountDown
  716. g_TimerInvisible = 0
  717. invis_count()
  718.  
  719. // Secondary, ScreenFade(like in CSO)
  720. set_task(0.1, "give_screenfade", id)
  721.  
  722. //Save team to an integer to be able to check it on client_disconnect
  723. is_joker[id] = true
  724.  
  725. return PLUGIN_HANDLED
  726. }
  727.  
  728.  
  729. public give_screenfade(id)
  730. {
  731. message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0, 0, 0}, id)
  732. write_short(~0)
  733. write_short(~0)
  734. write_short(0x0004) // stay faded
  735. write_byte(54)
  736. write_byte(44)
  737. write_byte(97)
  738. write_byte(100)
  739. message_end()
  740. }
  741.  
  742. public set_speed(id)
  743. {
  744. if(!is_user_alive(id))
  745. return PLUGIN_HANDLED
  746. else
  747. set_user_maxspeed(id, get_pcvar_float(p_jokerspeed))
  748.  
  749. return PLUGIN_HANDLED
  750. }
  751.  
  752. /*
  753. Let's explain how this going to work...
  754. First we give 0 to g_TimerIvisible which means will start the countdown.
  755. Second because the invisibility will change each second it will be +4.2%
  756. So As it is 0 the 0 + (g_TimerInvisible*(255/60)) = 0
  757. So it will add 1 to g_TimerInvisible and set_task to 1.0(so the next second the visibility of the joker will add by 4.2%
  758. So as the g_TimerInvisible will be 1 the 0 + (g_TimerInvisible*(255/60)) == 4.2...
  759. */
  760. public invis_count()
  761. {
  762. if(g_TimerInvisible >= 60)
  763. {
  764. new players[32], pnum, tempid
  765. get_players(players, pnum, "ae", "TERRORIST");
  766. for( new i = 0; i<pnum; i++ )
  767. {
  768. tempid = players[i];
  769. if(get_pcvar_num(p_newinvis) == 1)
  770. {
  771. set_user_rendering(tempid, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255)
  772. }
  773. else
  774. {
  775. set_user_rendering(tempid, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255*get_pcvar_num(p_jokerinvis)/100)
  776. }
  777. }
  778. }
  779. else
  780. {
  781. new players[32], pnum, tempid
  782. get_players(players, pnum, "ae", "TERRORIST");
  783. for( new i = 0; i<pnum; i++ )
  784. {
  785. tempid = players[i];
  786. if(get_pcvar_num(p_newinvis) == 1)
  787. {
  788. /* We need a first value which is the 0
  789. After that we will divide the 255(which is the full visibility) with the seconds we want to get the Joker Full Invisible.
  790. After this we will multiply the previous value with the g_TimerInvisible so the final value will change each second
  791. */
  792. set_user_rendering(tempid, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 0 + (g_TimerInvisible*(255/get_pcvar_num(p_seconds))))
  793. }
  794. else
  795. {
  796. set_user_rendering(tempid, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255*get_pcvar_num(p_jokerinvis)/100)
  797. }
  798. }
  799. g_TimerInvisible++
  800. set_task(1.0, "invis_count", 6875)
  801. }
  802. }
  803.  
  804. public FwdTakeDamage(victim, inflictor, attacker, Float:damage, damage_bits)
  805. {
  806. if(is_valid_player(attacker) && get_user_weapon(attacker) == CSW_KNIFE)
  807. {
  808. switch(get_user_team(attacker))
  809. {
  810. case 1:
  811. {
  812. SetHamParamFloat(4, damage * 2);
  813. }
  814. case 2:
  815. {
  816. if(HasDamage[attacker])
  817. {
  818. SetHamParamFloat(4, damage * 2);
  819. }
  820. if(strong[attacker])
  821. {
  822. SetHamParamFloat(4, damage * get_pcvar_float(knife_dam))
  823. }
  824. }
  825. }
  826. }
  827. return HAM_HANDLED
  828. }
  829.  
  830. public client_putinserver(id)
  831. {
  832. jumpnum[id] = 0
  833. dojump[id] = false
  834. }
  835.  
  836. public PlayerInfo(id)
  837. {
  838. if(is_user_alive(id))
  839. {
  840. new h = get_user_health(id)
  841. new s = get_user_armor(id)
  842. new e = cs_get_user_money(id)
  843.  
  844. switch(cs_get_user_team(id))
  845. {
  846. case CS_TEAM_CT:
  847. {
  848.  
  849. set_hudmessage(0, 0, 255, 0.19, 0.87, 0, 6.0, 1.0)
  850. show_hudmessage(id, "HP(Elet): %i | AP(Pajzs): %i | OSZTALY: ->[HUMAN]<- | PENZ: %i", h,s,e)
  851.  
  852. }
  853. case CS_TEAM_T:
  854. {
  855. set_hudmessage(255, 0, 0, 0.19, 0.87, 0, 6.0, 1.0)
  856. show_hudmessage(id, "HP(Elet): %i | AP(Pajzs): %i | OSZTALY: ->[JOKER]<- | PENZ: %i", h,s,e)
  857. }
  858. }
  859. }
  860. }
  861.  
  862. public client_disconnect(id)
  863. {
  864. jumpnum[id] = 0
  865. dojump[id] = false
  866. //Check If the Disconnected Player was Joker
  867. if(is_joker[id])
  868. {
  869. client_printc(0, "%s !gA joker !negy! !tveletlen szeruen kivalasztott CT-Bol lesz!n!", saychatprefix)
  870. static g_iPlayer;
  871. g_iPlayer = GetRandomCTiPlayer()
  872. if(g_iPlayer > 0)
  873. {
  874. cs_set_user_team(g_iPlayer, CS_TEAM_T)
  875. set_task(0.1, "respawn", g_iPlayer)
  876. }
  877. }
  878. }
  879.  
  880. GetRandomCTiPlayer()
  881. {
  882. static iPlayers[32], iNum;
  883. get_players(iPlayers, iNum, "ae", "CT");
  884. return iNum ? iPlayers[random(iNum)] : 0;
  885. }
  886.  
  887. public client_PreThink(id)
  888. {
  889. if(HasMulti[id] && is_user_alive(id))
  890. {
  891. new nbut = get_user_button(id)
  892. new obut = get_user_oldbutton(id)
  893. if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
  894. {
  895. if(jumpnum[id] < get_pcvar_num(p_shopmaxjumps))
  896. {
  897. dojump[id] = true
  898. jumpnum[id]++
  899. return PLUGIN_CONTINUE
  900. }
  901. }
  902. if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
  903. {
  904. jumpnum[id] = 0
  905. return PLUGIN_CONTINUE
  906. }
  907. }
  908. return PLUGIN_CONTINUE
  909. }
  910.  
  911. public client_PostThink(id)
  912. {
  913. if(!is_user_alive(id)) return PLUGIN_CONTINUE
  914. if(HasMulti[id])
  915. {
  916. if(dojump[id])
  917. {
  918. new Float:velocity[3]
  919. entity_get_vector(id,EV_VEC_velocity,velocity)
  920. velocity[2] = random_float(265.0,285.0)
  921. entity_set_vector(id,EV_VEC_velocity,velocity)
  922. dojump[id] = false
  923. return PLUGIN_CONTINUE
  924. }
  925. }
  926. return PLUGIN_CONTINUE
  927. }
  928.  
  929. public CurWeapon(id)
  930. {
  931. new weaponID = read_data(2)
  932.  
  933. if(is_user_alive(id))
  934. {
  935. switch(cs_get_user_team(id))
  936. {
  937. case CS_TEAM_T:
  938. {
  939. if(weaponID == CSW_KNIFE)
  940. {
  941. set_pev(id, pev_viewmodel2, VIEW_MODELT)
  942. set_pev(id, pev_weaponmodel2, PLAYER_MODELT)
  943. }
  944. if(HasSpeed[id])
  945. {
  946. set_user_maxspeed(id, get_pcvar_float(p_jokerspeed))
  947. }
  948. }
  949. case CS_TEAM_CT:
  950. {
  951. if(weaponID == CSW_KNIFE && strong[id])
  952. {
  953. set_pev(id, pev_viewmodel2, VIEW_STRONG)
  954. set_pev(id, pev_weaponmodel2, PLAYER_STRONG)
  955. }
  956. if(weaponID == CSW_KNIFE && combat[id])
  957. {
  958. set_pev(id, pev_viewmodel2, VIEW_COMBAT)
  959. set_pev(id, pev_weaponmodel2, PLAYER_COMBAT)
  960. }
  961. if(weaponID == CSW_KNIFE && axe[id])
  962. {
  963. set_pev(id, pev_viewmodel2, VIEW_AXE)
  964. set_pev(id, pev_weaponmodel2, PLAYER_AXE)
  965. }
  966. if(weaponID == CSW_KNIFE && defaul[id])
  967. {
  968. set_pev(id, pev_viewmodel2, VIEW_DEFAULT)
  969. set_pev(id, pev_weaponmodel2, PLAYER_DEFAULT)
  970. }
  971. if(weaponID == CSW_KNIFE && hammer[id])
  972. {
  973. set_pev(id, pev_viewmodel2, VIEW_HAMMER)
  974. set_pev(id, pev_weaponmodel2, PLAYER_HAMMER)
  975. set_user_maxspeed(id, get_pcvar_float(knife_speed))
  976. }
  977. else if(HasSpeed[id])
  978. {
  979. set_user_maxspeed(id, get_pcvar_float(p_humanspeed))
  980. }
  981. else if(HasShopSpeed[id])
  982. {
  983. set_user_maxspeed(id, get_pcvar_float(p_shopspeed))
  984. }
  985. }
  986. }
  987. }
  988. return PLUGIN_HANDLED
  989. }
  990.  
  991. public Forward_EmitSound(id,channel,const sample[],Float:volume,Float:attn,flags,pitch)
  992. {
  993. if (!is_user_connected(id))
  994. return FMRES_IGNORED;
  995.  
  996. if(cs_get_user_team(id) == CS_TEAM_T)
  997. {
  998. if (equal(sample[8], "kni", 3))
  999. {
  1000. if (equal(sample[14], "sla", 3))
  1001. {
  1002. emit_sound(id,channel,g_szJokerSlash[random(sizeof g_szJokerSlash - 1)],volume,attn,flags,pitch)
  1003. return FMRES_SUPERCEDE;
  1004. }
  1005. if (equal(sample[14], "hit", 3) || equal(sample[14], "sta", 3)) // hit & Stab
  1006. {
  1007. emit_sound(id,channel,g_szJokerHit[random(sizeof g_szJokerHit - 1)],volume,attn,flags,pitch)
  1008. return FMRES_SUPERCEDE
  1009. }
  1010. }
  1011. }
  1012. return FMRES_IGNORED
  1013. }
  1014.  
  1015. public PlayerSpawn(id)
  1016. {
  1017. if( !is_user_alive( id ) )
  1018. return HAM_IGNORED;
  1019.  
  1020. //Firstly Reset The Bools
  1021. NRTS[id] = false
  1022. jumpnum[id] = 0
  1023. dojump[id] = false
  1024. HasDamage[id] = false
  1025. HasGravity[id] = false
  1026. HasMulti[id] = false
  1027. HasShopSpeed[id] = false
  1028. HasSpeed[id] = false
  1029. knifes_used[id] = false
  1030. prima_used[id] = false
  1031. second_used[id] = false
  1032.  
  1033. //Secondly Set The HUD Bar
  1034. set_task(0.1, "PlayerInfo", id, _, _, "b")
  1035.  
  1036. //Thirdly, Strip All Weapons
  1037. strip_user_weapons(id)
  1038. give_item( id, "weapon_knife" )
  1039.  
  1040. //Finally Give Some Special Features
  1041. switch(cs_get_user_team(id))
  1042. {
  1043. case CS_TEAM_T:
  1044. {
  1045. set_task(0.2, "ApplyJokerStuff", id)
  1046. }
  1047. case CS_TEAM_CT:
  1048. {
  1049. set_task(0.2, "ApplyHumanStuff", id)
  1050. }
  1051. }
  1052.  
  1053. //Spam Message :P
  1054. client_printc(id, "%s !g****Udvozlunk a Hidden Mod-Ban****", saychatprefix)
  1055. client_printc(id, "%s !g***!nJo Jatekot!g***", saychatprefix)
  1056.  
  1057. return HAM_IGNORED;
  1058. }
  1059.  
  1060. public event_newround()
  1061. {
  1062. if(get_pcvar_num(p_fogenable) == 1)
  1063. {
  1064. create_fog(get_pcvar_num(p_fogr), get_pcvar_num(p_fogg), get_pcvar_num(p_fogb), get_pcvar_num(p_fogdens))
  1065. }
  1066. }
  1067.  
  1068. public cmd_menu(id)
  1069. {
  1070. new menu3 = menu_create("[Hidden-Mod] Menu:","cmd_hidden_handler")
  1071.  
  1072. if(cs_get_user_team(id) == CS_TEAM_CT)
  1073. {
  1074. menu_additem(menu3, "\yKes Valasztas","1",0)
  1075. }
  1076. else
  1077. {
  1078. menu_additem(menu3, "\yKes Valasztas","1",0)
  1079. }
  1080.  
  1081. menu_additem(menu3, "\r[\yHidden\r] \wBolt","2",0)
  1082.  
  1083. if(get_user_flags(id) & ADMIN_LEVEL_A)
  1084. {
  1085. menu_additem(menu3, "\wCsapatValto Menu \r(Adminoknak)","3",0)
  1086. }
  1087. else
  1088. {
  1089. menu_additem(menu3, "\wCsapatValto Menu \r(Adminoknak)","3",0)
  1090. }
  1091.  
  1092. menu_setprop(menu3, MPROP_EXIT, MEXIT_ALL)
  1093. menu_display(id, menu3, 0)
  1094. return PLUGIN_HANDLED
  1095. }
  1096.  
  1097. public cmd_hidden_handler(id, menu3, item)
  1098. {
  1099. if( item == MENU_EXIT )
  1100. {
  1101. menu_destroy(menu3);
  1102. return PLUGIN_HANDLED;
  1103. }
  1104.  
  1105. new data[6], szName[64];
  1106. new access, callback;
  1107. menu_item_getinfo(menu3, item, access, data,charsmax(data), szName,charsmax(szName), callback);
  1108. new key = str_to_num(data);
  1109. switch(key)
  1110. {
  1111. case 1:
  1112. {
  1113. if(cs_get_user_team(id) == CS_TEAM_CT)
  1114. {
  1115. cmd_knifes(id)
  1116. }
  1117. else
  1118. {
  1119. client_printc(id, "%s CT Kell legyel hogy megnyisd ezt a menut!", saychatprefix)
  1120. }
  1121. }
  1122. case 2:
  1123. {
  1124. cmd_shop(id)
  1125. }
  1126. case 3:
  1127. {
  1128. if(get_user_flags(id) & ADMIN_LEVEL_A)
  1129. {
  1130. client_cmd(id, "amx_teammenu")
  1131. }
  1132. else
  1133. {
  1134. client_printc(id, "%s ADMIN Kell legyel hogy megnyisd ezt a menut!", saychatprefix)
  1135. }
  1136. }
  1137. }
  1138. menu_destroy(menu3)
  1139. return PLUGIN_HANDLED
  1140. }
  1141.  
  1142.  
  1143. public cmd_shop(id)
  1144. {
  1145. if(is_user_alive(id))
  1146. {
  1147. if(get_pcvar_num(p_shop) == 1)
  1148. {
  1149. if(cs_get_user_team(id) == CS_TEAM_CT)
  1150. {
  1151. new shop[101];
  1152.  
  1153. new menu = menu_create("\rHidden Mod Bolt [HUMAN]:", "humans_handler")
  1154. formatex(shop,100, "%i HP [\r%i\w$]",get_pcvar_num(p_shophp), get_pcvar_num(p_hpcost))
  1155. menu_additem(menu, shop, "1", 0)
  1156. formatex(shop,100, "%i Pancel [\r%i\w$]",get_pcvar_num(p_shoparmor), get_pcvar_num(p_armorcost))
  1157. menu_additem(menu, shop, "2", 0)
  1158. formatex(shop,100, "Tobb Sebesseg [\r%i\w$]", get_pcvar_num(p_speedcost))
  1159. menu_additem(menu, shop, "3", 0)
  1160. formatex(shop,100, "Gyenge Gravitacio [\r%i\w$]", get_pcvar_num(p_gravcost))
  1161. menu_additem(menu, shop, "4", 0)
  1162. formatex(shop,100, "Tobb Ugras [\r%i\w$]", get_pcvar_num(p_multicost))
  1163. menu_additem(menu, shop, "5", 0)
  1164. formatex(shop,100, "M4A1 & AK47 [\r%i\w$]", get_pcvar_num(p_akmcost))
  1165. menu_additem(menu, shop, "6", 0)
  1166. formatex(shop,100, "Dupla Sebzes [\r%i\w$]", get_pcvar_num(p_damcost))
  1167. menu_additem(menu, shop, "7", 0)
  1168. menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  1169. menu_display(id, menu, 0);
  1170. }
  1171. else if(cs_get_user_team(id) == CS_TEAM_T)
  1172. {
  1173. new shopt[101];
  1174.  
  1175. new menu2 = menu_create("\rHidden Mod Bolt [JOKER]:", "jokers_handler")
  1176. formatex(shopt,100, "%i HP [\r%i\w$]",get_pcvar_num(p_shopthp), get_pcvar_num(p_hptcost))
  1177. menu_additem(menu2, shopt, "1", 0)
  1178. formatex(shopt,100, "Tobb Ugras [\r%i\w$]", get_pcvar_num(p_multitcost))
  1179. menu_additem(menu2, shopt, "2", 0)
  1180. formatex(shopt,100, "Dupla Sebzes [\r%i\w$]", get_pcvar_num(p_damtcost))
  1181. menu_additem(menu2, shopt, "3", 0)
  1182. menu_setprop(menu2, MPROP_EXIT, MEXIT_ALL)
  1183. menu_display(id, menu2, 0)
  1184. }
  1185. }
  1186. else
  1187. {
  1188. client_printc(id, "%s A !gBolt !nki lett !gKapcsolva", saychatprefix)
  1189. }
  1190. }
  1191. }
  1192.  
  1193. public jokers_handler(id, menu2, item)
  1194. {
  1195. if( item == MENU_EXIT )
  1196. {
  1197. menu_destroy(menu2)
  1198. return PLUGIN_HANDLED
  1199. }
  1200.  
  1201. new data[6], szName[64]
  1202. new access, callback
  1203. menu_item_getinfo(menu2, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  1204. new key = str_to_num(data)
  1205. switch(key)
  1206. {
  1207. case 1:
  1208. {
  1209. if(cs_get_user_money(id) < get_pcvar_num(p_hptcost))
  1210. {
  1211. client_printc(id, "%s Sajnos !gnincs !n eleg penzed a vasarlashoz!", saychatprefix)
  1212. }
  1213. else
  1214. {
  1215. set_user_health(id, get_pcvar_num(p_shopthp))
  1216. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_hptcost))
  1217. client_printc(id, "%s Megvetted a !gTobb HP-t", saychatprefix)
  1218. }
  1219. }
  1220. case 2:
  1221. {
  1222. if(cs_get_user_money(id) < get_pcvar_num(p_multitcost))
  1223. {
  1224. client_printc(id, "%s Sajnos !gnincs !n eleg penzed a vasarlashoz!", saychatprefix)
  1225. }
  1226. else
  1227. {
  1228. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_multitcost))
  1229. HasMulti[id] = true
  1230. client_printc(id, "%s Megvetted a !gTobb Ugras-t", saychatprefix)
  1231. }
  1232. }
  1233. case 3:
  1234. {
  1235. if(cs_get_user_money(id) < get_pcvar_num(p_damtcost))
  1236. {
  1237. client_printc(id, "%s Sajnos !gnincs !n eleg penzed a vasarlashoz!", saychatprefix)
  1238. }
  1239. else
  1240. {
  1241. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_damtcost))
  1242. HasDamage[id] = true
  1243. client_printc(id, "%s Megvetted a !gDupla Sebzest !n az osszes fegyverre!", saychatprefix)
  1244. }
  1245. }
  1246. }
  1247. menu_destroy(menu2)
  1248. return PLUGIN_HANDLED
  1249. }
  1250.  
  1251. public humans_handler(id, menu, item)
  1252. {
  1253. if( item == MENU_EXIT )
  1254. {
  1255. menu_destroy(menu)
  1256. return PLUGIN_HANDLED
  1257. }
  1258.  
  1259. new data[6], szName[64]
  1260. new access, callback
  1261. menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  1262. new key = str_to_num(data)
  1263. switch(key)
  1264. {
  1265. case 1:
  1266. {
  1267. if(cs_get_user_money(id) < get_pcvar_num(p_hpcost))
  1268. {
  1269. client_printc(id, "%s Sajnos !gnincs !n eleg penzed a vasarlashoz!", saychatprefix)
  1270. }
  1271. else
  1272. {
  1273. set_user_health(id, get_pcvar_num(p_shophp))
  1274. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_hpcost))
  1275. client_printc(id, "%s Megvetted a !gTobb HP-t", saychatprefix)
  1276. }
  1277. }
  1278. case 2:
  1279. {
  1280. if(cs_get_user_money(id) < get_pcvar_num(p_armorcost))
  1281. {
  1282. client_printc(id, "%s Sajnos !gnincs !n eleg penzed a vasarlashoz!", saychatprefix)
  1283. }
  1284. else
  1285. {
  1286. set_user_armor(id, get_pcvar_num(p_shoparmor))
  1287. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_armorcost))
  1288. client_printc(id, "%s Megvetted a !gTobb Pancelt", saychatprefix)
  1289. }
  1290. }
  1291. case 3:
  1292. {
  1293. if(cs_get_user_money(id) < get_pcvar_num(p_speedcost))
  1294. {
  1295. client_printc(id, "%s Sajnos !gnincs !n eleg penzed a vasarlashoz!", saychatprefix)
  1296. }
  1297. else
  1298. {
  1299. set_user_maxspeed(id, get_pcvar_float(p_shopspeed))
  1300. HasShopSpeed[id] = true
  1301. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_speedcost))
  1302. client_printc(id, "%s Megvetted a !gTobb Sebesseget", saychatprefix)
  1303. }
  1304. }
  1305. case 4:
  1306. {
  1307. if(cs_get_user_money(id) < get_pcvar_num(p_gravcost))
  1308. {
  1309. client_printc(id, "%s Sajnos !gnincs !n eleg penzed a vasarlashoz!", saychatprefix)
  1310. }
  1311. else
  1312. {
  1313. set_user_gravity(id, get_pcvar_float(p_shopgravity))
  1314. HasGravity[id] = true
  1315. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_gravcost))
  1316. client_printc(id, "%s Megvetted a !gGyenge Gravitacio-t", saychatprefix)
  1317. }
  1318. }
  1319. case 5:
  1320. {
  1321. if(cs_get_user_money(id) < get_pcvar_num(p_multicost))
  1322. {
  1323. client_printc(id, "%s Sajnos !gnincs !n eleg penzed a vasarlashoz!", saychatprefix)
  1324. }
  1325. else
  1326. {
  1327. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_multicost))
  1328. HasMulti[id] = true
  1329. client_printc(id, "%s Megvetted a !gTobb Ugrast", saychatprefix)
  1330. }
  1331. }
  1332. case 6:
  1333. {
  1334. if(cs_get_user_money(id) < get_pcvar_num(p_akmcost))
  1335. {
  1336. client_printc(id, "%s Sajnos !gnincs !n eleg penzed a vasarlashoz!", saychatprefix)
  1337. }
  1338. else
  1339. {
  1340. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_akmcost))
  1341. client_printc(id, "%s Megvetted a !gAK47 & M4A1-et", saychatprefix)
  1342. give_item( id, "weapon_m4a1" );
  1343. cs_set_user_bpammo( id, CSW_M4A1, 90 )
  1344. give_item( id, "weapon_ak47" );
  1345. cs_set_user_bpammo( id, CSW_AK47, 90 )
  1346. }
  1347. }
  1348. case 7:
  1349. {
  1350. if(cs_get_user_money(id) < get_pcvar_num(p_damcost))
  1351. {
  1352. client_printc(id, "%s Sajnos !gnincs !n eleg penzed a vasarlashoz!", saychatprefix)
  1353. }
  1354. else
  1355. {
  1356. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_damcost))
  1357. HasDamage[id] = true
  1358. client_printc(id, "%s Megvetted a !gDupla Sebzest!", saychatprefix)
  1359. }
  1360. }
  1361. }
  1362. menu_destroy(menu)
  1363. return PLUGIN_HANDLED
  1364. }
  1365.  
  1366. public cmd_knifes(id)
  1367. {
  1368. if(knifes_used[id])
  1369. {
  1370. client_printc(id, "%s varj a !tkovetkezo korig !nhogy !gmegnyisd !na menu-t!", saychatprefix)
  1371. gunsmenu(id)
  1372. return PLUGIN_CONTINUE
  1373. }
  1374.  
  1375. knifes = menu_create("[Hidden-Mod] Kes Menu:","cmd_knifes_handler")
  1376. if(get_pcvar_num(p_unlock) == 1)
  1377. {
  1378. new temp[101]
  1379. if(!itemunlocked[id][8])
  1380. {
  1381. formatex(temp,100, "SkullAxe - HP\y++ \w(\r%i\y$\w)",get_pcvar_num(p_unlaxe))
  1382. menu_additem(knifes, temp,"1",0);
  1383. }
  1384. else
  1385. {
  1386. menu_additem(knifes, "SkullAxe - HP\y++","1",0)
  1387. }
  1388.  
  1389. if(!itemunlocked[id][9])
  1390. {
  1391. formatex(temp,100, "Combat - Gravitacio\y-- \w(\r%i\y$\w)",get_pcvar_num(p_unlcombat))
  1392. menu_additem(knifes, temp,"2",0)
  1393. }
  1394. else
  1395. {
  1396. menu_additem(knifes, "Combat - Gravitacio\y--","2",0)
  1397. }
  1398.  
  1399. if(!itemunlocked[id][7])
  1400. {
  1401. formatex(temp,100, "Katana - Sebzes\y++ \w(\r%i\y$\w)",get_pcvar_num(p_unlstrong))
  1402. menu_additem(knifes, temp,"3",0);
  1403. }
  1404. else
  1405. {
  1406. menu_additem(knifes, "Katana - Sebzes\y++","3",0)
  1407. }
  1408. }
  1409. else
  1410. {
  1411. menu_additem(knifes, "SkullAxe - HP\y++","1",0)
  1412. menu_additem(knifes, "Combat - Gravitacio\y--","2",0)
  1413. menu_additem(knifes, "Katana - Sebzes\y++","3",0)
  1414. }
  1415.  
  1416. if(get_pcvar_num(p_vipknife) == 1)
  1417. {
  1418.  
  1419. if(get_user_flags(id) & VIP_FLAG)
  1420. {
  1421. menu_additem(knifes, "Balisong - Sebesseg\y++","4",0)
  1422. }
  1423. else
  1424. {
  1425. menu_additem(knifes, "\dBalisong - Sebesseg++ - CSAK VIP-EKNEK","4",0)
  1426. }
  1427. }
  1428. else
  1429. {
  1430. menu_additem(knifes, "Balisong - Sebesseg\y++","4",0)
  1431. }
  1432.  
  1433. menu_additem(knifes, "Sima Kes - Gravitacio\y-","5",0)
  1434. menu_setprop(knifes, MPROP_EXIT, MEXIT_ALL)
  1435.  
  1436. if(cs_get_user_team(id) == CS_TEAM_CT)
  1437. {
  1438. menu_display(id, knifes, 0)
  1439. }
  1440.  
  1441. return PLUGIN_HANDLED
  1442. }
  1443.  
  1444. public cmd_knifes_handler(id, knifes, item)
  1445. {
  1446. if( item == MENU_EXIT)
  1447. {
  1448. menu_destroy(knifes)
  1449. return PLUGIN_HANDLED
  1450. }
  1451.  
  1452. new data[6], szName[64]
  1453. new access, callback
  1454. menu_item_getinfo(knifes, item, access, data,charsmax(data), szName,charsmax(szName), callback)
  1455. new key = str_to_num(data)
  1456. switch(key)
  1457. {
  1458. case 1:
  1459. {
  1460. if(get_pcvar_num(p_unlock) == 1)
  1461. {
  1462. if(!itemunlocked[id][8])
  1463. {
  1464. if(cs_get_user_money(id) < get_pcvar_num(p_unlaxe))
  1465. {
  1466. client_printc(id, "%s nincs !geleg penzed !nhogy felold!", saychatprefix)
  1467. cmd_knifes(id)
  1468.  
  1469. }
  1470. else
  1471. {
  1472. axe[id] = true
  1473. combat[id] = false
  1474. strong[id] = false
  1475. hammer[id] = false
  1476. defaul[id] = false
  1477. knifes_used[id] = true
  1478. set_pev(id, pev_viewmodel2, VIEW_AXE)
  1479. set_pev(id, pev_weaponmodel2, PLAYER_AXE)
  1480. set_user_health(id, get_user_health(id) + get_pcvar_num(knife_hp))
  1481. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_unlaxe))
  1482. itemunlocked[id][8] = true
  1483. gunsmenu(id)
  1484. }
  1485. }
  1486. else
  1487. {
  1488. axe[id] = true
  1489. combat[id] = false
  1490. strong[id] = false
  1491. hammer[id] = false
  1492. defaul[id] = false
  1493. knifes_used[id] = true
  1494. set_pev(id, pev_viewmodel2, VIEW_AXE)
  1495. set_pev(id, pev_weaponmodel2, PLAYER_AXE)
  1496. set_user_health(id, get_user_health(id) + get_pcvar_num(knife_hp))
  1497. gunsmenu(id)
  1498. }
  1499. }
  1500. else
  1501. {
  1502. axe[id] = true
  1503. combat[id] = false
  1504. strong[id] = false
  1505. hammer[id] = false
  1506. defaul[id] = false
  1507. knifes_used[id] = true
  1508. set_pev(id, pev_viewmodel2, VIEW_AXE)
  1509. set_pev(id, pev_weaponmodel2, PLAYER_AXE)
  1510. set_user_health(id, get_user_health(id) + get_pcvar_num(knife_hp))
  1511. gunsmenu(id)
  1512. }
  1513. }
  1514. case 2:
  1515. {
  1516. if(axe[id])
  1517. {
  1518. set_user_health(id, get_user_health(id) - get_pcvar_num(knife_hp))
  1519. }
  1520.  
  1521. if(get_pcvar_num(p_unlock) == 1)
  1522. {
  1523. if(!itemunlocked[id][9])
  1524. {
  1525. if(cs_get_user_money(id) < get_pcvar_num(p_unlcombat))
  1526. {
  1527. client_printc(id, "%s nincs !geleg penzed !nhogy felold!", saychatprefix)
  1528. cmd_knifes(id)
  1529. }
  1530. else
  1531. {
  1532. axe[id] = false
  1533. combat[id] = true
  1534. strong[id] = false
  1535. hammer[id] = false
  1536. defaul[id] = false
  1537. knifes_used[id] = true
  1538. set_pev(id, pev_viewmodel2, VIEW_COMBAT)
  1539. set_pev(id, pev_weaponmodel2, PLAYER_COMBAT)
  1540. set_user_gravity(id, get_pcvar_float(knife_grav1))
  1541. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_unlcombat))
  1542. itemunlocked[id][9] = true
  1543. gunsmenu(id)
  1544. }
  1545. }
  1546. else
  1547. {
  1548. axe[id] = false
  1549. combat[id] = true
  1550. strong[id] = false
  1551. hammer[id] = false
  1552. defaul[id] = false
  1553. knifes_used[id] = true
  1554. set_pev(id, pev_viewmodel2, VIEW_COMBAT)
  1555. set_pev(id, pev_weaponmodel2, PLAYER_COMBAT)
  1556. set_user_gravity(id, get_pcvar_float(knife_grav1))
  1557. gunsmenu(id)
  1558. }
  1559. }
  1560. else
  1561. {
  1562. axe[id] = false
  1563. combat[id] = true
  1564. strong[id] = false
  1565. hammer[id] = false
  1566. defaul[id] = false
  1567. knifes_used[id] = true
  1568. set_pev(id, pev_viewmodel2, VIEW_COMBAT)
  1569. set_pev(id, pev_weaponmodel2, PLAYER_COMBAT)
  1570. set_user_gravity(id, get_pcvar_float(knife_grav1))
  1571. gunsmenu(id)
  1572. }
  1573. }
  1574. case 3:
  1575. {
  1576. if(axe[id])
  1577. {
  1578. set_user_health(id, get_user_health(id) - get_pcvar_num(knife_hp))
  1579. }
  1580.  
  1581. if(get_pcvar_num(p_unlock) == 1)
  1582. {
  1583. if(!itemunlocked[id][7])
  1584. {
  1585. if(cs_get_user_money(id) < get_pcvar_num(p_unlstrong))
  1586. {
  1587. client_printc(id, "%s nincs !geleg penzed !nhogy felold!", saychatprefix)
  1588. cmd_knifes(id)
  1589.  
  1590. }
  1591. else
  1592. {
  1593. axe[id] = false
  1594. combat[id] = false
  1595. strong[id] = true
  1596. hammer[id] = false
  1597. defaul[id] = false
  1598. knifes_used[id] = true
  1599. set_pev(id, pev_viewmodel2, VIEW_STRONG)
  1600. set_pev(id, pev_weaponmodel2, PLAYER_STRONG)
  1601. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_unlstrong))
  1602. itemunlocked[id][7] = true
  1603. gunsmenu(id)
  1604. }
  1605. }
  1606. else
  1607. {
  1608. axe[id] = false
  1609. combat[id] = false
  1610. strong[id] = true
  1611. hammer[id] = false
  1612. defaul[id] = false
  1613. knifes_used[id] = true
  1614. set_pev(id, pev_viewmodel2, VIEW_STRONG)
  1615. set_pev(id, pev_weaponmodel2, PLAYER_STRONG)
  1616. gunsmenu(id)
  1617. }
  1618. }
  1619. else
  1620. {
  1621. axe[id] = false
  1622. combat[id] = false
  1623. strong[id] = true
  1624. hammer[id] = false
  1625. defaul[id] = false
  1626. knifes_used[id] = true
  1627. set_pev(id, pev_viewmodel2, VIEW_STRONG)
  1628. set_pev(id, pev_weaponmodel2, PLAYER_STRONG)
  1629. gunsmenu(id)
  1630. }
  1631. }
  1632. case 4:
  1633. {
  1634. if(get_pcvar_num(p_vipknife) != 1 || get_user_flags(id) & VIP_FLAG)
  1635. {
  1636. if(axe[id])
  1637. {
  1638. set_user_health(id, get_user_health(id) - get_pcvar_num(knife_hp))
  1639. }
  1640.  
  1641. axe[id] = false
  1642. combat[id] = false
  1643. strong[id] = false
  1644. hammer[id] = true
  1645. defaul[id] = false
  1646. knifes_used[id] = true
  1647. set_pev(id, pev_viewmodel2, VIEW_HAMMER)
  1648. set_pev(id, pev_weaponmodel2, PLAYER_HAMMER)
  1649. set_user_maxspeed(id, get_pcvar_float(knife_speed))
  1650. gunsmenu(id)
  1651. }
  1652. else
  1653. {
  1654. client_printc(id, "%s VIP Kell legyel !nhogy kivalaszd ezt a !gkest.", saychatprefix)
  1655. }
  1656. }
  1657. case 5:
  1658. {
  1659. if(axe[id])
  1660. {
  1661. set_user_health(id, get_user_health(id) - get_pcvar_num(knife_hp))
  1662. }
  1663.  
  1664. axe[id] = false
  1665. combat[id] = false
  1666. strong[id] = false
  1667. hammer[id] = false
  1668. defaul[id] = true
  1669. knifes_used[id] = true
  1670. set_pev(id, pev_viewmodel2, VIEW_DEFAULT)
  1671. set_pev(id, pev_weaponmodel2, PLAYER_DEFAULT)
  1672. set_user_gravity(id, get_pcvar_float(knife_grav2))
  1673. gunsmenu(id)
  1674. }
  1675. }
  1676. menu_destroy(knifes)
  1677. return PLUGIN_HANDLED
  1678. }
  1679.  
  1680. public gunsmenu(id)
  1681. {
  1682. if(prima_used[id])
  1683. {
  1684. client_printc(id, "%s varj a !tkovetkezo korig !nhogy !gmegnyisd !na menu-t!", saychatprefix)
  1685. pistolsmenu(id)
  1686. return PLUGIN_CONTINUE
  1687. }
  1688.  
  1689. menu1 = menu_create("\r[\wHuman\r] \yFegyver Menu :", "gunsmenu_Handle")
  1690. if(get_pcvar_num(p_unlock) == 1)
  1691. {
  1692. new temp[101];
  1693. if(!itemunlocked[id][0])
  1694. {
  1695. formatex(temp,100, "Maverick - \yM4A1 \w(\r%i\y$\w)",get_pcvar_num(p_unlm4))
  1696. menu_additem(menu1, temp,"1",0);
  1697. }
  1698. else
  1699. {
  1700. menu_additem(menu1, "Maverick - \yM4A1" , "1", 0)
  1701. }
  1702.  
  1703. if(!itemunlocked[id][1])
  1704. {
  1705. formatex(temp,100, "Kalashnikov - \yAK47 \w(\r%i\y$\w)",get_pcvar_num(p_unlak))
  1706. menu_additem(menu1, temp,"2",0);
  1707. }
  1708. else
  1709. {
  1710. menu_additem(menu1, "Kalashnikov - \yAK47" , "2", 0)
  1711. }
  1712.  
  1713. if(!itemunlocked[id][4])
  1714. {
  1715. formatex(temp,100, "Magnum Sniper - \yAWP \w(\r%i\y$\w)",get_pcvar_num(p_unlawp))
  1716. menu_additem(menu1, temp,"3",0)
  1717. }
  1718. else
  1719. {
  1720. menu_additem(menu1, "Magnum Sniper - \yAWP" , "3", 0)
  1721. }
  1722.  
  1723. if(!itemunlocked[id][3])
  1724. {
  1725. formatex(temp,100, "ES C90 - \yP90 \w(\r%i\y$\w)",get_pcvar_num(p_unlp90))
  1726. menu_additem(menu1, temp,"4",0)
  1727. }
  1728. else
  1729. {
  1730. menu_additem(menu1, "ES C90 - \yP90" , "4", 0)
  1731. }
  1732.  
  1733. if(!itemunlocked[id][2])
  1734. {
  1735. formatex(temp,100, "IDF Defender - \yGalil \w(\r%i\y$\w)",get_pcvar_num(p_unlgal))
  1736. menu_additem(menu1, temp,"5",0)
  1737. }
  1738. else
  1739. {
  1740. menu_additem(menu1, "IDF Defender - \yGalil" , "5", 0)
  1741. }
  1742. }
  1743. else
  1744. {
  1745. menu_additem(menu1, "Maverick - \yM4A1" , "1", 0)
  1746. menu_additem(menu1, "Kalashnikov \yAK47", "2", 0)
  1747. menu_additem(menu1, "Magnum Sniper - \yAWP" , "3", 0)
  1748. menu_additem(menu1, "ES C90 \yP90" , "4", 0)
  1749. menu_additem(menu1, "IDF Defender - \yGalil" , "5", 0)
  1750. }
  1751.  
  1752. menu_additem(menu1, "Clarion 5.56 \yFamas", "6", 0)
  1753. menu_additem(menu1, "KM Submachine Gun \yMp5 Navy", "7", 0)
  1754. menu_setprop(menu1, MPROP_EXIT, MEXIT_ALL);
  1755.  
  1756. if(cs_get_user_team(id) == CS_TEAM_CT)
  1757. {
  1758. menu_display(id, menu1, 0)
  1759. }
  1760.  
  1761. return PLUGIN_HANDLED
  1762. }
  1763.  
  1764. public gunsmenu_Handle(id, menu1, item)
  1765. {
  1766. if (item == MENU_EXIT || cs_get_user_team(id) != CS_TEAM_CT )
  1767. {
  1768. menu_destroy(menu1)
  1769. return PLUGIN_HANDLED
  1770. }
  1771.  
  1772. new data[6], iName[64]
  1773. new access, callback
  1774.  
  1775. menu_item_getinfo(menu1, item, access, data,5, iName, 63, callback)
  1776. new key = str_to_num(data)
  1777.  
  1778. switch(key)
  1779. {
  1780. case 1:
  1781. {
  1782. if(get_pcvar_num(p_unlock) == 1)
  1783. {
  1784. if(!itemunlocked[id][0])
  1785. {
  1786. if(cs_get_user_money(id) < get_pcvar_num(p_unlm4))
  1787. {
  1788. client_printc(id, "%s nincs eleg !gpenzed !nhogy felold!", saychatprefix)
  1789. gunsmenu(id)
  1790. }
  1791. else
  1792. {
  1793. give_item(id, "weapon_m4a1")
  1794. cs_set_user_bpammo( id, CSW_M4A1, 90 )
  1795. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_unlm4))
  1796. itemunlocked[id][0] = true
  1797. prima_used[id] = true
  1798. pistolsmenu(id)
  1799. }
  1800. }
  1801. else
  1802. {
  1803. give_item(id, "weapon_m4a1")
  1804. cs_set_user_bpammo( id, CSW_M4A1, 90 )
  1805. prima_used[id] = true
  1806. pistolsmenu(id)
  1807. }
  1808. }
  1809. else
  1810. {
  1811. give_item(id, "weapon_m4a1")
  1812. cs_set_user_bpammo( id, CSW_M4A1, 90 )
  1813. prima_used[id] = true
  1814. pistolsmenu(id)
  1815. }
  1816. }
  1817. case 2:
  1818. {
  1819. if(get_pcvar_num(p_unlock) == 1)
  1820. {
  1821. if(!itemunlocked[id][1])
  1822. {
  1823. if(cs_get_user_money(id) < get_pcvar_num(p_unlak))
  1824. {
  1825. client_printc(id, "%s nincs eleg !gpenzed !nhogy felold!", saychatprefix)
  1826. gunsmenu(id)
  1827. }
  1828. else
  1829. {
  1830. give_item(id, "weapon_ak47")
  1831. cs_set_user_bpammo( id, CSW_AK47, 90 )
  1832. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_unlak))
  1833. itemunlocked[id][1] = true
  1834. prima_used[id] = true
  1835. pistolsmenu(id)
  1836. }
  1837. }
  1838. else
  1839. {
  1840. give_item(id, "weapon_ak47")
  1841. cs_set_user_bpammo( id, CSW_AK47, 90 )
  1842. prima_used[id] = true
  1843. pistolsmenu(id)
  1844. }
  1845. }
  1846. else
  1847. {
  1848. give_item(id, "weapon_ak47")
  1849. cs_set_user_bpammo( id, CSW_AK47, 90 )
  1850. prima_used[id] = true
  1851. pistolsmenu(id)
  1852. }
  1853. }
  1854. case 3:
  1855. {
  1856. if(get_pcvar_num(p_unlock) == 1)
  1857. {
  1858. if(!itemunlocked[id][4])
  1859. {
  1860. if(cs_get_user_money(id) < get_pcvar_num(p_unlawp))
  1861. {
  1862. client_printc(id, "%s nincs eleg !gpenzed !nhogy felold!", saychatprefix)
  1863. gunsmenu(id)
  1864. }
  1865. else
  1866. {
  1867. give_item(id, "weapon_awp")
  1868. cs_set_user_bpammo( id, CSW_AWP, 30 )
  1869. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_unlawp))
  1870. itemunlocked[id][4] = true
  1871. prima_used[id] = true
  1872. pistolsmenu(id)
  1873. }
  1874. }
  1875. else
  1876. {
  1877. give_item(id, "weapon_awp")
  1878. cs_set_user_bpammo( id, CSW_AWP, 30 )
  1879. prima_used[id] = true
  1880. pistolsmenu(id)
  1881. }
  1882. }
  1883. else
  1884. {
  1885. give_item(id, "weapon_awp")
  1886. cs_set_user_bpammo( id, CSW_AWP, 30 )
  1887. prima_used[id] = true
  1888. pistolsmenu(id)
  1889. }
  1890. }
  1891. case 4:
  1892. {
  1893. if(get_pcvar_num(p_unlock) == 1)
  1894. {
  1895. if(!itemunlocked[id][3])
  1896. {
  1897. if(cs_get_user_money(id) < get_pcvar_num(p_unlp90))
  1898. {
  1899. client_printc(id, "%s nincs eleg !gpenzed !nhogy felold!", saychatprefix)
  1900. gunsmenu(id)
  1901. }
  1902. else
  1903. {
  1904. give_item(id, "weapon_p90")
  1905. cs_set_user_bpammo( id, CSW_P90, 90 )
  1906. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_unlp90))
  1907. itemunlocked[id][3] = true
  1908. prima_used[id] = true
  1909. pistolsmenu(id)
  1910. }
  1911. }
  1912. else
  1913. {
  1914. give_item(id, "weapon_p90")
  1915. cs_set_user_bpammo( id, CSW_P90, 90 )
  1916. prima_used[id] = true
  1917. pistolsmenu(id)
  1918. }
  1919. }
  1920. else
  1921. {
  1922. give_item(id, "weapon_p90")
  1923. cs_set_user_bpammo( id, CSW_P90, 90 )
  1924. prima_used[id] = true
  1925. pistolsmenu(id)
  1926. }
  1927. }
  1928. case 5:
  1929. {
  1930. if(get_pcvar_num(p_unlock) == 1)
  1931. {
  1932. if(!itemunlocked[id][2])
  1933. {
  1934. if(cs_get_user_money(id) < get_pcvar_num(p_unlgal))
  1935. {
  1936. client_printc(id, "%s nincs eleg !gpenzed !nhogy felold!", saychatprefix)
  1937. gunsmenu(id)
  1938. }
  1939. else
  1940. {
  1941. give_item(id, "weapon_galil")
  1942. cs_set_user_bpammo( id, CSW_GALIL, 90 )
  1943. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_unlgal))
  1944. itemunlocked[id][2] = true
  1945. prima_used[id] = true
  1946. pistolsmenu(id)
  1947. }
  1948. }
  1949. else
  1950. {
  1951. give_item(id, "weapon_galil")
  1952. cs_set_user_bpammo( id, CSW_GALIL, 90 )
  1953. prima_used[id] = true
  1954. pistolsmenu(id)
  1955. }
  1956. }
  1957. else
  1958. {
  1959. give_item(id, "weapon_galil")
  1960. cs_set_user_bpammo( id, CSW_GALIL, 90 )
  1961. prima_used[id] = true
  1962. pistolsmenu(id)
  1963. }
  1964. }
  1965. case 6:
  1966. {
  1967. give_item(id, "weapon_famas")
  1968. cs_set_user_bpammo( id, CSW_FAMAS, 90 )
  1969. prima_used[id] = true
  1970. pistolsmenu(id)
  1971. }
  1972. case 7:
  1973. {
  1974. give_item(id, "weapon_mp5navy")
  1975. cs_set_user_bpammo( id, CSW_MP5NAVY, 120 )
  1976. prima_used[id] = true
  1977. pistolsmenu(id)
  1978. }
  1979.  
  1980. }
  1981. return PLUGIN_HANDLED;
  1982. }
  1983.  
  1984. public pistolsmenu(id)
  1985. {
  1986. if(second_used[id])
  1987. {
  1988. client_printc(id, "%s varj a !tkovetkezo korig !nhogy !gmegnyisd !na menu-t!", saychatprefix)
  1989. return PLUGIN_CONTINUE
  1990. }
  1991.  
  1992. menu2 = menu_create("\r[\wHuman\r] \yPisztoly Menu :", "pistolsmenu_Handle")
  1993. if(get_pcvar_num(p_unlock) == 1)
  1994. {
  1995. new temp[101]
  1996. if(!itemunlocked[id][5])
  1997. {
  1998. formatex(temp,100, "Knighthawk .50C - \yDeagle \w(\r%i\y$\w)",get_pcvar_num(p_unldgl))
  1999. menu_additem(menu2, temp,"1",0);
  2000. }
  2001. else
  2002. {
  2003. menu_additem(menu2, "Knighthawk .50C - \yDeagle" , "1", 0)
  2004. }
  2005.  
  2006. if(!itemunlocked[id][6])
  2007. {
  2008. formatex(temp,100, "Dual Elites \w(\r%i\y$\w)",get_pcvar_num(p_unldual))
  2009. menu_additem(menu2, temp,"2",0);
  2010. }
  2011. else
  2012. {
  2013. menu_additem(menu2, "Dual Elites - \yElite" , "2", 0)
  2014. }
  2015. }
  2016. else
  2017. {
  2018. menu_additem(menu2, "Knighthawk .50C - \yDeagle" , "1", 0)
  2019. menu_additem(menu2, "Dual Elites - \yElite" , "2", 0)
  2020. }
  2021. menu_additem(menu2, "KM .45 Tactical - \yUsp" , "3", 0)
  2022. menu_additem(menu2, "9x19 mm Sidearm - \yGlock", "4", 0)
  2023. menu_additem(menu2, "228 Compact - \yP228", "5", 0)
  2024. menu_additem(menu2, "FiveSeven - \yAutoPistol", "6", 0)
  2025. menu_setprop(menu2, MPROP_EXIT, MEXIT_ALL)
  2026.  
  2027. if(cs_get_user_team(id) == CS_TEAM_CT)
  2028. {
  2029. menu_display(id, menu2, 0)
  2030. }
  2031.  
  2032. return PLUGIN_HANDLED
  2033.  
  2034. }
  2035.  
  2036. public pistolsmenu_Handle(id, menu2, item)
  2037. {
  2038. if (item == MENU_EXIT || cs_get_user_team(id) != CS_TEAM_CT )
  2039. {
  2040. menu_destroy(menu2)
  2041. return PLUGIN_HANDLED
  2042. }
  2043.  
  2044. new data[6], iName[64]
  2045. new access, callback
  2046.  
  2047. menu_item_getinfo(menu2, item, access, data,5, iName, 63, callback)
  2048. new key = str_to_num(data)
  2049.  
  2050. switch(key)
  2051. {
  2052.  
  2053. case 1:
  2054. {
  2055. if(get_pcvar_num(p_unlock) == 1)
  2056. {
  2057. if(!itemunlocked[id][5])
  2058. {
  2059. if(cs_get_user_money(id) < get_pcvar_num(p_unldgl))
  2060. {
  2061. client_printc(id, "%s nincs eleg !gpenzed !nhogy felold!", saychatprefix)
  2062. pistolsmenu(id)
  2063. }
  2064. else
  2065. {
  2066. give_item(id, "weapon_deagle")
  2067. cs_set_user_bpammo( id, CSW_DEAGLE, 35 );
  2068. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_unldgl))
  2069. itemunlocked[id][5] = true
  2070. second_used[id] = true
  2071. }
  2072. }
  2073. else
  2074. {
  2075. give_item(id, "weapon_deagle")
  2076. cs_set_user_bpammo( id, CSW_DEAGLE, 35 )
  2077. second_used[id] = true
  2078. }
  2079. }
  2080. else
  2081. {
  2082. give_item(id, "weapon_deagle")
  2083. cs_set_user_bpammo( id, CSW_DEAGLE, 35 )
  2084. second_used[id] = true
  2085. }
  2086. }
  2087. case 2:
  2088. {
  2089. if(get_pcvar_num(p_unlock) == 1)
  2090. {
  2091. if(!itemunlocked[id][6])
  2092. {
  2093. if(cs_get_user_money(id) < get_pcvar_num(p_unldual))
  2094. {
  2095. client_printc(id, "%s nincs eleg !gpenzed !nhogy felold!", saychatprefix)
  2096. pistolsmenu(id)
  2097. }
  2098. else
  2099. {
  2100. give_item(id, "weapon_elite")
  2101. cs_set_user_bpammo( id, CSW_ELITE, 120 );
  2102. cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(p_unldual))
  2103. itemunlocked[id][6] = true
  2104. second_used[id] = true
  2105. }
  2106. }
  2107. else
  2108. {
  2109. give_item(id, "weapon_elite")
  2110. cs_set_user_bpammo( id, CSW_ELITE, 120 )
  2111. second_used[id] = true
  2112. }
  2113. }
  2114. else
  2115. {
  2116. give_item(id, "weapon_elite")
  2117. cs_set_user_bpammo( id, CSW_ELITE, 120 )
  2118. second_used[id] = true
  2119. }
  2120. }
  2121. case 3:
  2122. {
  2123. give_item(id, "weapon_usp")
  2124. cs_set_user_bpammo( id, CSW_USP, 90 )
  2125. second_used[id] = true
  2126. }
  2127. case 4:
  2128. {
  2129. give_item(id, "weapon_glock18")
  2130. cs_set_user_bpammo( id, CSW_GLOCK18, 120 )
  2131. second_used[id] = true
  2132. }
  2133. case 5:
  2134. {
  2135. give_item(id, "weapon_p228")
  2136. cs_set_user_bpammo( id, CSW_P228, 52 )
  2137. second_used[id] = true
  2138. }
  2139.  
  2140. case 6:
  2141. {
  2142. give_item(id, "weapon_fiveseven")
  2143. cs_set_user_bpammo( id, CSW_FIVESEVEN, 100 )
  2144. second_used[id] = true
  2145. }
  2146. }
  2147. give_item(id, "weapon_flashbang")
  2148. give_item(id, "weapon_smokegrenade")
  2149. give_item(id, "weapon_hegrenade")
  2150. return PLUGIN_CONTINUE;
  2151. }
  2152.  
  2153. //////////////////////////////////////////////////////////////////
  2154. /// STOCKS ///
  2155. //////////////////////////////////////////////////////////////////
  2156.  
  2157. //ColorChat stock
  2158. stock client_printc(const id, const input[], any:...)
  2159. {
  2160. new count = 1, players[32]
  2161. static msg[191]
  2162. vformat(msg, 190, input, 3)
  2163.  
  2164. replace_all(msg, 190, "!g", "^x04") // Green Color
  2165. replace_all(msg, 190, "!n", "^x01") // Default Color
  2166. replace_all(msg, 190, "!t", "^x03") // Team Color
  2167.  
  2168. if (id) players[0] = id; else get_players(players, count, "ch")
  2169. {
  2170. for (new i = 0; i < count; i++)
  2171. {
  2172. if (is_user_connected(players[i]))
  2173. {
  2174. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  2175. write_byte(players[i])
  2176. write_string(msg)
  2177. message_end()
  2178. }
  2179. }
  2180. }
  2181. }
  2182.  
  2183. //Fog stock
  2184. stock create_fog( iRed, iGreen, iBlue, iDensity )
  2185. {
  2186. // Fog density offsets [Thnx to DA]
  2187. new const fog_density[ ] = { 0, 0, 0, 0, 111, 18, 3, 58, 111, 18, 125, 58, 66, 96, 27, 59, 90, 101, 60, 59, 90,
  2188. 101, 68, 59, 10, 41, 95, 59, 111, 18, 125, 59, 111, 18, 3, 60, 68, 116, 19, 60 }
  2189.  
  2190. // Get the amount of density
  2191. new dens
  2192. dens = ( 4 * iDensity )
  2193.  
  2194. // The fog message
  2195. message_begin( MSG_BROADCAST, get_user_msgid( "Fog" ), { 0,0,0 }, 0 )
  2196. write_byte( iRed ) // Red
  2197. write_byte( iGreen ) // Green
  2198. write_byte( iBlue ) // Blue
  2199. write_byte( fog_density[ dens ] ) // SD
  2200. write_byte( fog_density[ dens + 1 ] ) // ED
  2201. write_byte( fog_density[ dens + 2 ] ) // D1
  2202. write_byte( fog_density[ dens + 3 ] ) // D2
  2203. message_end( )
  2204. }
  2205.  
  2206. //ScreenFade
  2207. stock screenfade(id,red,green,blue,ammount)
  2208. {
  2209. if(ammount>255)ammount=255
  2210. if(red>255)red=255
  2211. if(green>255)green=255
  2212. if(blue>255)blue=255
  2213. //FADE OUT
  2214. message_begin(MSG_ONE_UNRELIABLE, msgScreenFade, {0,0,0}, id)
  2215. write_short(ammount * 100) //Durration
  2216. write_short(0) //Hold
  2217. write_short(0) //Type
  2218. write_byte(red) //R
  2219. write_byte(green) //G
  2220. write_byte(blue) //B
  2221. write_byte(ammount) //B
  2222. message_end()
  2223. }
  2224.  
  2225.  
  2226. // ScreenShake
  2227. stock Util_ScreenShake(id, Float:duration, Float:frequency, Float:amplitude)
  2228. {
  2229. static ScreenShake = 0
  2230. if( !ScreenShake )
  2231. {
  2232. ScreenShake = get_user_msgid("ScreenShake")
  2233. }
  2234. message_begin( id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, ScreenShake, _, id)
  2235. write_short( FixedUnsigned16( amplitude, 1<<12 ) ) // shake amount
  2236. write_short( FixedUnsigned16( duration, 1<<12 ) )// shake lasts this long
  2237. write_short( FixedUnsigned16( frequency, 1<<8 ) )// shake noise frequency
  2238. message_end()
  2239. }
  2240.  
  2241.  
  2242. stock FixedUnsigned16( Float:value, scale )
  2243. {
  2244. new output
  2245.  
  2246. output = floatround(value * scale)
  2247. if ( output < 0 )
  2248. output = 0
  2249. if ( output > 0xFFFF )
  2250. output = 0xFFFF
  2251.  
  2252. return output
  2253. }
  2254.  
  2255. stock set_autojoin_task(id, iMsgid)
  2256. {
  2257. new iParam[2];
  2258. iParam[0] = iMsgid;
  2259. set_task(0.1, "task_Autojoin", id, iParam, sizeof(iParam));
  2260. }
  2261.  
  2262. stock Thunder( start[ 3 ], end[ 3 ] )
  2263. {
  2264. message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
  2265. write_byte( TE_BEAMPOINTS );
  2266. write_coord( start[ 0 ] );
  2267. write_coord( start[ 1 ] );
  2268. write_coord( start[ 2 ] );
  2269. write_coord( end[ 0 ] );
  2270. write_coord( end[ 1 ] );
  2271. write_coord( end[ 2 ] );
  2272. write_short( g_lightning );
  2273. write_byte( 1 );
  2274. write_byte( 5 );
  2275. write_byte( 7 );
  2276. write_byte( 20 );
  2277. write_byte( 30 );
  2278. write_byte( 200 );
  2279. write_byte( 200 );
  2280. write_byte( 200 );
  2281. write_byte( 200 );
  2282. write_byte( 200 );
  2283. message_end();
  2284.  
  2285. message_begin( MSG_PVS, SVC_TEMPENTITY, end );
  2286. write_byte( TE_SPARKS );
  2287. write_coord( end[ 0 ] );
  2288. write_coord( end[ 1 ]);
  2289. write_coord( end[ 2 ] );
  2290. message_end();
  2291.  
  2292. emit_sound( 0 ,CHAN_ITEM, thunder_sound, 1.0, ATTN_NORM, 0, PITCH_NORM );
  2293. }
  2294.  
  2295. stock Smoke( iorigin[ 3 ], scale, framerate )
  2296. {
  2297. message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
  2298. write_byte( TE_SMOKE );
  2299. write_coord( iorigin[ 0 ] );
  2300. write_coord( iorigin[ 1 ] );
  2301. write_coord( iorigin[ 2 ] );
  2302. write_short( g_smoke );
  2303. write_byte( scale );
  2304. write_byte( framerate );
  2305. message_end();
  2306. }