HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. /*
  2.   Fordította: BBk
  3. */
  4.  
  5. #define DAMAGE_RECIEVED
  6. #include <amxmodx>
  7. #include <amxmisc>
  8. #include <cstrike>
  9. #include <fun>
  10.  
  11. static const COLOR[] = "^x04" //green
  12. static const CONTACT[] = ""
  13. new maxplayers
  14. new gmsgSayText
  15. new mpd, mkb, mhb
  16. new g_MsgSync
  17. new health_add
  18. new health_hs_add
  19. new health_max
  20. new nKiller
  21. new nKiller_hp
  22. new nHp_add
  23. new nHp_max
  24. new g_awp_active
  25. new g_menu_active
  26. new CurrentRound
  27. new bool:HasC4[33]
  28. #define Keysrod (1<<0)|(1<<1)|(1<<9) // Keys: 1234567890
  29. #if defined DAMAGE_RECIEVED
  30. new g_MsgSync2
  31. #endif
  32.  
  33. public plugin_init()
  34. {
  35. register_plugin("VIP Eng Version", "3.0", "Dunno")
  36. mpd = register_cvar("money_per_damage","3")
  37. mkb = register_cvar("money_kill_bonus","200")
  38. mhb = register_cvar("money_hs_bonus","500")
  39. health_add = register_cvar("amx_vip_hp", "15")
  40. health_hs_add = register_cvar("amx_vip_hp_hs", "30")
  41. health_max = register_cvar("amx_vip_max_hp", "100")
  42. g_awp_active = register_cvar("awp_active", "1")
  43. g_menu_active = register_cvar("menu_active", "1")
  44. register_event("Damage","Damage","b")
  45. register_event("DeathMsg","death_msg","a")
  46. register_menucmd(register_menuid("rod"), Keysrod, "Pressedrod")
  47. register_clcmd("awp","HandleCmd")
  48. register_clcmd("sg550","HandleCmd")
  49. register_clcmd("g3sg1","HandleCmd")
  50. register_clcmd("say /wantvip","ShowMotd")
  51. maxplayers = get_maxplayers()
  52. gmsgSayText = get_user_msgid("SayText")
  53. register_clcmd("say", "handle_say")
  54. register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
  55. register_logevent("LogEvent_RoundStart", 2, "1=Round_Start" );
  56. register_event("TextMsg","Event_RoundRestart","a","2&#Game_w")
  57. register_event("TextMsg","Event_RoundRestart","a","2&#Game_C");
  58. register_event("DeathMsg", "hook_death", "a", "1>0")
  59. register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
  60. g_MsgSync = CreateHudSyncObj()
  61. #if defined DAMAGE_RECIEVED
  62. g_MsgSync2 = CreateHudSyncObj()
  63. #endif
  64. }
  65.  
  66. public on_damage(id)
  67. {
  68. new attacker = get_user_attacker(id)
  69.  
  70. #if defined DAMAGE_RECIEVED
  71. // id should be connected if this message is sent, but lets check anyway
  72. if ( is_user_connected(id) && is_user_connected(attacker) )
  73. if (get_user_flags(attacker) & ADMIN_LEVEL_H)
  74. {
  75. new damage = read_data(2)
  76.  
  77. set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
  78. ShowSyncHudMsg(id, g_MsgSync2, "%i^n", damage)
  79. #else
  80. if ( is_user_connected(attacker) && if (get_user_flags(attacker) & ADMIN_LEVEL_H) )
  81. {
  82. new damage = read_data(2)
  83. #endif
  84. set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
  85. ShowSyncHudMsg(attacker, g_MsgSync, "%i^n", damage)
  86. }
  87. }
  88.  
  89. public Damage(id)
  90. {
  91. new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)
  92. if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)
  93. if (get_user_flags(attacker) & ADMIN_LEVEL_H)
  94. {
  95. new money = read_data(2) * get_pcvar_num(mpd)
  96. if(hitpoint==1) money += get_pcvar_num(mhb)
  97. cs_set_user_money(attacker,cs_get_user_money(attacker) + money)
  98. }
  99. }
  100.  
  101. public death_msg()
  102. {
  103. if(read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300)
  104. }
  105.  
  106. public LogEvent_RoundStart()
  107. {
  108. CurrentRound++;
  109. new players[32], player, pnum;
  110. get_players(players, pnum, "a");
  111. for(new i = 0; i < pnum; i++)
  112. {
  113. player = players[i];
  114. if(is_user_alive(player) && get_user_flags(player) & ADMIN_LEVEL_H)
  115. {
  116. give_item(player, "weapon_hegrenade")
  117. give_item(player, "weapon_flashbang")
  118. give_item(player, "weapon_flashbang")
  119. give_item(player, "weapon_smokegrenade")
  120. give_item(player, "item_assaultsuit")
  121. give_item(player, "item_thighpack")
  122.  
  123. if (!get_pcvar_num(g_menu_active))
  124. return PLUGIN_CONTINUE
  125.  
  126. if(CurrentRound >= 3)
  127. {
  128. Showrod(player);
  129. }
  130. }
  131. }
  132. return PLUGIN_HANDLED
  133. }
  134.  
  135. public Event_RoundRestart()
  136. {
  137. CurrentRound=0;
  138. }
  139.  
  140. public hook_death()
  141. {
  142. // Killer id
  143. nKiller = read_data(1)
  144.  
  145. if ( (read_data(3) == 1) && (read_data(5) == 0) )
  146. {
  147. nHp_add = get_pcvar_num (health_hs_add)
  148. }
  149. else
  150. nHp_add = get_pcvar_num (health_add)
  151. nHp_max = get_pcvar_num (health_max)
  152. // Updating Killer HP
  153. if(!(get_user_flags(nKiller) & ADMIN_LEVEL_H))
  154. return;
  155.  
  156. nKiller_hp = get_user_health(nKiller)
  157. nKiller_hp += nHp_add
  158. // Maximum HP check
  159. if (nKiller_hp > nHp_max) nKiller_hp = nHp_max
  160. set_user_health(nKiller, nKiller_hp)
  161. // Hud message "Healed +15/+30 hp"
  162. set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
  163. show_hudmessage(nKiller, "Gyogyulas +%d hp", nHp_add)
  164. // Screen fading
  165. message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, nKiller)
  166. write_short(1<<10)
  167. write_short(1<<10)
  168. write_short(0x0000)
  169. write_byte(0)
  170. write_byte(0)
  171. write_byte(200)
  172. write_byte(75)
  173. message_end()
  174.  
  175. }
  176.  
  177. public Showrod(id) {
  178. show_menu(id, Keysrod, "Ingyen VIP Fegyverek^n\w1. M4A1+Deagle^n\w2. AK47+Deagle^n0. Kilepes^n", -1, "rod") // Display menu
  179. }
  180. public Pressedrod(id, key) {
  181. /* Menu:
  182. * VIP Menu
  183. * 1. Get M4A1+Deagle
  184. * 2. Get AK47+Deagle
  185. * 0. Exit
  186. */
  187. switch (key) {
  188. case 0: {
  189. if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
  190. HasC4[id] = true;
  191. else
  192. HasC4[id] = false;
  193.  
  194. strip_user_weapons (id)
  195. give_item(id,"weapon_m4a1")
  196. give_item(id,"ammo_556nato")
  197. give_item(id,"ammo_556nato")
  198. give_item(id,"ammo_556nato")
  199. give_item(id,"weapon_deagle")
  200. give_item(id,"ammo_50ae")
  201. give_item(id,"ammo_50ae")
  202. give_item(id,"ammo_50ae")
  203. give_item(id,"ammo_50ae")
  204. give_item(id,"ammo_50ae")
  205. give_item(id,"ammo_50ae")
  206. give_item(id,"ammo_50ae")
  207. give_item(id,"weapon_knife")
  208. give_item(id,"weapon_hegrenade")
  209. give_item(id, "weapon_flashbang");
  210. give_item(id, "weapon_flashbang");
  211. give_item(id, "weapon_smokegrenade");
  212. give_item(id, "item_assaultsuit");
  213. give_item(id, "item_thighpack");
  214. client_print(id, print_center, "Kaptal Ingyen egy M4A1 es Deagle csomagot")
  215.  
  216. if (HasC4[id])
  217. {
  218. give_item(id, "weapon_c4");
  219. cs_set_user_plant( id );
  220. }
  221. }
  222. case 1: {
  223. if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
  224. HasC4[id] = true;
  225. else
  226. HasC4[id] = false;
  227.  
  228. strip_user_weapons (id)
  229. give_item(id,"weapon_ak47")
  230. give_item(id,"ammo_762nato")
  231. give_item(id,"ammo_762nato")
  232. give_item(id,"ammo_762nato")
  233. give_item(id,"weapon_deagle")
  234. give_item(id,"ammo_50ae")
  235. give_item(id,"ammo_50ae")
  236. give_item(id,"ammo_50ae")
  237. give_item(id,"ammo_50ae")
  238. give_item(id,"ammo_50ae")
  239. give_item(id,"ammo_50ae")
  240. give_item(id,"ammo_50ae")
  241. give_item(id,"weapon_knife")
  242. give_item(id,"weapon_hegrenade")
  243. give_item(id, "weapon_flashbang");
  244. give_item(id, "weapon_flashbang");
  245. give_item(id, "weapon_smokegrenade");
  246. give_item(id, "item_assaultsuit");
  247. give_item(id, "item_thighpack");
  248. client_print(id, print_center, "Kaptal Ingyen egy AK47 es Deagle csomagot")
  249.  
  250. if (HasC4[id])
  251. {
  252. give_item(id, "weapon_c4");
  253. cs_set_user_plant( id );
  254. }
  255. }
  256. case 9: {
  257. }
  258. }
  259. return PLUGIN_CONTINUE
  260. }
  261.  
  262. public HandleCmd(id){
  263. if (!get_pcvar_num(g_awp_active))
  264. return PLUGIN_CONTINUE
  265. if(get_user_flags(id) & ADMIN_LEVEL_H)
  266. return PLUGIN_CONTINUE
  267. client_print(id, print_center, "Sniper Csak a VIP szamara elerheto.")
  268. return PLUGIN_HANDLED
  269. }
  270.  
  271. public ShowMotd(id)
  272. {
  273. show_motd(id, "vip.txt")
  274. }
  275. public client_authorized(id)
  276. {
  277. set_task(30.0, "PrintText" ,id)
  278. }
  279. public PrintText(id)
  280. {
  281. client_print(id, print_chat, "[VIP] Ird be /wantvip es latni fogod, hogyan kaphatsz VIP-t es milyen kivaltsagai vannak.")
  282. }
  283.  
  284. public handle_say(id) {
  285. new said[192]
  286. read_args(said,192)
  287. if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/vips") != -1 )
  288. set_task(0.1,"print_adminlist",id)
  289. return PLUGIN_CONTINUE
  290. }
  291.  
  292. public print_adminlist(user)
  293. {
  294. new adminnames[33][32]
  295. new message[256]
  296. new contactinfo[256], contact[112]
  297. new id, count, x, len
  298.  
  299. for(id = 1 ; id <= maxplayers ; id++)
  300. if(is_user_connected(id))
  301. if(get_user_flags(id) & ADMIN_LEVEL_H)
  302. get_user_name(id, adminnames[count++], 31)
  303.  
  304. len = format(message, 255, "%s ONLINE VIP: ",COLOR)
  305. if(count > 0) {
  306. for(x = 0 ; x < count ; x++) {
  307. len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
  308. if(len > 96 ) {
  309. print_message(user, message)
  310. len = format(message, 255, "%s ",COLOR)
  311. }
  312. }
  313. print_message(user, message)
  314. }
  315. else {
  316. len += format(message[len], 255-len, "Nincs jelen VIP.")
  317. print_message(user, message)
  318. }
  319.  
  320. get_cvar_string("amx_contactinfo", contact, 63)
  321. if(contact[0]) {
  322. format(contactinfo, 111, "%s Szerver Admin csatlakozik -- %s", COLOR, contact)
  323. print_message(user, contactinfo)
  324. }
  325. }
  326.  
  327. print_message(id, msg[]) {
  328. message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
  329. write_byte(id)
  330. write_string(msg)
  331. message_end()
  332. }
  333.  
  334. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  335. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1063\\ f0\\ fs16 \n\\ par }
  336. */
  337.