30/10/2014, 12:29 AM
(Última modificación: 30/10/2014, 01:53 AM por -|[H]eri[B]ert[O]|-.)
Tipo: Tutorial o C&P
MOD: Zombie Plague
JUEGO: Counter Strike 1.6
Tipo de Tutorial: Restricciones
Requisitos: Tener Clases de Zombies e Humanos
Holas este es un simple tutorial de restricciones para Humanos y Zombies por favor eviten el "Ya este tutorial esta hecho" porque la verdad lo vi hecho pero separadamente y mal redactado ok asi que a los que no le guste el tut que por favor hagan silencion y evitense malas respuestas que esa no es la idea ammmm y otra cosa tambien eviten el comentario "ESTO NO ES UN TUTORIAL ES PURO C&P" como ya les dije si no les gusta hagan silencion ok comenzemos.....
Restriccion por Level Zombies
---Zombie Plague 4.3---
1er Paso:
2do Paso:
3to Paso:
4to Paso:
5to Paso:
6to Paso:
7mo Paso:
8vo Paso:
9no Paso:
Y eso seria todo claro para el ---Zombie Plague 4.3--- Mas abajo explicare para ZP 4.2
Bien Bien Aora vamos con los Humanos antes que todo es casi la misma wea asi que.......
Restriccion: Humanos por Level
1er Paso:
2do Paso:
3er Paso:
4to Paso:
5to Paso:
6to Paso:
7tmo Paso:
8vo Paso:
9no Paso:
ADAPTACION PARA ZOMBIES POR LVL EN EL PLUGIN
ADAPTACION PARA Humanos POR LVL EN EL PLUGIN
Y eso es practicamente todo gracias a kikizon q su ingnorante comentario me dio la idea de facilitarles la adaptacion
bueno eso es practicamente todo no es muy dificil vieron se que no explique mucho pero la idea es ayudar
Bueno se que os prometi la restriccion para zp 4.2 pero are otro tut o c&p como ustedes mas le guste llamar a esto porque ya seria algo demasiado largito no creen Bueno la verdad ya me dio un poquito de lala
Les prometi las Restricciones para Zombie plague 4.2 y la de reset pero ya es un poco tarde y tengo algo de sueño mñana les hago las restricciones de armas tambien ya que estamos en eso espero averles sido de ayuda porfa no critiquen solo vean y solo comenten positivamente
Proximas Restricciones que les Resumire:
-Humanos y Zombies por Level: Zombie Plague 4.2
-Zombies, Humanos y Armas por Reset: Zombie Plague 4.3 y 4.2 "Nota: Seran 2 tutoriales diferentes ya que es algo largito"
MOD: Zombie Plague
JUEGO: Counter Strike 1.6
Tipo de Tutorial: Restricciones
Requisitos: Tener Clases de Zombies e Humanos
Holas este es un simple tutorial de restricciones para Humanos y Zombies por favor eviten el "Ya este tutorial esta hecho" porque la verdad lo vi hecho pero separadamente y mal redactado ok asi que a los que no le guste el tut que por favor hagan silencion y evitense malas respuestas que esa no es la idea ammmm y otra cosa tambien eviten el comentario "ESTO NO ES UN TUTORIAL ES PURO C&P" como ya les dije si no les gusta hagan silencion ok comenzemos.....
Restriccion por Level Zombies
---Zombie Plague 4.3---
1er Paso:
nos dirigimos a "// Zombie Classes vars"
Abajo de "new Array:g_zclass_clawmodel // claw model" Agregamos "new Array:g_zclass_lvl // level"
Quedando....
Abajo de "new Array:g_zclass_clawmodel // claw model" Agregamos "new Array:g_zclass_lvl // level"
Quedando....
Código PHP:
// Zombie Classes vars
new Array:g_zclass_name // caption
new Array:g_zclass_info // description
new Array:g_zclass_modelsstart // start position in models array
new Array:g_zclass_modelsend // end position in models array
new Array:g_zclass_playermodel // player models array
new Array:g_zclass_modelindex // model indices array
new Array:g_zclass_clawmodel // claw model
new Array:g_zclass_lvl // level
new Array:g_zclass_hp // health
new Array:g_zclass_spd // speed
new Array:g_zclass_grav // gravity
new Array:g_zclass_kb // knockback
new g_zclass_i // loaded zombie classes counter
2do Paso:
Nos vamos a "// For zombie classes file parsing"
Código PHP:
Adelante de "Array:g_zclass2_clawmodel" Agregamos "Array:g_zclass2_lvl"
Quedando....
[php]// For zombie classes file parsing
new Array:g_zclass2_realname, Array:g_zclass2_name, Array:g_zclass2_info,
Array:g_zclass2_modelsstart, Array:g_zclass2_modelsend, Array:g_zclass2_playermodel,
Array:g_zclass2_modelindex, Array:g_zclass2_clawmodel, Array:g_zclass2_lvl, Array:g_zclass2_hp,
Array:g_zclass2_spd, Array:g_zclass2_grav, Array:g_zclass2_kb, Array:g_zclass_new
3to Paso:
Nos Vamos a "// Initialize a few dynamically sized arrays (alright, maybe more than just a few...)"
Quedando...
Código PHP:
Abajo de "g_zclass_clawmodel = ArrayCreate(32, 1)" agregamos "g_zclass_lvl = ArrayCreate(1, 1)" y mas abajo en "g_zclass2_clawmodel = ArrayCreate(32, 1)" agregamos "g_zclass2_lvl = ArrayCreate(1, 1)"
Quedando...
Código PHP:
// Initialize a few dynamically sized arrays (alright, maybe more than just a few...)
g_unblock_words = ArrayCreate(128, 1)
model_admin_human = ArrayCreate(32, 1)
model_admin_zombie = ArrayCreate(32, 1)
sound_win_zombies = ArrayCreate(64, 1)
sound_win_zombies_ismp3 = ArrayCreate(1, 1)
sound_win_humans = ArrayCreate(64, 1)
sound_win_humans_ismp3 = ArrayCreate(1, 1)
sound_win_no_one = ArrayCreate(64, 1)
sound_win_no_one_ismp3 = ArrayCreate(1, 1)
zombie_infect = ArrayCreate(64, 1)
zombie_pain = ArrayCreate(64, 1)
nemali_pain = ArrayCreate(64, 1)
zombie_die = ArrayCreate(64, 1)
zombie_fall = ArrayCreate(64, 1)
zombie_miss_slash = ArrayCreate(64, 1)
zombie_miss_wall = ArrayCreate(64, 1)
zombie_hit_normal = ArrayCreate(64, 1)
zombie_hit_stab = ArrayCreate(64, 1)
zombie_idle = ArrayCreate(64, 1)
zombie_madness = ArrayCreate(64, 1)
sound_mulswa = ArrayCreate(64, 1)
sound_plasyn = ArrayCreate(64, 1)
sound_armcry = ArrayCreate(64, 1)
grenade_infect = ArrayCreate(64, 1)
grenade_infect_player = ArrayCreate(64, 1)
grenade_fire = ArrayCreate(64, 1)
grenade_fire_player = ArrayCreate(64, 1)
grenade_frost = ArrayCreate(64, 1)
grenade_frost_player = ArrayCreate(64, 1)
grenade_frost_break = ArrayCreate(64, 1)
sound_antidote = ArrayCreate(64, 1)
sound_countdown = ArrayCreate(128, 1)
sound_ambience = ArrayCreate(64, 1)
sound_ambience_duration = ArrayCreate(1, 1)
sound_ambience_ismp3 = ArrayCreate(1, 1)
g_primary_items = ArrayCreate(32, 1)
g_primary_levels = ArrayCreate(1, 1)
g_secondary_items = ArrayCreate(32, 1)
g_secondary_levels = ArrayCreate(1, 1)
g_additional_items = ArrayCreate(32, 1)
g_primary_weaponids = ArrayCreate(1, 1)
g_secondary_weaponids = ArrayCreate(1, 1)
g_special_names = ArrayCreate(32, 1)
g_special_levels = ArrayCreate(1, 1)
g_extraweapon_names = ArrayCreate(32, 1)
g_extraweapon_items = ArrayCreate(32, 1)
g_extraweapon_costs = ArrayCreate(1, 1)
g_extraweapon_levels = ArrayCreate(1, 1)
g_sky_names = ArrayCreate(32, 1)
lights_thunder = ArrayCreate(32, 1)
zombie_decals = ArrayCreate(1, 1)
g_objective_ents = ArrayCreate(32, 1)
g_extraitem_name = ArrayCreate(32, 1)
g_extraitem_cost = ArrayCreate(1, 1)
g_extraitem_team = ArrayCreate(1, 1)
g_extraitem2_realname = ArrayCreate(32, 1)
g_extraitem2_name = ArrayCreate(32, 1)
g_extraitem2_cost = ArrayCreate(1, 1)
g_extraitem2_team = ArrayCreate(1, 1)
g_extraitem_new = ArrayCreate(1, 1)
g_zclass_name = ArrayCreate(32, 1)
g_zclass_info = ArrayCreate(72, 1)
g_zclass_modelsstart = ArrayCreate(1, 1)
g_zclass_modelsend = ArrayCreate(1, 1)
g_zclass_playermodel = ArrayCreate(32, 1)
g_zclass_modelindex = ArrayCreate(1, 1)
g_zclass_clawmodel = ArrayCreate(32, 1)
g_zclass_lvl = ArrayCreate(1, 1)
g_zclass_hp = ArrayCreate(1, 1)
g_zclass_spd = ArrayCreate(1, 1)
g_zclass_grav = ArrayCreate(1, 1)
g_zclass_kb = ArrayCreate(1, 1)
g_zclass2_realname = ArrayCreate(32, 1)
g_zclass2_name = ArrayCreate(32, 1)
g_zclass2_info = ArrayCreate(72, 1)
g_zclass2_modelsstart = ArrayCreate(1, 1)
g_zclass2_modelsend = ArrayCreate(1, 1)
g_zclass2_playermodel = ArrayCreate(32, 1)
g_zclass2_modelindex = ArrayCreate(1, 1)
g_zclass2_clawmodel = ArrayCreate(32, 1)
g_zclass2_lvl = ArrayCreate(1, 1)
g_zclass2_hp = ArrayCreate(1, 1)
g_zclass2_spd = ArrayCreate(1, 1)
g_zclass2_grav = ArrayCreate(1, 1)
g_zclass2_kb = ArrayCreate(1, 1)
g_zclass_new = ArrayCreate(1, 1)
o mas o menos asi :D
4to Paso:
Si quieren que les Salga a la hora de elejir el zombie el lvl necesario nos vamos a "// Zombie Class Menu" le dan un poco mas abajo en "// Class List" le dan un poquito mas abajo en "// Add to menu"
Código PHP:
Ustedes lo tendran asi
// 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))
// 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)
buffer[0] = class
buffer[1] = 0
menu_additem(menuid, menu, buffer)
}
Código PHP:
pero lo pondremos asi
// 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))
// Add to menu
if (g_level[id] >= ArrayGetCell(g_zclass_lvl, class))
{
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(g_menu, charsmax(menu), "\d%s (\rNivel Requerido \w%d\d)", buffer, ArrayGetCell(g_zclass_lvl, class))
buffer[0] = class
buffer[1] = 0
buffer[2] = 0
menu_additem(menuid, menu, buffer)
}
5to Paso:
Nos vamos a "// Zombie Class Menu" o "public menu_zclass(id, menuid, item)" para que se les haga mas facil o como ustedes tengan representado su public del menu de la clase buscan mas abajito de eso "// Retrieve zombie class id" y agregan
Quedando...
Código PHP:
// Level required
if (g_level[id] < ArrayGetCell(g_zclass_lvl, classid))
{
show_menu_zclass(id)
return PLUGIN_HANDLED;
}
Quedando...
Código PHP:
// Retrieve zombie class id
static buffer[2], dummy, classid
menu_item_getinfo(menuid, item, dummy, buffer, charsmax(buffer), _, _, dummy)
classid = buffer[0]
// Level required
if (g_level[id] < ArrayGetCell(g_zclass_lvl, classid) && !(get_user_flags(id) & g_access_flag[ACCESS_CLASSES_FREE]))
{
show_menu_zclass(id)
return PLUGIN_HANDLED;
}
6to Paso:
Vamos a "save_customization()" y buscamos mas abajo "// Add clawmodel" y agregamos..
Quedando...
pero calma eso no es todo en este paso mas abajito solo un poquito en contraran "// Free arrays containing class/item overrides"
Quedando...
Código PHP:
// Add level
formatex(buffer, charsmax(buffer), "^nLEVEL = %d", ArrayGetCell(g_zclass_lvl, i))
fputs(file, buffer)
Quedando...
Código PHP:
// Add clawmodel
ArrayGetString(g_zclass_clawmodel, i, buffer, charsmax(buffer))
format(buffer, charsmax(buffer), "^nCLAWMODEL = %s", buffer)
fputs(file, buffer)
// Add level
formatex(buffer, charsmax(buffer), "^nLEVEL = %d", ArrayGetCell(g_zclass_lvl, i))
fputs(file, buffer)
pero calma eso no es todo en este paso mas abajito solo un poquito en contraran "// Free arrays containing class/item overrides"
Código PHP:
Abajo de "ArrayDestroy(g_zclass2_clawmodel)" agregamos "ArrayDestroy(g_zclass2_lvl)"
Quedando...
Código PHP:
// Free arrays containing class/item overrides
ArrayDestroy(g_zclass2_realname)
ArrayDestroy(g_zclass2_name)
ArrayDestroy(g_zclass2_info)
ArrayDestroy(g_zclass2_modelsstart)
ArrayDestroy(g_zclass2_modelsend)
ArrayDestroy(g_zclass2_playermodel)
ArrayDestroy(g_zclass2_modelindex)
ArrayDestroy(g_zclass2_clawmodel)
ArrayDestroy(g_zclass2_lvl)
ArrayDestroy(g_zclass2_hp)
ArrayDestroy(g_zclass2_spd)
ArrayDestroy(g_zclass2_grav)
ArrayDestroy(g_zclass2_kb)
ArrayDestroy(g_zclass_new)
ArrayDestroy(g_extraitem2_realname)
ArrayDestroy(g_extraitem2_name)
ArrayDestroy(g_extraitem2_cost)
ArrayDestroy(g_extraitem2_team)
ArrayDestroy(g_extraitem_new)
7mo Paso:
Y ahora registramos la Native Ustedes la tendran asi..
Le pondran esto "lvl" despues de "const clawmodel[]" es para poder restringir los zombies en el plugin Externo
Quedando....
Pero eso no es todo el paso mas abajo buscan "// Using same zombie models for all classes?"
Código PHP:
public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback)
Le pondran esto "lvl" despues de "const clawmodel[]" es para poder restringir los zombies en el plugin Externo
Quedando....
Código PHP:
public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], lvl, hp, speed, Float:gravity, Float:knockback)
Pero eso no es todo el paso mas abajo buscan "// Using same zombie models for all classes?"
Código PHP:
mas abajito si leen encontraran esto "ArrayPushString(g_zclass_clawmodel, clawmodel)" agregaran "ArrayPushCell(g_zclass_lvl, lvl)" para registrar la native :D
8vo Paso:
Mas abajo de "// Using same zombie models for all classes?" ya estabamos ablando de eso, encontraran "// Precache clawmodel" Agregaremos
Quedando....
Código PHP:
// Replace level
buffer[0] = ArrayGetCell(g_zclass2_lvl, i)
ArraySetCell(g_zclass_lvl, g_zclass_i, buffer[0])
Quedando....
Código PHP:
// Precache clawmodel
formatex(prec_mdl, charsmax(prec_mdl), "models/zombie_plague/%s", buffer)
engfunc(EngFunc_PrecacheModel, prec_mdl)
// Replace level
buffer[0] = ArrayGetCell(g_zclass2_lvl, i)
ArraySetCell(g_zclass_lvl, g_zclass_i, buffer[0])
9no Paso:
Vamos a "// Set models end index" y agregamos abajo de
Agregamos
Quedando...
Código PHP:
else if (equal(key, "CLAWMODEL"))
ArrayPushString(g_zclass2_clawmodel, value)
Agregamos
Código PHP:
else if (equal(key, "LEVEL"))
ArrayPushCell(g_zclass2_lvl, str_to_num(value))
Quedando...
Código PHP:
// Set models end index
ArrayPushCell(g_zclass2_modelsend, ArraySize(g_zclass2_playermodel))
}
else if (equal(key, "CLAWMODEL"))
ArrayPushString(g_zclass2_clawmodel, value)
else if (equal(key, "LEVEL"))
ArrayPushCell(g_zclass2_lvl, str_to_num(value))
else if (equal(key, "HEALTH"))
ArrayPushCell(g_zclass2_hp, str_to_num(value))
else if (equal(key, "SPEED"))
ArrayPushCell(g_zclass2_spd, str_to_num(value))
else if (equal(key, "GRAVITY"))
ArrayPushCell(g_zclass2_grav, str_to_float(value))
else if (equal(key, "KNOCKBACK"))
ArrayPushCell(g_zclass2_kb, str_to_float(value))
Y eso seria todo claro para el ---Zombie Plague 4.3--- Mas abajo explicare para ZP 4.2
Bien Bien Aora vamos con los Humanos antes que todo es casi la misma wea asi que.......
Restriccion: Humanos por Level
1er Paso:
nos dirigimos a "// Human Classes vars"
Quedando....
Código PHP:
Abajo de new Array:g_zclass_clawmodel // claw model Agregamos new Array:g_zclass_lvl // level
Quedando....
Código PHP:
// Human Classes vars
new Array:g_hclass_name // caption
new Array:g_hclass_info // description
new Array:g_hclass_modelsstart // start position in models array
new Array:g_hclass_modelsend // end position in models array
new Array:g_hclass_playermodel // player models array
new Array:g_hclass_modelindex // model indices array
new Array:g_hclass_lvl // level
new Array:g_hclass_hp // health
new Array:g_hclass_spd // speed
new Array:g_hclass_grav // gravity
new g_hclass_i // loaded human classes counter
2do Paso:
Nos vamos a "// For human classes file parsing"
Código PHP:
Adelante de "Array:g_hclass2_modelindex" Agregamos "Array:g_hclass2_lvl"
Quedando....
[php]// For human classes file parsing
new Array:g_hclass2_realname, Array:g_hclass2_name, Array:g_hclass2_info,
Array:g_hclass2_modelsstart, Array:g_hclass2_modelsend, Array:g_hclass2_playermodel,
Array:g_hclass2_modelindex, Array:g_hclass2_lvl, Array:g_hclass2_hp, Array:g_hclass2_spd,
Array:g_hclass2_grav, Array:g_hclass_new
3er Paso:
Nos Vamos a "// Initialize a few dynamically sized arrays (alright, maybe more than just a few...)"
Quedando...
Código PHP:
Abajo de "g_hclass_modelindex = ArrayCreate(1, 1)" agregamos "g_hclass_lvl = ArrayCreate(1, 1)" y mas abajo en "g_hclass2_modelindex = ArrayCreate(1, 1)" agregamos "g_hclass2_lvl = ArrayCreate(1, 1)"
Quedando...
Código PHP:
// Initialize a few dynamically sized arrays (alright, maybe more than just a few...)
g_unblock_words = ArrayCreate(128, 1)
model_nemesis = ArrayCreate(32, 1)
model_alien = ArrayCreate(32, 1)
model_survivor = ArrayCreate(32, 1)
model_wesker = ArrayCreate(32, 1)
model_admin_human = ArrayCreate(32, 1)
model_admin_zombie = ArrayCreate(32, 1)
sound_win_zombies = ArrayCreate(64, 1)
sound_win_zombies_ismp3 = ArrayCreate(1, 1)
sound_win_humans = ArrayCreate(64, 1)
sound_win_humans_ismp3 = ArrayCreate(1, 1)
sound_win_no_one = ArrayCreate(64, 1)
sound_win_no_one_ismp3 = ArrayCreate(1, 1)
zombie_infect = ArrayCreate(64, 1)
zombie_pain = ArrayCreate(64, 1)
nemali_pain = ArrayCreate(64, 1)
zombie_die = ArrayCreate(64, 1)
zombie_fall = ArrayCreate(64, 1)
zombie_miss_slash = ArrayCreate(64, 1)
zombie_miss_wall = ArrayCreate(64, 1)
zombie_hit_normal = ArrayCreate(64, 1)
zombie_hit_stab = ArrayCreate(64, 1)
zombie_idle = ArrayCreate(64, 1)
zombie_madness = ArrayCreate(64, 1)
sound_mulswa = ArrayCreate(64, 1)
sound_plasyn = ArrayCreate(64, 1)
sound_armcry = ArrayCreate(64, 1)
grenade_infect = ArrayCreate(64, 1)
grenade_infect_player = ArrayCreate(64, 1)
grenade_fire = ArrayCreate(64, 1)
grenade_fire_player = ArrayCreate(64, 1)
grenade_frost = ArrayCreate(64, 1)
grenade_frost_player = ArrayCreate(64, 1)
grenade_frost_break = ArrayCreate(64, 1)
sound_ambience = ArrayCreate(64, 1)
sound_ambience_duration = ArrayCreate(1, 1)
sound_ambience_ismp3 = ArrayCreate(1, 1)
g_primary_items = ArrayCreate(32, 1)
g_secondary_items = ArrayCreate(32, 1)
g_additional_items = ArrayCreate(32, 1)
g_additional_levels = ArrayCreate(1, 1)
g_primary_weaponids = ArrayCreate(1, 1)
g_secondary_weaponids = ArrayCreate(1, 1)
g_extraweapon_names = ArrayCreate(32, 1)
g_extraweapon_items = ArrayCreate(32, 1)
g_extraweapon_costs = ArrayCreate(1, 1)
g_sky_names = ArrayCreate(32, 1)
lights_thunder = ArrayCreate(32, 1)
zombie_decals = ArrayCreate(1, 1)
g_objective_ents = ArrayCreate(32, 1)
g_extraitem_name = ArrayCreate(32, 1)
g_extraitem_lvl = ArrayCreate(1, 1)
g_extraitem_cost = ArrayCreate(1, 1)
g_extraitem_team = ArrayCreate(1, 1)
g_extraitem2_realname = ArrayCreate(32, 1)
g_extraitem2_name = ArrayCreate(32, 1)
g_extraitem2_cost = ArrayCreate(1, 1)
g_extraitem2_team = ArrayCreate(1, 1)
g_extraitem_new = ArrayCreate(1, 1)
g_hclass_name = ArrayCreate(32, 1)
g_hclass_info = ArrayCreate(72, 1)
g_hclass_modelsstart = ArrayCreate(1, 1)
g_hclass_modelsend = ArrayCreate(1, 1)
g_hclass_playermodel = ArrayCreate(32, 1)
g_hclass_modelindex = ArrayCreate(1, 1)
g_hclass_lvl = ArrayCreate(1, 1)
g_hclass_hp = ArrayCreate(1, 1)
g_hclass_spd = ArrayCreate(1, 1)
g_hclass_grav = ArrayCreate(1, 1)
g_hclass2_realname = ArrayCreate(32, 1)
g_hclass2_name = ArrayCreate(32, 1)
g_hclass2_info = ArrayCreate(72, 1)
g_hclass2_modelsstart = ArrayCreate(1, 1)
g_hclass2_modelsend = ArrayCreate(1, 1)
g_hclass2_playermodel = ArrayCreate(32, 1)
g_hclass2_modelindex = ArrayCreate(1, 1)
g_hclass2_hp = ArrayCreate(1, 1)
g_hclass2_spd = ArrayCreate(1, 1)
g_hclass2_grav = ArrayCreate(1, 1)
g_hclass_new = ArrayCreate(1, 1)
g_zclass_name = ArrayCreate(32, 1)
g_zclass_info = ArrayCreate(72, 1)
g_zclass_modelsstart = ArrayCreate(1, 1)
g_zclass_modelsend = ArrayCreate(1, 1)
g_zclass_playermodel = ArrayCreate(32, 1)
g_zclass_modelindex = ArrayCreate(1, 1)
g_zclass_clawmodel = ArrayCreate(32, 1)
g_zclass_lvl = ArrayCreate(1, 1)
g_zclass_hp = ArrayCreate(1, 1)
g_zclass_spd = ArrayCreate(1, 1)
g_zclass_grav = ArrayCreate(1, 1)
g_zclass_kb = ArrayCreate(1, 1)
g_zclass2_realname = ArrayCreate(32, 1)
g_zclass2_name = ArrayCreate(32, 1)
g_zclass2_info = ArrayCreate(72, 1)
g_zclass2_modelsstart = ArrayCreate(1, 1)
g_zclass2_modelsend = ArrayCreate(1, 1)
g_zclass2_playermodel = ArrayCreate(32, 1)
g_zclass2_modelindex = ArrayCreate(1, 1)
g_zclass2_clawmodel = ArrayCreate(32, 1)
g_zclass2_lvl = ArrayCreate(1, 1)
g_zclass2_hp = ArrayCreate(1, 1)
g_zclass2_spd = ArrayCreate(1, 1)
g_zclass2_grav = ArrayCreate(1, 1)
g_zclass2_kb = ArrayCreate(1, 1)
g_zclass_new = ArrayCreate(1, 1)
4to Paso:
Si quieren que les Salga a la hora de elejir el Humano el lvl necesario nos vamos a "// Human Class Menu" le dan un poco mas abajo en "// Class List" le dan un poquito mas abajo en "// Add to menu"
Código PHP:
Ustedes lo tendran asi
// Class List
for (class = 0; class < g_hclass_i; class++)
{
// Retrieve name and info
ArrayGetString(g_hclass_name, class, buffer, charsmax(buffer))
ArrayGetString(g_hclass_info, class, buffer2, charsmax(buffer2))
// Add to menu
if (class == g_hombieclassnext[id])
formatex(menu, charsmax(menu), "\d%s %s", buffer, buffer2)
else
formatex(menu, charsmax(menu), "%s \y%s", buffer, buffer2)
buffer[0] = class
buffer[1] = 0
menu_additem(menuid, menu, buffer)
}
Código PHP:
pero lo pondremos asi
// Class List
for (class = 0; class < g_hclass_i; class++)
{
// Retrieve name and info
ArrayGetString(g_hclass_name, class, buffer, charsmax(buffer))
ArrayGetString(g_hclass_info, class, buffer2, charsmax(buffer2))
// Add to menu
if (g_level[id] >= ArrayGetCell(g_hclass_lvl, class))
{
if (class == g_humanclass[id])
formatex(menu, charsmax(menu), "\d%s %s", buffer, buffer2)
else
formatex(menu, charsmax(menu), "%s \y%s", buffer, buffer2)
}
else
formatex(g_menu, charsmax(menu), "\d%s (\rNivel Requerido \w%d\d)", buffer, ArrayGetCell(g_hclass_lvl, class))
buffer[0] = class
buffer[1] = 0
buffer[2] = 0
menu_additem(menuid, menu, buffer)
}
5to Paso:
Nos vamos a "// Human Class Menu" o "public menu_hclass(id, menuid, item)" para que se les haga mas facil o como ustedes tengan representado su public del menu de la clase buscan mas abajito de eso "// Retrieve zombie class id" y agregan
Quedando...
Código PHP:
// Level required
if (g_level[id] < ArrayGetCell(g_hclass_lvl, classid))
{
show_menu_hclass(id)
return PLUGIN_HANDLED;
}
Quedando...
Código PHP:
// Retrieve zombie class id
static buffer[2], dummy, classid
menu_item_getinfo(menuid, item, dummy, buffer, charsmax(buffer), _, _, dummy)
classid = buffer[0]
// Level required
if (g_level[id] < ArrayGetCell(g_hclass_lvl, classid))
{
show_menu_hclass(id)
return PLUGIN_HANDLED;
}
6to Paso:
Vamos a "save_customization()" y buscamos mas abajo "// Add models" y agregamos..
Quedando...
pero calma eso no es todo en este paso mas abajito solo un poquito en contraran "// Free arrays containing class/item overrides"
Quedando...
Código PHP:
// Add level
formatex(buffer, charsmax(buffer), "^nLEVEL = %d", ArrayGetCell(g_hclass_lvl, i))
fputs(file, buffer)
Quedando...
Código PHP:
// Add clawmodel
ArrayGetString(g_hclass_clawmodel, i, buffer, charsmax(buffer))
format(buffer, charsmax(buffer), "^nCLAWMODEL = %s", buffer)
fputs(file, buffer)
// Add level
formatex(buffer, charsmax(buffer), "^nLEVEL = %d", ArrayGetCell(g_hclass_lvl, i))
fputs(file, buffer)
pero calma eso no es todo en este paso mas abajito solo un poquito en contraran "// Free arrays containing class/item overrides"
Código PHP:
Abajo de "ArrayDestroy(g_hclass2_clawmodel)" agregamos "ArrayDestroy(g_hclass2_lvl)"
Quedando...
Código PHP:
// Free arrays containing class/item overrides
ArrayDestroy(g_hclass2_realname)
ArrayDestroy(g_hclass2_name)
ArrayDestroy(g_hclass2_info)
ArrayDestroy(g_hclass2_modelsstart)
ArrayDestroy(g_hclass2_modelsend)
ArrayDestroy(g_hclass2_playermodel)
ArrayDestroy(g_hclass2_modelindex)
ArrayDestroy(g_hclass2_lvl)
ArrayDestroy(g_hclass2_hp)
ArrayDestroy(g_hclass2_spd)
ArrayDestroy(g_hclass2_grav)
ArrayDestroy(g_hclass_new)
ArrayDestroy(g_zclass2_realname)
ArrayDestroy(g_zclass2_name)
ArrayDestroy(g_zclass2_info)
ArrayDestroy(g_zclass2_modelsstart)
ArrayDestroy(g_zclass2_modelsend)
ArrayDestroy(g_zclass2_playermodel)
ArrayDestroy(g_zclass2_modelindex)
ArrayDestroy(g_zclass2_clawmodel)
ArrayDestroy(g_zclass2_lvl)
ArrayDestroy(g_zclass2_hp)
ArrayDestroy(g_zclass2_spd)
ArrayDestroy(g_zclass2_grav)
ArrayDestroy(g_zclass2_kb)
ArrayDestroy(g_zclass_new)
ArrayDestroy(g_extraitem2_realname)
ArrayDestroy(g_extraitem2_name)
ArrayDestroy(g_extraitem2_lvl)
ArrayDestroy(g_extraitem2_cost)
ArrayDestroy(g_extraitem2_team)
ArrayDestroy(g_extraitem_new)
7tmo Paso:
Y ahora registramos la Native Ustedes la tendran asi..
Le pondran esto "lvl" despues de "const model[]" es para poder restringir los humanos en el plugin Externo
Quedando....
Pero eso no es todo el paso mas abajo buscan "/// Using same human models for all classes?"
Quedando...
Código PHP:
public native_register_human_class(const name[], const info[], const model[], hp, speed, Float:gravity)
Le pondran esto "lvl" despues de "const model[]" es para poder restringir los humanos en el plugin Externo
Quedando....
Código PHP:
public native_register_human_class(const name[], const info[], const model[], lvl, hp, speed, Float:gravity)
Pero eso no es todo el paso mas abajo buscan "/// Using same human models for all classes?"
Código PHP:
agregaran "ArrayPushCell(g_hclass_lvl, lvl)" para registrar la native :D
Quedando...
Código PHP:
// Using same human models for all classes?
if (g_same_models_humans)
{
ArrayPushCell(g_hclass_modelsstart, 0)
ArrayPushCell(g_hclass_modelsend, ArraySize(g_hclass_playermodel))
}
else
{
ArrayPushCell(g_hclass_modelsstart, ArraySize(g_hclass_playermodel))
ArrayPushString(g_hclass_playermodel, model)
ArrayPushCell(g_hclass_modelsend, ArraySize(g_hclass_playermodel))
ArrayPushCell(g_hclass_modelindex, -1)
}
ArrayPushCell(g_hclass_lvl, lvl)
ArrayPushCell(g_hclass_hp, hp)
ArrayPushCell(g_hclass_spd, speed)
ArrayPushCell(g_hclass_grav, gravity)
8vo Paso:
Mas abajo de "// Using same human models for all classes?" ya estabamos ablando de eso, Agregaremos
Código PHP:
// Replace level
buffer[0] = ArrayGetCell(g_hclass2_lvl, i)
ArraySetCell(g_hclass_lvl, g_hclass_i, buffer[0])
9no Paso:
Vamos a "// Set models end index" y agregamos abajo de
Agregamos
Quedando...
Código PHP:
ArrayPushString(g_hclass2_info, value)
else if (equal(key, "MODELS"))
Agregamos
Código PHP:
else if (equal(key, "LEVEL"))
ArrayPushCell(g_hclass2_lvl, str_to_num(value))
Quedando...
Código PHP:
ArrayPushString(g_hclass2_info, value)
else if (equal(key, "MODELS"))
{
// Set models start index
ArrayPushCell(g_hclass2_modelsstart, ArraySize(g_hclass2_playermodel))
// Parse class models
while (value[0] != 0 && strtok(value, key, charsmax(key), value, charsmax(value), ','))
{
// Trim spaces
trim(key)
trim(value)
// Add to class models array
ArrayPushString(g_hclass2_playermodel, key)
ArrayPushCell(g_hclass2_modelindex, -1)
}
// Set models end index
ArrayPushCell(g_hclass2_modelsend, ArraySize(g_hclass2_playermodel))
}
else if (equal(key, "LEVEL"))
ArrayPushCell(g_hclass2_lvl, str_to_num(value))
else if (equal(key, "HEALTH"))
ArrayPushCell(g_hclass2_hp, str_to_num(value))
else if (equal(key, "SPEED"))
ArrayPushCell(g_hclass2_spd, str_to_num(value))
else if (equal(key, "GRAVITY"))
ArrayPushCell(g_hclass2_grav, str_to_float(value))
ADAPTACION PARA ZOMBIES POR LVL EN EL PLUGIN
Código PHP:
// Classic Zombie Attributes
new const zclass1_name[] = { "Classic" }
new const zclass1_info[] = { "Balanced" }
new const zclass1_model[] = { "zombie_source" }
new const zclass1_clawmodel[] = { "v_knife_zombie.mdl" }
const zclass_lvl = 1 // Aca Agregamos la const que creamos en la native para que adapte al zombie para que sea lvl 1
const zclass1_health = 1800
const zclass1_speed = 190
const Float:zclass1_gravity = 1.0
const Float:zclass1_knockback = 1.0
Código PHP:
// Zombie Classes must be registered on plugin_precache
public plugin_precache()
{
register_plugin("[ZP] Default Zombie Classes", "4.3", "MeRcyLeZZ")
// Register all classes
zp_register_zombie_class(zclass1_name, zclass1_info, zclass1_model, zclass1_clawmodel,//-->zclass_lvl<--, zclass1_health, zclass1_speed, zclass1_gravity, zclass1_knockback)
}
Agregamos la const zclss_lvl eso seria en todo si kieres adaptar el zombie smoker por ejemplo esas son las 2 unicas cosas que debes modificar
ADAPTACION PARA Humanos POR LVL EN EL PLUGIN
Código PHP:
// Classic Human Attributes
new const hclass1_name[] = { "Classic" }
new const hclass1_info[] = { "Balanced" }
new const hclass1_model[] = { "urban" }
new const hclass1_handmodel[] = { "v_knife.mdl" }
const hclass1_lvl = 1 // hacemos lo mismo :D que como hicimos en el de zombies
const hclass1_health = 100
const hclass1_speed = 190
const Float:hclass1_gravity = 1.0
Código PHP:
// Human Classes must be registered on plugin_precache
public plugin_precache()
{
register_plugin("[ZP] Default Human Classes", "4.3", "MeRcyLeZZ")
// Register all classes
zp_register_human_class(hclass1_name, hclass1_info, hclass1_model, hclass1_handmodel, hclass_lvl, hclass1_health, hclass1_speed, hclass1_gravity)
}
bueno eso es practicamente todo no es muy dificil vieron se que no explique mucho pero la idea es ayudar
Bueno se que os prometi la restriccion para zp 4.2 pero are otro tut o c&p como ustedes mas le guste llamar a esto porque ya seria algo demasiado largito no creen Bueno la verdad ya me dio un poquito de lala
Les prometi las Restricciones para Zombie plague 4.2 y la de reset pero ya es un poco tarde y tengo algo de sueño mñana les hago las restricciones de armas tambien ya que estamos en eso espero averles sido de ayuda porfa no critiquen solo vean y solo comenten positivamente
Proximas Restricciones que les Resumire:
-Humanos y Zombies por Level: Zombie Plague 4.2
-Zombies, Humanos y Armas por Reset: Zombie Plague 4.3 y 4.2 "Nota: Seran 2 tutoriales diferentes ya que es algo largito"