Senior Member
|
10-14-2015
, 11:25
Re: Convert clases from 5.0 to 4.3 :P
|
#3
|
i have a zp 4.3 with support...
EDIT:
Quote:
#include <amxmodx>
#include <zp50_colorchat>
#include <zombieplague>
// Soldier Human Attributes
new const hclass_soldier_name[] = "Soldier Human"
new const hclass_soldier_info[] = "Armor or health for kill"
new const hclass_soldier_model[] = "zmland_player"
new const hclass_soldier_handmodel[] = "v_knife.mdl"
const hclass_soldier_health = 100
const hclass_soldier_speed = 240
const Float:hclass_soldier_gravity = 1.0
new g_hclass_soldier, g_soldier[33], g_infround, cvar_reward, cvar_convert[3],
g_total_earned[33][2], cvar_remove_reset_round, g_maxplayers, g_last_human, g_zombie[33]
enum
{
armor = 0,
health
}
new const g_sound_armor[] = "items/ammopickup2.wav"
new const g_sound_health[] = "items/smallmedkit1.wav"
public plugin_init()
{
register_plugin("[ZP] Soldier Human Class", "1.2", "Cristi. C")
register_dictionary("zp_hclass_soldier.txt")
cvar_reward = register_cvar("zp_soldier_reward", "35")
cvar_convert[0] = register_cvar("zp_soldier_convert_hum", "1")
cvar_convert[1] = register_cvar("zp_soldier_convert_surv", "0")
cvar_convert[2] = register_cvar("zp_soldier_convert_snip", "0")
cvar_remove_reset_round = register_cvar("zp_soldier_remove_reset_round" , "0")
g_maxplayers = get_maxplayers()
}
public plugin_precache()
{
g_hclass_soldier = zp_register_human_class(hclass_soldier_name, hclass_soldier_info, hclass_soldier_model, hclass_soldier_handmodel, hclass_soldier_health, hclass_soldier_speed, hclass_soldier_gravity)
precache_sound(g_sound_armor)
precache_sound(g_sound_health)
}
public plugin_cfg()
set_task(1.57, "cache_settings")
public cache_settings()
cvar_reward = get_pcvar_num(cvar_reward)
public client_disconnect(id)
{
g_soldier[id] = false
g_zombie[id] = false
zp_reset_rewards(id)
}
public zp_user_spawn_post(id)
{
g_zombie[id] = false
if (get_pcvar_num(cvar_convert[0]) && g_last_human)
{
static i
for (i = 0; i <= g_maxplayers; i++)
if (zp_get_user_valid(i) && g_soldier[i])
zp_convert_rewards(i, armor)
g_last_human = false
}
if (zp_get_user_human_class(id) != g_hclass_soldier)
{
g_soldier[id] = false
zp_reset_rewards(id)
return;
}
if (!get_pcvar_num(cvar_remove_reset_round))
{
if (get_pcvar_num(cvar_convert[0]))
zp_convert_rewards(id, armor)
}
else
{
// Didn't die(new round)
if (g_soldier[id])
{
if (g_total_earned[id][armor])
zp_set_user_armor(id, get_user_armor(id) - g_total_earned[id][armor])
zp_reset_rewards(id)
zp_colored_print(id, "%L", id, "ZP_REMOVE_RESET_ROUND")
}
}
g_soldier[id] = true
}
public zp_round_started(mode)
{
if (mode == MODE_INFECTION || mode == MODE_MULTI)
g_infround = true
else
{
g_infround = false
if (get_pcvar_num(cvar_convert[0]))
{
static i
for (i = 0; i <= g_maxplayers; i++)
if (g_soldier[i])
zp_convert_rewards(i, health)
}
}
}
public zp_user_infected_post(id, infector, nemesis, assassin, bombardier)
{
if (!nemesis && !assassin && !bombardier)
g_zombie[id] = 1
else
g_zombie[id] = 2
g_soldier[id] = false
zp_reset_rewards(id)
}
public zp_user_humanized_post(id, survivor, sniper)
{
g_zombie[id] = false
if (get_pcvar_num(cvar_convert[0]) && g_last_human)
{
static i
for (i = 0; i <= g_maxplayers; i++)
if (zp_get_user_valid(i) && g_soldier[i])
zp_convert_rewards(i, armor)
g_last_human = false
}
if (zp_get_user_human_class(id) != g_hclass_soldier)
{
g_soldier[id] = false
zp_reset_rewards(id)
}
else
{
if (survivor || sniper)
{
if ((g_total_earned[id][armor] || g_total_earned[id][health]) && (survivor &&
get_pcvar_num(cvar_convert[1]) || sniper && get_pcvar_num(cvar_convert[2])))
{
zp_set_user_health(id, get_user_health(id) + g_total_earned[id][armor] + g_total_earned[id][health])
zp_emit_body_sound(id, health)
zp_colored_print(id, "%L", id, "ZP_CONVERTED_TO_HEALTH", (g_total_earned[id][armor] + g_total_earned[id][health]))
zp_reset_rewards(id)
}
g_soldier[id] = false
return;
}
g_soldier[id] = true
}
}
public zp_user_last_human(id)
{
if (!get_pcvar_num(cvar_convert[0]))
return;
g_last_human = true
if (g_soldier[id])
zp_convert_rewards(id, health)
}
public zp_round_ended()
if (get_pcvar_num(cvar_convert[0]))
g_last_human = false
public zp_user_take_damage_post(id, inflictor, attacker, Float:damage)
{
if (!g_soldier[id])
return;
static dmg
dmg = floatround(damage)
if (zp_get_user_valid(inflictor) && g_zombie[inflictor] == 1 && g_infround && !zp_get_user_last_human(id))
{
if (g_total_earned[id][armor] - dmg > -1)
g_total_earned[id][armor] -= dmg
else
g_total_earned[id][armor] = 0
}
else if (!inflictor || (g_infround && zp_get_user_last_human(id) || !g_infround) || zp_get_user_valid(attacker) && g_zombie[attacker] > 1)
{
if (g_total_earned[id][health] - dmg > -1)
g_total_earned[id][health] -= dmg
else
g_total_earned[id][health] = 0
}
}
public zp_user_killed_post(victim, attacker)
{
g_zombie[victim] = false
if (g_soldier[victim])
{
g_soldier[victim] = false
zp_reset_rewards(victim)
}
if (!zp_get_user_valid(attacker) || !g_soldier[attacker] || victim == attacker)
return;
if (!zp_get_user_last_human(attacker) && g_infround)
{
zp_set_user_armor(attacker, get_user_armor(attacker) + cvar_reward)
g_total_earned[attacker][armor] += cvar_reward
zp_emit_body_sound(attacker, armor)
zp_colored_print(attacker, "%L", attacker, "ZP_GET_ARMOR", cvar_reward)
}
else
{
zp_set_user_health(attacker, get_user_health(attacker) + cvar_reward)
g_total_earned[attacker][health] += cvar_reward
zp_emit_body_sound(attacker, health)
zp_colored_print(attacker, "%L", attacker, "ZP_GET_HEALTH", cvar_reward)
}
}
zp_emit_body_sound(id, hp)
{
if (!hp)
emit_sound(id, CHAN_BODY, g_sound_armor, 1.0, ATTN_NORM, 0, PITCH_NORM)
else
emit_sound(id, CHAN_BODY, g_sound_health, 1.0, ATTN_NORM, 0, PITCH_NORM)
}
zp_convert_rewards(id, hp)
{
if (!hp)
{
if (!g_total_earned[id][health])
return;
zp_set_user_armor(id, get_user_armor(id) + g_total_earned[id][health])
if (zp_has_round_started() == 1)
zp_set_user_health(id, get_user_health(id) - g_total_earned[id][health])
g_total_earned[id][armor] += g_total_earned[id][health]
zp_emit_body_sound(id, armor)
zp_colored_print(id, "%L", id, "ZP_CONVERTED_TO_ARMOR", g_total_earned[id][health])
g_total_earned[id][health] = 0
}
else
{
if (!g_total_earned[id][armor])
return;
zp_set_user_health(id, get_user_health(id) + g_total_earned[id][armor])
zp_set_user_armor(id, get_user_armor(id) - g_total_earned[id][armor])
g_total_earned[id][health] += g_total_earned[id][armor]
zp_emit_body_sound(id, health)
zp_colored_print(id, "%L", id, "ZP_CONVERTED_TO_HEALTH", g_total_earned[id][armor])
g_total_earned[id][armor] = 0
}
}
zp_reset_rewards(id)
{
g_total_earned[id][armor] = 0
g_total_earned[id][health] = 0
}
|
Look a class.. for him ..
Last edited by SnowFake; 10-14-2015 at 11:29.
|
|