|
AlliedModders Donor
Join Date: Jul 2012
Location: Sweden
|

01-28-2015
, 12:03
Re: Server crashes in Dodgeball Day
|
#10
|
Use this and edit it yourself.
Code:
public plugin_init()
{
register_plugin("Daysmenu", VERSION, "Larcyn")
register_message(get_user_msgid("SendAudio"), "msg_sendaudio")
register_message(get_user_msgid("TextMsg"), "msg_textmsg")
register_event("CurWeapon", "EventCurWeapon", "be","1=1")
register_event("DeathMsg", "eventDeathMsg", "a", "1>0");
register_event("HLTV", "EventRoundRefresh", "a", "1=0", "2=0")
register_logevent("EventRoundRefresh", 2, "1=Round_End")
register_clcmd("say /dm", "CmdDayMenu")
register_clcmd("say /daymenu", "CmdDayMenu")
register_clcmd("say /stop", "CmdStopDay")
register_clcmd("say /open", "CmdOpenCells")
RegisterHam(Ham_Touch, "armoury_entity", "FwdHamPlayerPickup")
RegisterHam(Ham_Touch, "weaponbox", "FwdHamPlayerPickup")
RegisterHam(Ham_TraceAttack, "player", "FwdTraceAttack")
register_forward(FM_EmitSound,"FwdEmitSound")
register_forward(FM_SetModel, "FwdSetModel")
register_touch("*","player","player_interact")
register_touch("grenade","*","ball_interact")
register_think("grenade", "GrenadeThink")
cStun = register_cvar("box_stun", "1")
g_iMaxPlayers = get_maxplayers()
g_msgCurWeapon = get_user_msgid("CurWeapon")
Setup_Buttons()
}
Code:
// ___________
//___/ DODGEBALL \_________
//~~~~~~~~~~~~~~~~~~~~~~~~~
public StartDodgeball()
{
iDay = 3
for(new i = 1; i < g_iMaxPlayers; i++)
{
if(is_user_connected(i) && !is_user_bot(i) && is_user_alive(i))
{
set_task(1.0, "CheckGame", 321, _, _, "b")
client_cmd(i, "spk sound/PlayGroundv2dodge/dodgeball.wav")
strip_user_weapons(i)
set_user_health(i, 100)
switch(cs_get_user_team(i))
{
case CS_TEAM_T:
{
set_task(1.7, "GiveHE", i, _, _, "b")
give_item(i, "weapon_hegrenade")
}
case CS_TEAM_CT:
{
give_item(i, "weapon_knife")
set_user_godmode(i, 1)
give_item(i, "weapon_deagle")
cs_set_user_bpammo(i, CSW_DEAGLE, 35)
give_item(i, "weapon_m4a1")
cs_set_user_bpammo(i, CSW_M4A1, 90)
cs_set_user_armor(i, 100, CS_ARMOR_VESTHELM)
}
}
ColorChat(i, GREY, "%s Objective: Dodge your teammates!", prefix)
CantPickGun[i] = true
}
}
return PLUGIN_HANDLED
}
public GiveHE(iPlayer)
{
if(is_user_alive(iPlayer))
{
give_item(iPlayer, "weapon_hegrenade")
reset_user_nade(iPlayer)
}
return PLUGIN_CONTINUE
}
public GrenadeThink(iEnt)
{
if(iDay == 3 || iDay == 4)
return PLUGIN_HANDLED
return PLUGIN_CONTINUE
}
public grenade_throw(index, greindex, wId)
{
if(wId != CSW_HEGRENADE)
{
return PLUGIN_CONTINUE;
}
if(iDay == 3 || iDay == 4)
{
entity_set_edict(greindex,EV_ENT_euser1,index)
set_task(0.3, "clearowner", greindex)
entity_set_int(greindex, EV_INT_iuser1, 0)
entity_set_size(greindex, Float:{-6.0,-6.0,-6.0}, Float:{6.0,6.0,6.0})
entity_set_float(greindex, EV_FL_friction,0.6)
new r = random_num(1, 255)
new g = random_num(1, 255)
new b = random_num(1, 255)
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
write_byte(22)
write_short(greindex)
write_short(iBeamspr)
write_byte(10)
write_byte(10)
write_byte(r)
write_byte(g)
write_byte(b)
write_byte(100)
message_end()
set_rendering(greindex,kRenderFxGlowShell, r, g, b)
set_task(1.5, "EventStopRoll", greindex)
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE
}
public EventStopRoll(iEnt)
{
if(is_valid_ent(iEnt))
{
if(get_entity_flags(iEnt) & FL_ONGROUND)
{
entity_set_vector(iEnt, EV_VEC_velocity, Float:{0.0,0.0,0.0})
entity_set_float(iEnt, EV_FL_gravity, 1.0)
set_rendering(iEnt)
clearowner(iEnt)
remove_entity(iEnt)
}
else
{
set_task(1.0, "EventStopRoll", iEnt)
}
}
}
public clearowner(iEnt)
if(is_valid_ent(iEnt))
entity_set_edict(iEnt, EV_ENT_owner, 0)
public player_interact(iEnt, iPlayer)
{
if(iDay == 3 || iDay == 4)
{
if(is_valid_ent(iEnt))
{
new iClassname[32], iModel[32]
entity_get_string(iEnt, EV_SZ_classname, iClassname, charsmax(iClassname))
entity_get_string(iEnt, EV_SZ_model, iModel, charsmax(iModel))
if(equali(iClassname, "grenade") && !equali(iModel,"models/w_c4.mdl"))
{
hit_by_ball(iPlayer, iEnt)
}
}
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
public ball_interact(iBall, iEnt)
{
if(iEnt == 0)
{
entity_set_int(iBall, EV_INT_iuser1, 1)
set_rendering(iBall);
}
else
{
new iClassname[32]
entity_get_string(iEnt,EV_SZ_classname, iClassname, charsmax(iClassname))
if(equali(iClassname,"func_", 5))
{
entity_set_int(iBall, EV_INT_iuser1, 1)
set_rendering(iBall)
new Float:start[3], Float:end[3], Float:ground[3]
entity_get_vector(iBall, EV_VEC_origin, start)
end = start
end[2] -= 1024.0
trace_line(iEnt,start,end,ground)
ground[2] += 7.0
entity_set_vector(iBall, EV_VEC_origin, ground)
}
}
return PLUGIN_CONTINUE
}
public hit_by_ball(iPlayer, iBall)
{
if(entity_get_int(iBall, EV_INT_iuser1) == 1) // Dead ball
return PLUGIN_HANDLED
new owner = entity_get_edict(iBall, EV_ENT_euser1)
if(owner == iPlayer)
{
entity_set_int(iBall,EV_INT_iuser1, 1);
set_rendering(iBall);
return PLUGIN_HANDLED
}
if(get_user_team(iPlayer) != get_user_team(owner))
{
entity_set_int(iBall, EV_INT_iuser1,1);
set_rendering(iBall);
return PLUGIN_HANDLED
}
set_task(0.1, "kill", iPlayer)
if(is_user_connected(owner))
{
set_user_frags(owner, get_user_frags(owner)+1)
message_begin(MSG_BROADCAST, get_user_msgid("ScoreInfo"))
write_byte(owner)
write_short(get_user_frags(owner))
write_short(cs_get_user_deaths(owner))
write_short(0)
write_short(get_user_team(owner))
message_end()
}
make_deathmsg(owner, iPlayer, 1, "dodgeball")
entity_set_int(iBall, EV_INT_iuser1, 1)
set_rendering(iBall)
return PLUGIN_HANDLED
}
public kill(iPlayer)
{
strip_user_weapons(iPlayer)
set_user_godmode(iPlayer, 0)
user_silentkill(iPlayer)
message_begin(MSG_BROADCAST,get_user_msgid("ScoreInfo"))
write_byte(iPlayer)
write_short(get_user_frags(iPlayer))
write_short(cs_get_user_deaths(iPlayer))
write_short(0)
write_short(1)
message_end()
}
public msg_sendaudio()
{
if(iDay == 3 || iDay == 4)
{
new string[32];
get_msg_arg_string(2,string,31);
if(equali(string,"%!MRAD_FIREINHOLE"))
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public msg_textmsg()
{
if(iDay == 3 || iDay == 4)
{
new string[32]
get_msg_arg_string(2,string,31);
if(equali(string,"#Weapon_Cannot_Be_Dropped"))
return PLUGIN_HANDLED;
if(str_to_num(string) > 0)
{
get_msg_arg_string(3,string,31)
if(equali(string,"#Game_radio"))
{
get_msg_arg_string(5,string,31)
if(equali(string,"#Fire_in_the_hole"))
return PLUGIN_HANDLED
}
}
}
return PLUGIN_CONTINUE
}
__________________
|
|