Raised This Month: $51 Target: $400
 12% 

[Tutorial] Fourth lesson in a series develop [ZPA 1.61] - Add 7 Zombie Classes.


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
arvEL.
Senior Member
Join Date: Dec 2014
Location: Iraq
Old 12-09-2015 , 13:56   [Tutorial] Fourth lesson in a series develop [ZPA 1.61] - Add 7 Zombie Classes.
Reply With Quote #1

Fourth Lesson Add (Zombie Classes)
- all rights reserved to arvEL.-, in : 9/12/2015
In these lesson i will explain how to develop [Zombie Plague Advance v1.6.1]
how to add 7 zombie classes: [Clasic, Raptor, Predator, Mutant, Frozen, Regenerator, Hunter].

first go to this topic [ # ] and download
[ZPA 1.6.1]
after that open the file [zombie_plague_advance_v1-6-1.sma] in [notepad++]

first add this natives

PHP Code:
native zp_get_user_zombie_class(id);
native zp_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hpspeedFloat:gravityFloat:knockback);
native zp_get_user_zombie(index); 

after that put this variable

PHP Code:
new g_reghealth // Regenerate health zombie when infected humans 

inside public plugin_init() put this code:

PHP Code:
g_reghealth CreateHudSyncObj(); 
and

PHP Code:
    // Frozen jump zombie
    
register_forward(FM_PlayerPreThink"client_PreThinkk"
after that put this codes:

PHP Code:
    // Zombie Classess
    
zp_register_zombie_class(zclass1_namezclass1_infozclass1_modelzclass1_clawmodelzclass1_healthzclass1_speedzclass1_gravityzclass1_knockback)
    
zp_register_zombie_class(zclass2_namezclass2_infozclass2_modelzclass2_clawmodelzclass2_healthzclass2_speedzclass2_gravityzclass2_knockback)
    
zp_register_zombie_class(zclass3_namezclass3_infozclass3_modelzclass3_clawmodelzclass3_healthzclass3_speedzclass3_gravityzclass3_knockback)
    
zp_register_zombie_class(zclass4_namezclass4_infozclass4_modelzclass4_clawmodelzclass4_healthzclass4_speedzclass4_gravityzclass4_knockback)
    
g_zclass_frozen zp_register_zombie_class(zclass_namezclass_infozclass_modelzclass_clawmodelzclass_healthzclass_speedzclass_gravityzclass_knockback)
    
g_zclass_Regen zp_register_zombie_class(zclassrg_namezclassrg_infozclassrg_modelzclassrg_clawmodelzclassrg_healthzclassrg_speedzclassrg_gravityzclassrg_knockback)    
    
g_zclass_hunter zp_register_zombie_class(zclass5_namezclass5_infozclass5_modelzclass5_clawmodelzclass5_healthzclass5_speedzclass5_gravityzclass5_knockback
under this line:

PHP Code:
// Load up the hard coded extra items 
full codes:

PHP Code:
    // Load up the hard coded extra items
    
native_register_extra_item2("NightVision"g_extra_costs2[EXTRA_NVISION], ZP_TEAM_HUMAN)
    
native_register_extra_item2("T-Virus Antidote"g_extra_costs2[EXTRA_ANTIDOTE], ZP_TEAM_ZOMBIE)
    
native_register_extra_item2("Zombie Madness"g_extra_costs2[EXTRA_MADNESS], ZP_TEAM_ZOMBIE)
    
native_register_extra_item2("Infection Bomb"g_extra_costs2[EXTRA_INFBOMB], ZP_TEAM_ZOMBIE)
    
native_register_extra_item2("Cumpara Tryder"30ZP_TEAM_HUMAN)    

    
// Zombie Classess
    
zp_register_zombie_class(zclass1_namezclass1_infozclass1_modelzclass1_clawmodelzclass1_healthzclass1_speedzclass1_gravityzclass1_knockback)
    
zp_register_zombie_class(zclass2_namezclass2_infozclass2_modelzclass2_clawmodelzclass2_healthzclass2_speedzclass2_gravityzclass2_knockback)
    
zp_register_zombie_class(zclass3_namezclass3_infozclass3_modelzclass3_clawmodelzclass3_healthzclass3_speedzclass3_gravityzclass3_knockback)
    
zp_register_zombie_class(zclass4_namezclass4_infozclass4_modelzclass4_clawmodelzclass4_healthzclass4_speedzclass4_gravityzclass4_knockback)
    
g_zclass_frozen zp_register_zombie_class(zclass_namezclass_infozclass_modelzclass_clawmodelzclass_healthzclass_speedzclass_gravityzclass_knockback)
    
g_zclass_Regen zp_register_zombie_class(zclassrg_namezclassrg_infozclassrg_modelzclassrg_clawmodelzclassrg_healthzclassrg_speedzclassrg_gravityzclassrg_knockback)    
    
g_zclass_hunter zp_register_zombie_class(zclass5_namezclass5_infozclass5_modelzclass5_clawmodelzclass5_healthzclass5_speedzclass5_gravityzclass5_knockback
after that put this codes in any place inside ZPA.sma main:

PHP Code:
// User Infected forward
public zp_user_infected_post(idinfector)
{
    if (
is_user_connected(infector) && zp_get_user_zombie_class(infector) == g_zclass_Regen)
    {
        
fm_set_user_health(infectorget_user_health(infector) + 350);
        
set_task(get_pcvar_float(g_timerg), "Regenerate"infector TASKID_REG__"b")
        
set_user_footsteps(infector1);
        
set_hudmessage(2480248, -1.00.110.05.01.01.0, -1);
        
show_hudmessage(infector"== REGENERATOR ==^n!!!Regeneration: +350 HP Gained!!!");
    }
    
    if(
is_user_connected(infector) && zp_get_user_zombie_classinfector ) == g_zclass_hunter )
    {
        
fm_set_user_health(infectorget_user_health(infector) + 240 );
        
do_screen_fade(infector0.601.15255101094 );
        
set_user_rendering(infectorkRenderFxGlowShell2551010kRenderNormal0);
        
set_task(2.9"TakeGlow"infector );
        
set_user_footsteps(infector1);
        
set_hudmessage(02550, -1.00.110.05.01.01.0, -1);
        
show_hudmessage(infector"== HUNTER ==^n!!!Regeneration: +250 HP Gained!!!");
    }
    
}

public 
TakeGlowinfector 

    
set_user_renderinginfectorkRenderFxNone000kRenderNormal);
}

public 
Regenerate(id)
{

    new 
player id TASKID_REG

    
if (!get_pcvar_num(g_zclass_regen_toggle) || !is_user_connected(player) || !is_user_alive(player) || !zp_get_user_zombie(player) || zp_get_user_nemesis(player) || zp_get_user_assassin(player))
    {
        
remove_task(player TASKID_REG)

        return
    }

    if(
pev(playerpev_health) <= 10.0)
    {
        
remove_task(player TASKID_REG)

        return
    }

    new 
ZMaxHealth MAX_HEALTH

    
if(pev(playerpev_health) < ZMaxHealth)
    {
        new 
RegenHealth pev(playerpev_health) + get_pcvar_num(g_amount)
        
set_pev(playerpev_healthfloat(min(RegenHealthZMaxHealth)))
        
set_hudmessage(2480248, -1.00.110.05.01.01.0, -1);
        
ShowSyncHudMsg(playerg_reghealth"== REGENERATOR ==^n!!!Regeneration: +350 HP Gained!!!");
        
do_screen_fadeplayer0.100.200255094 );
        
        static 
origin[3]
        
get_user_origin(playerorigin)
        
message_begin(MSG_PVSSVC_TEMPENTITYorigin)
        
write_byte(TE_PARTICLEBURST// TE id
        
write_coord(origin[0]) // x
        
write_coord(origin[1]) // y
        
write_coord(origin[2]) // z
        
write_short(50)
        
write_byte(70)
        
write_byte(3)
        
message_end()
    }
}

stock do_screen_fade(idFloat:fadeTimeFloat:holdTimeredgreenbluealphatype FADE_IN)
{
    static 
msgScreenFade;
    
    if (!
msgScreenFade
    { 
        
msgScreenFade get_user_msgid("ScreenFade");
    }
    
    new 
fadehold;
    
fade clamp(floatround(fadeTime float(1<<12)), 00xFFFF);
    
hold clamp(floatround(holdTime float(1<<12)), 00xFFFF);
    
    
message_begin(MSG_ONE_UNRELIABLEmsgScreenFade_id);
    
write_short(fade);
    
write_short(hold);
    
write_short(type);
    
write_byte(red);
    
write_byte(green);
    
write_byte(blue);
    
write_byte(alpha);
    
message_end();



after that put this codes in any place inside ZPA.sma main:

PHP Code:
public client_PreThinkk(id)
{
        if(!
is_user_alive(id) || !zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_assassin(id)) return PLUGIN_CONTINUE
        
if(zp_get_user_zombie_class(id) != g_zclass_frozen) return PLUGIN_CONTINUE
        
new nzbut get_user_button(id)
        new 
ozbut get_user_oldbutton(id)
        if((
nzbut IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(ozbut IN_JUMP))
        {
            if (
jumpznum[id] < 1)
            {
                    
dozjump[id] = true
                    jumpznum
[id]++
                    return 
PLUGIN_CONTINUE
            
}
        }
        if((
nzbut IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
        {
            
jumpznum[id] = 0
               
return PLUGIN_CONTINUE
        
}    
        return 
PLUGIN_CONTINUE
}

public 
client_PostThink(id)
{
        if(!
is_user_alive(id) || !zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_assassin(id)) return PLUGIN_CONTINUE
        
if(zp_get_user_zombie_class(id) != g_zclass_frozen) return PLUGIN_CONTINUE
        
if(dozjump[id] == true)
        {
            new 
Float:vezlocityz[3]    
            
entity_get_vector(id,EV_VEC_velocity,vezlocityz)
            
vezlocityz[2] = random_float(265.0,285.0)
            
entity_set_vector(id,EV_VEC_velocity,vezlocityz)
               
dozjump[id] = false
            
return PLUGIN_CONTINUE
        
}    
    return 
PLUGIN_CONTINUE

now make compile and ejnoy
all rights reserved to arvEL.-

__________________

Last edited by arvEL.; 12-09-2015 at 14:02.
arvEL. is offline
Send a message via Skype™ to arvEL.
Grit
New Member
Join Date: Nov 2016
Old 12-30-2016 , 03:57   Re: [Tutorial] Fourth lesson in a series develop [ZPA 1.61] - Add 7 Zombie Classes.
Reply With Quote #2

Put these variables :

Code:
// Forward
forward zp_user_infected_post(id, infector, nemesis);

// New
new jumpznum[33] = 0
new bool:dozjump[33] = false
new g_zclass_frozen
new g_zclass_regen_toggle, g_timerg, g_amount
new g_zclass_Regen
new g_zclass_hunter

// Const
const TASKID_REG = 1000001

// Native
native zp_get_user_zombie_class(id);
native zp_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback);
native zp_get_user_zombie(index);
native zp_get_user_nemesis(id)
native zp_get_user_assassin(id)
and this code inside "public plugin_init"

Code:
	// Regen
	g_zclass_regen_toggle = register_cvar("zp_zclass_regen", "1")

	g_timerg = register_cvar("zp_regen_time", "5")
	g_amount = register_cvar("zp_regen_amount", "350")
	
	g_reghealth = CreateHudSyncObj();
	
	// Frozen jump zombie
	register_forward(FM_PlayerPreThink, "client_PreThinkk")

Last edited by Grit; 01-06-2017 at 10:52.
Grit is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 02:17.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode