Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Umbrella Swarm


Guest Armasi

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 5074 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

  • Atsakymų 56
  • Sukurta
  • Paskutinis pranešimas

Top rašytojai šioje temoje

Top rašytojai šioje temoje

Aš ir nesakau, jog neveikia, bet Umbrella Swarm yra sudarytas iš :

Zombie Swarm + Random Zombie Clases + Ypatingos galios = Umbrella Swarm Mod

Nuoroda į komentarą
Dalintis per kitą puslapį

Va imkit Umbrella Swarm sma faila MODELIU NEBUVO IR NERA JOKIU TAD PATYS GAUSITE JUOS GAUTI IŠ KAŽKUR ARBA NAIKITE I LAIKIUX SERVA IR GAUSITE VISKĄ :

#include 
#include 
#include 
#include 
#include 
#include 
#define PLUGIN "Zombie Swarm"
#define VERSION "3.0 Beta3"
#define AUTHOR "Mini_Midget"
/*================================================================================
[CS Offesets]
=================================================================================*/
//#define OFFSET_ARMOR 0
#define DMG_HEGRENADE (1<<24)

/*================================================================================
[Hide HUD]
=================================================================================*/
#define HIDE_HUD (1<<0) //crosshair, ammo, weapons list
#define HIDE_FLASH (1<<1) //flashlight, +
#define HIDE_HP_HUD (1<<3) //Health, armour and radar
#define HIDE_MONEY (1<<5) //money, +
#define HIDE_NONE (1<<7) //+ 
/* Symbol + mean that an additional crosshair will be drawn. 
That crosshair looks exactly like the one from Crosshair message.*/
/*================================================================================
[Tasks Offsets]
=================================================================================*/
#define TASKID_STRIP 2046
#define TASKID_SHOWHUD 2931
#define TASKID_MODEL 3810 
#define TASKID_NVG 8382
/*================================================================================
[Classnames]
=================================================================================*/
#define CLASS_WEATHER "zswarm_weather"
#define CLASS_AMBIENCE "zswarm_ambience"
#define CLASS_FLESH "zswarm_flesh"
/*================================================================================
[sounds/Waves]
=================================================================================*/
new const g_sound_ambience[] = "MDs/amb1.wav"
new const g_sound_miss[][] =
{ 
"MDs/miss1_hunter.wav", 
"MDs/miss2_hunter.wav" 
}
new const g_sound_hit[][] = 
{ 
"MDs/strike1_hunter.wav", 
"MDs/strike2_hunter.wav",
"MDs/strike3_hunter.wav" 
}
new const g_sound_pain[][] =
{
"MDs/pain1_hunter.wav",
"MDs/pain2_hunter.wav",
"MDs/pain3_hunter.wav",
"MDs/pain4_hunter.wav",
"MDs/pain5_hunter.wav",
"MDs/pain6_hunter.wav",
"MDs/pain7_hunter.wav"
}
new const g_sound_die[][] =
{
"MDs/die1_hunter.wav",
"MDs/die2_hunter.wav",
"MDs/die3_hunter.wav",
"MDs/die4_gunter.wav",
"MDs/die5_hunter.wav",
"MDs/die6_hunter.wav"
}
/*================================================================================
[Models]
=================================================================================*/
new const ZOMBIE_PLAYER_MODEL[][] =
{
"Hunter",
"Boomer",
"Smoker"
};
new const ZOMBIE_MODEL[][] =
{
"models/player/Hunter/Hunter.mdl",
"models/player/Boomer/Boomer.mdl",
"models/player/Smoker/Smoker.mdl"
};
new consy ZOMBIE_PLAYER_CLAWS[] =
{
"v_knife_hunter",
"v_knife_bommer"
};
new const ZOMBIE_CLAWS[][] = 
{
"models/v_knife_hunter.mdl",
"models/v_knife_boomer.mdl"
};
new const ZOMBIE_FLESH[][] =
{
"models/abone_template1.mdl",
"models/bonegibs.mdl",
"models/fleshgibs.mdl",
"models/gib_b_bone.mdl",
"models/gib_b_gib.mdl",
"models/gib_legbone.mdl",
"models/gib_lung.mdl"
}
/*================================================================================
[Global Variables]
=================================================================================*/
new mod_name[32] = "Zombie Swarm"
new player_model[33][32]
new Float: g_counter

new bool: g_zombie[33]
new bool: g_infreezetime
new bool: g_model[33]
new Float: g_LastLeap[33]
new Float: g_LastFthrow[33]
new bool: g_light_flashing
new g_light_style[3][2] = { "a", "b", "m" }
new g_light_stylenum
new g_light_counter
new g_light_num
new msg_hideweapon /*, msg_statusicon*/
new g_hudsync
new const blocked_commands[][] = {
"buy", "buyequip", "cl_autobuy", "cl_rebuy", "cl_setautobuy", "cl_setrebuy",
"km45", "9x19mm", "glock", "deagle", "nighthawk", "p228", "228compact", "elites", "fn57", "fiveseven",
"12gauge", "autoshotgun", "xm1014", 
"smg", "tmp", "mp5", "c90", "p90", "mac10", "ump45", 
"cv47", "ak47", "galil", "defender", "famas", "clarion", "sg552", "krieg552", "m4a1", "aug", "bullpup", "scout", "awp", "magnum", "g3sg1", "d3au1", "sg550", "krieg550", 
"m249", 
"vest", "vesthelm", "flash", "hegren", "sgren", "defuser", "shield", "nvgs"
}
/*================================================================================
[CVARS]
=================================================================================*/
new cvar_switch, cvar_health, cvar_armour, cvar_gravity, cvar_speed, cvar_skyname, cvar_lights,
cvar_autonvg, cvar_blocknvg, cvar_backspeed, cvar_cooldown, cvar_lforce, cvar_lheight, cvar_fforce,
cvar_fdamage, cvar_fsdamage, cvar_hedmg_multi, cvar_weadmg_multi
/*================================================================================
[Precache]
=================================================================================*/
public plugin_precache() 
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_cvar(PLUGIN, VERSION, FCVAR_SPONLY|FCVAR_SERVER)
set_cvar_string(PLUGIN, VERSION)
register_dictionary("zombie_swarm.txt")
register_concmd("zombie_swarm", "concmd_zombieswarm", ADMIN_BAN, "<0/1> Disable/Enable Zombie Swarm")

cvar_switch = register_cvar("zswarm_enable", "1")

if (!get_pcvar_num(cvar_switch)) return

engfunc(EngFunc_PrecacheModel, ZOMBIE_CLAWS);

engfunc(EngFunc_PrecacheSound, g_sound_ambience);

new iNum
for (iNum = 0; iNum < sizeof(ZOMBIE_MODEL); iNum++)
engfunc(EngFunc_PrecacheModel, ZOMBIE_MODEL[iNum]);
for (iNum = 0; iNum < sizeof g_sound_miss; iNum++)
engfunc(EngFunc_PrecacheSound, g_sound_miss[iNum])
for (iNum = 0; iNum < sizeof g_sound_hit; iNum++)
engfunc(EngFunc_PrecacheSound, g_sound_hit[iNum])
for (iNum = 0; iNum < sizeof g_sound_pain; iNum++)
engfunc(EngFunc_PrecacheSound, g_sound_pain[iNum])
for (iNum = 0; iNum < sizeof g_sound_die; iNum++)
engfunc(EngFunc_PrecacheSound, g_sound_die[iNum])
for (iNum = 0; iNum < sizeof ZOMBIE_FLESH; iNum++)
engfunc(EngFunc_PrecacheModel, ZOMBIE_FLESH[iNum])
}
/*================================================================================
[Plugin start]
=================================================================================*/
public plugin_init() 
{
if (!get_pcvar_num(cvar_switch)) return

cvar_health = register_cvar("zswarm_health", "800")
cvar_armour = register_cvar("zswarm_armour", "")
cvar_gravity = register_cvar("zswarm_gravity", "800")
cvar_speed = register_cvar("zswarm_speed", "240")
cvar_lights = register_cvar("zswarm_light", "1")
cvar_skyname = register_cvar("zswarm_skyname", "space")
cvar_autonvg = register_cvar("zswarm_autonvg", "1")
cvar_blocknvg = register_cvar("zswarm_blocknvg","1")
cvar_backspeed = register_cvar("zswarm_bspeed", "1")
cvar_cooldown = register_cvar("zswarm_cooldown","5.0")
cvar_lforce = register_cvar("zswarm_lforce", "525")
cvar_lheight = register_cvar("zswarm_lheight", "260")
cvar_fforce = register_cvar("zswarm_fforce", "1500")
cvar_fdamage = register_cvar("zswarm_fdamage", "20")
cvar_fsdamage = register_cvar("zswarm_fsdamage","100")
cvar_hedmg_multi = register_cvar("zswarm_hemulti", "1.0")
cvar_weadmg_multi= register_cvar("zswarm_weamulti", "0.5")

RegisterHam(Ham_Spawn, "player", "bacon_spawn", 1)
RegisterHam(Ham_TakeDamage,"player", "bacon_takedamage")
RegisterHam(Ham_Touch, "weaponbox", "bacon_touch")
RegisterHam(Ham_Touch, "armoury_entity", "bacon_touch")
RegisterHam(Ham_Touch, "weapon_shield", "bacon_touch")

register_logevent("logevent_round_start", 2, "1=Round_Start")
register_logevent("logevent_round_end" , 2, "1=Round_End") 
register_event("HLTV", "event_new_round", "a", "1=0", "2=0")
register_event("CurWeapon", "event_cur_weapon", "be")

register_message(get_user_msgid("ScoreAttrib"), "message_ScoreAttrib")
register_message(get_user_msgid("StatusIcon"), "message_StatusIcon")
register_message(get_user_msgid("TextMsg"), "message_TextMessage")
register_message(get_user_msgid("SendAudio"), "message_SendAudio")
for(new i = 0; i < sizeof blocked_commands; i++) register_clcmd(blocked_commands[i], "clcmd_blocked")
register_clcmd("nightvision", "clcmd_nightvision")

new iEnt = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "ambient_generic"))
if(iEnt) 
{ 
dllfunc(DLLFunc_Think, iEnt)
set_pev(iEnt, pev_classname, CLASS_WEATHER)

fm_set_kvd(iEnt, "targetname", "boomer")
fm_set_kvd(iEnt, "pitchstart", "100")
fm_set_kvd(iEnt, "pitch", "100") 
fm_set_kvd(iEnt, "health", "500")
fm_set_kvd(iEnt, "spawnflags", "50")

dllfunc(DLLFunc_Spawn, iEnt)
set_pev(iEnt, pev_nextthink, get_gametime() + 2.0)

}
format(mod_name, 31, "%s %s", PLUGIN, VERSION)
register_forward(FM_GetGameDescription, "fw_GameDescription")
register_forward(FM_PlayerPreThink, "fw_PlayerPreThink")
register_forward(FM_SetClientKeyValue, "fw_SetClientKeyValue")
register_forward(FM_ClientUserInfoChanged, "fw_ClientUserInfoChanged")
register_forward(FM_EmitSound, "fw_EmitSound")
register_forward(FM_CmdStart, "fw_CmdStart")
register_forward(FM_Touch, "fw_Touch")
register_forward(FM_Think, "fw_Think_lights", 1)

msg_hideweapon = get_user_msgid("HideWeapon")
//msg_statusicon = get_user_msgid("StatusIcon")
g_hudsync = CreateHudSyncObj()

new skyname[32]
get_pcvar_string(cvar_skyname, skyname, 31)

set_cvar_string("sv_skyname", skyname)
set_cvar_num("sv_skycolor_r", 0)
set_cvar_num("sv_skycolor_g", 0)
set_cvar_num("sv_skycolor_b", 0)
server_cmd("sv_maxspeed 2000")
}
public client_putinserver(id)
{
g_zombie[id] = false
}
public fw_GameDescription() 
{ 
forward_return(FMV_STRING, mod_name)

return FMRES_SUPERCEDE
} 
public concmd_zombieswarm(id, level, cid) 
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED

new sz_arg[8]
read_argv(1, sz_arg, 7)

if ( equali(sz_arg, "1") || equali(sz_arg, "on") || equali(sz_arg, "enable") ) 
{
set_task(5.0, "Task_Restart") 
set_pcvar_num(cvar_switch, 1)

set_hudmessage(255, 255, 255, -1.0, 0.25, 0, 1.0, 5.0, 0.1, 0.2, -1)
show_hudmessage(0, "%L", LANG_PLAYER, "PLUGIN_HON_MSG", PLUGIN)

console_print(0, "%L", LANG_PLAYER, "PLUGIN_TON_MSG", PLUGIN)
for(new i = 1; i < 6; i++)
client_print(0, print_chat, "%L", LANG_PLAYER, "PLUGIN_TON_MSG", PLUGIN)

return PLUGIN_HANDLED
}
else if ( equali(sz_arg, "0") || equali(sz_arg, "off") || equali(sz_arg, "disable") ) 
{ 

set_task(5.0, "Task_Restart") 
set_pcvar_num(cvar_switch, 0) 

set_hudmessage(255, 255, 255, -1.0, 0.25, 0, 1.0, 5.0, 0.1, 0.2, -1)
show_hudmessage(0, "%L", LANG_PLAYER, "PLUGIN_HOFF_MSG", PLUGIN)

console_print(0, "%L", LANG_PLAYER, "PLUGIN_TOFF_MSG", PLUGIN)
for(new i = 1; i < 6; i++)
client_print(0, print_chat, "%L", LANG_PLAYER, "PLUGIN_TOFF_MSG", PLUGIN)

return PLUGIN_HANDLED
}

console_print(id, "Invalid argument!")

return PLUGIN_HANDLED
}
public bacon_spawn(id)
{ 
if (!is_user_alive(id))
return

static CsTeams: team ; team = cs_get_user_team(id)

if (team == CS_TEAM_T) //Terr
{
new Float:health, Float:gravity, armour
health = get_pcvar_float(cvar_health)
gravity = get_pcvar_float(cvar_gravity) / 800
armour = get_pcvar_num(cvar_armour)

g_zombie[id] = true
if(!task_exists(TASKID_STRIP + id))
set_task(0.2, "Task_Strip", TASKID_STRIP + id)

set_pev(id, pev_health, health)
cs_set_user_armor(id, armour, CS_ARMOR_VESTHELM)
set_pev(id, pev_gravity, gravity)
if (!cs_get_user_nvg(id))
cs_set_user_nvg(id)

if (get_pcvar_num(cvar_autonvg))
set_task(0.2, "Task_NVG", TASKID_NVG + id)

copy(player_model[id], 31, ZOMBIE_PLAYER_MODEL[random_num(0, sizeof(ZOMBIE_PLAYER_MODEL) - 1)])

new currentmodel[32];
fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);

if(!equal(currentmodel, player_model[id]))
{
set_task(0.5 + g_counter, "Task_Model", id + TASKID_MODEL)
g_counter += 0.2;
}

if(!task_exists(TASKID_SHOWHUD + id))
set_task(0.2, "Task_ShowHUD", TASKID_SHOWHUD + id)
}
else if (team == CS_TEAM_CT) // CT
{
g_zombie[id] = false
fm_reset_user_model(id)
}
}
public bacon_takedamage(victim, inflictor, attacker, Float:damage, damagetype)
{
if(damagetype & DMG_GENERIC || victim == attacker || !is_user_alive(victim) || !is_user_connected(attacker))
return HAM_IGNORED
if(!g_zombie[victim] && !g_zombie[attacker])
{
SetHamParamFloat(4, 0.0)
return HAM_HANDLED
}

static CsTeams:team[2]
team[0] = cs_get_user_team(attacker), team[1] = cs_get_user_team(victim)

if(team[0] == team[1])
return HAM_IGNORED

if(!g_zombie[attacker])
{ 
damage *= (damagetype & DMG_HEGRENADE) ? get_pcvar_float(cvar_hedmg_multi) : get_pcvar_float(cvar_weadmg_multi)
SetHamParamFloat(4, damage)
return HAM_HANDLED
}

return HAM_IGNORED
}
public event_new_round()
{
g_infreezetime = true
}
public logevent_round_start()
{
g_infreezetime = false
}
public logevent_round_end()
{
g_counter = 0.0
}
public event_cur_weapon(id)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED

if (g_zombie[id])
{
new weapon = read_data(2)

if (weapon != CSW_KNIFE)
{ 
engclient_cmd(id, "weapon_knife")
set_pev(id, pev_viewmodel2, ZOMBIE_CLAWS)
set_pev(id, pev_weaponmodel2, "")
}

message_begin(MSG_ONE, msg_hideweapon, _ , id)
write_byte(HIDE_HUD | HIDE_FLASH | HIDE_HP_HUD | HIDE_MONEY)
message_end()
}
else
{
message_begin(MSG_ONE, msg_hideweapon, _ , id)
write_byte(HIDE_NONE) 
message_end()
}

return PLUGIN_CONTINUE
}
public message_ScoreAttrib(msg_id, msg_dest, id)
{
new attrib; attrib = get_msg_arg_int(2)
if(attrib == (1<<1)) set_msg_arg_int(2, ARG_BYTE, 0)
}
public message_StatusIcon(msg_id, msg_dest, id)
{
if(!is_user_connected(id) || !g_zombie[id])
return PLUGIN_CONTINUE

new icon[4]; get_msg_arg_string(2, icon, 3)
if(equal(icon, "c4") || equal(icon, "buy"))
return PLUGIN_HANDLED

return PLUGIN_CONTINUE
}

public message_TextMessage(msg_id, msg_dest, id)
{
if(get_msg_arg_int(1) != 4)
return PLUGIN_CONTINUE

new text_msg[25], win_msg[32]
get_msg_arg_string(2, text_msg, 24)

if(equal(text_msg[1], "Game_bomb_drop"))
return PLUGIN_HANDLED
else if(equal(text_msg[1], "Terrorists_Win"))
{
formatex(win_msg, 31, "%L", LANG_SERVER, "WIN_ZOMBIE")
set_msg_arg_string(2, win_msg)
}
else if(equal(text_msg[1], "Target_Saved") || equal(text_msg[1], "CTs_Win"))
{
formatex(win_msg, 31, "%L", LANG_SERVER, "WIN_HUMAN")
set_msg_arg_string(2, win_msg)
}
return PLUGIN_CONTINUE
}
public message_SendAudio(msg_id, msg_dest, id)
{
new audiocode [22]; get_msg_arg_string(2, audiocode, 21)
if(equal(audiocode[7], "MOVEOUT") || equal(audiocode[7], "LOCKNLOAD")
|| equal(audiocode[7], "LETSGO") || (equal(audiocode[7], "GO")))
set_msg_arg_string(2, "%!MRAD_ELIM") 

else if(equal(audiocode[7], "terwin"))
return PLUGIN_HANDLED
//set_msg_arg_string(2, g_zombie_win_sounds[_random(sizeof g_zombie_win_sounds)])

return PLUGIN_CONTINUE
}
public clcmd_blocked(id)
{
if (g_zombie[id])
{
client_print(id, print_center, "%L", LANG_PLAYER, "BLOCK_BUY")
return PLUGIN_HANDLED
}

return PLUGIN_CONTINUE
}

public clcmd_nightvision(id)
{
if(!g_zombie[id] && get_pcvar_num(cvar_blocknvg) && cs_get_user_nvg(id))
{
client_print(id, print_center, "%L", LANG_PLAYER, "BLOCK_NVG")
return PLUGIN_HANDLED
}

return PLUGIN_CONTINUE
}
public clcmd_throw(id)
{
static Float: Origin[3], Float: Velocity[3], Float: Angle[3], MinBox[3], MaxBox[3]
pev(id, pev_origin, Origin)
pev(id, pev_velocity, Velocity)
pev(id, pev_angles, Angle)
static Health, Float: damage
Health = get_user_health(id)
damage = get_pcvar_float(cvar_fsdamage)

if (Health > damage)
{
static ent ; ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"))

set_pev(ent, pev_classname, CLASS_FLESH)
engfunc(EngFunc_SetModel, ent, ZOMBIE_FLESH[random(sizeof ZOMBIE_FLESH)])
Angle[0] = random_float(1.0, 360.0)
Angle[1] = random_float(1.0, 360.0)
MinBox = { -1.0, -1.0, -1.0 }
MaxBox = { 1.0, 1.0, 1.0 }

set_pev(ent, pev_angles, Angle)
engfunc(EngFunc_SetSize, ent, MinBox, MaxBox)
engfunc(EngFunc_SetOrigin, ent, Origin)
set_pev(ent, pev_movetype, MOVETYPE_TOSS)
set_pev(ent, pev_solid, SOLID_TRIGGER)
set_pev(ent, pev_owner, id)

velocity_by_aim(id, get_pcvar_num(cvar_fforce), Velocity)
set_pev(ent, pev_velocity, Velocity)

emit_sound(id, CHAN_VOICE, g_sound_pain[random(sizeof g_sound_pain)], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
set_pev(id, pev_health, Health - damage)
}
else
{
client_print(id, print_center, "%L", LANG_PLAYER, "FLESH_HEALTH")
}
}
public fw_PlayerPreThink(id)
{
if(!is_user_alive(id))
return FMRES_IGNORED

static Float: velocity[3], Float: Time
static button, flag
button = pev(id, pev_button)
flag = pev(id, pev_flags)
Time = get_gametime()

if (g_zombie[id])
{
if ( (!g_infreezetime) && (button & IN_RELOAD) && (flag & FL_ONGROUND))
{
static Float: cooldown, Float: lheight, lforce
cooldown = get_pcvar_float(cvar_cooldown)
lforce = get_pcvar_num(cvar_lforce)
lheight = get_pcvar_float(cvar_lheight)
if (Time - cooldown > g_LastLeap[id])
{ 
set_pev(id, pev_button, button & ~IN_RELOAD)
velocity_by_aim(id, lforce, velocity)
velocity[2] = lheight
set_pev(id, pev_velocity, velocity)
g_LastLeap[id] = Time
}
}
else if ( (!g_infreezetime) && (button & IN_ATTACK) && (button & IN_ATTACK2))
{
if(Time - 1.1 > g_LastFthrow[id])
{
clcmd_throw(id)
g_LastFthrow[id] = Time
}
}
else if (!g_infreezetime)
{
static Float:speed; speed = get_pcvar_float(cvar_speed)
set_pev(id, pev_maxspeed, speed)
}
}
else if (!g_zombie[id])
{
if ( (button & IN_BACK) && (flag & FL_ONGROUND) )
{
static Float: backspeed ; backspeed = get_pcvar_float(cvar_backspeed)
pev(id, pev_velocity, velocity)
xs_vec_mul_scalar(velocity, backspeed, velocity)
set_pev(id, pev_velocity, velocity)
}
}

return FMRES_IGNORED
} 
public fw_SetClientKeyValue(id, infobuffer, key[], value[])
{ 
if (g_model[id] && equal(key, "model"))
return FMRES_SUPERCEDE;

return FMRES_IGNORED;
}
public fw_ClientUserInfoChanged(id, infobuffer)
{ 
if (!g_model[id])
return FMRES_IGNORED;

new currentmodel[32]; 
fm_get_user_model(id, currentmodel, sizeof currentmodel - 1);

if(!equal(currentmodel, player_model[id]))
fm_set_user_model(id, player_model[id]) 

return FMRES_IGNORED;
}
public fw_EmitSound(id, channel, sample[], Float:volume, Float:attn, flag, pitch)
{
if(!is_user_connected(id) || !g_zombie[id])
return FMRES_IGNORED

//KNIFE
if (sample[0] == 'w' && sample[1] == 'e' && sample[8] == 'k' && sample[9] == 'n')
{
switch(sample[17])
{
case 'l': 
return FMRES_SUPERCEDE

case 's', 'w':
{
emit_sound(id, CHAN_WEAPON, g_sound_miss[random(sizeof g_sound_miss)], volume, attn, flag, pitch)
return FMRES_SUPERCEDE
}

case 'b', '1', '2', '3', '4':
{
emit_sound(id, CHAN_WEAPON, g_sound_hit[random(sizeof g_sound_hit)], volume, attn, flag, pitch)
return FMRES_SUPERCEDE
}
}
}
//PAIN
else if (sample[1] == 'l' && sample[2] == 'a' && sample[3] == 'y' && ( (containi(sample, "bhit") != -1) || (containi(sample, "pain") != -1) || (containi(sample, "shot") != -1)))
{
emit_sound(id, CHAN_VOICE, g_sound_pain[random(sizeof g_sound_pain)], volume, attn, flag, pitch)
return FMRES_SUPERCEDE
} 
//DEATH
else if (sample[7] == 'd' && (sample[8] == 'i' && sample[9] == 'e' || sample[12] == '6'))
{
emit_sound(id, CHAN_VOICE, g_sound_die[random(sizeof g_sound_die)], volume, attn, flag, pitch)
return FMRES_SUPERCEDE
} 
//NVG
else if (sample[6] == 'n' && sample[7] == 'v' && sample[8] == 'g')
return FMRES_SUPERCEDE

return FMRES_IGNORED
}
public fw_CmdStart(id, handle, seed)
{
if(!is_user_alive(id) || !g_zombie[id])
return FMRES_IGNORED

static impulse; impulse = get_uc(handle, UC_Impulse)
if(impulse == 100)
{
set_uc(handle, UC_Impulse, 0)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
public bacon_touch(ent, id)
{
if (is_user_alive(id) && g_zombie[id])
return HAM_SUPERCEDE

return HAM_IGNORED
}
public fw_Touch(pToucher, pTouched)
{
if ( pev_valid(pToucher))
{
static className[32], className2[32]
pev(pToucher, pev_classname, className, 31)
if ( pev_valid(pTouched)) pev(pTouched, pev_classname, className2, 31)

if ( equal(className, CLASS_FLESH))
{
static attacker ; attacker = pev(pToucher, pev_owner)

if ( pev_valid(pTouched))
{
if ( equal(className2, "player") && is_user_connected(pTouched))
{
static origin[3], Float: damage
get_user_origin(pTouched, origin)
damage = get_pcvar_float(cvar_fdamage)
static CsTeams:team[2]
team[0] = cs_get_user_team(pTouched), team[1] = cs_get_user_team(attacker)

if (attacker == pTouched)
return FMRES_SUPERCEDE

if (!get_cvar_num("mp_friendlyfire") && team[0] == team[1]) 
return FMRES_SUPERCEDE
message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
write_byte(TE_BLOOD);
write_coord(origin[0]);
write_coord(origin[1]);
write_coord(origin[2] + 10);
write_coord(random_num(-360, 360));
write_coord(random_num(-360, 360));
write_coord(-10);
write_byte(70);
write_byte(random_num(15, 35));
message_end() 
ExecuteHam(Ham_TakeDamage, pTouched, pToucher, attacker, damage, DMG_GENERIC)
}
else if ( equal(className2, "func_breakable")) dllfunc(DLLFunc_Use, pTouched, attacker) 
else if ( equal(className2, CLASS_FLESH)) return FMRES_SUPERCEDE 
} 
engfunc(EngFunc_RemoveEntity, pToucher)
}
}

return FMRES_IGNORED
} 
public fw_Think_lights(iEnt)
{
if (!pev_valid(iEnt))
return FMRES_IGNORED;

static className[32]
pev(iEnt, pev_classname, className, 31);
static Float:gametime; gametime = get_gametime()

if (equal(className, CLASS_WEATHER))
{
switch (get_pcvar_num(cvar_lights))
{
case 0:
{
engfunc(EngFunc_LightStyle, 0, "m")
set_pev(iEnt, pev_nextthink, gametime + 0.1);
}
case 1:
{
static thinkReturn, randNum;
if(!g_light_flashing)
{
randNum = random_num(0, 1);
if(randNum)
g_light_flashing = true;
g_light_num = random_num(1, 3);
dllfunc(DLLFunc_Use, iEnt, 0)
}
thinkReturn = lightning();

if(thinkReturn)
set_pev(iEnt, pev_nextthink, gametime + random_float(9.5, 16.5));
else
set_pev(iEnt, pev_nextthink, gametime + 0.1);
}
case 2:
{
engfunc(EngFunc_LightStyle, 0, "b")
set_pev(iEnt, pev_nextthink, gametime + 0.1);
}
default:
{
engfunc(EngFunc_LightStyle, 0, "a")
set_pev(iEnt, pev_nextthink, gametime + 0.1);
}
}
}
return FMRES_HANDLED;
}
lightning()
{
switch(g_light_num)
{
// Flash 1 time
case 1:
{
g_light_counter += 1;
switch(g_light_counter)
{
case 1: g_light_stylenum = 1;
case 2: g_light_stylenum = 2;
case 3: g_light_stylenum = 1;
case 4: g_light_stylenum = 0;
}
engfunc(EngFunc_LightStyle, 0, g_light_style[g_light_stylenum])

if(g_light_counter == 4)
{
g_light_counter = 0;
g_light_flashing = false;
return 1;
}
else
return 0;
}
// Flash 2 times
case 2:
{
g_light_counter += 1;
switch(g_light_counter)
{
case 1: g_light_stylenum = 1;
case 2: g_light_stylenum = 2;
case 3: g_light_stylenum = 1;
case 4: g_light_stylenum = 2;
case 5: g_light_stylenum = 1;
case 6: g_light_stylenum = 0;
}
engfunc(EngFunc_LightStyle, 0, g_light_style[g_light_stylenum])

if(g_light_counter == 6)
{
g_light_counter = 0;
g_light_flashing = false;
return 1;
}
else
return 0;
}
// Flash 3 times
case 3:
{
g_light_counter += 1;
switch(g_light_counter)
{
case 1: g_light_stylenum = 1;
case 2: g_light_stylenum = 2;
case 3: g_light_stylenum = 1;
case 4: g_light_stylenum = 2;
case 5: g_light_stylenum = 1;
case 6: g_light_stylenum = 2;
case 7: g_light_stylenum = 1;
case 8: g_light_stylenum = 0;
}
engfunc(EngFunc_LightStyle, 0, g_light_style[g_light_stylenum])

if(g_light_counter == 8)
{
g_light_counter = 0;
g_light_flashing = false;
return 1;
}
else
return 0;
}
}
return 1;
}
/*================================================================================
[Tasks]
=================================================================================*/
public Task_Restart()
{
new mapname[32]
get_mapname(mapname, 31)
server_cmd("changelevel %s", mapname)
}
public Task_ShowHUD(task)
{
new id = task - TASKID_SHOWHUD

if(!is_user_alive(id) || !g_zombie[id])
return PLUGIN_HANDLED

static health, armour
health = get_user_health(id)
armour = get_user_armor(id)

set_hudmessage(255, 180, 0, 0.02, 0.97, 0, 0.0, 0.3, 0.0, 0.0)
ShowSyncHudMsg(id, g_hudsync , "Health: %d | Armour: %d", health, armour)

set_task(0.1, "Task_ShowHUD", TASKID_SHOWHUD + id) 

return PLUGIN_CONTINUE
}
public Task_Strip(task) 
{
new id = task - TASKID_STRIP
if (cs_get_user_submodel(id)) 
cs_set_user_submodel(id, 0)
fm_strip_user_weapons(id)
bacon_give_weapon(id, "weapon_knife")
set_pev(id, pev_viewmodel2, ZOMBIE_CLAWS)
set_pev(id, pev_weaponmodel2, "")
} 
public Task_Model(task)
{
new id = task - TASKID_MODEL; 

fm_set_user_model(id, player_model[id])
}
public Task_NVG(task)
{
new id = task - TASKID_NVG

engclient_cmd(id, "nightvision")
for(new i = 1; i < 10; i++)
client_cmd(id, "-nvgadjust")
}
/*================================================================================
[stocks]
=================================================================================*/
stock fm_strip_user_weapons(index) 
{
static ent; ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "player_weaponstrip"))
if(!pev_valid(ent)) return 0

dllfunc(DLLFunc_Spawn, ent)
dllfunc(DLLFunc_Use, ent, index)
engfunc(EngFunc_RemoveEntity, ent)

return 1
}
stock fm_set_user_model(player, modelname[])
{ 
engfunc(EngFunc_SetClientKeyValue, player, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", modelname)

g_model[player] = true
}
stock fm_get_user_model(player, model[], len)
{ 
engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, player), "model", model, len)
}
stock fm_reset_user_model(player)
{ 
g_model[player] = false

dllfunc(DLLFunc_ClientUserInfoChanged, player, engfunc(EngFunc_GetInfoKeyBuffer, player))
}
stock fm_set_kvd(entity, const key[], const value[], const classname[] = "") {
if (classname[0])
set_kvd(0, KV_ClassName, classname); 
else {
new class[32];
pev(entity, pev_classname, class, sizeof class - 1);
set_kvd(0, KV_ClassName, class);
}
set_kvd(0, KV_KeyName, key);
set_kvd(0, KV_Value, value);
set_kvd(0, KV_fHandled, 0);
return dllfunc(DLLFunc_KeyValue, entity, 0);
}
stock fm_find_ent_by_owner(index, const classname[], owner, jghgtype = 0) {
new strtype[11] = "classname", ent = index;
switch (jghgtype) {
case 1: strtype = "target";
case 2: strtype = "targetname";
}
while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner) {}
return ent;
}
stock bool:fm_strip_user_gun(index, wid = 0, const wname[] = "") {
new ent_class[32];
if (!wid && wname[0])
copy(ent_class, sizeof ent_class - 1, wname);
else {
new weapon = wid, clip, ammo;
if (!weapon && !(weapon = get_user_weapon(index, clip, ammo)))
return false;

get_weaponname(weapon, ent_class, sizeof ent_class - 1);
}
new ent_weap = fm_find_ent_by_owner(-1, ent_class, index);
if (!ent_weap)
return false;
engclient_cmd(index, "drop", ent_class);
new ent_box = pev(ent_weap, pev_owner);
if (!ent_box || ent_box == index)
return false;
dllfunc(DLLFunc_Think, ent_box);
return true;
}
stock bacon_give_weapon(index, weapon[])
{
if(!equal(weapon,"weapon_", 7)) return 0

static ent; ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, weapon))
if(!pev_valid(ent)) return 0

set_pev(ent, pev_spawnflags, SF_NORESPAWN)
dllfunc(DLLFunc_Spawn, ent)

if(!ExecuteHamB(Ham_AddPlayerItem, index, any:ent) || !ExecuteHamB(Ham_Item_AttachToPlayer, ent, any:index))
{
if(pev_valid(ent)) set_pev(ent, pev_flags, pev(ent, pev_flags) & FL_KILLME)
return 0
}
return 1
}  

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 1 mėnesio...
  • Parašė po 4 savaičių...

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 5074 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai



×
×
  • Sukurti naują...