#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <engine>
#define MAX_PLAYERS 32
#define EVENT_INTERVAL 30.0 // másodpercenként zombivá alakul valaki
new g_candy[MAX_PLAYERS + 1]
new g_nextEventTime
public plugin_init() {
register_plugin("Halloween Event v3", "3.0", "Been And Zipo")
register_event("DeathMsg", "onPlayerDeath", "a")
register_event("RoundTime", "onRoundStart", "a")
register_clcmd("say /shop", "cmdShop")
register_clcmd("say /zombie", "cmdBecomeZombie")
register_clcmd("say /music", "toggleMusic")
register_touch("grenade", "worldspawn", "onGrenadeExplode")
g_nextEventTime = floatround(get_gametime() + EVENT_INTERVAL)
set_task(1.0, "hudUpdate", _, _, _, "b")
set_task(EVENT_INTERVAL, "randomZombie", _, _, _, "b")
}
public plugin_precache() {
precache_sound("halloween/ghost.wav")
precache_sound("halloween/scream.wav")
precache_sound("halloween/zombie_growl.wav")
precache_sound("halloween/bats.wav")
precache_sound("halloween/theme.mp3")
precache_model("sprites/halloween_smoke.spr")
}
public onRoundStart() {
set_lights("b")
client_cmd(0, "mp3 play sound/halloween/theme.mp3")
}
public onPlayerDeath() {
new killer = read_data(1)
new victim = read_data(2)
if (killer != victim && is_user_alive(killer)) {
g_candy[killer]++
client_print(killer, print_chat, "[HALLOWEEN] +1 Cukorka! Összesen: %d", g_candy[killer])
client_cmd(killer, "spk halloween/ghost.wav")
}
client_cmd(victim, "spk halloween/scream.wav")
}
public randomZombie() {
new players[32], pnum
get_players(players, pnum, "a")
if (!pnum) return
new id = players[random(pnum)]
makeZombie(id)
g_nextEventTime = floatround(get_gametime() + EVENT_INTERVAL)
}
public hudUpdate() {
new Float:timeLeft = g_nextEventTime - get_gametime()
new iTime = floatround(timeLeft)
if (iTime < 0) iTime = 0
for (new id = 1; id <= MAX_PLAYERS; id++) {
if (is_user_connected(id)) {
set_hudmessage(255, 140, 0, 0.02, 0.88, 0, 0.0, 1.0, 0.0, 0.0, -1)
show_hudmessage(id, " Cukorkák: %d | Köv. event: %ds", g_candy[id], iTime)
}
}
}
public cmdBecomeZombie(id) {
makeZombie(id)
return PLUGIN_HANDLED
}
public makeZombie(id) {
if (!is_user_alive(id)) return
set_user_health(id, 250)
set_user_maxspeed(id, 270.0)
set_user_gravity(id, 0.8)
set_user_rendering(id, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 25)
client_cmd(id, "spk halloween/zombie_growl.wav")
client_print(id, print_chat, "[HALLOWEEN] Zombivá változtál! ")
}
public onGrenadeExplode(ent, id) {
if (!is_valid_ent(ent)) return
static Float:origin[3]
entity_get_vector(ent, EV_VEC_origin, origin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(5)
write_coord(floatround(origin[0]))
write_coord(floatround(origin[1]))
write_coord(floatround(origin[2]))
write_short(precache_model("sprites/halloween_smoke.spr"))
write_byte(15)
write_byte(10)
message_end()
client_cmd(0, "spk halloween/bats.wav")
}
public cmdShop(id) {
new menu = menu_create(" Halloween Shop ", "shopHandler")
new szItem[64]
formatex(szItem, charsmax(szItem), "Élet +100 (3 cukorka)")
menu_additem(menu, szItem, "1")
formatex(szItem, charsmax(szItem), "Narancs Glow (2 cukorka)")
menu_additem(menu, szItem, "2")
formatex(szItem, charsmax(szItem), "Zombi mód (5 cukorka)")
menu_additem(menu, szItem, "3")
formatex(szItem, charsmax(szItem), "Denevér effekt (3 cukorka)")
menu_additem(menu, szItem, "4")
menu_display(id, menu)
return PLUGIN_HANDLED
}
public shopHandler(id, menu, item) {
if (item == MENU_EXIT) return PLUGIN_HANDLED
new szData[6], szName[64], access, callback
menu_item_getinfo(menu, item, access, szData, charsmax(szData), szName, charsmax(szName), callback)
new key = str_to_num(szData)
switch (key) {
case 1: if (g_candy[id] >= 3) { set_user_health(id, get_user_health(id)+100); g_candy[id]-=3; client_print(id, print_chat, "[SHOP] +100 HP!"); }
case 2: if (g_candy[id] >= 2) { set_user_rendering(id, kRenderFxGlowShell, 255,128,0,kRenderNormal,20); g_candy[id]-=2; }
case 3: if (g_candy[id] >= 5) { g_candy[id]-=5; makeZombie(id); }
case 4: if (g_candy[id] >= 3) { g_candy[id]-=3; client_cmd(id, "spk halloween/bats.wav"); client_print(id, print_chat, "[SHOP] Denevér effekt aktiválva!"); }
}
return PLUGIN_HANDLED
}
public toggleMusic(id) {
client_cmd(id, "mp3 toggle")
client_print(id, print_chat, "[HALLOWEEN] Halloween zene ki/be kapcsolva.")
}