La fel...tot nu apare.
Eu am adaugat new player 32 si tot ce ii legat de public ShowHUD din plugin-ul de mai jos:
Code: Select all
#include <amxmodx>
#include <zombieplague>
#include <hamsandwich>
#include <fakemeta>
#include <engine>
#define SetSound(%0,%1,%2) emit_sound(%0, %1, %2, 1.0, ATTN_NORM, 0, PITCH_NORM)
new const PLUGIN[] = "[CSO] Class String Finger"
new const VERSION[] = "1.0"
new const AUTHOR[] = "ShuriK"
new const zclass1_name[] = { "String Finger" }
new const zclass1_info[] = { "Q - Gravity , G - Long Attack " }
new const zclass1_model[] = { "resident_zombi_host" }
new const zclass1_clawmodel[] = { "v_knife_zombieresident.mdl" }
new const g_vgrenade[] = "models/zombie_plague/v_zombibomb_resident.mdl"
const zclass1_health = 1700
const zclass1_speed = 240
const Float:zclass1_gravity = 1.0 //Ð“Ñ€Ð°Ð²Ð¸Ñ‚Ð°Ñ†Ð¸Ñ Ð² обычном режиме
const Float:zclass1_knockback = 1.0 //Отдача
const Float:gravity_time = 8.0 //Ð’Ñ€ÐµÐ¼Ñ Ð³Ñ€Ð°Ð²Ð¸Ñ‚Ð°Ñ†Ð¸Ð¸;
const Float:realod_gravity = 15.0 //ОтÑчет до гравитации;
const Float:realod_gmg = 15.0 //ОтÑчет до вытÑгивание рук;
const Float:finger_gravity = 0.2 //Ð“Ñ€Ð°Ð²Ð¸Ñ‚Ð°Ñ Ð¿Ñ€Ð¸ ÑпоÑобноÑти;
const dmg_long = 200 //Дамаг вытÑÐ³Ð¸Ð²Ð°Ð½Ð¸Ñ Ñ€ÑƒÐº;
const Distance = 400 //ДиÑÑ‚Ð°Ð½Ñ†Ð¸Ñ Ð´Ð»Ñ Ð²Ñ‹Ñ‚Ñгивание рук;
const MAX_CLIENTS = 32 ;
enum _:FINGER_ANIMATIONS
{
LongDamageAnim = 8,
GravAnim = 9,
EndGrav = 10,
skill1 = 91,
skill2 = 98
};
new g_stinger_sound[][] =
{
"zombi/resident_skill2.wav",
"zombi/resident_skill1.wav",
"zombi/resident_tw.wav"
}
new g_string ,
g_msgScreenFade,
g_damage_use[ MAX_CLIENTS + 1 ] ,
g_gravity_use[ MAX_CLIENTS + 1] ,
g_coldown[ MAX_CLIENTS + 1 ] ,
g_clodown_grav[MAX_CLIENTS + 1] ,
g_coldown_dmg_time[MAX_CLIENTS + 1] ,
g_coldown_grav_time[MAX_CLIENTS + 1] ;
public plugin_init()
{
register_event("CurWeapon","handle_gun","be","1=1")
register_plugin(PLUGIN, VERSION, AUTHOR) ;
register_forward(FM_CmdStart , "fm_cmdstart" ) ;
register_clcmd("drop" , "Abil_LongDmg" );
g_msgScreenFade = get_user_msgid("ScreenFade");
register_dictionary( "zp_string.txt" ) ;
}
public plugin_precache()
{
precache_model(g_vgrenade)
g_string = zp_register_zombie_class(zclass1_name, zclass1_info, zclass1_model, zclass1_clawmodel, zclass1_health, zclass1_speed, zclass1_gravity, zclass1_knockback) ;
static i ;
for(i = 0; i < sizeof g_stinger_sound; i++)
{
precache_sound(g_stinger_sound[i]);
}
}
public handle_gun(id)
{
new weap = get_user_weapon(id)
if(weap == CSW_HEGRENADE && zp_get_user_zombie_class(id) == g_string && zp_get_user_zombie(id))
{
entity_set_string(id, EV_SZ_viewmodel, g_vgrenade)
}
else if(weap == CSW_SMOKEGRENADE && zp_get_user_zombie_class(id) == g_string && zp_get_user_zombie(id))
{
entity_set_string(id, EV_SZ_viewmodel, g_vgrenade)
}
return PLUGIN_HANDLED
}
public zp_user_infected_post( player )
{
if(zp_get_user_zombie_class(player) == g_string && !zp_get_user_nemesis(player))
{
g_damage_use[player] = false
g_gravity_use[player] = false
g_coldown[player] = false
g_clodown_grav[player] = false
g_coldown_dmg_time[player] = floatround(realod_gmg)
g_coldown_grav_time[player] = floatround(realod_gravity)
remove_task(player)
cahtcol(player , "%L" , LANG_PLAYER , "FINGER")
{
return PLUGIN_HANDLED
}
}
return PLUGIN_CONTINUE
}
public client_connect(player)
{
g_damage_use[player] = false
g_gravity_use[player] = false
}
public client_disconnect(player)
{
g_damage_use[player] = false
g_gravity_use[player] = false
}
public fm_cmdstart(player , UC_Handle , seed)
{
if (!is_user_alive(player))
{
return FMRES_IGNORED
}
if(zp_get_user_zombie_class(player) == g_string && zp_get_user_zombie(player) && !zp_get_user_nemesis(player))
{
if(g_clodown_grav[player] == 0)
{
new gButton, gOldButton
gButton = get_uc(UC_Handle, UC_Buttons)
gOldButton = pev(player, pev_oldbuttons)
if((gButton & IN_RELOAD) && !(gOldButton & IN_RELOAD))
{
UTIL_Gravity(player)
}
}
}
return FMRES_IGNORED
}
public Abil_LongDmg(player)
{
if(is_user_alive(player) && zp_get_user_zombie_class(player) == g_string && zp_get_user_zombie(player) && !zp_get_user_nemesis(player))
{
if(g_coldown[player] == 0)
{
UTIL_LongDamage(player) ; return PLUGIN_HANDLED ;
}
}
return PLUGIN_CONTINUE ;
}
stock UTIL_Gravity(player)
{
if (!is_user_alive(player))
{
return FMRES_IGNORED
}
if(zp_get_user_zombie_class(player) == g_string && zp_get_user_zombie(player) && !zp_get_user_nemesis(player))
{
set_task(0.3, "PlaySound", player) ;
g_gravity_use[player] = true
UTIL_PlayAnim(player , GravAnim)
g_clodown_grav[player] = true
UTIL_ScreenFade(player , 255 , 255 , 255)
entity_set_int( player , EV_INT_sequence, skill2)
set_pdata_float(player , 83, 1.0 , 5)
set_pev( player, pev_gravity, finger_gravity )
set_task(gravity_time , "remove_abil" , player )
g_coldown_grav_time[player] = floatround(realod_gravity)
set_task(1.0, "ShowHUD_grav", player , _, _, "a",g_coldown_grav_time[player])
set_task(realod_gravity , "reset_grav" , player)
}
return FMRES_IGNORED
}
public PlaySound(Player) SetSound(Player, CHAN_BODY, g_stinger_sound[1]) ;
public ShowHUD_grav(player)
{
if(is_user_alive(player) && zp_get_user_zombie(player))
{
g_coldown_grav_time[player] = g_coldown_grav_time[player] - 1
set_hudmessage(200, 100, 0, -1.0, 0.87, 0, 1.0, 1.1, 0.0, 0.0 , -1)
show_hudmessage(player, "%L", LANG_PLAYER, "GRAV_USE" , g_coldown_grav_time[player])
}
else
{
remove_task(player)
}
}
public remove_abil(player)
{
if (!is_user_alive(player))
{
return FMRES_IGNORED
}
if(zp_get_user_zombie_class(player) == g_string && zp_get_user_zombie(player) && !zp_get_user_nemesis(player))
{
SetSound(player, CHAN_BODY, g_stinger_sound[2]) ;
g_gravity_use[player] = false
set_pev( player, pev_gravity, zclass1_gravity )
UTIL_PlayAnim(player , EndGrav)
UTIL_ScreenFade(player , 255 , 255 , 255)
cahtcol(player , "%L" , LANG_PLAYER , "FINGER_GRAV_OVER" )
}
return FMRES_IGNORED
}
public reset_grav(player)
{
if (!is_user_alive(player))
{
return FMRES_IGNORED
}
if(zp_get_user_zombie_class(player) == g_string && zp_get_user_zombie(player) && !zp_get_user_nemesis(player))
{
g_clodown_grav[player] = 0
cahtcol(player , "%L" , LANG_PLAYER , "FINGER_GRAV_ALLREADY" )
}
return FMRES_IGNORED
}
stock UTIL_LongDamage(player)
{
if (!is_user_alive(player))
{
return FMRES_IGNORED
}
if(zp_get_user_zombie_class(player) == g_string && zp_get_user_zombie(player) && !zp_get_user_nemesis(player))
{
SetSound(player, CHAN_BODY, g_stinger_sound[0]) ;
g_damage_use[player] = true
UTIL_PlayAnim( player , LongDamageAnim )
entity_set_int( player , EV_INT_sequence, skill1)
g_coldown[player] = 1
UTIL_ScreenFade(player , 0 , 255 , 0)
set_pdata_float(player , 83, 1.0 , 5)
Skill(player)
set_task(realod_gmg , "reset_abil" , player)
g_coldown_dmg_time[player] = floatround(realod_gmg)
set_task(1.0, "ShowHUD", player , _, _, "a",g_coldown_dmg_time[player])
}
return FMRES_IGNORED
}
public ShowHUD(player)
{
if(is_user_alive(player) && zp_get_user_zombie(player))
{
g_coldown_dmg_time[player] = g_coldown_dmg_time[player] - 1
set_hudmessage(200, 100, 0, -1.0, 0.85, 0, 1.0, 1.1, 0.0, 0.0 , -1)
show_hudmessage(player, "%L", LANG_PLAYER, "DMG_USE" , g_coldown_dmg_time[player])
}
else
{
remove_task(player)
}
}
stock Skill(player)
{
if (!is_user_alive(player))
{
return FMRES_IGNORED;
}
static gBody , gTarget
get_user_aiming(player , gTarget , gBody , Distance)
if(gTarget)
{
if(is_user_alive(gTarget))
{
switch(gBody)
{
case HIT_STOMACH: dmg_long * 2.0
case HIT_HEAD: dmg_long * 3.0
case HIT_LEFTARM: dmg_long * 1.0
case HIT_RIGHTARM: dmg_long * 1.0
case HIT_LEFTLEG: dmg_long * 0.5
case HIT_RIGHTLEG: dmg_long * 0.5
}
ExecuteHamB(Ham_TakeDamage, gTarget, 0, player, dmg_long, DMG_SLASH)
}
}
return FMRES_IGNORED
}
public reset_abil(player)
{
if (!is_user_alive(player))
{
return FMRES_IGNORED
}
if(zp_get_user_zombie_class(player) == g_string && zp_get_user_zombie(player) && !zp_get_user_nemesis(player))
{
g_coldown[player] = 0
cahtcol(player , "%L" , LANG_PLAYER , "FINGER_DMG_ALLREADY" )
}
return FMRES_IGNORED
}
stock UTIL_ScreenFade( player, r = 0, g = 0, b = 0)
{
message_begin( MSG_ONE_UNRELIABLE, g_msgScreenFade, .player = player );
write_short( 1 << 12 );
write_short( 1 << 12 );
write_short( 0x0000 );
write_byte( r );
write_byte( g );
write_byte( b );
write_byte( 80 );
message_end( );
}
stock UTIL_PlayAnim(player , seq)
{
set_pev(player, pev_weaponanim, seq)
message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = player)
write_byte(seq)
write_byte(pev(player, pev_body))
message_end()
}
stock cahtcol(const player, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!team", "^3")
if (player) players[0] = player; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
Acesta are 2 hud-uri, 2 publicuri.
Code: Select all
#include <amxmodx>
#include <fakemeta>
#include <fun>
#include <zombieplague>
#define PLUGIN "CSO Lusty Rose"
#define VERSION "1.0.1"
#define AUTHOR "ALBTeam"
new const zclass_name[] = "Light"
new const zclass_info[] = "Press G To Stealth"
new const zclass_model[] = "cosspeed1_origin"
new const zclass_clawmodel[] = "v_knife_cosspeed1.mdl"
new const zclass_clawmodel_invi[] = "models/zombie_plague/v_knife_cosspeed1_inv.mdl"
const zclass_health = 2600
const zclass_speed = 295
const Float:zclass_gravity = 0.7
const Float:zclass_knockback = 6.0
new const zombie_sound_invisible[] = "zombie_plague/zombi_pressure_female.wav"
new idclass
const Float:invisible_time = 10.0
const Float:invisible_timewait = 10.0
const invisible_dmg = 200
const Float:invisible_speed = 215.0
const Float:invisible_gravity = 0.9
const invisible_alpha = 10
new g_invisible[33], g_invisible_wait[33]
new g_msgSayText
new g_maxplayers
new g_roundend
enum (+= 100)
{
TASK_INVISIBLE = 2000,
TASK_WAIT_INVISIBLE,
TASK_INVISIBLE_SOUND,
TASK_BOT_USE_SKILL
}
#define ID_INVISIBLE (taskid - TASK_INVISIBLE)
#define ID_WAIT_INVISIBLE (taskid - TASK_WAIT_INVISIBLE)
#define ID_INVISIBLE_SOUND (taskid - TASK_INVISIBLE_SOUND)
#define ID_BOT_USE_SKILL (taskid - TASK_BOT_USE_SKILL)
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event("DeathMsg", "Death", "a")
register_event("CurWeapon", "EventCurWeapon", "be", "1=1")
register_logevent("logevent_round_end", 2, "1=Round_End")
register_clcmd("drop", "cmd_invisible")
g_msgSayText = get_user_msgid("SayText")
g_maxplayers = get_maxplayers()
}
public plugin_precache()
{
precache_model(zclass_clawmodel_invi)
precache_sound(zombie_sound_invisible)
idclass = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)
}
public client_putinserver(id)
{
reset_value_player(id)
}
public client_disconnect(id)
{
reset_value_player(id)
}
public event_round_start()
{
g_roundend = 0
for (new id=1; id<=g_maxplayers; id++)
{
if (!is_user_connected(id)) continue;
reset_value_player(id)
}
}
public logevent_round_end()
{
g_roundend = 1
}
public Death()
{
new victim = read_data(2)
reset_value_player(victim)
}
public EventCurWeapon(id)
{
if(!is_user_alive(id)) return PLUGIN_CONTINUE;
if(g_invisible[id]) set_user_maxspeed(id, invisible_speed);
return PLUGIN_CONTINUE;
}
public zp_user_infected_post(id)
{
reset_value_player(id)
if(zp_get_user_nemesis(id)) return;
if(zp_get_user_zombie_class(id) == idclass)
{
if(is_user_bot(id))
{
set_task(random_float(5.0,15.0), "bot_use_skill", id+TASK_BOT_USE_SKILL)
return
}
zp_colored_print(id, "^x04[ZP]^x01 Your skill is^x04 Stealth^x01. Cooldown^x04 %.1f ^x01seconds.", invisible_timewait)
}
}
public zp_user_humanized_post(id)
{
reset_value_player(id)
}
public zp_user_unfrozen(id)
{
if(g_invisible[id])
{
set_user_rendering(id,kRenderFxGlowShell,20,20,20,kRenderTransAlpha, invisible_alpha)
set_user_maxspeed(id, invisible_speed)
set_user_gravity(id, invisible_gravity)
}
}
public cmd_invisible(id)
{
if (g_roundend) return PLUGIN_CONTINUE
if (!is_user_alive(id) || !zp_get_user_zombie(id) || zp_get_user_nemesis(id)) return PLUGIN_CONTINUE
new health = get_user_health(id) - invisible_dmg
if (zp_get_user_zombie_class(id) == idclass && health>0 && !g_invisible[id] && !g_invisible_wait[id])
{
g_invisible[id] = 1
set_wpnmodel(id)
set_user_health(id, health)
set_user_rendering(id,kRenderFxGlowShell,20,20,20,kRenderTransAlpha, invisible_alpha)
set_user_footsteps(id, 1)
set_user_maxspeed(id, invisible_speed)
set_user_gravity(id, invisible_gravity)
PlayEmitSound(id, zombie_sound_invisible)
set_task(invisible_time, "RemoveInvisible", id+TASK_INVISIBLE)
set_task(2.0, "InvisibleSound", id+TASK_INVISIBLE_SOUND, _, _, "b")
zp_colored_print(id, "^x04[ZP]^x01 You will^x04 Stealth^x01 for^x04 %.1f ^x01seconds.", invisible_time)
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public bot_use_skill(taskid)
{
new id = ID_BOT_USE_SKILL
if (!is_user_alive(id)) return;
cmd_invisible(id)
set_task(random_float(5.0,15.0), "bot_use_skill", id+TASK_BOT_USE_SKILL)
}
public InvisibleSound(taskid)
{
new id = ID_INVISIBLE_SOUND
if (g_invisible[id]) PlayEmitSound(id, zombie_sound_invisible)
else remove_task(taskid)
}
public RemoveInvisible(taskid)
{
new id = ID_INVISIBLE
g_invisible[id] = 0
set_wpnmodel(id)
set_user_rendering(id)
set_user_footsteps(id, 0)
set_user_maxspeed(id, float(zclass_speed))
set_user_gravity(id, zclass_gravity)
zp_colored_print(id, "^x04[ZP]^x01 Your^x04 Stealth^x01 skill is over.")
g_invisible_wait[id] = 1
set_task(invisible_timewait, "RemoveWaitInvisible", id+TASK_WAIT_INVISIBLE)
}
public RemoveWaitInvisible(taskid)
{
new id = ID_WAIT_INVISIBLE
g_invisible_wait[id] = 0
zp_colored_print(id, "^x04[ZP]^x01 Your skill^x04 Stealth^x01 is ready.")
}
set_wpnmodel(id)
{
if (!is_user_alive(id)) return;
if (get_user_weapon(id) == CSW_KNIFE)
{
if (g_invisible[id])
{
set_pev(id, pev_viewmodel2, zclass_clawmodel_invi)
}
else
{
static temp[100]
format(temp, charsmax(temp), "models/zombie_plague/%s", zclass_clawmodel)
set_pev(id, pev_viewmodel2, temp)
}
}
}
PlayEmitSound(id, const sound[])
{
emit_sound(id, CHAN_VOICE, sound, 1.0, ATTN_NORM, 0, PITCH_NORM)
}
reset_value_player(id)
{
g_invisible[id] = 0
g_invisible_wait[id] = 0
remove_task(id+TASK_INVISIBLE)
remove_task(id+TASK_WAIT_INVISIBLE)
remove_task(id+TASK_BOT_USE_SKILL)
}
zp_colored_print(target, const message[], any:...)
{
static buffer[512], i, argscount
argscount = numargs()
if (!target)
{
static player
for (player = 1; player <= g_maxplayers; player++)
{
if (!is_user_connected(player))
continue;
static changed[5], changedcount
changedcount = 0
for (i = 2; i < argscount; i++)
{
if (getarg(i) == LANG_PLAYER)
{
setarg(i, 0, player)
changed[changedcount] = i
changedcount++
}
}
vformat(buffer, charsmax(buffer), message, 3)
message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, player)
write_byte(player)
write_string(buffer)
message_end()
for (i = 0; i < changedcount; i++)
setarg(changed[i], 0, LANG_PLAYER)
}
}
else
{
vformat(buffer, charsmax(buffer), message, 3)
message_begin(MSG_ONE, g_msgSayText, _, target)
write_byte(target)
write_string(buffer)
message_end()
}
}