
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>
#include <colorchat>
#include <amxmisc>
#define PLUGIN "Halloween by TOMI [HUN]"
#define VERSION "1.0"
#define AUTHOR "TOMI [HUN]"
new const ClassName[] = "Tok"
new Tok[64] = "/models/szake_gud_2015/event/halloween.mdl"
new cvar_antifurien_sebesseg
new gold[33], cases[33], ckeys[33]
new bool:vansebesseg[33]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("HLTV", "RoundStart", "a", "1=0", "2=0")
register_event("CurWeapon", "event_cur_weapon", "be", "1=1")
register_event("DeathMsg", "Death", "a")
RegisterHam(Ham_Spawn, "player", "Spawn", 1)
register_clcmd("say /raktar", "boltmenu")
register_forward(FM_CmdStart, "CmdStart")
register_forward(FM_Touch, "Touch")
goldstartsetter();
cvar_antifurien_sebesseg = register_cvar("amx_Tok_sebesseg", "400")
}
public goldstartsetter()
{
new i
for (i=0; i<=32; i++)
{
gold[i] = 0
}
}
public plugin_precache()
{
precache_model(Tok)
}
public RoundStart()
{
new ent = FM_NULLENT
static string_class[] = "classname"
while ((ent = engfunc(EngFunc_FindEntityByString, ent, string_class, ClassName)))
set_pev(ent, pev_flags, FL_KILLME)
for(new id = 1; id < get_maxplayers();id++) {
vansebesseg[id] = false
}
}
public Spawn(id) {
vansebesseg[id] = false
}
public Death()
{
new aldozat = read_data(2);
Tokkeszit(aldozat)
}
public CmdStart(id, uc_handle, seed) {
new ent = fm_find_ent_by_class(id, ClassName)
if(is_valid_ent(ent)) {
new classname[32]
pev(ent, pev_classname, classname, 31)
if (equal(classname, ClassName)) {
if (pev(ent, pev_frame) >= 120)
set_pev(ent, pev_frame, 0.0)
else
set_pev(ent, pev_frame, pev(ent, pev_frame) + 1.0)
}
}
}
public Tokkeszit(id)
{
if(is_user_connected(id) && cs_get_user_team(id) != CS_TEAM_SPECTATOR) {
new ent = fm_create_entity("info_target")
new origin[3]
get_user_origin(id, origin, 0)
set_pev(ent,pev_classname, ClassName)
engfunc(EngFunc_SetModel,ent, Tok)
set_pev(ent,pev_mins,Float:{-10.0,-10.0,0.0})
set_pev(ent,pev_maxs,Float:{10.0,10.0,25.0})
set_pev(ent,pev_size,Float:{-10.0,-10.0,0.0,10.0,10.0,25.0})
engfunc(EngFunc_SetSize,ent,Float:{-10.0,-10.0,0.0},Float:{10.0,10.0,25.0})
set_pev(ent,pev_solid,SOLID_BBOX)
set_pev(ent,pev_movetype,MOVETYPE_TOSS)
new Float:fOrigin[3]
IVecFVec(origin, fOrigin)
set_pev(ent, pev_origin, fOrigin)
}
}
public Touch(toucher, touched)
{
if (!is_user_alive(toucher) || !pev_valid(touched))
return FMRES_IGNORED
new classname[32]
pev(touched, pev_classname, classname, 31)
if (!equal(classname, ClassName))
return FMRES_IGNORED
bonusz_adas(toucher)
set_pev(touched, pev_effects, EF_NODRAW)
set_pev(touched, pev_solid, SOLID_NOT)
remove_entity(touched);
return FMRES_IGNORED
}
public event_cur_weapon(id) {
if(vansebesseg[id] && cs_get_user_team(id) == CS_TEAM_CT && get_user_maxspeed(id) < get_pcvar_float(cvar_antifurien_sebesseg)) {
set_user_maxspeed(id, get_pcvar_float(cvar_antifurien_sebesseg));
}
}
public bonusz_adas(id)
{
switch (random_num(1,5))
{
case 1:
{
new k = 1
cases[id] = cases[id] + k
ColorChat(id, GREEN, "[Bonus]^1 Kaptal %d Ladat!",k)
}
case 2:
{
new k = 1
ckeys[id] = ckeys[id] + k
ColorChat(id, GREEN, "[Bonus]^1 Kaptal %d Kulcsot!",k)
}
case 3..5:
{
new k = 3
gold[id] = gold[id] + k
ColorChat(id, GREEN, "[Bonus]^1 Kaptal %d Aranyat!",k)
}
}
}
public boltmenu(id)
{
new menu = menu_create("Sz4k3Go Lada: %d, Kulcs: %d",cases[id], ckeys[id]);
menu_additem(menu, "Lada nyitas (1lada-1kulcs)", "", 0); // case 0
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
return PLUGIN_HANDLED;
}
public mh_MyMenu(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_cancel(id);
return PLUGIN_HANDLED;
}
new command[6], name[64], access, callback;
menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
switch (random_num(1,2))
{
case 1: {
if(cases[id] >= 1 && ckeys[id] >= 1)
{
gold[id] += 10
cases[id] = cases[id]-1
ckeys[id] = ckeys[id]-1
client_print(id, print_chat, "Kaptal 10pontot.")
}
else {
client_print(id, print_chat, "Nincs eleg Ladad / Kulcsod!.")
}
}
case 2: {
if(cases[id] >= 1 && ckeys[id] >= 1)
{
gold[id] += 20
cases[id] = cases[id]-1
ckeys[id] = ckeys[id]-1
client_print(id, print_chat, "Kaptal 20pontot.")
}
else {
client_print(id, print_chat, "Nincs eleg Ladad / Kulcsod!.")
}
}
case 3: {
if(cases[id] >= 1 && ckeys[id] >= 1)
{
cases[id] = cases[id]-1
ckeys[id] = ckeys[id]-1
client_print(id, print_chat, "Sajnos ures volt a lada.")
}
else {
client_print(id, print_chat, "Nincs eleg Ladad / Kulcsod!.")
}
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
Sajnos nem tudom hogyan csináljam meg...:/ A tököt akarom elmenteni... illetve ezeket a dolgokat amiket ad még. (mysql-ba).