/*********************************************************************************\
========================================
* || Zombie Plague Advance v1.6.1 || *
========================================
\*********************************************************************************/
/*================================================================================
[Plugin Customization]
=================================================================================*/
#define cost_rangeup(%1) (%1 * 10)
/*================================================================================
[Global Variables]
=================================================================================*/
// Player vars
new g_rangelevel[33] // range level
// Customization vars
new g_max_level, g_max_range, Array:g_range_names
// Cached stuff for players
new g_rangename[33][32] // range name
// Initialize a few dynamically sized arrays (alright, maybe more than just a few...)
g_range_names = ArrayCreate(128, 1)
/*================================================================================
[Other Functions and Tasks]
=================================================================================*/
// Update level
update_level(id)
{
static level; level = g_level[id]
static rangelevel; rangelevel = g_rangelevel[id]
// Upload level
while (g_experience[id] >= cost_levelup((g_level[id]+1)) && g_level[id] < g_max_level)
g_level[id]++
// Reduce level
while (g_experience[id] < cost_levelup(g_level[id]) && g_level[id] > 1)
g_level[id]--
// Level changed?
if (g_level[id] > level)
{
zp_colored_print(id, "^x04[ZP]^x01 Felicidades! Has Ascendido Al Nivel: ^x04%d^x01.", g_level[id])
}
else if (g_level[id] < level)
{
zp_colored_print(id, "^x04[ZP]^x01 Mala Suerte! Has Descendido Al Nivel: ^x04%d^x01.", g_level[id])
}
// Upload range
while (g_level[id] >= cost_rangeup((g_rangelevel[id]+1)) && g_rangelevel[id] < g_max_range)
g_rangelevel[id]++
// Reduce range
while (g_level[id] < cost_rangeup(g_rangelevel[id]) && g_rangelevel[id] > 1)
g_rangelevel[id]--
// Range changed?
if (g_rangelevel[id] > rangelevel)
{
ArrayGetString(g_range_names, g_rangelevel[id]-1, g_rangename[id], charsmax(g_rangename[]))
zp_colored_print(id, "^x04[ZP]^x01 Felicidades! Has Ascendido De Rango A: ^x04%s^x01", g_rangename[id])
}
else if (g_rangelevel[id] < rangelevel)
{
ArrayGetString(g_range_names, g_rangelevel[id]-1, g_rangename[id], charsmax(g_rangename[]))
zp_colored_print(id, "^x04[ZP]^x01 Mala Suerte! Has Descendido De Rango A: ^x04%s^x01", g_rangename[id])
}
}
switch (section)
{
case SECTION_XP:
{
if (equal(key, "MAX LEVEL"))
g_max_level = str_to_num(value)
else if (equal(key, "MAX RANGE NAMES"))
g_max_range = str_to_num(value)
else if (equal(key, "RANGE NAMES"))
{
// Parse ranges
while (value[0] != 0 && strtok(value, key, charsmax(key), value, charsmax(value), ','))
{
// Trim spaces
trim(key)
trim(value)
// Add to range names array
ArrayPushString(g_range_names, key)
}
}
}
if (resetall)
{
g_level[id] = 1
g_rangelevel[id] = 1
g_experience[id] = 0
// Show name, health, class, and ammo packs and armor
set_hudmessage(255, 255, 255, HUD_SPECT_X, HUD_SPECT_Y, 1, 6.0, 1.1, 0.0, 0.0, -1)
ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "%L %s^nHP: %d - %L %s - %L %d^n%L: %d - %L: %s - %L: %d", ID_SHOWHUD, "SPECTATING", g_playername[id],
pev(id, pev_health), ID_SHOWHUD, "CLASS_CLASS", class, ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[id], ID_SHOWHUD, "LEVEL", g_level[id],
ID_SHOWHUD, "RANGE", g_rangename[id], ID_SHOWHUD, "EXP", g_experience[id])
}
else
{
// Show health, class and ammo packs and armor
set_hudmessage(red, green, blue, HUD_STATS_X, HUD_STATS_Y, 1, 0.0, 1.1, 0.0, 0.0, -1)
ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync2, "%L: %d^n%L %s^n%L: %d^n%L: %s^n%L %d^n%L %d", id, "ZOMBIE_ATTRIB1", pev(ID_SHOWHUD, pev_health), ID_SHOWHUD, "CLASS_CLASS",
class, ID_SHOWHUD, "LEVEL", g_level[ID_SHOWHUD], ID_SHOWHUD, "RANGE", g_rangename[ID_SHOWHUD], ID_SHOWHUD, "AMMO_PACKS1", g_ammopacks[ID_SHOWHUD], ID_SHOWHUD, "ARMOR", pev(ID_SHOWHUD, pev_armorvalue))
}
}