Veteran Member
|
11-07-2009
, 15:44
[ZP][TUT] Clases de Zombies por Nivel
|
#1
|
ATENCIÓN: No doy más soporte a esto y probablemente esté desactualizado y genere errores!
Tutorial: Agregar Niveles a las Clases de Zombies.
Descripcion: Les enseñare a Restringir los Zombies a traves de Niveles.
Tiempo Estimado en Hacerlo: De 15 a 20 Minutos.
Notas:
Reemplazar todas las "variable_de_nivel" por su Variable.
Si tu variable de Nivel, es "g_playerlevel", entonces reemplazas "variable_de_nivel" por "g_playerlevel[id]"
1. Abrimos el Zombie Plague.
2. Buscamos la siguiente linea:
PHP Code:
// Zombie Classes vars
3. Agregamos lo siguiente:
PHP Code:
new g_zclass_lvl[MAX_ZOMBIE_CLASSSES]
4. Buscamos la siguiente linea:
PHP Code:
public show_menu_zclass(id)
5. En donde dice:
PHP Code:
for (class = ZCLASSES_STARTID; class < min(ZCLASSES_STARTID+7, g_zclass_i); class++)
Agregamos lo siguiente:
PHP Code:
if (variable_de_nivel[id] >= g_zclass_lvl[class]) { if (class == g_zombieclassnext[id]) len += formatex(menu[len], sizeof menu - 1 - len, "\d%d. %s %s^n", class-ZCLASSES_STARTID+1, g_zclass_name[class], g_zclass_info[class]) else len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %s\y %s^n", class-ZCLASSES_STARTID+1, g_zclass_name[class], g_zclass_info[class]) } else len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\d %s %s\r (Nivel Requerido: %d)^n", class-ZCLASSES_STARTID+1, g_zclass_name[class], g_zclass_info[class], g_zclass_lvl[class])
Nos quedaria asi:
PHP Code:
// 1-7. Class List for (class = ZCLASSES_STARTID; class < min(ZCLASSES_STARTID+7, g_zclass_i); class++) { if (variable_de_nivel[id] >= g_zclass_lvl[class]) { if (class == g_zombieclassnext[id]) len += formatex(menu[len], sizeof menu - 1 - len, "\d%d. %s %s^n", class-ZCLASSES_STARTID+1, g_zclass_name[class], g_zclass_info[class]) else len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\w %s\y %s^n", class-ZCLASSES_STARTID+1, g_zclass_name[class], g_zclass_info[class]) } else len += formatex(menu[len], sizeof menu - 1 - len, "\r%d.\d %s %s\r (Nivel Requerido: %d)^n", class-ZCLASSES_STARTID+1, g_zclass_name[class], g_zclass_info[class], g_zclass_lvl[class]) }
6. Buscamos la siguiente linea:
PHP Code:
public menu_zclass(id, key)
7. En donde dice:
PHP Code:
// Store selection for the next infection g_zombieclassnext[id] = ZCLASSES_SELECTION; // Show selected zombie class info and stats zp_colored_print(id, "^x04[ZP]^x01 %L: %s", id, "ZOMBIE_SELECT", g_zclass_name[g_zombieclassnext[id]]) zp_colored_print(id, "^x04[ZP]^x01 %L: %d %L: %d %L: %d %L: %d%%", id, "ZOMBIE_ATTRIB1", g_zclass_hp[g_zombieclassnext[id]], id, "ZOMBIE_ATTRIB2", g_zclass_spd[g_zombieclassnext[id]], id, "ZOMBIE_ATTRIB3", floatround(g_zclass_grav[g_zombieclassnext[id]]*800), id, "ZOMBIE_ATTRIB4", floatround(g_zclass_kb[g_zombieclassnext[id]]*100)) return PLUGIN_HANDLED;
Reemplazamos todo eso, por esto:
PHP Code:
if (variable_de_nivel[id] >= g_zclass_lvl[ZCLASSES_SELECTION]) { // Store selection for the next infection g_zombieclassnext[id] = ZCLASSES_SELECTION; // Show selected zombie class info and stats zp_colored_print(id, "^x04[ZP]^x01 %L: %s", id, "ZOMBIE_SELECT", g_zclass_name[g_zombieclassnext[id]]) zp_colored_print(id, "^x04[ZP]^x01 %L: %d %L: %d %L: %d %L: %d%%", id, "ZOMBIE_ATTRIB1", g_zclass_hp[g_zombieclassnext[id]], id, "ZOMBIE_ATTRIB2", g_zclass_spd[g_zombieclassnext[id]], id, "ZOMBIE_ATTRIB3", floatround(g_zclass_grav[g_zombieclassnext[id]]*800), id, "ZOMBIE_ATTRIB4", floatround(g_zclass_kb[g_zombieclassnext[id]]*100)) } else { zp_colored_print(id, "^x04[ZP]^x01 No tenes Nivel suficiente para elegir esta Clase de Zombie. [Nivel Requerido: %d]", g_zclass_lvl[ZCLASSES_SELECTION]) return PLUGIN_HANDLED; } return PLUGIN_HANDLED;
8. Buscamos la siguiente linea:
PHP Code:
public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback)
9. Adentro de esa Native, editamos lo siguiente:
El titulo:
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 donde dice:
PHP Code:
g_zclass_kb[g_zclass_i] = knockback
Agregamos:
PHP Code:
g_zclass_lvl[g_zclass_i] = level
10. Abrimos el zombieplague.inc y editamos la linea:
PHP Code:
native zp_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback)
-->
PHP Code:
native zp_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback, level)
11. Listo, terminamos, ahora para elegir que Nivel queres que tenga cada Zombie, hay que editar una ultima cosa.
12. Abrimos nuestro Plugin que contengan las Clases de Zombies.
13. En la parte de los STATS del Zombie:
PHP Code:
new const zclass1_name[] = { "Classic Zombie" } new const zclass1_info[] = { "=Balanced=" } new const zclass1_model[] = { "zombie_source" } new const zclass1_clawmodel[] = { "v_knife_zombie.mdl" } const zclass1_health = 1800 const zclass1_speed = 190 const Float:zclass1_gravity = 1.0 const Float:zclass1_knockback = 1.0
Hay que agregarle lo siguiente:
PHP Code:
new const zclass1_name[] = { "Classic Zombie" } new const zclass1_info[] = { "=Balanced=" } new const zclass1_model[] = { "zombie_source" } new const zclass1_clawmodel[] = { "v_knife_zombie.mdl" } const zclass1_health = 1800 const zclass1_speed = 190 const Float:zclass1_gravity = 1.0 const Float:zclass1_knockback = 1.0 const zclass1_level = 6
14. Por ultimo hay que editar el Registro de la Clase de Zombie.
Buscamos en ese mismo Plugin lo siguiente:
PHP Code:
zp_register_zombie_class(zclass1_name, zclass1_info, zclass1_model, zclass1_clawmodel, zclass1_health, zclass1_speed, zclass1_gravity, zclass1_knockback)
Y la reemplazamos por esto:
PHP Code:
zp_register_zombie_class(zclass1_name, zclass1_info, zclass1_model, zclass1_clawmodel, zclass1_health, zclass1_speed, zclass1_gravity, zclass1_knockback, zclass1_level)
15. El ultimo paso es Compilar y fijarse si todo anda correctamente.
Si queres que el Zombie no tenga Restriccion, pones que el Nivel requerido, sea el 0.
Nota2: Si tenes alguna DUDA, PROBLEMA o ERROR (Mientras no sea ESTUPIDO), postealo y te lo respondere lo mas rapido posible.
Nota3: Con esto que di aca, es mas que facil hacer las Clases Humanas de una forma mucho mas Corta y Sencilla, solo es cuestion de pensar y razonar.
__________________
Last edited by Kiske; 03-02-2014 at 09:04.
|
|