Thread: [Bug Report] L4D2 Hunter Zombie
View Single Post
Krtola
Veteran Member
Join Date: Oct 2013
Location: Serbia
Old 05-15-2019 , 05:01   Re: L4D2 Hunter Zombie
Reply With Quote #2

PHP Code:
/*================================================================================

-----------------------------------
-*- [ZP] Hunter L4D -*-
-----------------------------------

~~~~~~~~~~~~~~~
- Description -
~~~~~~~~~~~~~~~

This zombie has long jumps as well as the popular game L4D2
Well, this time the skill is good and better,
to jump you have to press Ctrl + E and look where you want to jump.

================================================================================*/

#include <amxmodx>
#include <fakemeta>
#include <zombieplague>

/*================================================================================
[Customizations]
=================================================================================*/

// Zombie Attributes
new const zclass_name[] = "L4D2 Hunter"
new const zclass_info[] = "High Long Jumps [Ctrl+E] "
new const zclass_model[] = "hunterv2_zp"
new const zclass_clawmodel[] = "v_knife_zombie_hunter.mdl"

const zclass_health 6000
const zclass_speed 290

const Float:zclass_gravity 0.6
const Float:zclass_knockback 0.1

new const leap_sound[4][] = { "left_4_dead2/hunter_jump.wav""left_4_dead2/hunter_jump1.wav""left_4_dead2/hunter_jump2.wav""left_4_dead2/hunter_jump3.wav" }

/*================================================================================
Customization ends here!
Any edits will be your responsibility
=================================================================================*/

// Variables
new g_hunter

// Arrays
new Float:g_lastleaptime[33]

// Cvar pointers
new cvar_forcecvar_cooldown

// Plugin info.
#define PLUG_VERSION "0.2"
#define PLUG_AUTHOR "DJHD!"

/*================================================================================
[Init, CFG and Precache]
=================================================================================*/

public plugin_precache()
{
    
// Register the new class and store ID for reference
    
g_hunter zp_register_zombie_class(zclass_namezclass_infozclass_modelzclass_clawmodelzclass_healthzclass_speedzclass_gravityzclass_knockback)
    
    
// Sound
    
static i
    
for(0sizeof leap_soundi++)
        
precache_sound(leap_sound[i])
}

public 
plugin_init() 
{
    
// Plugin Info
    
register_plugin("[ZP] Zombie Class: Hunter L4D2 Zombie"PLUG_VERSIONPLUG_AUTHOR)
    
    
// Forward
    
register_forward(FM_PlayerPreThink"fw_PlayerPreThink"
    
    
// Cvars
    
cvar_force register_cvar("zp_hunter_jump_force""700"
    
cvar_cooldown register_cvar("zp_hunter_jump_cooldown""1.0")
    
    static 
szCvar[30]
    
formatex(szCvarcharsmax(szCvar), "v%s by %s"PLUG_VERSIONPLUG_AUTHOR)
    
register_cvar("zp_zclass_hunterl4d2"szCvarFCVAR_SERVER|FCVAR_SPONLY)
}

/*================================================================================
[Zombie Plague Forwards]
=================================================================================*/

public zp_user_infected_post(idinfector)
{
    
// It's the selected zombie class
    
if(zp_get_user_zombie_class(id) == g_hunter)
    {
        if(
zp_get_user_nemesis(id))
            return

        if(
zp_get_user_assassin(id))
            return
        
// Message
        
client_print(idprint_chat"thS | ^"CTRL+E^" to use ability")
    }
}

/*================================================================================
[Main Forwards]
=================================================================================*/

public fw_PlayerPreThink(id)
{
    if(!
is_user_alive(id))
        return
        
    if(
zp_get_user_nemesis(id))
        return
    
    if(
zp_get_user_assassin(id))
        return

        if(!
zp_get_user_zombie(id))
                return

    if(
is_user_connected(id))
    {
        if(
allowed_hunterjump(id))
        {
            static 
Float:velocity[3]
            
velocity_by_aim(idget_pcvar_num(cvar_force), velocity)
            
set_pev(idpev_velocityvelocity)
            
            
emit_sound(idCHAN_STREAMleap_sound[random_num(0sizeof leap_sound -1)], 1.0ATTN_NORM0PITCH_HIGH)
            
            
// Set the current super jump time
            
g_lastleaptime[id] = get_gametime()
        }
    }
}

/*================================================================================
[Internal Functions]
=================================================================================*/

allowed_hunterjump(id)
{    
    if(!
zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_assassin(id))
        return 
    
    if(
zp_get_user_zombie_class(id) != g_hunter)
        return 
    
    if(!((
pev(idpev_flags) & FL_ONGROUND) && (pev(idpev_flags) & FL_DUCKING)))
        return 
    
    static 
buttons
    buttons 
pev(idpev_button)
    
    
// Not doing a longjump (added bot support)
    
if (!(buttons IN_USE) && !is_user_bot(id))
        return 
    
    static 
Float:cooldown
    cooldown 
get_pcvar_float(cvar_cooldown)
    
    if (
get_gametime() - g_lastleaptime[id] < cooldown)
        return     


I suppose you added this
PHP Code:
if (!zp_get_user_zombie(id) && zp_get_user_nemesis(id) && zp_get_user_assassin(id)) 
. In translation it means that the player must be human+nemesis+assasin that he could not use this skill. Problem is in
PHP Code:
&& 
because that means
PHP Code:
and 
. But,when we put
PHP Code:
|| 
instead
PHP Code:
&& 
then we get
PHP Code:
or 
. Now,if the player is human,or nemesis or assasin he will not be able to use this skill.
PHP Code:
if(!zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_assassin(id))
        return 
__________________
Check my original plugins for cs 1.6 and subscribe on channel
Look at the video bellow to see zombie frost grenade

https://youtu.be/j0zspNfN-AM?si=_1IiGPETN-GQY9Ua

Look at the video below to see Zombie blind grenade

https://youtu.be/ORC7ZmoaipQ?si=QC8Bul96QGitUwX4

Last edited by Krtola; 05-15-2019 at 05:14.
Krtola is online now
Send a message via Skype™ to Krtola