[ZP] Healer Human

Descarcari de pluginuri si discutii despre acestea.

Moderators: Moderatori ajutători, Scripteri TheXForce

Post Reply
User avatar
Rainq
Fost administrator
Fost administrator
Posts: 381
Joined: Mon Jan 18, 2021 7:25 am
Status: Citesc forumul TheXForce.RO...!
Detinator Steam: Da
SteamID: mrainq
Gaming experience: Nu spun..
Reputatie: Fost administrator
Nume anterior: Light
Fost detinator zm.thexforce.ro
Fost detinator dr.thexforce.ro
Location: Bucureşti
Has thanked: 2 times
Been thanked: 1 time
Contact:

[ZP] Healer Human

Post by Rainq »

Descriere: O clasa de human facuta special pentru zombie plague , apasand tasta T primeste heal si totodata coechipieri sai.
la mine aceasta clasa este setata pentru XP

Code: Select all

#include <zombiexp>

Code: Select all

zpxp_register_human_class
functioneaza perfect cu acest plugin -> click
Descarcare:

Code: Select all

#include <amxmodx>
#include <engine>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>
#include <zombiexp>

#define PLUGIN  "[ZP] Healer Human"
#define VERSION "1.0"
#define AUTHOR  "Shadows Adi"

enum (+=14024)
{
	TASK_HEAL = 239292,
	TASK_COOLDOWN
}

enum _:Cvars
{
	HEALING,
	Float:HEALRADIUS,
	COOLDOWN
}

// Human Attributes
new const hclass_name[] = { "HealeR Soldier" } // name 
new const hclass_info[] = { "[T]" } // description
new const hclass_model[] = { "" } // model
new const hclass_weapons[] = { "" } // weapons
const hclass_health = 230 // health
const hclass_speed = 250 // speed
const Float:hclass_gravity = 1.00 // gravity
const hclass_level = 10 // level required to use

new g_iHealerClass
new bool:g_bCanHeal[MAX_PLAYERS + 1]

//new Array:g_aPlayers

new g_iCvars[Cvars]

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)

	g_iHealerClass = zpxp_register_human_class(hclass_name, hclass_info, hclass_model, hclass_weapons, hclass_health, hclass_speed, hclass_gravity, hclass_level)

	new pcvar = register_cvar("human_healer_cooldown", "10.0")

	g_iCvars[COOLDOWN] = get_pcvar_num(pcvar)

	pcvar = register_cvar("human_healer_healing", "110")

	g_iCvars[HEALING] = get_pcvar_num(pcvar)

	pcvar = register_cvar("human_healer_heal_radius", "500.0")

	g_iCvars[HEALRADIUS] = get_pcvar_float(pcvar)

	RegisterHam(Ham_Player_PostThink, "player", "Ham_Player_Think_Post", 1)

	//g_aPlayers = ArrayCreate(1,1)
}

/*public plugin_end()
{
	ArrayDestroy(g_aPlayers)
}*/

public client_putinserver(id)
{
	g_bCanHeal[id] = false
}

public Ham_Player_Think_Post(id)
{
	if(pev_valid(id) != 2)
	{
		return
	}

	if(zp_get_user_human_class(id) == g_iHealerClass)
	{
		new button = get_user_button(id)
		if(button & IN_USE && !g_bCanHeal[id] && !task_exists(id + TASK_HEAL))
		{
			//_iChoosen = PickRandomPlayer();

			set_task(1.0, "task_heal_player", id + TASK_HEAL);
		}
	}
}

public task_heal_player(id)
{
	id -= TASK_HEAL

	new iPlayers[MAX_PLAYERS]

	new Float:flOrigin[3]; 
	pev(id, pev_origin, flOrigin);

	new iEnts = find_sphere_class(0, "player", g_iCvars[HEALRADIUS], iPlayers, MAX_PLAYERS, flOrigin)

	if(iEnts > 1)
	{
		for(new i; i < iEnts; i++)
		{
			//ArrayPushCell(g_aPlayers, iPlayers[i])

			HealPlayers(iPlayers[i])
		}

		//new iHealed = PickRandomPlayer(id)

		g_bCanHeal[id] = true

		set_task(float(g_iCvars[COOLDOWN]), "task_reset_cooldown", id + TASK_COOLDOWN)
	}
}

public task_reset_cooldown(id)
{
	id -= TASK_COOLDOWN

	client_print(id, print_center, "You can use your ability again!")

	g_bCanHeal[id] = false
}

HealPlayers(iPlayer)
{
	set_user_health(iPlayer, get_user_health(iPlayer) + g_iCvars[HEALING])
}

stock PickRandomPlayer(id)
{
	new iRand
	new iId
	new iSize

	_do:
	iSize = ArraySize(g_aPlayers)

	if(iSize > 1)
	{
		iRand = random(iSize - 1)
	}
	else
	{
		iRand = 0
	}

	iId = ArrayGetCell(g_aPlayers, iRand)

	if(1 <= iId <= 32 && is_user_alive(iId) && iId != id)
	{
		g_bCanHeal[id] = true
		ArrayClear(g_aPlayers)
		return iId
	}
	else
	{
		ArrayDeleteItem(g_aPlayers, ArrayFindValue(g_aPlayers, iId))
		goto _do
	}

	return -1
}
Nume: [ZP] Healer Human
Versiune: 1.0
Link oficial: cspower / thexforce

Instalare:
1. Fisierul soldier_class_healer.sma il puneti in addons/amxmodx/scripting
2. Fisierul soldier_class_healer.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:

Code: Select all

soldier_class_healer.amxx
4. Alti pasi necesari....

Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg):

Code: Select all

human_healer_cooldown - cat timp are cooldown
human_healer_healing - cat hp sa primeasca la heal
human_healer_heal_radius - raza pentru heal ,am setat sa fie mai mare sa acopere mai mult spatiu pentru heal dar voi setati cum vreti
Imagini: -
Image
Post Reply

Return to “Pluginuri”