Problema plugin zm

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
ALEXVL
Membru, skill +1
Membru, skill +1
Posts: 243
Joined: 22 Jul 2015, 00:01
Detinator Steam: Da
CS Status: Online
Detinator server CS: ZMX.LSEPLAY.COM
SteamID: Da
Fond eXtream: 0
Contact:

09 Dec 2018, 15:25

Salut am un plugin si nu vrea sa nu ruleze deloc apare unknown nu e compatibil sau ii puteti face ceva ? E de mod zombie , eu am tot zombie
| Afiseaza codul
// zp_ExtraHuman
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <engine>
#include <fakemeta_util>
#include <dhudmessage>
#include <zombiecrown>

native zp_override_user_model(id, const model[])

#define ID_AURA 	(taskid - TASK_AURA)
#define TASK_AURA	2500

#define ID_SKILL	(taskid - TASK_SKILL)
#define TASK_SKILL	3499

#define SPAWN_TASK	9965

#define DHUD							// Mesajul Dhud despre zombi 
#define EXTRAHUMANCOUNT			4		// Cât de mult din maximul unui Hero va fi într-o rundă 
#define EXTRAHUMANHEALTH		300		// Cât de multă sănătate va avea un erou 
#define EXTRAHUMANARMOR			250		// Cât de mult are rezervarea Eroul? 
#define EXTRAHUMANDAMAGE		1.0		// Cât de mult se înmulteste eroul 

#define SPAWNTIME				20.0	// Dupa cate secunde va aparea Eroul.
#define WIN_KILLED				100		// Cat ammo Pack primeste cel ce a ucis Eroul
#define SPAWNCHANSE				100.0	// ?ansă (în%), pentru fiecare jucător, pentru a ob?ine un Hero în runda (scădere, astfel încât răspândirea jucătorilor este mai mică)      
							// Dacă reduceTi Sansa, există o ?ansă că nu va fi nici un erou în rundă.
							
#define KILLCOUNT				1	// Cate zombie trebuie ucise pentru a ob?ine un bonus 

#define BONUS_AMMO_GIFT		5		// Cât de mult ar trebui acordată armă suplimentară pentru uciderea zombiilor pentru un bonus AMMO_GIFT
#define BONUS_SUPER_DAMAGE	1.5		// Cât de multă daună se înmul?e?te pentru bonusul SUPER_DAMAGE 
#define BONUS_BONUS_AMMO	100		// Cât de mult să dai Ammo pentru un bonus BONUS_AMMO 
#define BONUS_MEGA_SKILL	3.0		// După ce ve?i deveni din nou umană pentru bonusul MEGA_SKILL 
#define BONUS_MEGA_DAMAGE	300		// Pentru cat de mult daune pentru a da amoniului suplimentar pentru bonusul MEGA_DAMAGE 
#define BONUS_MEGA_DAMAGE_AMMO_GIVE	1	// Cât cantitate de amoniu trebuie dată pentru BONUS_MEGA_DAMAGE 
enum BONUS
{
	NONE = 0, // нет способности
	AMMO_GIFT, // + к аммо за убийства
	SUPER_DAMAGE, // увеличеный урон
	BONUS_AMMO, // просто подарок в виде аммо
	MEGA_SKILL, // особенная способность ( 
	MEGA_DAMAGE // получение дополнительного аммо за урон 
}
//native GetWeapon(index);

new bool:g_ExtraHuman[33], bool:g_NonExtraHuman[33], g_KillCount[33], g_PlayerBonus[33], g_PlayerDamage[33]
new g_ExtraHumanCount, Sprite

new const HeroSprite[] = "HeroSprite"
new const g_HeroModel[] = "extrahuman" 
new const g_HeroSprite[] = "sprites/zombie_plague/hero_sprite.spr"

public plugin_init()
{
	register_plugin("[ZP]Extra-Human", "1.0", "Dambas");
	
	register_event("HLTV", "RoundStart", "a", "1=0", "2=0");
	register_logevent("RoundEnd", 2, "1=Round_End")
	
	register_clcmd("drop", "clcmd_drop")
	
	RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1);
	RegisterHam(Ham_Killed, "player", "fw_PlayerKilled");
	RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
	
	RegisterHam(Ham_Touch, "weaponbox", "fw_TouchWeapon")
	RegisterHam(Ham_Touch, "armoury_entity", "fw_TouchWeapon")
	RegisterHam(Ham_Touch, "weapon_shield", "fw_TouchWeapon")
	
	register_think(HeroSprite, "Think_Sprite")
}

public plugin_precache()
{
	new szModel[64]
	formatex(szModel, charsmax(szModel), "models/player/%s/%s.mdl", g_HeroModel, g_HeroModel)
	engfunc(EngFunc_PrecacheModel, szModel)
	
	precache_model(g_HeroSprite)
}

public RoundStart()
{
	g_ExtraHumanCount = 0;
	
	for( new k = 0; k < 33; k++)
	{
		g_PlayerBonus[k] = 0;
		g_KillCount[k] = 0;
		g_ExtraHuman[k] = false;
		g_NonExtraHuman[k] = false;
	}
}

public RoundEnd()
{
	remove_task(SPAWN_TASK)
}

public clcmd_drop(iPlayer)
{
	if (g_ExtraHuman[iPlayer])
		return PLUGIN_HANDLED;
	
	return PLUGIN_CONTINUE;
}

public fw_TouchWeapon(weapon, iPlayer)
{
	if(!is_user_connected(iPlayer))
		return HAM_IGNORED;
	
	if(g_ExtraHuman[iPlayer])
		return HAM_SUPERCEDE;
	
	return HAM_IGNORED;
}

public fw_TakeDamage(iVictim, iInflictor, iAttacker, Float:Damage, DamageType)
{
	if(iVictim == iAttacker || !is_user_connected(iAttacker))
		return HAM_IGNORED;
	
	if(DamageType & 1<<24)
		return HAM_SUPERCEDE;
		
	if(zp_get_user_zombie(iAttacker) == zp_get_user_zombie(iVictim))
		return HAM_SUPERCEDE;
	
	if(g_ExtraHuman[iAttacker] && g_PlayerBonus[iAttacker] == 5)
	{
		g_PlayerDamage[iAttacker] += Damage
		if(g_PlayerDamage[iAttacker] >= BONUS_MEGA_DAMAGE)
		{
			zp_set_user_ammo_packs(iAttacker, zp_get_user_ammo_packs(iAttacker) + BONUS_MEGA_DAMAGE_AMMO_GIVE)
			g_PlayerDamage[iAttacker] = 0;
		}
	}
	
	if(g_ExtraHuman[iAttacker] && !zp_get_user_zombie(iAttacker))
	{
		Damage *= EXTRAHUMANDAMAGE;
		if(g_PlayerBonus[iAttacker] == 2)
			Damage *= BONUS_SUPER_DAMAGE;
		
		SetHamParamFloat(4, Damage)
	}
	
	return HAM_IGNORED;
}

public fw_PlayerKilled(iVictim, iAttacker, iShouldgib)
{
	if(!is_user_connected(iAttacker) && !is_user_connected(iVictim))
		return HAM_HANDLED;
	
	if(g_ExtraHuman[iAttacker] && zp_get_user_zombie(iVictim))
	{
		g_KillCount[iAttacker]++;
		
		if(g_PlayerBonus[iAttacker] == 1)
			zp_set_user_ammo_packs(iAttacker, zp_get_user_ammo_packs(iAttacker) + BONUS_AMMO_GIFT)
		
		if(g_KillCount[iAttacker] >= KILLCOUNT)
		{
			g_PlayerBonus[iAttacker] = random_num(1, 5)
			g_KillCount[iAttacker] = 0;
			if(g_PlayerBonus[iAttacker] == 1)
				ChatColor(iAttacker, "!g[ZC] TEST 1 !yВы получили бонус! Получайте больше аммо за убийства!")
			if(g_PlayerBonus[iAttacker] == 2)
				ChatColor(iAttacker, "!g[ZC] TEST 2 !yВы получили бонус! Увеличенный урон!")
			if(g_PlayerBonus[iAttacker] == 3)
			{
				ChatColor(iAttacker, "!g[ZC] TEST 3 !yВы получили бонус, ввиде %d аммо!", BONUS_AMMO_GIFT)
				zp_set_user_ammo_packs(iAttacker, zp_get_user_ammo_packs(iAttacker) + BONUS_AMMO_GIFT)
			}
			if(g_PlayerBonus[iAttacker] == 4)
				ChatColor(iAttacker, "!g[ZC] TEST 4 !yВы получили бонус! Вы станете человеком после заражения!")
			if(g_PlayerBonus[iAttacker] == 5)
				ChatColor(iAttacker, "!g[ZC] TEST 5 !yВы получили бонус! Вы получаете больше аммо за урон!")
		}
	}
	
	if(g_ExtraHuman[iVictim] && zp_get_user_zombie(iAttacker))
	{
		g_ExtraHuman[iVictim] = false;
		g_ExtraHumanCount--;
		fm_set_rendering(iVictim)
		remove_task(iVictim+TASK_AURA)
		zp_set_user_ammo_packs(iAttacker, zp_get_user_ammo_packs(iAttacker) + WIN_KILLED)
		ChatColor(iAttacker, "!g[ZC] TEST 6 !yВы убили Героя, и получили !g%d Аммо!", WIN_KILLED)
	}
	else
		return HAM_IGNORED;
	
	return PLUGIN_HANDLED;
}

public fw_PlayerSpawn_Post(iPlayer)
{
	if (!is_user_alive(iPlayer))
		return HAM_IGNORED;
	
	remove_task(iPlayer+TASK_AURA)
	return PLUGIN_HANDLED;
}

public zp_user_infected_pre(iPlayer, iInfector)
{
	if(is_user_alive(iPlayer) && is_user_connected(iPlayer))
	{
		if(g_ExtraHuman[iPlayer])
		{
			g_ExtraHuman[iPlayer] = false;
			g_NonExtraHuman[iPlayer] = false;
			g_ExtraHumanCount--;
			fm_set_rendering(iPlayer)
			remove_task(iPlayer+TASK_AURA)
			
			zp_set_user_ammo_packs(iInfector, zp_get_user_ammo_packs(iInfector) + WIN_KILLED)
			ChatColor(iInfector, "!g[ZC] TEST 7 !yВы убили Героя, и получили !g%d Аммо!", WIN_KILLED)
			
			if(g_PlayerBonus[iPlayer] == 4)
			{
				ChatColor(iPlayer,  "!g[ZC] TEST 8 !yСкоро вы станете человеком!")
				set_task(BONUS_MEGA_SKILL, "MegaSkill", iPlayer+TASK_SKILL)
			}
		}
	}
}

public MegaSkill(taskid)
{
	if(is_user_connected(ID_SKILL) && zp_get_user_zombie(ID_SKILL) && zp_get_human_count() >= 2)
	{
		zp_disinfect_user(ID_SKILL, 0)
		ChatColor(ID_SKILL, "!g[ZC] TEST 9 !yВы снова стали человеком!")
	}
	else
		return;
}

public zp_round_started(gamemode, id)
{
	switch(gamemode)
	{
		case MODE_INFECTION:
		{
			set_task(SPAWNTIME, "SpawnHuman", SPAWN_TASK)
		}
		case MODE_MULTI:
		{
			set_task(SPAWNTIME, "SpawnHuman", SPAWN_TASK)
		}
	}
	return PLUGIN_HANDLED;
}

public SpawnHuman()
{
	if(g_ExtraHumanCount >= EXTRAHUMANCOUNT)
		return PLUGIN_HANDLED;
	
	static iPlayers[32], iNum, i, id, Float:iMakeHuman;
	get_players(iPlayers, iNum, "ah");
	
	for( i = 0; i < iNum; i++ )
	{
		id = iPlayers;
		iMakeHuman = random_float(0.0, (100.0 / SPAWNCHANSE));
		
		if(iMakeHuman <= 1.0 && !g_ExtraHuman[id] && !g_NonExtraHuman[id])	
		{
			g_ExtraHuman[id] = true;
			g_ExtraHumanCount++;
			MakeExtraHuman(id);
			break;
		}
	}
	
	return PLUGIN_HANDLED;
}

public MakeExtraHuman(iPlayer)
{
	if(!is_user_connected(iPlayer) && !is_user_alive(iPlayer))
	{
		g_NonExtraHuman[iPlayer] = true;
		g_ExtraHuman[iPlayer] = false;
		SpawnHuman()
		return PLUGIN_HANDLED;
	}
	
	if(g_ExtraHuman[iPlayer])
	{
		if(!zp_get_user_zombie(iPlayer))
		{
			new PlayerName[32];
			get_user_name(iPlayer, PlayerName, 31)
			#if defined DHUD
				set_dhudmessage(100, 0, 0, -1.0, 0.4, 0, 0.0, 3.0, 1.0, 1.0, false) 
				show_dhudmessage(0," TEST 10 На землю прибыл герой %s!", PlayerName)
			#else
				ChatColor(0, "!g[ZC] TEST 11 На землю прибыл герой %s!", PlayerName)
			#endif
			ChatColor(iPlayer, "!g[ZC] TEST 12 Вы стали героем! !yУбейте !g%d !yзомби, чтобы получить случайный бонус!", KILLCOUNT)
			fm_set_user_health(iPlayer, EXTRAHUMANHEALTH)
			fm_set_user_armor(iPlayer, EXTRAHUMANARMOR)
			zp_override_user_model(iPlayer, g_HeroModel)
			SetSprite(iPlayer)
			
			message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0, 0, 0}, iPlayer)
			write_short(1<<11)
			write_short(1<<11)
			write_short(0x0001)
			write_byte(255)
			write_byte(255)
			write_byte(255) 
			write_byte(110) 
			message_end()
			
			//SetWeapon(iPlayer)
			
			set_task(SPAWNTIME, "SpawnHuman", SPAWN_TASK)
			set_task(0.1, "HeroAura", iPlayer+TASK_AURA, _, _, "b")
		}
		else
		{
			g_ExtraHumanCount--;
			g_ExtraHuman[iPlayer] = false;
			g_NonExtraHuman[iPlayer] = true;
			SpawnHuman()
		}
	}
	else
		return PLUGIN_HANDLED;
	
	return PLUGIN_HANDLED;
}

/*public SetWeapon(iPlayer)
{
	//native
}*/

public SetSprite(id)
{
	if(g_ExtraHuman[id])
	{
		Sprite = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target"));
		static Origin[3];
		pev(id, pev_origin, Origin);
		Origin[2] += 60;
		engfunc(EngFunc_SetOrigin, Sprite, Origin);
		engfunc(EngFunc_SetModel, Sprite, g_HeroSprite);
		entity_set_float(Sprite, EV_FL_scale, 0.2);
		set_pev(Sprite, pev_classname, HeroSprite);
		set_pev(Sprite, pev_euser1, id);
		set_pev(Sprite, pev_solid, SOLID_NOT);
		set_pev(Sprite, pev_movetype, MOVETYPE_NOCLIP);
		set_pev(Sprite, pev_frame, 10.0);
		set_pev(Sprite, pev_nextthink, get_gametime()+0.1);
	}
}

public Think_Sprite(Ent)
{
	if(is_valid_ent(Ent))
	{
		new id = pev(id, pev_euser1)
		static Float:Origin[3]
		pev(id, pev_origin, Origin)
		Origin[2] += 60;
		
		if(g_ExtraHuman[id])
		{
			engfunc(EngFunc_SetOrigin, Ent, Origin)
			set_pev(Ent, pev_nextthink, get_gametime() + 0.1)
		}
		else
		{
			engfunc(EngFunc_RemoveEntity, Ent)
			return PLUGIN_CONTINUE;
		}
	}
	return PLUGIN_CONTINUE;
}

public HeroAura(taskid)
{
	if(!g_ExtraHuman[ID_AURA])
	{
		remove_task(taskid)
		return;
	}
	static origin[3]
	get_user_origin(ID_AURA, origin)

	message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
	write_byte(TE_DLIGHT)
	write_coord(origin[0])
	write_coord(origin[1])
	write_coord(origin[2])
	write_byte(20)
	write_byte(255) 
	write_byte(255) 
	write_byte(255) 
	write_byte(2)
	write_byte(0)
	message_end()
}

stock ChatColor(const id, 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, "!r", "^3") 
	replace_all(msg, 190, "!b", "^0")
    
	if (id) players[0] = id; else get_players(players, count, "ch")
	{
		for (new i = 0; i < count; i++)
		{
			if (is_user_connected(players))
			{
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), {0,0,0}, players)
				write_byte(players)
				write_string(msg)
				message_end()
			}
		}
	}
}
ZOMBIE CROWN ROMANIA.
The NeW Wolrd Zombie
view server | Afiseaza codul
[ Mod:[/size] Image] [Statistici:[/size] Image ][IP:[/size] Image ]
RoyalServer 2
User avatar
A k c 3 n 7
Super moderator
Super moderator
Posts: 5139
Joined: 25 Aug 2014, 21:31
Detinator Steam: Da
CS Status: who dares wins
SteamID: Jandarmeria
Reputatie: Super moderator
Moderatorul anului 2023
Fost Membru Club eXtreamCS ( o luna )
Fost eXtream Mod
Fost Intermediar
Nume anterior: Sorinel
Fond eXtream: 0
Location: Unknown
Discord: remusakcent
Has thanked: 4 times
Been thanked: 46 times

09 Dec 2018, 18:26

l ai compilat cu aceeasi versiune amxx?
sau poate codul este scris incorect, cauta altul la fel
User avatar
ALEXVL
Membru, skill +1
Membru, skill +1
Posts: 243
Joined: 22 Jul 2015, 00:01
Detinator Steam: Da
CS Status: Online
Detinator server CS: ZMX.LSEPLAY.COM
SteamID: Da
Fond eXtream: 0
Contact:

10 Dec 2018, 00:25

O sa vad revin cu edit daca e
T/c
ZOMBIE CROWN ROMANIA.
The NeW Wolrd Zombie
view server | Afiseaza codul
[ Mod:[/size] Image] [Statistici:[/size] Image ][IP:[/size] Image ]
Post Reply

Return to “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 14 guests