[ZP] Class: Predator

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] Class: Predator

Post by Rainq »

Descriere: Cand apesi pe T esti invizibil + ai mai multa viteza si damage

Descarcare:

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <fakemeta>
#include <zombie_plague_special>
#include <hamsandwich>

#define PLUGIN "[ZP] Class Predator"
#define VERSION "1.0"
#define AUTHOR "TEo"

//Some vars
new g_zclass_Predator, g_maxplayers, g_status
new g_sndInv[] = "predator/predator.wav"
new cvar_ability_time, cvar_invamount, cvar_speed, cvar_infect_hp, cvar_cooldown, cvar_gravity, cvar_icon, cvar_dmg_multi
new Float:g_last[33]
new g_icon[33][16]
new bool: g_ability[33]

//Predator Atributes
new const zclass_name[] = { "PredatoR Creature" }
new const zclass_info[] = { "[T]" }
new const zclass_model[] = { "thexforce_predator" }
new const zclass_clawmodel[] = { "v_thexforce_predator.mdl" }
const zclass_health = 15600
const zclass_speed = 308
const Float:zclass_gravity = 0.6
const Float:zclass_knockback = 3.0


public plugin_init()
{    
    
    cvar_dmg_multi = register_cvar("zp_predator_dmg_multi", "5.0")
    cvar_ability_time = register_cvar("zp_Predator_ability_long", "10")
    cvar_invamount = register_cvar("zp_Predator_visible_amount", "0")
    cvar_speed = register_cvar("zp_Predator_max_speed", "309")
    cvar_infect_hp = register_cvar("zp_Predator_infect_hp", "1000")
    cvar_cooldown = register_cvar("zp_Predator_cooldown", "10")
    cvar_gravity = register_cvar("zp_Predator_gravity", "500")
    cvar_icon = register_cvar("zp_Predator_icon", "1")
    
    register_forward(FM_PlayerPreThink, "fw_ppt")
    register_event("HLTV", "newround", "a", "1=0", "2=0")
    register_event("DeathMsg", "death", "a")
    RegisterHam( Ham_TakeDamage, "player", "fw_TakeDamage" )
    
    g_status = get_user_msgid("StatusIcon")
}

public plugin_precache()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    g_zclass_Predator = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)
    precache_sound(g_sndInv)
}


public zp_user_infect_attempt(id, infector, nemesis)
{
    if (zp_get_user_zombie_class(infector) == g_zclass_Predator)
    {
        set_pev(infector, pev_health, float(pev(infector, pev_health) + get_pcvar_num(cvar_infect_hp)))
    }
    
    if (zp_get_user_zombie_class(id) == g_zclass_Predator)
    {
        g_ability[id] = false
        set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 255)
        set_user_maxspeed(id, float(zclass_speed))
        set_user_gravity(id, zclass_gravity)
    }
}

public zp_user_humanized_post(id)
    if(zp_get_user_zombie_class(id) == g_zclass_Predator)
        ability_end(id)

public ability(id)
{
    if (zp_get_user_zombie(id) && (zp_get_user_zombie_class(id) == g_zclass_Predator))
    {
        if(g_ability[id])
        {
            return PLUGIN_HANDLED
        }
        
        if(!is_user_alive(id))
        {
            return PLUGIN_HANDLED
        }
        
        static Float: i
        i = get_pcvar_float(cvar_cooldown)
        
        if (get_gametime() - g_last[id] < i) {
            return PLUGIN_HANDLED
        } else {
            set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, get_pcvar_num(cvar_invamount))
            set_user_maxspeed(id, get_pcvar_float(cvar_speed))
            set_user_gravity(id, get_pcvar_float(cvar_gravity) / 800)
            emit_sound(id, CHAN_BODY, g_sndInv, 1.0, ATTN_NORM, 0, PITCH_HIGH)
            set_task(get_pcvar_float(cvar_ability_time), "ability_end", id)
            if(get_pcvar_num(cvar_icon) == 1)
                set_icon(id)
            g_ability[id] = true
        }
    }
    return PLUGIN_CONTINUE
}

public ability_end(id)
{
    set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 255)
    set_user_maxspeed(id, float(zclass_speed))
    set_user_gravity(id, zclass_gravity)
    
    if (get_pcvar_num(cvar_cooldown) > 0)
    
    if(get_pcvar_num(cvar_icon) == 1)
        delete_icon(id)
    
    g_last[id] = get_gametime()
    g_ability[id] = false
}


public client_impulse(id, impulse) 
{ 
	if(impulse == 201)
	{
		if(is_user_alive(id) && zp_get_user_zombie(id) && zp_get_user_zombie_class(id) == g_zclass_Predator)
		{
			ability(id);
			return PLUGIN_HANDLED;
		}if (g_ability[id] && (zp_get_user_zombie_class(id) == g_zclass_Predator) && zp_get_user_zombie(id))
        {
            set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, get_pcvar_num(cvar_invamount))
            set_user_maxspeed(id, get_pcvar_float(cvar_speed))
            set_pev(id, pev_flTimeStepSound, 999)
            set_user_gravity(id, get_pcvar_float(cvar_gravity) / 800)
        }
    }
	return PLUGIN_CONTINUE;
}

public newround()
{
    g_maxplayers = get_maxplayers()
    
    for (new id = 1; id <= g_maxplayers; id++)
    {
        g_last[id] = get_gametime()
        g_ability[id] = false
    }
}

public fw_TakeDamage( victim, inflictor, attacker, Float:damage, damagebits )
{
        if ( (is_user_connected(attacker)) && (zp_get_user_zombie_class(attacker) == g_zclass_Predator) && (get_user_weapon(attacker) == CSW_KNIFE) && zp_get_user_zombie(attacker))
        {
                SetHamParamFloat( 4, damage * get_pcvar_float(cvar_dmg_multi) )
        }
}

public death()
{
    new id = read_data(2)
    ability_end(id)
    return PLUGIN_HANDLED
}

public set_icon(id)
{
    static color[3], sprite[16]
    color = {250, 250, 250}
    sprite = "dmg_gas"
    g_icon[id] = sprite
    
    message_begin(MSG_ONE, g_status, {0, 0, 0}, id)
    write_byte(1)
    write_string(g_icon[id])
    write_byte(color[0])
    write_byte(color[1])
    write_byte(color[2])
    message_end()
}

public delete_icon(id) 
{
    message_begin(MSG_ONE, g_status, {0, 0, 0}, id)
    write_byte(0)
    write_string(g_icon[id])
    message_end()
}
Nume: [ZP] Class: Predator
Versiune: 1.0
Link oficial: -

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

Code: Select all

zp_predator_class.amxx
4. Alti pasi necesari....

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

Code: Select all

    cvar_dmg_multi = register_cvar("zp_predator_dmg_multi", "5.0")
    cvar_ability_time = register_cvar("zp_Predator_ability_long", "10")
    cvar_invamount = register_cvar("zp_Predator_visible_amount", "0")
    cvar_speed = register_cvar("zp_Predator_max_speed", "309")
    cvar_infect_hp = register_cvar("zp_Predator_infect_hp", "1000")
    cvar_cooldown = register_cvar("zp_Predator_cooldown", "10")
    cvar_gravity = register_cvar("zp_Predator_gravity", "500")
    cvar_icon = register_cvar("zp_Predator_icon", "1")
Imagini: -
Image
Post Reply

Return to “Pluginuri”