Modificare plugin

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
maneamarian1
Membru, skill 0
Membru, skill 0
Posts: 11
Joined: 20 Oct 2022, 08:56
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Discord: #0128

25 Nov 2022, 11:33

Salut! Are cineva o idee de ce acest zombie care zboara cand apesi pe space, dupa ce i.a dmg cade jos sa trebuie dinou sa apesi ? as vrea si dupa dmg sa tot ramana sus.

Code: Select all

#include <amxmodx>
#include <biohazard>
#include <hamsandwich>
#include <fakemeta_util>

#define DISABLE_TIME 2.0
#define STR_T 32
#define MAX_PLAYERS 32
#define D_ZOMBIE_NAME "Witch"
#define D_ZOMBIE_DESC "Space"
#define D_PLAYER_MODEL "models/player/Biohazard32/bio32_witch/witch.mdl"
#define D_CLAWS "models/bio32/v_knife_witch.mdl"

new g_class
new cvar_speed, g_smoke, cvar_minillum, cvar_damage, cvar_delay

new Float:g_wallorigin[33][3]
new Float:g_nextdmg[33]
new Float:g_shoottime[33]
new bool:g_bCantFly[33]

public plugin_init() {         
    register_plugin("bio_witchzombie","1.2b","bipbip")
    is_biomod_active() ? plugin_init2() : pause("ad")
}
public plugin_precache() {
    precache_model(D_PLAYER_MODEL)
    precache_model(D_CLAWS)
    g_smoke = precache_model( "sprites/steam1.spr" )
}

public plugin_init2() {
    
    g_class = register_class(D_ZOMBIE_NAME, D_ZOMBIE_DESC)
    if(g_class != -1)
    {
        set_class_data(g_class, DATA_HEALTH, 333.0)
        set_class_data(g_class, DATA_SPEED, 280.0)
        set_class_data(g_class, DATA_GRAVITY, 0.8)
        set_class_data(g_class, DATA_REGENDLY, 0.3)
        set_class_pmodel(g_class, D_PLAYER_MODEL)
        set_class_wmodel(g_class, D_CLAWS)
    }
    
    cvar_speed = register_cvar("bh_zm_climbingspeed", "220")
    cvar_minillum = register_cvar("bh_zm_minlight", "300")
    cvar_damage = register_cvar("bh_zm_lightdamage", "0")
    cvar_delay = register_cvar("bh_zm_climbdelay", "0")
    
    RegisterHam(Ham_Touch, "player", "cheese_player_touch", 1)
    RegisterHam(Ham_Player_PreThink, "player", "cheese_player_prethink", 1)
    RegisterHam(Ham_TakeDamage, "player", "cheese_takedamage", 1)
}

public cheese_player_touch(id, world) {
    
    if(!is_user_alive(id) || g_class != get_user_class(id))
        return HAM_IGNORED
    
    new classname[STR_T]
    pev(world, pev_classname, classname, (STR_T-1))
    
    if(equal(classname, "worldspawn") || equal(classname, "func_wall") || equal(classname, "func_breakable"))
        pev(id, pev_origin, g_wallorigin[id])
    return HAM_IGNORED 
    
}
public cheese_player_prethink(id) {
    // Player not alive or not zombie
    if(!is_user_alive(id) || !is_user_zombie(id)) {
        return HAM_IGNORED
    }
    static Float:test ; pev(id, pev_light_level, test) 
    
    // Player has not our zombie class
    if(g_class != get_user_class(id)) {
        return HAM_IGNORED
    }
    static Float:origin[3]
    pev(id, pev_origin, origin)
    
    if (get_gametime() > g_nextdmg[id]) {
        static Float:lightlevel; pev(id,pev_light_level, lightlevel)
        
        if (lightlevel > get_pcvar_float(cvar_minillum)) { 
            fm_fakedamage(id, "light", get_pcvar_float(cvar_damage), DMG_BURN)
            
            // do some smokes
            message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
            write_byte( TE_SMOKE )
            engfunc(EngFunc_WriteCoord, origin[ 0 ] )
            engfunc(EngFunc_WriteCoord, origin[ 1 ] )
            engfunc(EngFunc_WriteCoord, origin[ 2 ] )
            write_short( g_smoke )
            write_byte( 20 )
            write_byte( 10 )
            message_end()
            g_nextdmg[id] = get_gametime() + 1.0
        }
    }
    
    // from Cheap_Suit's  Upgrades Mod eXtended
    static button ; button = pev(id, pev_button)
    if(button & IN_JUMP && !g_bCantFly[id])
    {
        static Float:velocity[3]
        velocity_by_aim(id, get_pcvar_num(cvar_speed), velocity)
        fm_set_user_velocity(id, velocity)
    } 
    
    
    return HAM_IGNORED
}
public event_infect(victim, attacker) {
    g_nextdmg[victim] = 0.0
    g_shoottime[victim] = 0.0 
}
public cheese_takedamage(victim, inflictor, attacker, Float:damage, damagetype)
{
    if (is_user_alive(victim)) 
    {
        if (g_class == get_user_class(victim)) 
        {
            g_shoottime[victim] = get_gametime() + get_pcvar_float(cvar_delay);
            
            g_bCantFly[victim] = true;
            
            set_task(DISABLE_TIME, "Reset", victim)
        }
    }
    return HAM_IGNORED
}
public Reset(id) g_bCantFly[id] = false;
RoyalServer 2
lexz
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 917
Joined: 02 Nov 2020, 01:57
Detinator Steam: Da
Fond eXtream: 0
Discord: lexzor#0630
Has thanked: 71 times
Been thanked: 136 times

17 Jan 2023, 12:43

Code: Select all

#include <amxmodx>
#include <biohazard>
#include <hamsandwich>
#include <fakemeta_util>

//#define ON_GROUND_WHEN_TAKE_DAMAGE

#define DISABLE_TIME 2.0
#define STR_T 32
#define MAX_PLAYERS 32
#define D_ZOMBIE_NAME "Witch"
#define D_ZOMBIE_DESC "Space"
#define D_PLAYER_MODEL "models/player/Biohazard32/bio32_witch/witch.mdl"
#define D_CLAWS "models/bio32/v_knife_witch.mdl"

new g_class
new cvar_speed, g_smoke, cvar_minillum, cvar_damage

new Float:g_wallorigin[33][3]
new Float:g_nextdmg[33]
#if defined ON_GROUND_WHEN_TAKE_DAMAGE
new bool:g_bCantFly[33]
new Float:g_shoottime[33]
new cvar_delay
#endif

public plugin_init() {         
    register_plugin("bio_witchzombie","1.2b","bipbip")
    is_biomod_active() ? plugin_init2() : pause("ad")
}
public plugin_precache() {
    precache_model(D_PLAYER_MODEL)
    precache_model(D_CLAWS)
    g_smoke = precache_model( "sprites/steam1.spr" )
}

public plugin_init2() {
    
    g_class = register_class(D_ZOMBIE_NAME, D_ZOMBIE_DESC)
    if(g_class != -1)
    {
        set_class_data(g_class, DATA_HEALTH, 333.0)
        set_class_data(g_class, DATA_SPEED, 280.0)
        set_class_data(g_class, DATA_GRAVITY, 0.8)
        set_class_data(g_class, DATA_REGENDLY, 0.3)
        set_class_pmodel(g_class, D_PLAYER_MODEL)
        set_class_wmodel(g_class, D_CLAWS)
    }
    
    cvar_speed = register_cvar("bh_zm_climbingspeed", "220")
    cvar_minillum = register_cvar("bh_zm_minlight", "300")
    cvar_damage = register_cvar("bh_zm_lightdamage", "0")
#if defined ON_GROUND_WHEN_TAKE_DAMAGE
	cvar_delay = register_cvar("bh_zm_climbdelay", "0")
	RegisterHam(Ham_TakeDamage, "player", "cheese_takedamage", 1)
#endif
    RegisterHam(Ham_Touch, "player", "cheese_player_touch", 1)
    RegisterHam(Ham_Player_PreThink, "player", "cheese_player_prethink", 1)
}

public cheese_player_touch(id, world) {
    
    if(!is_user_alive(id) || g_class != get_user_class(id))
        return HAM_IGNORED
    
    new classname[STR_T]
    pev(world, pev_classname, classname, (STR_T-1))
    
    if(equal(classname, "worldspawn") || equal(classname, "func_wall") || equal(classname, "func_breakable"))
        pev(id, pev_origin, g_wallorigin[id])
    return HAM_IGNORED 
    
}
public cheese_player_prethink(id) {
	// Player not alive or not zombie
	if(!is_user_alive(id) || !is_user_zombie(id)) {
		return HAM_IGNORED
	}

	// Player has not our zombie class
	if(g_class != get_user_class(id)) {
		return HAM_IGNORED
	}

	static Float:test ; pev(id, pev_light_level, test) 
	static Float:origin[3]
	pev(id, pev_origin, origin)
	
	if (get_gametime() > g_nextdmg[id]) {
		static Float:lightlevel; pev(id,pev_light_level, lightlevel)
		
		if (lightlevel > get_pcvar_float(cvar_minillum)) { 
			fm_fakedamage(id, "light", get_pcvar_float(cvar_damage), DMG_BURN)
			
			// do some smokes
			message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
			write_byte( TE_SMOKE )
			engfunc(EngFunc_WriteCoord, origin[ 0 ] )
			engfunc(EngFunc_WriteCoord, origin[ 1 ] )
			engfunc(EngFunc_WriteCoord, origin[ 2 ] )
			write_short( g_smoke )
			write_byte( 20 )
			write_byte( 10 )
			message_end()
			g_nextdmg[id] = get_gametime() + 1.0
		}
	}
	
	// from Cheap_Suit's  Upgrades Mod eXtended
	static button ; button = pev(id, pev_button)
#if defined ON_GROUND_WHEN_TAKE_DAMAGE
	if(button & IN_JUMP && !g_bCantFly[id])
#else
	if(button & IN_JUMP)
#endif
	{
		static Float:velocity[3]
		velocity_by_aim(id, get_pcvar_num(cvar_speed), velocity)
		fm_set_user_velocity(id, velocity)
	} 
	return HAM_IGNORED
}
public event_infect(victim, attacker) {
    g_nextdmg[victim] = 0.0
#if defined ON_GROUND_WHEN_TAKE_DAMAGE
    g_shoottime[victim] = 0.0 
#endif
}

#if defined ON_GROUND_WHEN_TAKE_DAMAGE
public cheese_takedamage(victim, inflictor, attacker, Float:damage, damagetype)
{
    if (is_user_alive(victim)) 
    {
        if (g_class == get_user_class(victim)) 
        {
            g_shoottime[victim] = get_gametime() + get_pcvar_float(cvar_delay);

            g_bCantFly[victim] = true;
            
            set_task(DISABLE_TIME, "Reset", victim)
        }
    }
    return HAM_IGNORED
}
public Reset(id) g_bCantFly[id] = false;
#endif
ca sa il faci cum era inainte stergi // de la inceputul pluginului:

Code: Select all

//#define ON_GROUND_WHEN_TAKE_DAMAGE
Post Reply

Return to “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 8 guests