Raised This Month: $ Target: $400
 0% 

[HELP] Server crashes from custom made plugin


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
kapitana
Member
Join Date: Apr 2014
Old 09-12-2017 , 10:50   [HELP] Server crashes from custom made plugin
Reply With Quote #1

Hello AlliedModders!
So I made this plugin based on [ZP] Addon: Sprites On HUD - link: https://forums.alliedmods.net/showthread.php?t=159584.

Anyway ... the thing is ... I don't know what's the problem with my code ... but every time I start the the server with my plugin enabled .... the server crashes and shows this error:



Anyway ... this is the code I made:

Code:
#include <amxmodx>
#include <fakemeta>
#include <zombie_plague_advance>
#include <zp_dsohud>
#include <xs>

new g_kills[33], g_victims[33]
new g_firstblood, g_maxplayers
new cvar_resettime, cvar_remove_killspr

#define NUM_KILLS 8
#define OTHER_KILLS 5

new const zombie_dying_sound[] = "MassEffect/KillSprites/scream.wav" // Boss Dying Sound

new normal_kill[NUM_KILLS][] =
{
	"sprites/MassEffect/KillSprites/kill_1.spr",
	"sprites/MassEffect/KillSprites/kill_2.spr",
	"sprites/MassEffect/KillSprites/kill_3.spr",
	"sprites/MassEffect/KillSprites/kill_4.spr",
	"sprites/MassEffect/KillSprites/kill_5.spr",
	"sprites/MassEffect/KillSprites/kill_6.spr",
	"sprites/MassEffect/KillSprites/kill_7.spr",
	"sprites/MassEffect/KillSprites/kill_8.spr"
}

new headshot_kill[NUM_KILLS][] =
{
	"sprites/MassEffect/KillSprites/kill_1_hs.spr",
	"sprites/MassEffect/KillSprites/kill_2_hs.spr",
	"sprites/MassEffect/KillSprites/kill_3_hs.spr",
	"sprites/MassEffect/KillSprites/kill_4_hs.spr",
	"sprites/MassEffect/KillSprites/kill_5_hs.spr",
	"sprites/MassEffect/KillSprites/kill_6_hs.spr",
	"sprites/MassEffect/KillSprites/kill_7_hs.spr",
	"sprites/MassEffect/KillSprites/kill_8_hs.spr"
}

new knife_kill[NUM_KILLS][] =
{
	"sprites/MassEffect/KillSprites/kill_1_knife.spr",
	"sprites/MassEffect/KillSprites/kill_2_knife.spr",
	"sprites/MassEffect/KillSprites/kill_3_knife.spr",
	"sprites/MassEffect/KillSprites/kill_4_knife.spr",
	"sprites/MassEffect/KillSprites/kill_5_knife.spr",
	"sprites/MassEffect/KillSprites/kill_6_knife.spr",
	"sprites/MassEffect/KillSprites/kill_7_knife.spr",
	"sprites/MassEffect/KillSprites/kill_8_knife.spr"
}

new grenade_kill[NUM_KILLS][] =
{
	"sprites/MassEffect/KillSprites/kill_1_grenade.spr",
	"sprites/MassEffect/KillSprites/kill_2_grenade.spr",
	"sprites/MassEffect/KillSprites/kill_3_grenade.spr",
	"sprites/MassEffect/KillSprites/kill_4_grenade.spr",
	"sprites/MassEffect/KillSprites/kill_5_grenade.spr",
	"sprites/MassEffect/KillSprites/kill_6_grenade.spr",
	"sprites/MassEffect/KillSprites/kill_7_grenade.spr",
	"sprites/MassEffect/KillSprites/kill_8_grenade.spr"
}

new wall_kill[NUM_KILLS][] =
{
	"sprites/MassEffect/KillSprites/kill_1_wall.spr",
	"sprites/MassEffect/KillSprites/kill_2_wall.spr",
	"sprites/MassEffect/KillSprites/kill_3_wall.spr",
	"sprites/MassEffect/KillSprites/kill_4_wall.spr",
	"sprites/MassEffect/KillSprites/kill_5_wall.spr",
	"sprites/MassEffect/KillSprites/kill_6_wall.spr",
	"sprites/MassEffect/KillSprites/kill_7_wall.spr",
	"sprites/MassEffect/KillSprites/kill_8_wall.spr"
}

new boss_kill[OTHER_KILLS][] =
{
	"sprites/MassEffect/KillSprites/kill_boss.spr",
	"sprites/MassEffect/KillSprites/kill_boss_hs.spr",
	"sprites/MassEffect/KillSprites/kill_boss_knife.spr",
	"sprites/MassEffect/KillSprites/kill_boss_grenade.spr",
	"sprites/MassEffect/KillSprites/kill_boss_wall.spr"
}

new last_kill[OTHER_KILLS][] =
{
	"sprites/MassEffect/KillSprites/kill_last.spr",
	"sprites/MassEffect/KillSprites/kill_last_hs.spr",
	"sprites/MassEffect/KillSprites/kill_last_knife.spr",
	"sprites/MassEffect/KillSprites/kill_last_grenade.spr",
	"sprites/MassEffect/KillSprites/kill_last_wall.spr"
}

new first_kill[OTHER_KILLS][] =
{
	"sprites/MassEffect/KillSprites/kill_first.spr",
	"sprites/MassEffect/KillSprites/kill_first_hs.spr",
	"sprites/MassEffect/KillSprites/kill_first_knife.spr",
	"sprites/MassEffect/KillSprites/kill_first_grenade.spr",
	"sprites/MassEffect/KillSprites/kill_first_wall.spr"
}

new revenge_kill[OTHER_KILLS][] =
{
	"sprites/MassEffect/KillSprites/kill_revenge.spr",
	"sprites/MassEffect/KillSprites/kill_revenge_hs.spr",
	"sprites/MassEffect/KillSprites/kill_revenge_knife.spr",
	"sprites/MassEffect/KillSprites/kill_revenge_grenade.spr",
	"sprites/MassEffect/KillSprites/kill_revenge_wall.spr"
}

new normal_kill_sounds[][] =
{
	"MassEffect/KillSprites/gotit.wav", // 1 KILL Sound & Revenge
	"MassEffect/KillSprites/doublekill.wav", // 2 KILL Sound
	"MassEffect/KillSprites/triplekill.wav", // 3 KILL Sound
	"MassEffect/KillSprites/multikill.wav", // 4 KILL Sound
	"MassEffect/KillSprites/megakill.wav", // 5 KILL Sound
	"MassEffect/KillSprites/monsterkill.wav", // 6 KILL Sound
	"MassEffect/KillSprites/incredible.wav", // 7 KILL Sound
	"MassEffect/KillSprites/outofworld.wav" // 8 KILL Sound & Boss Kill Sound
}

new other_kill_sounds[][] =
{
	"MassEffect/KillSprites/excellent.wav", // Last KILL Sound
	"MassEffect/KillSprites/ohgod.wav", // First KILL Sound
	"MassEffect/KillSprites/crazy.wav", // Grenade KILL Sound
	"MassEffect/KillSprites/humililation.wav", // Knife KILL Sound
	"MassEffect/KillSprites/headshot.wav", // HeadShot KILL Sound
	"MassEffect/KillSprites/cantbelive.wav" // More Than 8 KILL Sound & Wall KILL Sound
}

public plugin_init()
{
	register_plugin("[ZP] Effects Killer", "0.0.1", "kapitana")
	
	register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
	register_event("DeathMsg", "DeathMsg", "a")
	
	cvar_resettime = register_cvar("reset_killtimes", "15")
	cvar_remove_killspr = register_cvar("remove_killsprites", "5")
	
	g_maxplayers = get_maxplayers()
}

public plugin_precache()
{
	new i
	for(i = 0; i < NUM_KILLS; i++)
	{
		engfunc(EngFunc_PrecacheModel, normal_kill[i])
		engfunc(EngFunc_PrecacheModel, headshot_kill[i])
		engfunc(EngFunc_PrecacheModel, knife_kill[i])
		engfunc(EngFunc_PrecacheModel, grenade_kill[i])
		engfunc(EngFunc_PrecacheModel, wall_kill[i])
	}
	for(i = 0; i < OTHER_KILLS; i++)
	{
		engfunc(EngFunc_PrecacheModel, boss_kill[i])
		engfunc(EngFunc_PrecacheModel, last_kill[i])
		engfunc(EngFunc_PrecacheModel, first_kill[i])
		engfunc(EngFunc_PrecacheModel, revenge_kill[i])
	}
	for(i = 0; i < sizeof(normal_kill_sounds); i++)
	{
		engfunc(EngFunc_PrecacheSound, normal_kill_sounds[i])
	}
	for(i = 0; i < sizeof(other_kill_sounds); i++)
	{
		engfunc(EngFunc_PrecacheSound, other_kill_sounds[i])
	}
	
	engfunc(EngFunc_PrecacheSound, zombie_dying_sound)
}

public event_round_start()
{
	g_firstblood = false
	
	static i
	for(i = 1; i <= g_maxplayers; i++)
	{
		g_kills[i] = 0
		g_victims[i] = 0
		
		remove_task(i)
		zp_remove_hud_sprite(i)
	}
}

public client_disconnect(id)
{
	g_kills[id] = 0
	g_victims[id] = 0
	
	remove_task(id)
}

public DeathMsg()
{
	static killer, victim
	
	killer = read_data(1)
	victim = read_data(2)
	
	if(!is_user_connected(killer) || !is_user_alive(killer) || is_user_bot(killer) || killer == victim || zp_get_user_zombie(killer))
		return;
	
	static headshot, weapon[12]
	
	headshot = read_data(3)
	read_data(4, weapon, charsmax(weapon))
	
	g_kills[killer]++
	g_victims[victim] = killer
	
	if(g_kills[killer] > 7) g_kills[killer] = 1
	
	if(zp_get_user_assassin(victim) || zp_get_user_nemesis(victim) || zp_get_user_dragon(victim))
	{
		if(equali(weapon, "knife")) zp_display_hud_sprite(killer, boss_kill[2], 0.05)
		else if(equali(weapon, "grenade")) zp_display_hud_sprite(killer, boss_kill[3], 0.05)
		else if(!fm_is_ent_visible(killer, victim)) zp_display_hud_sprite(killer, boss_kill[4], 0.05)
		else if(headshot) zp_display_hud_sprite(killer, boss_kill[1], 0.05)
		else zp_display_hud_sprite(killer, boss_kill[0], 0.05)
		
		client_cmd(killer, "spk %s", normal_kill_sounds[7])
		emit_sound(victim, CHAN_BODY, zombie_dying_sound[0], 1.0, ATTN_NORM, 0, PITCH_HIGH)
	}
	else if(zp_get_user_last_zombie(victim))
	{
		if(equali(weapon, "knife")) zp_display_hud_sprite(killer, last_kill[2], 0.05)
		else if(equali(weapon, "grenade")) zp_display_hud_sprite(killer, last_kill[3], 0.05)
		else if(!fm_is_ent_visible(killer, victim)) zp_display_hud_sprite(killer, last_kill[4], 0.05)
		else if(headshot) zp_display_hud_sprite(killer, last_kill[1], 0.05)
		else zp_display_hud_sprite(killer, last_kill[0], 0.05)
		
		client_cmd(killer, "spk %s", other_kill_sounds[0])
	}
	else if(!g_firstblood)
	{
		g_firstblood = true
		
		if(equali(weapon, "knife")) zp_display_hud_sprite(killer, first_kill[2], 0.05)
		else if(equali(weapon, "grenade")) zp_display_hud_sprite(killer, first_kill[3], 0.05)
		else if(!fm_is_ent_visible(killer, victim)) zp_display_hud_sprite(killer, first_kill[4], 0.05)
		else if(headshot) zp_display_hud_sprite(killer, first_kill[1], 0.05)
		else zp_display_hud_sprite(killer, first_kill[0], 0.05)
		
		client_cmd(killer, "spk %s", other_kill_sounds[1])
	}
	else if(victim == g_victims[killer])
	{
		g_victims[killer] = 0
		
		if(equali(weapon, "knife")) zp_display_hud_sprite(killer, revenge_kill[2], 0.05)
		else if(equali(weapon, "grenade")) zp_display_hud_sprite(killer, revenge_kill[3], 0.05)
		else if(!fm_is_ent_visible(killer, victim)) zp_display_hud_sprite(killer, revenge_kill[4], 0.05)
		else if(headshot) zp_display_hud_sprite(killer, revenge_kill[1], 0.05)
		else zp_display_hud_sprite(killer, revenge_kill[0], 0.05)
		
		client_cmd(killer, "spk %s", normal_kill_sounds[0])
	}
	else if(equali(weapon, "knife"))
	{
		zp_display_hud_sprite(killer, knife_kill[g_kills[killer] - 1], 0.05)
		client_cmd(killer, "spk %s", other_kill_sounds[3])
	}
	else if(equali(weapon, "grenade"))
	{
		zp_display_hud_sprite(killer, grenade_kill[g_kills[killer] - 1], 0.05)
		client_cmd(killer, "spk %s", other_kill_sounds[2])
	}
	else if(!fm_is_ent_visible(killer, victim))
	{
		zp_display_hud_sprite(killer, wall_kill[g_kills[killer] - 1], 0.05)
		client_cmd(killer, "spk %s", other_kill_sounds[5])
	}
	else if(headshot)
	{
		zp_display_hud_sprite(killer, headshot_kill[g_kills[killer] - 1], 0.05)
		client_cmd(killer, "spk %s", other_kill_sounds[4])
	}
	else
	{
		zp_display_hud_sprite(killer, normal_kill[g_kills[killer] - 1], 0.05)
		client_cmd(killer, "spk %s", normal_kill_sounds[g_kills[killer] - 1])
	}
//	else
//	{
//		ShowSprite(victim, other_kills[5])
//		client_cmd(victim, "spk %s", other_kill_sounds[5])
//	}
	
	set_task(get_pcvar_float(cvar_resettime), "reset_kills", killer)
	set_task(get_pcvar_float(cvar_remove_killspr), "remove_sprite", killer)
}

public reset_kills(id)
{
	if(!is_user_connected(id))
		return
	
	g_kills[id] = 0
}

public remove_sprite(id)
{
	zp_remove_hud_sprite(id)
}

stock bool:fm_is_ent_visible(index, entity)
{
    new Float:origin[3], Float:view_ofs[3], Float:eyespos[3]
    pev(index, pev_origin, origin)
    pev(index, pev_view_ofs, view_ofs)
    xs_vec_add(origin, view_ofs, eyespos)
	
    new Float:entpos[3]
    pev(entity, pev_origin, entpos)
    engfunc(EngFunc_TraceLine, eyespos, entpos, 0, index)
	
    switch (pev(entity, pev_solid)) {
        case SOLID_BBOX..SOLID_BSP: return global_get(glb_trace_ent) == entity
    }
	
    new Float:fraction
    global_get(glb_trace_fraction, fraction)
    if (fraction == 1.0)
        return true
	
    return false
}
kapitana is offline
Reply



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 20:42.


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