O mica modificare vreau! Multumesc pentru ajutor!

Tutoriale scripting, cod si portiuni de cod.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
DRYincing
Membru, skill 0
Membru, skill 0
Posts: 0
Joined: 02 Jan 2017, 00:36
Detinator Steam: Da
CS Status: :)
Detinator server CS: Zmbio.Zapto.org
Fond eXtream: 0
Contact:

02 Feb 2017, 13:34

Salutare, Extream!!

Doresc o mica modificare la acest plugin.
Ce vreau sa contina modificare:
- un cvar in care pot seta cat dmg sa primeasca pentru a pica din zbor jos Witch. (ex:la 50dm dat de un player sa pice jos, iar daca playerul nu ii da 50dm, sa stea in aer".

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 (Zboara)"
#define D_ZOMBIE_DESC "Jump+Mouse"
#define D_PLAYER_MODEL "models/alex/babayaga/babayaga.mdl"
#define D_CLAWS "models/3.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_crowzombie","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, 444.0)
        set_class_data(g_class, DATA_SPEED, 280.0)
        set_class_data(g_class, DATA_GRAVITY, 0.4)
        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", "260")
    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;  
Post Reply

Return to “Scripting”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 17 guests