Re: Clear owner of a entity Notworking
Quote:
Originally Posted by ironskillz1
(Post 2110407)
You can take the dodgeball code from here.
Code:
/*
Changelog v1.1.0
- Added 2 new days
Shark & Intervention Day.
*/
#include <amxmodx>
#include <colorchat>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <fun>
#include <dhudmessage>
#define VERSION "1.1.0"
#define TotalDays 8
new const prefix[] = "^4[PlayGround] Daysmenu:^3"
new g_iButtons[10]
new bool:CantPickGun[33]
new g_iMaxPlayers, iBeamspr
new iDay, g_msgCurWeapon
new sawMan
new cStun
new const DayNames[TotalDays][] =
{
"Freeday", // 1
"Box Fightning", // 2
"Dodgeball", // 3
"Angry Birds", // 4
"Sawgame", // 5
"Spartaday", // 6
"Shark Day", // 7
"Intervention Day" // 8
}
new const boxing_sounds[][] =
{
"PlayGroundv2box/boxing_deploy1.wav",
"PlayGroundv2box/boxing_hit1.wav",
"PlayGroundv2box/boxing_hit2.wav",
"PlayGroundv2box/boxing_hit3.wav",
"PlayGroundv2box/boxing_hit4.wav",
"PlayGroundv2box/boxing_hitwall1.wav",
"PlayGroundv2box/boxing_slash1.wav",
"PlayGroundv2box/boxing_slash2.wav",
"PlayGroundv2box/boxing_stab.wav"
}
new const oldknife_sounds[][] =
{
"weapons/knife_deploy1.wav",
"weapons/knife_hit1.wav",
"weapons/knife_hit2.wav",
"weapons/knife_hit3.wav",
"weapons/knife_hit4.wav",
"weapons/knife_hitwall1.wav",
"weapons/knife_slash1.wav",
"weapons/knife_slash2.wav",
"weapons/knife_stab.wav"
}
public plugin_init()
{
register_plugin("PlayGround Daymenu", 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()
}
public plugin_natives()
register_native("get_current_day", "_get_current_day")
public _get_current_day(iPlugin, iParams)
return iDay
// ______________
//___/ Misc Actions \________________________________________________________________________________
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
public CmdOpenCells(iPlayer)
{
if(!(get_user_flags(iPlayer) & ADMIN_BAN))
{
ColorChat(iPlayer, GREY, "%s Sorry, only admins can use this command.", prefix)
return PLUGIN_HANDLED
}
new szName[33]; get_user_name(iPlayer, szName, charsmax(szName))
ColorChat(0, GREY, "^4[PlayGround]^3 Jailbreak:^4 %s^3 opened the cells!", szName)
Push_Button()
return PLUGIN_HANDLED
}
public FwdHamPlayerPickup(iEntity, iPlayer)
return (1 <= iPlayer <= g_iMaxPlayers && CantPickGun[iPlayer]) ? HAM_SUPERCEDE : HAM_IGNORED
public eventDeathMsg()
{
if(read_data(2) == sawMan && iDay == 5)
{
remove_task(123)
remove_task(321)
EventRoundRefresh()
ColorChat(0, GREY, "%s The^4 Saw Man^3 died!", prefix)
}
}
public EventRoundRefresh()
{
if(iDay == 3 || iDay == 4)
{
new iEnt
while((iEnt = find_ent_by_class(iEnt, "grenade")) != 0)
remove_entity(iEnt)
}
iDay = 0
sawMan = 0
set_lights("#OFF")
remove_task(123)
remove_task(321)
for(new i = 1; i < g_iMaxPlayers; i++)
{
if(is_user_connected(i) && !is_user_bot(i))
{
set_user_rendering(i)
set_user_godmode(i, 0)
set_user_noclip(i, 0)
remove_task(i)
cs_set_user_nvg(i, 0)
set_user_maxspeed(i, 250.0)
if(cs_get_user_team(i) == CS_TEAM_T && is_user_alive(i))
{
strip_user_weapons(i)
give_item(i, "weapon_knife")
}
CantPickGun[i] = false
}
}
return PLUGIN_HANDLED
}
public EventCurWeapon(iPlayer)
{
new weaponID = read_data(2)
if(iDay == 2 && is_user_alive(iPlayer) && cs_get_user_team(iPlayer) == CS_TEAM_T)
{
if(weaponID == CSW_KNIFE)
{
if(get_user_team(iPlayer) == 1)
{
entity_set_string(iPlayer, EV_SZ_viewmodel, "models/PlayGroundv2box/v_box_red.mdl")
entity_set_string(iPlayer, EV_SZ_weaponmodel, "models/PlayGroundv2box/p_knife.mdl")
}
}
}
if(iDay == 3 && is_user_alive(iPlayer) && cs_get_user_team(iPlayer) == CS_TEAM_T)
{
if(weaponID == CSW_HEGRENADE)
{
entity_set_string(iPlayer, EV_SZ_viewmodel, "models/PlayGroundv2dodge/v_dodgeball.mdl");
entity_set_string(iPlayer, EV_SZ_weaponmodel, "models/PlayGroundv2dodge/p_dodgeball.mdl");
}
}
if(iDay == 4 && is_user_alive(iPlayer) && cs_get_user_team(iPlayer) == CS_TEAM_T)
{
if(weaponID == CSW_HEGRENADE)
{
entity_set_string(iPlayer, EV_SZ_viewmodel, "models/PlayGroundv2angry/v_hegrenade.mdl");
entity_set_string(iPlayer, EV_SZ_weaponmodel, "models/PlayGroundv2angry/w_hegrenade.mdl");
}
}
if(iDay == 5 && is_user_alive(iPlayer) && cs_get_user_team(iPlayer) == CS_TEAM_T && iPlayer == sawMan)
{
if(weaponID == CSW_KNIFE)
{
entity_set_string(iPlayer, EV_SZ_viewmodel, "models/PlayGroundv2saw/v_knife.mdl")
entity_set_string(iPlayer, EV_SZ_weaponmodel, "models/PlayGroundv2box/p_knife.mdl")
}
}
if(iDay == 8 && is_user_alive(iPlayer))
{
if(weaponID == CSW_AWP)
{
entity_set_string(iPlayer, EV_SZ_viewmodel, "models/PlayGroundv2intervention/v_intervention.mdl")
entity_set_string(iPlayer, EV_SZ_weaponmodel, "models/PlayGroundv2intervention/p_intervention.mdl")
}
}
}
public FwdSetModel(iEnt, iModel[])
{
if(iDay == 3)
{
if(equali(iModel,"models/w_hegrenade.mdl"))
{
entity_set_model(iEnt, "models/PlayGroundv2dodge/w_dodgeball.mdl")
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
if(iDay == 4)
{
if(equali(iModel, "models/w_hegrenade.mdl"))
{
entity_set_model(iEnt, "models/PlayGroundv2angry/w_hegrenade.mdl")
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
return PLUGIN_CONTINUE
}
public FwdEmitSound(iPlayer, iChannel, const iSound[])
{
if(iDay == 2 && is_user_alive(iPlayer) && cs_get_user_team(iPlayer) == CS_TEAM_T)
{
for(new i = 0; i < sizeof boxing_sounds; i++)
{
if(equal(iSound, oldknife_sounds[i]))
{
emit_sound(iPlayer, iChannel, boxing_sounds[i], 1.0, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE
}
}
}
return FMRES_IGNORED
}
public FwdTraceAttack(iPlayer, iAttacker, Float:iDmg, Float:iDir[3], iTr, iDmgbit)
{
if(iDay == 2 && is_user_alive(iPlayer) && cs_get_user_team(iPlayer) == CS_TEAM_T)
{
if(get_pcvar_num(cStun) == 1)
{
new Float:Random_Float[3]
for(new i = 0; i < 3; i++) Random_Float[i] = (get_tr2(iTr, TR_iHitgroup) == HIT_HEAD) ? random_float(100.0, 150.0) : random_float(25.0, 30.0)
Punch_View(iPlayer, Random_Float)
}
set_user_health(iPlayer, get_user_health(iPlayer) - random_num(5, 10))
}
if(iDay == 5 && iAttacker == sawMan && get_user_team(iPlayer) == get_user_team(iAttacker))
set_user_health(iPlayer, get_user_health(iPlayer) - 100)
if(iDay == 7 && cs_get_user_team(iPlayer) == CS_TEAM_CT)
{
set_user_rendering(iPlayer, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 255)
set_task(0.3, "RemoveGlow", iPlayer)
}
}
public RemoveGlow(iPlayer)
if(is_user_connected(iPlayer) && is_user_alive(iPlayer))
set_user_rendering(iPlayer, kRenderFxNone, 0, 0, 0, kRenderTransAdd, 0)
stock Punch_View(iPlayer, Float:ViewAngle[3])
entity_set_vector(iPlayer, EV_VEC_punchangle, ViewAngle)
public client_disconnect(iPlayer)
{
if(iPlayer == sawMan)
{
EventRoundRefresh()
ColorChat(0, GREY, "%s The^4 Saw man^3 has left the game! Game stopped.", prefix)
}
}
public CheckGame()
{
if(getPlayers(CS_TEAM_T) == 1) // we have a winner
{
remove_task(321)
EventRoundRefresh()
ColorChat(0, GREY, "%s There's only 1^4 prisoner^3 alive now! Game stopped.", prefix)
}
}
// __________
//___/ Day Menu \____________________________________________________________________________________
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
public CmdStopDay(iPlayer)
{
if(!(get_user_flags(iPlayer) & ADMIN_BAN))
{
ColorChat(iPlayer, GREY, "%s Sorry, only admins can use this command.", prefix)
return PLUGIN_HANDLED
}
if(iDay)
{
new iName[33]; get_user_name(iPlayer, iName, charsmax(iName))
ColorChat(0, GREY, "%s^4 %s^3 stopped the game^4 %s^3", prefix, iName, DayNames[iDay-1])
new szTemp[100]; formatex(szTemp, charsmax(szTemp), "[PlayGround] Days^nStopped: %s", DayNames[iDay-1])
set_dhudmessage(255, 0, 0, -1.0, 0.2, 2, 6.0, 3.0, 0.1, 1.5)
show_dhudmessage(0, szTemp)
}
if(iDay == 3 || iDay == 4)
{
new iEnt
while((iEnt = find_ent_by_class(iEnt, "grenade")) != 0)
remove_entity(iEnt)
}
iDay = 0
sawMan = 0
set_lights("#OFF")
remove_task(123)
remove_task(321)
for(new i = 1; i < g_iMaxPlayers; i++)
{
if(is_user_connected(i) && !is_user_bot(i))
{
set_user_rendering(i)
set_user_godmode(i, 0)
remove_task(i)
cs_set_user_nvg(i, 0)
set_user_maxspeed(i, 250.0)
if(cs_get_user_team(i) == CS_TEAM_T)
{
strip_user_weapons(i)
give_item(i, "weapon_knife")
}
CantPickGun[i] = false
}
}
return PLUGIN_HANDLED
}
public CmdDayMenu(iPlayer)
{
if(!(get_user_flags(iPlayer) & ADMIN_BAN))
{
ColorChat(iPlayer, GREY, "%s Sorry, only admins can open this menu.", prefix)
return PLUGIN_HANDLED
}
if(iDay)
{
ColorChat(iPlayer, GREY, "%s There is already a special day going on.", prefix)
return PLUGIN_HANDLED
}
if(getPlayers(CS_TEAM_T) < 2)
{
ColorChat(iPlayer, GREY, "%s Not enough prisoners found! Needed:^4 2^3", prefix)
return PLUGIN_HANDLED
}
new DayMenu = menu_create("\y[PlayGround] Days menu", "DayMenuHandler")
new Key[6]
for(new i = 1; i <= TotalDays; i++)
{
num_to_str(i, Key, charsmax(Key))
menu_additem(DayMenu, DayNames[i-1], Key)
}
menu_setprop(DayMenu, MPROP_EXIT, MEXIT_ALL)
menu_display(iPlayer, DayMenu, 0)
return PLUGIN_HANDLED
}
public DayMenuHandler(iPlayer, iMenu, iItem)
{
if(iItem == MENU_EXIT)
{
menu_destroy(iMenu)
return PLUGIN_HANDLED
}
if(iDay)
{
ColorChat(iPlayer, GREY, "%s There is already a special day going on.", prefix)
return PLUGIN_HANDLED
}
if(getPlayers(CS_TEAM_T) < 2)
{
ColorChat(iPlayer, GREY, "%s Not enough prisoners found! Needed:^4 2^3", prefix)
return PLUGIN_HANDLED
}
new iAccess, iCallback, szCommand[6], szName[64]
menu_item_getinfo(iMenu, iItem, iAccess, szCommand, 5, szName, 63, iCallback)
new DayName = str_to_num(szCommand)
if(DayName != 5)
{
new iName[33]; get_user_name(iPlayer, iName, charsmax(iName))
ColorChat(0, GREY, "%s^4 %s^3 chose to start^4 %s^3.", prefix, iName, DayNames[DayName-1])
new szTemp[100]; formatex(szTemp, charsmax(szTemp), "[PlayGround] Days^nToday: %s", DayNames[DayName-1])
set_dhudmessage(255, 0, 0, -1.0, 0.2, 2, 6.0, 3.0, 0.1, 1.5)
show_dhudmessage(0, szTemp)
}
switch(str_to_num(szCommand))
{
case 1: StartFreeday()
case 2: StartBoxing()
case 3: StartDodgeball()
case 4: StartAngry()
case 5: SawMenu(iPlayer)
case 6: StartSparta()
case 7: StartShark()
case 8: StartIntervention()
default: return PLUGIN_HANDLED
}
menu_destroy(iMenu)
return PLUGIN_HANDLED
}
// ___________
//___/ Start Day \___________________________________________________________________________________
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// _________
//___/ FREEDAY \___________
//~~~~~~~~~~~~~~~~~~~~~~~~~
public StartFreeday()
{
iDay = 1
Push_Button()
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/PlayGroundv2freeday/freeday.wav")
strip_user_weapons(i)
give_item(i, "weapon_knife")
set_user_health(i, 100)
switch(cs_get_user_team(i))
{
case CS_TEAM_CT:
{
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: Enjoy your free day!", prefix)
}
}
return PLUGIN_HANDLED
}
public Setup_Buttons()
{
new ent = 1
new ent3
new Float:origin[3]
new Float:radius = 200.0
new class[32]
new name[32]
new pos
while((pos <= sizeof(g_iButtons)) && (ent = engfunc(EngFunc_FindEntityByString, ent, "classname", "info_player_deathmatch")))
{
new ent2 = 1
pev(ent, pev_origin, origin)
while((ent2 = engfunc(EngFunc_FindEntityInSphere, ent2, origin, radius)))
{
if(!pev_valid(ent2))
continue
pev(ent2, pev_classname, class, charsmax(class))
if(!equal(class, "func_door"))
continue
pev(ent2, pev_targetname, name, charsmax(name))
ent3 = engfunc(EngFunc_FindEntityByString, 0, "target", name)
if(pev_valid(ent3) && (in_array(ent3, g_iButtons, sizeof(g_iButtons)) < 0))
{
ExecuteHamB(Ham_Use, ent3, 0, 0, 1, 1.0)
g_iButtons[pos] = ent3
pos++
break
}
}
}
return pos
}
public Push_Button()
{
static i
for(i = 0; i < sizeof(g_iButtons); i++)
{
if(g_iButtons[i])
{
ExecuteHamB(Ham_Use, g_iButtons[i], 0, 0, 1, 1.0)
entity_set_float(g_iButtons[i], EV_FL_frame, 0.0)
}
}
}
stock in_array(needle, data[], size)
{
for(new i = 0; i < size; i++)
{
if(data[i] == needle)
return i
}
return -1
}
// ________
//___/ BOXING \____________
//~~~~~~~~~~~~~~~~~~~~~~~~~
public StartBoxing()
{
iDay = 2
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/PlayGroundv2box/boxing.wav")
strip_user_weapons(i)
give_item(i, "weapon_knife")
set_user_health(i, 100)
switch(cs_get_user_team(i))
{
case CS_TEAM_CT:
{
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: Knock your teammates to death!", prefix)
CantPickGun[i] = true
}
}
return PLUGIN_HANDLED
}
stock reset_user_knife(iPlayer)
{
engclient_cmd(iPlayer, "weapon_knife")
emessage_begin(MSG_ONE, g_msgCurWeapon, _, iPlayer)
ewrite_byte(1)
ewrite_byte(CSW_KNIFE)
ewrite_byte(-1)
emessage_end()
}
stock reset_user_nade(iPlayer)
{
engclient_cmd(iPlayer, "weapon_hegrenade")
emessage_begin(MSG_ONE, g_msgCurWeapon, _, iPlayer)
ewrite_byte(1)
ewrite_byte(CSW_HEGRENADE)
ewrite_byte(-1)
emessage_end()
}
// ___________
//___/ 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
}
// _____________
//___/ ANGRY BIRDS \_______
//~~~~~~~~~~~~~~~~~~~~~~~~~
public StartAngry()
{
iDay = 4
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/PlayGroundv2angry/angry.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: Throw your^4 Angry Birds^3 at your teammates.", prefix)
CantPickGun[i] = true
}
}
return PLUGIN_HANDLED
}
// _________
//___/ SAWGAME \___________
//~~~~~~~~~~~~~~~~~~~~~~~~~
public SawMenu(iPlayer)
{
new szSawMenu = menu_create("[PlayGround] Saw Menu^nChoose Saw Man:", "SawMenuHandler")
new players[32], pnum, tempid
new szName[32], szTempid[10]
get_players(players, pnum, "ac")
for(new i; i<pnum; i++)
{
tempid = players[i]
if(cs_get_user_team(tempid) == CS_TEAM_T)
{
get_user_name(tempid, szName, charsmax(szName))
num_to_str(tempid, szTempid, charsmax(szTempid))
menu_additem(szSawMenu, szName, szTempid, 0)
}
}
menu_display(iPlayer, szSawMenu, 0)
}
public SawMenuHandler(iPlayer, iMenu, iItem)
{
if(iItem == MENU_EXIT)
{
menu_destroy(iMenu)
return PLUGIN_HANDLED
}
if(iDay)
{
ColorChat(iPlayer, GREY, "%s There is already a special day going on.", prefix)
return PLUGIN_HANDLED
}
new iAccess, iCallback, szCommand[6], szName[64]
menu_item_getinfo(iMenu, iItem, iAccess, szCommand, 5, szName, 63, iCallback)
sawMan = str_to_num(szCommand)
if(is_user_connected(sawMan) && is_user_alive(sawMan))
{
StartSawgame()
new iName[33]; get_user_name(iPlayer, iName, charsmax(iName))
ColorChat(0, GREY, "%s^4 %s^3 chose to start^4 %s^3.", prefix, iName, DayNames[4])
new szTemp[100]; formatex(szTemp, charsmax(szTemp), "[PlayGround] Days^nToday: %s", DayNames[4])
set_dhudmessage(255, 0, 0, -1.0, 0.2, 2, 6.0, 3.0, 0.1, 1.5)
show_dhudmessage(0, szTemp)
}
else
{
SawMenu(iPlayer)
ColorChat(iPlayer, GREY, "%s This player is dead or not connected, please choose another^4 Saw Man^3.", prefix)
}
menu_destroy(iMenu)
return PLUGIN_HANDLED
}
public StartSawgame()
{
iDay = 5
for(new i = 1; i < g_iMaxPlayers; i++)
{
if(is_user_connected(i) && !is_user_bot(i))
{
client_cmd(i, "spk sound/PlayGroundv2saw/sawgame.wav")
strip_user_weapons(i)
set_user_health(i, 100)
give_item(i, "weapon_knife")
switch(cs_get_user_team(i))
{
case CS_TEAM_CT:
{
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: Run away from the^4 Saw man^3!", prefix)
CantPickGun[i] = true
}
}
set_task(1.0, "CheckSawgame", 321, _, _, "b")
set_task(180.0, "EndSawgame", 123)
set_user_rendering(sawMan, kRenderFxGlowShell,255,0,0,kRenderNormal,25)
cs_set_user_nvg(sawMan, 1)
set_user_maxspeed(sawMan, 270.0)
new iName[33]; get_user_name(sawMan, iName, charsmax(iName))
ColorChat(0, GREY, "%s ^4%s^3 became a^4 Saw man^3!", prefix, iName)
set_lights("b")
return PLUGIN_HANDLED
}
public CheckSawgame()
{
if(getPlayers(CS_TEAM_T) == 1) // Saw man has killed everyone, end everything.
{
remove_task(123)
remove_task(321)
EventRoundRefresh()
ColorChat(0, GREY, "%s The^4 Saw man^3 killed all the prisoners and he gets his^4 LR^3.", prefix)
}
}
public EndSawgame()
{
remove_task(123)
remove_task(321)
if(getPlayers(CS_TEAM_T) != 1) // SAWMAN FAILED!
{
for(new i = 1; i < g_iMaxPlayers; i++)
{
if(is_user_connected(i) && is_user_alive(i) && i == sawMan)
{
user_silentkill(i)
client_cmd(0, "spk sound/PlayGroundv2saw/gover.wav")
ColorChat(0, GREY, "%s The^4 Saw man^3 failed to kill all the prisoners!", prefix)
EventRoundRefresh()
}
}
}
}
stock getPlayers(CsTeams:iTeam)
{
new players
for(new i = 1; i < 33; i++)
if(is_user_connected(i) && !is_user_bot(i) && is_user_alive(i))
if(cs_get_user_team(i) == iTeam) players++
return players
}
// ________
//___/ SPARTA \____________
//~~~~~~~~~~~~~~~~~~~~~~~~~
public StartSparta()
{
iDay = 6
for(new i = 1; i < g_iMaxPlayers; i++)
{
if(is_user_connected(i) && !is_user_bot(i) && is_user_alive(i))
{
client_cmd(i, "spk sound/PlayGroundv2sparta/spartav2.wav")
strip_user_weapons(i)
give_item(i, "weapon_knife")
switch(cs_get_user_team(i))
{
case CS_TEAM_CT: set_user_health(i, 150)
case CS_TEAM_T: set_user_health(i, 35)
}
ColorChat(i, GREY, "%s Objective: Kill your enemies!", prefix)
}
}
return PLUGIN_HANDLED
}
// __________
//___/ SHARKDAY \__________
//~~~~~~~~~~~~~~~~~~~~~~~~~
public StartShark()
{
iDay = 7
for(new i = 1; i < g_iMaxPlayers; i++)
{
if(is_user_connected(i) && !is_user_bot(i) && is_user_alive(i))
{
strip_user_weapons(i)
switch(cs_get_user_team(i))
{
case CS_TEAM_CT:
{
set_user_health(i, 50 * getPlayers(CS_TEAM_T))
give_item(i, "weapon_knife")
set_user_noclip(i, 1)
set_user_rendering(i, kRenderFxNone, 0, 0, 0, kRenderTransAdd, 0)
}
case CS_TEAM_T:
{
set_user_health(i, 100)
give_item(i, "weapon_m249")
cs_set_user_bpammo(i, CSW_M249, 900)
}
}
ColorChat(i, GREY, "%s Objective: Kill your enemies! (The guards are invisible with noclip)", prefix)
CantPickGun[i] = true
}
}
set_lights("b")
return PLUGIN_HANDLED
}
// ______________
//___/ INTERVENTION \______
//~~~~~~~~~~~~~~~~~~~~~~~~~
public StartIntervention()
{
iDay = 8
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")
strip_user_weapons(i)
set_user_health(i, 100)
set_user_godmode(i, 0)
switch(cs_get_user_team(i))
{
case CS_TEAM_T:
{
give_item(i, "weapon_awp")
cs_set_user_bpammo(i, CSW_AWP, 30)
}
case CS_TEAM_CT:
{
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: Kill your enemies!", prefix)
CantPickGun[i] = true
}
}
return PLUGIN_HANDLED
}
// _________________
//___/ Plugin Precache \_____________________________________________________________________________
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
public plugin_precache()
{
//FREEDAY BELOW
precache_sound("PlayGroundv2freeday/freeday.wav")
//BOXING BELOW
precache_model("models/PlayGroundv2box/v_box_red.mdl")
precache_model("models/PlayGroundv2box/p_knife.mdl")
for(new i = 0; i < sizeof boxing_sounds; i++)
precache_sound(boxing_sounds[i])
precache_sound("PlayGroundv2box/boxing.wav")
//DODGEBALL BELOW
precache_model("models/PlayGroundv2dodge/p_dodgeball.mdl")
precache_model("models/PlayGroundv2dodge/v_dodgeball.mdl")
precache_model("models/PlayGroundv2dodge/w_dodgeball.mdl")
precache_sound("weapons/g_bounce1.wav")
iBeamspr = precache_model("sprites/laserbeam.spr")
precache_sound("PlayGroundv2dodge2/dodgeball.wav")
// ANGRYBIRDS BELOW
precache_model("models/PlayGroundv2angry/v_hegrenade.mdl")
precache_model("models/PlayGroundv2angry/w_hegrenade.mdl")
precache_sound("PlayGroundv2angry/angry.wav")
precache_sound("weapons/bobi_pull.wav")
precache_sound("weapons/bobi_throw.wav")
// SAWMAN BELOW
precache_model("models/PlayGroundv2saw/v_knife.mdl")
precache_sound("PlayGroundv2saw/sawgame.wav")
precache_sound("PlayGroundv2saw/gover.wav")
// SPARTA BELOW
precache_sound("PlayGroundv2sparta/spartav2.wav")
// Intervention
precache_model("models/PlayGroundv2intervention/v_intervention.mdl")
precache_model("models/PlayGroundv2intervention/p_intervention.mdl")
}
|
Thanks, send me more shitsz!
|