Senior Member
Join Date: Dec 2014
Location: Iraq
|
12-09-2015
, 13:56
[Tutorial] Fourth lesson in a series develop [ZPA 1.61] - Add 7 Zombie Classes.
|
#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[], hp, speed, Float:gravity, Float: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_name, zclass1_info, zclass1_model, zclass1_clawmodel, zclass1_health, zclass1_speed, zclass1_gravity, zclass1_knockback) zp_register_zombie_class(zclass2_name, zclass2_info, zclass2_model, zclass2_clawmodel, zclass2_health, zclass2_speed, zclass2_gravity, zclass2_knockback) zp_register_zombie_class(zclass3_name, zclass3_info, zclass3_model, zclass3_clawmodel, zclass3_health, zclass3_speed, zclass3_gravity, zclass3_knockback) zp_register_zombie_class(zclass4_name, zclass4_info, zclass4_model, zclass4_clawmodel, zclass4_health, zclass4_speed, zclass4_gravity, zclass4_knockback) g_zclass_frozen = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback) g_zclass_Regen = zp_register_zombie_class(zclassrg_name, zclassrg_info, zclassrg_model, zclassrg_clawmodel, zclassrg_health, zclassrg_speed, zclassrg_gravity, zclassrg_knockback) g_zclass_hunter = zp_register_zombie_class(zclass5_name, zclass5_info, zclass5_model, zclass5_clawmodel, zclass5_health, zclass5_speed, zclass5_gravity, zclass5_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", 30, ZP_TEAM_HUMAN)
// Zombie Classess zp_register_zombie_class(zclass1_name, zclass1_info, zclass1_model, zclass1_clawmodel, zclass1_health, zclass1_speed, zclass1_gravity, zclass1_knockback) zp_register_zombie_class(zclass2_name, zclass2_info, zclass2_model, zclass2_clawmodel, zclass2_health, zclass2_speed, zclass2_gravity, zclass2_knockback) zp_register_zombie_class(zclass3_name, zclass3_info, zclass3_model, zclass3_clawmodel, zclass3_health, zclass3_speed, zclass3_gravity, zclass3_knockback) zp_register_zombie_class(zclass4_name, zclass4_info, zclass4_model, zclass4_clawmodel, zclass4_health, zclass4_speed, zclass4_gravity, zclass4_knockback) g_zclass_frozen = zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback) g_zclass_Regen = zp_register_zombie_class(zclassrg_name, zclassrg_info, zclassrg_model, zclassrg_clawmodel, zclassrg_health, zclassrg_speed, zclassrg_gravity, zclassrg_knockback) g_zclass_hunter = zp_register_zombie_class(zclass5_name, zclass5_info, zclass5_model, zclass5_clawmodel, zclass5_health, zclass5_speed, zclass5_gravity, zclass5_knockback)
after that put this codes in any place inside ZPA.sma main:
PHP Code:
// User Infected forward public zp_user_infected_post(id, infector) { if (is_user_connected(infector) && zp_get_user_zombie_class(infector) == g_zclass_Regen) { fm_set_user_health(infector, get_user_health(infector) + 350); set_task(get_pcvar_float(g_timerg), "Regenerate", infector + TASKID_REG, _, _, "b") set_user_footsteps(infector, 1); set_hudmessage(248, 0, 248, -1.0, 0.1, 1, 0.0, 5.0, 1.0, 1.0, -1); show_hudmessage(infector, "== REGENERATOR ==^n!!!Regeneration: +350 HP Gained!!!"); } if(is_user_connected(infector) && zp_get_user_zombie_class( infector ) == g_zclass_hunter ) { fm_set_user_health(infector, get_user_health(infector) + 240 ); do_screen_fade(infector, 0.60, 1.15, 255, 10, 10, 94 ); set_user_rendering(infector, kRenderFxGlowShell, 255, 10, 10, kRenderNormal, 0); set_task(2.9, "TakeGlow", infector ); set_user_footsteps(infector, 1); set_hudmessage(0, 255, 0, -1.0, 0.1, 1, 0.0, 5.0, 1.0, 1.0, -1); show_hudmessage(infector, "== HUNTER ==^n!!!Regeneration: +250 HP Gained!!!"); } }
public TakeGlow( infector ) { set_user_rendering( infector, kRenderFxNone, 0, 0, 0, kRenderNormal, 0 ); }
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(player, pev_health) <= 10.0) { remove_task(player + TASKID_REG)
return }
new ZMaxHealth = MAX_HEALTH
if(pev(player, pev_health) < ZMaxHealth) { new RegenHealth = pev(player, pev_health) + get_pcvar_num(g_amount) set_pev(player, pev_health, float(min(RegenHealth, ZMaxHealth))) set_hudmessage(248, 0, 248, -1.0, 0.1, 1, 0.0, 5.0, 1.0, 1.0, -1); ShowSyncHudMsg(player, g_reghealth, "== REGENERATOR ==^n!!!Regeneration: +350 HP Gained!!!"); do_screen_fade( player, 0.10, 0.20, 0, 255, 0, 94 ); static origin[3] get_user_origin(player, origin) message_begin(MSG_PVS, SVC_TEMPENTITY, origin) 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(id, Float:fadeTime, Float:holdTime, red, green, blue, alpha, type = FADE_IN) { static msgScreenFade; if (!msgScreenFade) { msgScreenFade = get_user_msgid("ScreenFade"); } new fade, hold; fade = clamp(floatround(fadeTime * float(1<<12)), 0, 0xFFFF); hold = clamp(floatround(holdTime * float(1<<12)), 0, 0xFFFF); message_begin(MSG_ONE_UNRELIABLE, msgScreenFade, _, 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.
|
|