Raised This Month: $ Target: $400
 0% 

argument type mismatch


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
itoxicreal
Senior Member
Join Date: Jun 2018
Old 12-19-2021 , 23:25   argument type mismatch
Reply With Quote #1

banshee.inl(48 ) : error 035: argument type mismatch (argument 5)
finger.inl(104) : error 035: argument type mismatch (argument 5)

hey can someone help me I'm trying to compile but it gives me errors


https://imgur.com/CHcBq6Q

the 3 files inside zpclasses

Code:
new const banshee_name[] = "Witch"
new const banshee_info[] = "\y[ Мыши \r[G]\y ]"
new const banshee_model[] = "witch"
new const banshee_clawmodel[] = "v_knife_witch_zombi.mdl" 
new const banshee_bmodel[] = "v_bomb.mdl" 
const banshee_health = 4600
const banshee_speed = 280
const Float:banshee_gravity = 0.69
const Float:banshee_knockback = 0.1

new const SOUND_FIRE[] = "banshee/fire.wav"
new const SOUND_BAT_HIT[] = "infect_zm.wav"
new const SOUND_BAT_MISS[] = "banshee/fail.wav"
new const MODEL_BAT[] = "models/bat_witch.mdl"
new const BAT_CLASSNAME[] = "banchee_bat"
new spr_skull

new cvar_flytime, cvar_catchtime,
 cvar_banshee_timewait

new g_stop[33]
new g_bat_time[33]
new g_bat_stat[33]
new g_bat_enemy[33]
new Float:g_b_temp_speed[33]
new banshee_cooldown_time[33] = 0
new banshee_cooldown[33] = 0

enum (+= 100)
{
	TASK_BOT_USE_SKILL = 2367,
	TASK_REMOVE_STAT
}

#define ID_BOT_USE_SKILL (taskid - TASK_BOT_USE_SKILL)
#define ID_TASK_REMOVE_STAT (taskid - TASK_REMOVE_STAT)

BansheePrecache()
{
	precache_sound(SOUND_FIRE)
	precache_sound(SOUND_BAT_HIT)
	precache_sound(SOUND_BAT_MISS)
	
	precache_model(MODEL_BAT)
	
	spr_skull = precache_model("sprites/ef_bat.spr")
	
	g_Banshee = zp_register_zombie_class(banshee_name, banshee_info, banshee_model, banshee_clawmodel, banshee_bmodel, banshee_health, banshee_speed, banshee_gravity, banshee_knockback)
}

BansheeInit()
{
	register_event("DeathMsg", "EventDeath", "a")
	
	register_clcmd("drop", "cmd_bat")
	
	register_forward(FM_PlayerPreThink,"fw_PlayerPreThink")
	
	RegisterHam(Ham_Touch,"info_target","EntityTouchPost",1)
	RegisterHam(Ham_Think,"info_target","EntityThink")
	
	cvar_flytime = register_cvar("zp_banshee_fly_time", "3.0")
	cvar_catchtime = register_cvar("zp_banshee_catch_time", "10.0")
	cvar_banshee_timewait  = register_cvar("zp_banshee_bat_cooldown", "25.0")
}

BansheePIS(id)
{
	reset_value_player(id)
}

BansheeDisc(id)
{
	reset_value_player(id)
}

public BansheeHLTV()
{
	for(new id = 1; id <= g_maxplayers; id++)
	{
		if (!is_user_connected(id)) continue;
		
		reset_value_player(id)
	}
}

public EventDeath()
{
	new id = read_data(2)
	
	reset_value_player(id)
}

BansheeInfectPost(id)
{
	reset_value_player(id)
	
	if(zp_get_user_nemesis(id)) return;
	
	if(zp_get_user_zombie_class(id) == g_Banshee)
	{
		if(is_user_bot(id))
		{
			set_task(random_float(5.0,15.0), "bot_use_skill", id+TASK_BOT_USE_SKILL)
			return
		}
		
		ChatColor(id, "%L", 0, "BANSHEE_INFECT", get_pcvar_float(cvar_banshee_timewait))
	}
}

BansheeHumanizedPost(id)
{
	reset_value_player(id)
}

public cmd_bat(id)
{
	if(!is_user_alive(id) || !zp_get_user_zombie(id) || zp_get_user_nemesis(id) || g_roundend) return PLUGIN_CONTINUE
	
	if(zp_get_user_zombie_class(id) == g_Banshee && !g_bat_time[id])
	{
		g_bat_time[id] = 1
		
		set_task(get_pcvar_float(cvar_banshee_timewait),"clear_stat",id+TASK_REMOVE_STAT)
		
		new ent = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_target"))
		
		if(!pev_valid(ent)) return PLUGIN_HANDLED
		
		new Float:vecAngle[3],Float:vecOrigin[3],Float:vecVelocity[3],Float:vecForward[3]
		fm_get_user_startpos(id,5.0,2.0,-1.0,vecOrigin)
		pev(id,pev_angles,vecAngle)
		
		engfunc(EngFunc_MakeVectors,vecAngle)
		global_get(glb_v_forward,vecForward)
		
		velocity_by_aim(id,850,vecVelocity)
		
		set_pev(ent,pev_origin,vecOrigin)
		set_pev(ent,pev_angles,vecAngle)
		set_pev(ent,pev_classname,BAT_CLASSNAME)
		set_pev(ent,pev_movetype,MOVETYPE_FLY)
		set_pev(ent,pev_solid,SOLID_BBOX)
		engfunc(EngFunc_SetSize,ent,{-20.0,-15.0,-8.0},{20.0,15.0,8.0})
		
		engfunc(EngFunc_SetModel,ent,MODEL_BAT)
		set_pev(ent,pev_animtime,get_gametime())
		set_pev(ent,pev_framerate,1.0)
		set_pev(ent,pev_owner,id)
		set_pev(ent,pev_velocity,vecVelocity)
		set_pev(ent,pev_nextthink,get_gametime()+get_pcvar_float(cvar_flytime))
		emit_sound(ent, CHAN_WEAPON, SOUND_FIRE, 1.0, ATTN_NORM, 0, PITCH_NORM)
		
		g_stop[id] = ent
		
		PlayWeaponAnimation(id, 2)
		pev(id, pev_maxspeed, g_b_temp_speed[id])
		set_pev(id,pev_maxspeed,0.1)
		
		banshee_cooldown_time[id] = floatround(get_pcvar_float(cvar_banshee_timewait))
		
		set_task(1.0, "ShowBansheeHUD", id, _, _, "b")
		
		return PLUGIN_HANDLED
	}
	
	return PLUGIN_CONTINUE
}

public fw_PlayerPreThink(id)
{
	if(!is_user_alive(id)) return FMRES_IGNORED
	
	if(g_bat_stat[id])
	{
		new owner, Float:ownerorigin[3]
		owner = g_bat_enemy[id]
		if(!is_user_alive(owner)) {
			static ent
			ent = fm_find_ent_by_owner(-1, BAT_CLASSNAME, owner)
			set_pev(ent,pev_nextthink,get_gametime())
			
			g_bat_enemy[id] = 0
			g_bat_stat[id] = 0
			return FMRES_IGNORED
		}
		pev(owner,pev_origin,ownerorigin)
		static Float:vec[3]
		aim_at_origin(id,ownerorigin,vec)
		engfunc(EngFunc_MakeVectors, vec)
		global_get(glb_v_forward, vec)
		vec[0] *= 150.0
		vec[1] *= 150.0
		vec[2] -= 1.0
		set_pev(id,pev_velocity,vec)
	}
	
	return FMRES_IGNORED
}

public EntityThink(ent)
{
	if(!pev_valid(ent)) return HAM_IGNORED
	
	new classname[32]
	pev(ent,pev_classname,classname,31)
	
	if(equal(classname,BAT_CLASSNAME))
	{
		static Float:origin[3];
		pev(ent,pev_origin,origin);
		
		message_begin(MSG_BROADCAST,SVC_TEMPENTITY); 
		write_byte(TE_EXPLOSION); // TE_EXPLOSION
		write_coord(floatround(origin[0])); // origin x
		write_coord(floatround(origin[1])); // origin y
		write_coord(floatround(origin[2])); // origin z
		write_short(spr_skull); // sprites
		write_byte(40); // scale in 0.1's
		write_byte(30); // framerate
		write_byte(14); // flags 
		message_end(); // message end
		
		emit_sound(ent, CHAN_WEAPON, SOUND_BAT_MISS, 1.0, ATTN_NORM, 0, PITCH_NORM)
		
		new owner = pev(ent, pev_owner)
		g_stop[owner] = 0
		set_pev(owner,pev_maxspeed,g_b_temp_speed[owner])
		
		engfunc(EngFunc_RemoveEntity,ent)
	}
	
	return HAM_IGNORED
}

public EntityTouchPost(ent,ptd)
{
	if(!pev_valid(ent)) return HAM_IGNORED
	
	new classname[32]
	pev(ent,pev_classname,classname,31)
	
	if(equal(classname,BAT_CLASSNAME))
	{
		if(!pev_valid(ptd) || (0 < ptd && ptd <= g_maxplayers && is_user_alive(ptd) && (zp_get_user_zombie(ptd) || zp_get_user_survivor(ptd))))
		{
			static Float:origin[3];
			pev(ent,pev_origin,origin);
			
			message_begin(MSG_BROADCAST,SVC_TEMPENTITY); 
			write_byte(TE_EXPLOSION); // TE_EXPLOSION
			write_coord(floatround(origin[0])); // origin x
			write_coord(floatround(origin[1])); // origin y
			write_coord(floatround(origin[2])); // origin z
			write_short(spr_skull); // sprites
			write_byte(40); // scale in 0.1's
			write_byte(30); // framerate
			write_byte(14); // flags 
			message_end(); // message end
			
			emit_sound(ent, CHAN_WEAPON, SOUND_BAT_MISS, 1.0, ATTN_NORM, 0, PITCH_NORM)
			
			new owner = pev(ent, pev_owner)
			g_stop[owner] = 0
			set_pev(owner,pev_maxspeed,g_b_temp_speed[owner])
			
			engfunc(EngFunc_RemoveEntity,ent)
			
			return HAM_IGNORED
		}
		
		new owner = pev(ent,pev_owner)
		
		if(0 < ptd && ptd <= g_maxplayers && is_user_alive(ptd) && ptd != owner)
		{
			g_bat_enemy[ptd] = owner
			
			set_pev(ent,pev_nextthink,get_gametime()+get_pcvar_float(cvar_catchtime))
			set_task(get_pcvar_float(cvar_catchtime),"clear_stat2",ptd+TASK_REMOVE_STAT)
			set_pev(ent,pev_movetype,MOVETYPE_FOLLOW)
			set_pev(ent,pev_aiment,ptd)
			
			emit_sound(owner, CHAN_VOICE, SOUND_BAT_HIT, 1.0, ATTN_NORM, 0, PITCH_NORM)
			
			g_bat_stat[ptd] = 1
		}
	}
	
	return HAM_IGNORED
}

public clear_stat(taskid)
{
	new id = ID_TASK_REMOVE_STAT
	
	g_bat_stat[id] = 0
	g_bat_time[id] = 0
	
	banshee_cooldown[id] = 0
	banshee_cooldown_time[id] = 0
	
	ChatColor(id, "%L",0,"BANSHEE_RESET")  
}

public ShowBansheeHUD(id)
{
	if(!banshee_cooldown_time[id]){
	remove_task(id)
	return
	}
	
	if(is_user_alive(id) && zp_get_user_zombie(id))
	{
		banshee_cooldown_time[id]--
		
		set_hudmessage(200, 100, 0, 0.80, 0.87, 0, 1.0, 1.1, 0.0, 0.0, -1)
		show_hudmessage(id, "[ %L %d ]", id, "COUNTDOWN", banshee_cooldown_time[id])
	}
	else
	{
		remove_task(id)
	}
}

public clear_stat2(idx)
{
	new id = idx-TASK_REMOVE_STAT
	
	g_bat_enemy[id] = 0
	g_bat_stat[id] = 0
}

public bot_use_skill(taskid)
{
	new id = ID_BOT_USE_SKILL
	
	if (!is_user_alive(id)) return;
	
	cmd_bat(id)
	
	set_task(random_float(5.0,15.0), "bot_use_skill", id+TASK_BOT_USE_SKILL)
}

fm_get_user_startpos(id,Float:forw,Float:right,Float:up,Float:vStart[])
{
	new Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3]
	
	pev(id, pev_origin, vOrigin)
	pev(id, pev_v_angle, vAngle)
	
	engfunc(EngFunc_MakeVectors, vAngle)
	
	global_get(glb_v_forward, vForward)
	global_get(glb_v_right, vRight)
	global_get(glb_v_up, vUp)
	
	vStart[0] = vOrigin[0] + vForward[0] * forw + vRight[0] * right + vUp[0] * up
	vStart[1] = vOrigin[1] + vForward[1] * forw + vRight[1] * right + vUp[1] * up
	vStart[2] = vOrigin[2] + vForward[2] * forw + vRight[2] * right + vUp[2] * up
}

aim_at_origin(id, Float:target[3], Float:angles[3])
{
	static Float:vec[3]
	pev(id,pev_origin,vec)
	vec[0] = target[0] - vec[0]
	vec[1] = target[1] - vec[1]
	vec[2] = target[2] - vec[2]
	engfunc(EngFunc_VecToAngles,vec,angles)
	angles[0] *= -1.0
	angles[2] = 0.0
}

PlayWeaponAnimation(id, animation)
{
	set_pev(id, pev_weaponanim, animation)
	message_begin(MSG_ONE, SVC_WEAPONANIM, {0, 0, 0}, id)
	write_byte(animation)
	write_byte(pev(id, pev_body))
	message_end()
}

reset_value_player(id)
{
	g_stop[id] = 0
	g_bat_time[id] = 0
	g_bat_stat[id] = 0
	g_bat_enemy[id] = 0
	
	remove_task(id+TASK_BOT_USE_SKILL)
	remove_task(id+TASK_REMOVE_STAT)
}


Code:
new const finger_name[] = { "Sting Finger" }
new const finger_info[] = { "\y[ Урон \r[E] \y]" }
new const finger_model[] = { "finger" }
new const finger_clawmodel[] = { "v_knife_zombieresident.mdl" }
new const finger_bmodel[] = "v_bomb.mdl" 
const finger_health = 4400
const finger_speed = 270
const Float:finger_gravity = 0.9 //Гравитация в обычном режиме
const Float:finger_knockback = 0.2 //Отдача

new cvar_fin_gravity_time, cvar_fin_gravity_cooldown, cvar_fin_hands_cooldown, 
cvar_fin_gravity, cvar_fin_hands_dmg, cvar_fin_hands_distance

const FINGER_MAX_STRING = 128;

new bitsum_is_alive, bitsum_is_string

enum _:FINGER_ANIMATIONS
{
	LongDamageAnim   = 8,
	GravAnim,
	EndGrav,
};

enum _:SCREEN_FADE
{
	grav_red   = 255,
	grav_green      =255 ,
	grav_blue        = 255,
	long_red   = 0,
	long_green  = 255,
	long_blue    = 0,
};

enum _:FINGER_SOUNDS
{
	SKILL_2 = 0,
	SKILL_1,
	OVER_SKILL_GRAV
};

new g_Stinger_sound[FINGER_SOUNDS][FINGER_MAX_STRING] = 
{
	"apokalipsis/resident_skill2.wav",
	"apokalipsis/resident_skill1.wav",
	"apokalipsis/resident_tw.wav"
};


new	g_damage_use[ 33 ] , 
    g_gravity_use[ 33] ,
    g_coldown[ 33 ] ,
    g_clodown_grav[33] ,
    g_coldown_dmg_time[33] , 
	g_coldown_grav_time[33] ;
	
#define get_bit_alive(%1) (bitsum_is_alive & (1 << (%1-1)))
#define get_bit_string(%1) (bitsum_is_string & (1 << (%1-1)))
#define TASK_SHOWHUD 45543
#define TASK_SHOWHUD2 73664
#define ID_SHOWHUD (taskid - TASK_SHOWHUD)
#define ID_SHOWHUD2 (taskid - TASK_SHOWHUD2)
     
FingerInit()
{
	register_forward(FM_CmdStart , "fm_cmdstart" ) ;

	RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1)
		
	cvar_fin_gravity_time = register_cvar("zp_finger_gravity_time", "10.0")
	cvar_fin_gravity_cooldown = register_cvar("zp_finger_gravity_cooldown", "25.0")
	cvar_fin_hands_cooldown = register_cvar("zp_finger_hands_cooldown", "10.0")
	cvar_fin_gravity = register_cvar("zp_finger_gravity", "0.3")
	cvar_fin_hands_dmg = register_cvar("zp_finger_hands_damage", "125")
	cvar_fin_hands_distance = register_cvar("zp_finger_hands_distance", "400")
}

public fw_PlayerSpawn_Post(id)
{
	if(!is_user_alive(id))
		return
		
	bitsum_is_alive |= (1<<(id-1))

	if(zp_get_user_zombie(id) && zp_get_user_zombie_class(id) == g_Finger)
		bitsum_is_string |= (1<<(id-1))
	else
		bitsum_is_string &= ~(1<<(id-1))
}

public fw_PlayerKilled(victim, attacker, shouldgib)
{
	bitsum_is_alive &= ~(1<<(victim-1))
	bitsum_is_string &= ~(1<<(victim-1))

	if(zp_get_user_zombie(victim) && zp_get_user_zombie_class(victim) == g_Finger && !zp_get_user_nemesis(victim))
	{
		set_entity_visibility(victim,0)
	}	
}

FingerPrecache()
{
	g_Finger = zp_register_zombie_class(finger_name, finger_info, finger_model, finger_clawmodel, finger_bmodel, finger_health, finger_speed, finger_gravity, finger_knockback) ;
	
	static i ;
	
	for(i = 0; i < sizeof g_Stinger_sound; i++)
		precache_sound(g_Stinger_sound[i])	
}

FingerInfectPost(player)
{
	if(zp_get_user_zombie_class(player) == g_Finger && !zp_get_user_nemesis(player))
	{
		bitsum_is_string |= (1<<(player-1))
		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(get_pcvar_float(cvar_fin_hands_cooldown))
		g_coldown_grav_time[player] = floatround(get_pcvar_float(cvar_fin_gravity_cooldown)) 

		ChatColor(player , "%L" , LANG_PLAYER , "FINGER")
		{
			return PLUGIN_HANDLED
		}
	}
	
	return PLUGIN_CONTINUE	 
}

FingerHumanizedPost(id) bitsum_is_string &= ~(1<<(id-1))

FingerDisc(id)
{
	g_damage_use[id] = false 
	g_gravity_use[id] = false
	bitsum_is_string &= ~(1<<(id-1))
}
	
public fm_cmdstart(player , UC_Handle , seed)
{
	if (!get_bit_string(player) || g_roundend)
		return PLUGIN_HANDLED
	
	static gButton, gOldButton 
			
	gButton = get_uc(UC_Handle, UC_Buttons) 
	gOldButton = pev(player, pev_oldbuttons) 
		
	if(!g_clodown_grav[player] && gButton & IN_RELOAD && !(gOldButton & IN_RELOAD))
			UTIL_Gravity(player) 

	if(!g_coldown[player] && gButton & IN_USE && !(gOldButton & IN_USE))
			UTIL_LongDamage(player)

	return PLUGIN_HANDLED 
}

stock UTIL_Gravity(player)
{
	g_gravity_use[player] = true 
 
	UTIL_PlayAnim(player , GravAnim) 
				   
	g_clodown_grav[player] = true 
				   
	UTIL_ScreenFade(player , 255 , 255 , 255)
				   
	set_pdata_float(player , 83, 1.0 , 5) 
	               
	set_pev( player, pev_gravity, get_pcvar_float(cvar_fin_gravity))
				   
	set_task(get_pcvar_float(cvar_fin_gravity_time) , "remove_abil" , player )  
				   
	g_coldown_grav_time[player] = floatround(get_pcvar_float(cvar_fin_gravity_cooldown))
				   
	set_task(1.0, "ShowFingerHUD_grav", player+TASK_SHOWHUD, _, _, "a",g_coldown_grav_time[player]) 
				   
	set_task(get_pcvar_float(cvar_fin_gravity_cooldown) , "reset_grav" , player)
	
	engfunc( EngFunc_EmitSound, player, CHAN_ITEM, g_Stinger_sound[0], 1.0, ATTN_NORM, 0, PITCH_NORM)	
}	

public ShowFingerHUD_grav(taskid)
{
	if(get_bit_string(ID_SHOWHUD))
	{
		g_coldown_grav_time[ID_SHOWHUD] -= 1
		set_hudmessage(200, 100, 0, 0.59, 0.94, 0, 6.0, 1.1, 0.0, 0.0, -1)
		show_hudmessage(ID_SHOWHUD, "[ %L ]", LANG_PLAYER, "GRAV_USE" , g_coldown_grav_time[ID_SHOWHUD])
	}
	else
		remove_task(taskid)
}

public remove_abil(player)
{
	if (!get_bit_string(player))
		return
	
	g_gravity_use[player] = false  
	
	set_pev( player, pev_gravity, finger_gravity ) 
	
	UTIL_PlayAnim(player , EndGrav) 
	  
	UTIL_ScreenFade(player , grav_red , grav_green , grav_blue)
	
	ChatColor(player , "%L" , LANG_PLAYER , "FINGER_GRAV_OVER" )
	
	engfunc( EngFunc_EmitSound, player, CHAN_ITEM, g_Stinger_sound[2], 1.0, ATTN_NORM, 0, PITCH_NORM)
}

public reset_grav(player)
{
	if (!get_bit_string(player))
		return
	
	g_clodown_grav[player] = 0
		
	ChatColor(player , "%L" , LANG_PLAYER , "FINGER_GRAV_ALLREADY" )
}	

stock UTIL_LongDamage(player)
{
	g_damage_use[player] = true  
		
	UTIL_PlayAnim( player , LongDamageAnim ) 

	g_coldown[player] = 1
		
	UTIL_ScreenFade(player , long_red , long_green , long_blue)
		
	set_pdata_float(player , 83, 1.0 , 5) 
		
	Skill(player) 
		
	set_task(get_pcvar_float(cvar_fin_hands_cooldown), "reset_abil" , player) 
		
	g_coldown_dmg_time[player] = floatround(get_pcvar_float(cvar_fin_hands_cooldown)) 
		
	set_task(1.0, "ShowFingerHUD", player+TASK_SHOWHUD2, _, _, "a",g_coldown_dmg_time[player])
	
	engfunc( EngFunc_EmitSound, player, CHAN_ITEM, g_Stinger_sound[1], 1.0, ATTN_NORM, 0, PITCH_NORM)
	
	return FMRES_IGNORED 
}

public ShowFingerHUD(taskid)
{
	if(get_bit_string(ID_SHOWHUD2))
	{
		g_coldown_dmg_time[ID_SHOWHUD2] -= 1
		set_hudmessage(0, 255, 255, -1.0, 0.89, 0, 6.0, 1.1, 0.0, 0.0, -1)
		show_hudmessage(ID_SHOWHUD2, "[ %L ]", LANG_PLAYER, "DMG_USE" , g_coldown_dmg_time[ID_SHOWHUD2]) 
	}
	else
		remove_task(taskid)
} 

stock Skill(player)
{	
	static gBody , gTarget  
	get_user_aiming(player , gTarget , gBody , get_pcvar_num(cvar_fin_hands_distance)) 
	
	if(!(0 < gTarget < 33) || !get_bit_alive(gTarget))
		return
	
	new Float:flDamage
	flDamage=get_pcvar_float(cvar_fin_hands_dmg)	
	switch(gBody)
	{
		case HIT_STOMACH: flDamage=get_pcvar_num(cvar_fin_hands_dmg) * 2.0
		case HIT_HEAD: flDamage=get_pcvar_num(cvar_fin_hands_dmg) * 3.0 
		case HIT_LEFTARM: flDamage=get_pcvar_num(cvar_fin_hands_dmg) * 1.0
		case HIT_RIGHTARM: flDamage=get_pcvar_num(cvar_fin_hands_dmg) * 1.0
		case HIT_LEFTLEG: flDamage=get_pcvar_num(cvar_fin_hands_dmg) * 0.5
		case HIT_RIGHTLEG: flDamage=get_pcvar_num(cvar_fin_hands_dmg) * 0.5
	}
	if(flDamage >= pev(gTarget, pev_health))
	{
		if(zp_infect_user(gTarget, player, 0, 1)) return
	}
	else		
		ExecuteHam(Ham_TakeDamage, gTarget, player, player, flDamage, DMG_SLASH)
}

public reset_abil(player)
{
	if (!get_bit_string(player))
		return
	
	g_damage_use[player] = false
	g_coldown[player] = 0 
		
	ChatColor(player , "%L" , LANG_PLAYER , "FINGER_DMG_ALLREADY" )  
}
	
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()
}
Code:
new bool:g_bIsConnected[33]
new g_maxplayers
new g_roundend

new g_msgSayText, g_msgScreenFade

new g_Finger, g_Banshee


new Float:g_fLastUse[33]

#define TASK_COOLDOWN 4578
#define TASK_END 457845

#define ID_COOLDOWN (taskid - TASK_COOLDOWN)
#define ID_END (taskid - TASK_END)

/*Main*/
public ZombiesInit() 
{	
	FingerInit()
	BansheeInit()
	
	register_event("HLTV", "EventHLTV", "a", "1=0", "2=0")
	g_msgSayText = get_user_msgid("SayText")
	g_msgScreenFade = get_user_msgid("ScreenFade")
	g_maxplayers = get_maxplayers()
}

public ZombiesPrecache()
{
	FingerPrecache()
	BansheePrecache()
}

public zp_user_infected_post(id, infector, nemesis)
{
	FingerInfectPost(id)
	BansheeInfectPost(id)
}

public zp_user_humanized_post(id)
{
	FingerHumanizedPost(id)
	BansheeHumanizedPost(id)
}

public client_putinserver(id) 
{
	g_bIsConnected[id] = true
	BansheePIS(id)
}

public client_disconnect(id)
{
	FingerDisc(id)
	BansheeDisc(id)
}

public EventHLTV()
{
	g_roundend = 0
	
	BansheeHLTV()
}

public zp_round_ened()
{
	g_roundend = 1
}

stock ChatColor(id, const input[], any:...)
{
	static iPlayersNum[32], iCount; iCount = 1
	static szMsg[191]
	
	vformat(szMsg, charsmax(szMsg), input, 3)
	
	replace_all(szMsg, 190, "!g", "^4") // Green Color
	replace_all(szMsg, 190, "!y", "^1") // Default Color
	replace_all(szMsg, 190, "!team", "^3") // Team Color
	replace_all(szMsg, 190, "!team2", "^0") // Team2 Color
	
	if(id) iPlayersNum[0] = id
	else get_players(iPlayersNum, iCount, "ch")
		
	for (new i = 0; i < iCount; i++)
	{
		if (g_bIsConnected[iPlayersNum[i]])
		{
			message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, iPlayersNum[i])
			write_byte(iPlayersNum[i])
			write_string(szMsg)
			message_end()
		}
	}
}

zp_colored_print(target, const message[], any:...)
{
	static buffer[512], i, argscount
	argscount = numargs()
	vformat(buffer, charsmax(buffer), message, 3)
	
	replace_all(buffer, charsmax(buffer), "!g", "^x04") // Green Color
	replace_all(buffer, charsmax(buffer), "!y", "^x01") // Default Color
	
	// Send to everyone
	if (!target)
	{
		static player
		for (player = 1; player <= g_maxplayers; player++)
		{
			// Not connected
			if (!is_user_connected(player))
				continue;
			
			// Remember changed arguments
			static changed[5], changedcount // [5] = max LANG_PLAYER occurencies
			changedcount = 0
			
			// Replace LANG_PLAYER with player id
			for (i = 2; i < argscount; i++)
			{
				if (getarg(i) == LANG_PLAYER)
				{
					setarg(i, 0, player)
					changed[changedcount] = i
					changedcount++
				}
			}
			
			// Send it
			message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, player)
			write_byte(player)
			write_string(buffer)
			message_end()
			
			// Replace back player id's with LANG_PLAYER
			for (i = 0; i < changedcount; i++)
				setarg(changed[i], 0, LANG_PLAYER)
		}
	}
	// Send to specific target
	else
	{			
		// Send it
		message_begin(MSG_ONE, g_msgSayText, _, target)
		write_byte(target)
		write_string(buffer)
		message_end()
	}
}

public task_ShowCooldown(taskid)
{
	if(!is_user_connected(ID_COOLDOWN) || !is_user_alive(ID_COOLDOWN) || !zp_get_user_zombie(ID_COOLDOWN) || zp_get_user_nemesis(ID_COOLDOWN) || get_gametime()-g_fLastUse[ID_COOLDOWN]>0.0)
	{
		remove_task(taskid)
		return
	}
	
	set_hudmessage(200, 100, 0, 0.59, 0.94, 0, 6.0, 1.1, 0.0, 0.0, -1)
	show_hudmessage(ID_COOLDOWN, "%L", ID_COOLDOWN, "COOLDOWN",floatround(get_gametime()-g_fLastUse[ID_COOLDOWN]))
}
Attached Files
File Type: sma Get Plugin or Get Source (zp_zombieclasses.sma - 66 views - 963 Bytes)

Last edited by itoxicreal; 12-19-2021 at 23:25.
itoxicreal is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 11:39.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode