la mine aceasta clasa este setata pentru XP
Code: Select all
#include <zombiexp>
Code: Select all
zpxp_register_human_class
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
}
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
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