Veteran Member
Join Date: Oct 2011
Location: banned country
|
10-30-2011
, 20:22
[ZP] Clases de Zombies por Level 4.3
|
#1
|
Buenas por lo que estube viendo no hay un tuto de Clases de Zombies por levels para el Zombie Plague 4.3 y yo adapte el tuto de kiske y decidí mostrarles como hacerlo..
Creditos:
Kiske - Por su tutorial de Clases de Zombie por level
Paoliita - Por un ejemplo de Arrays ( me sirvió mucho xD )
Hay que cambiar el nombre de "VARIABLE_DE_LEVEL" por la que tengan
Bueno, primero que nada abrimos el Zombie Plague y buscamos
PHP Code:
// Zombie Classes vars
Abajo de
PHP Code:
new Array:g_zclass_kb // knockback
Agregamos
PHP Code:
new Array:g_zclass_lvl // Level
Ahora buscamos la siguiente linea
PHP Code:
public plugin_precache()
Ahí buscamos
PHP Code:
g_zclass_kb = ArrayCreate(1, 1)
Debajo de esa linea agregamos
PHP Code:
g_zclass_lvl = ArrayCreate(1, 1)
Buscamos la linea
PHP Code:
public show_menu_zclass(id)
Ahora hacemos 2 cosas, 1ro le agregamos a un Buffer mas a esta linea
PHP Code:
static menuid, menu[128], class, buffer[32], buffer2[32]
PHP Code:
static menuid, menu[128], class, buffer[32], buffer2[32], buffer3[32]
2do, todo lo que esta adentro del
PHP Code:
for (class = 0; class < g_zclass_i; class++)
Lo remplazamos por esto
PHP Code:
// Retrieve name and info ArrayGetString(g_zclass_name, class, buffer, charsmax(buffer)) ArrayGetString(g_zclass_info, class, buffer2, charsmax(buffer2)) ArrayGetString(g_zclass_lvl, class, buffer3, charsmax(buffer3)) if(VARIABLE_DE_LEVEL[id] >= ArrayGetCell(g_zclass_lvl, class)) { // Add to menu if (class == g_zombieclassnext[id]) formatex(menu, charsmax(menu), "\d%s %s", buffer, buffer2) else formatex(menu, charsmax(menu), "%s \y%s", buffer, buffer2) } else { formatex(menu, charsmax(menu), "\d%s %s (Nivel Requerido: %d)", buffer,buffer2, buffer3) } buffer[0] = class buffer[1] = 0 buffer[2] = 0 menu_additem(menuid, menu, buffer)
Nos queda asi
PHP Code:
// Class List for (class = 0; class < g_zclass_i; class++) { // Retrieve name and info ArrayGetString(g_zclass_name, class, buffer, charsmax(buffer)) ArrayGetString(g_zclass_info, class, buffer2, charsmax(buffer2)) ArrayGetString(g_zclass_lvl, class, buffer3, charsmax(buffer3)) if(VARIABLE_DE_LEVEL[id] >= ArrayGetCell(g_zclass_lvl, class)) { // Add to menu if (class == g_zombieclassnext[id]) formatex(menu, charsmax(menu), "\d%s %s", buffer, buffer2) else formatex(menu, charsmax(menu), "%s \y%s", buffer, buffer2) } else { formatex(menu, charsmax(menu), "\d%s %s (Nivel Requerido: %d)", buffer,buffer2, buffer3) } buffer[0] = class buffer[1] = 0 buffer[2] = 0 menu_additem(menuid, menu, buffer) }
Ahora buscamos la linea
PHP Code:
public menu_zclass(id, menuid, item)
En donde dice
PHP Code:
// Retrieve zombie class id static buffer[2], dummy, classid menu_item_getinfo(menuid, item, dummy, buffer, charsmax(buffer), _, _, dummy) classid = buffer[0] // Store selection for the next infection g_zombieclassnext[id] = classid static name[32] ArrayGetString(g_zclass_name, g_zombieclassnext[id], name, charsmax(name)) // Show selected zombie class info and stats zp_colored_print(id, "^x04[ZP]^x01 %L: %s", id, "ZOMBIE_SELECT", name) zp_colored_print(id, "^x04[ZP]^x01 %L: %d %L: %d %L: %d %L: %d%%", id, "ZOMBIE_ATTRIB1", ArrayGetCell(g_zclass_hp, g_zombieclassnext[id]), id, "ZOMBIE_ATTRIB2", ArrayGetCell(g_zclass_spd, g_zombieclassnext[id]), id, "ZOMBIE_ATTRIB3", floatround(Float:ArrayGetCell(g_zclass_grav, g_zombieclassnext[id]) * 800.0), id, "ZOMBIE_ATTRIB4", floatround(Float:ArrayGetCell(g_zclass_kb, g_zombieclassnext[id]) * 100.0)) menu_destroy(menuid) return PLUGIN_HANDLED;
Lo remplazamos todo por esto
PHP Code:
// Retrieve zombie class id static buffer[2], dummy, classid menu_item_getinfo(menuid, item, dummy, buffer, charsmax(buffer), _, _, dummy) classid = buffer[0] if (VARIABLE_DE_LEVEL[id] >=ArrayGetCell( g_zclass_lvl, classid)) { // Store selection for the next infection g_zombieclassnext[id] = classid static name[32] ArrayGetString(g_zclass_name, g_zombieclassnext[id], name, charsmax(name)) // Show selected zombie class info and stats zp_colored_print(id, "^x04[ZP]^x01 %L: %s", id, "ZOMBIE_SELECT", name) zp_colored_print(id, "^x04[ZP]^x01 %L: %d %L: %d %L: %d %L: %d%%", id, "ZOMBIE_ATTRIB1", ArrayGetCell(g_zclass_hp, g_zombieclassnext[id]), id, "ZOMBIE_ATTRIB2", ArrayGetCell(g_zclass_spd, g_zombieclassnext[id]), id, "ZOMBIE_ATTRIB3", floatround(Float:ArrayGetCell(g_zclass_grav, g_zombieclassnext[id]) * 800.0), id, "ZOMBIE_ATTRIB4", floatround(Float:ArrayGetCell(g_zclass_kb, g_zombieclassnext[id]) * 100.0)) } menu_destroy(menuid) return PLUGIN_HANDLED;
Ahora vamos a la linea
PHP Code:
public native_register_zombie_class
Editamos la esa native
PHP Code:
public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback)
PHP Code:
public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback, Level)
Abajo de
PHP Code:
ArrayPushCell(g_zclass_kb, knockback)
Agregamos
PHP Code:
ArrayPushCell(g_zclass_lvl, Level)
Bueno, ahora abrimos el zombieplague.inc y buscamos la linea
PHP Code:
native zp_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback)
y la cambiamos por
PHP Code:
native zp_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback, Levels)
Ahora tenemos que editar zp_zclasses40 y agregarle a los stats de cada zombie abajo de
PHP Code:
const Float:zclass1_knockback = 1.0
Agregamos
PHP Code:
const zclass1_lvl = %
Donde esta el % ponen el nivel que quieran.
Por ultimo en
PHP Code:
public plugin_precache()
Hay que agregarle en
PHP Code:
zp_register_zombie_class(zclass1_name, zclass1_info, zclass1_model, zclass1_clawmodel, zclass1_health, zclass1_speed, zclass1_gravity, zclass1_knockback)
PHP Code:
zp_register_zombie_class(zclass1_name, zclass1_info, zclass1_model, zclass1_clawmodel, zclass1_health, zclass1_speed, zclass1_gravity, zclass1_knockback, zclass1_lvl)
Listo xD eso es todo... cualquier error me avisan xD
Saludos
__________________
Last edited by rak; 10-31-2011 at 10:33.
Reason: fix
|
|