28/04/2017, 02:32 PM
(Última modificación: 29/04/2017, 08:35 PM por ascaban2000.)
Bueno primero quise hacer este post para ver si me dejan de ignorar en la zona scripting
Empecemos con el TUTO
1) Vamos a: // Zombie Classes vars
y Agregamos esto:
arriba de:
QUEDARIA ASI:
2) Mas abajo estara esto: // For human classes file parsing
y Agregamos esto:
Detras de:
QUEADRIA ASI:
3) Buscamos esto: // Initialize a few dynamically sized arrays (alright, maybe more than just a few...)
y Agregamos esto:
QUEDARIA ASI:
4) Ahora Buscamos esto:
y mas abajo aparecera esto:
// Add to menu
Ahora remplamos todo lo que esta abajo por esto:
QUEDARIA ASI:
5) Buscamos esto:
y mas abajo aparecera esto:
// Level required
Ahora remplazamos todo lo que esta abajo por esto:
QUEDARIA ASI:
6)Buscamos esto:
y mas abajo buscamos esto:
// Add any new zombie classes data at the end if needed
y mas bajo de // Add any new zombie classes data at the end if needed buscamos esto:
// Add clawmodel
dejamos un espacio y agregamos esto:
QUEDARIA ASI:
7) Buscamos esto:
// Set models end index <----- como hay 2 es el que esta de ultimo o segundo
y mas abajo buscamos esto:
y abajo de eso agregamos esto:
QUEDARIA ASI:8) Ahora buscamos esto:
// Free arrays containing class/item overrides
y agregamos esto:
QUEDANDO ASI:
9) Buscamos esto:
y veran que al lado este tiene esto:
entonces al lado de const clawmodel[] agregamos esto:
,fame
QUEDANDO ASI:
10) Buscamos esto:
// Using same zombie models for all classes?
y estara esto:
entonces agregamos esto:
QUEDANDO ASI:11) Ahora Buscamos esto:
// Replace clawmodel
y estara todo esto:QUEDARIA ASI:12) OJOOOOO Con esta paso no vallan acompilar aun por que primero tiene que ir a la include zombieapocalypse.inc y buscar esto:
native za_register_zombie_class(const name[], const info[], const model[], const clawmodel[], lvl, hp, speed, Float:gravity, Float:knockback)
y cambiarlo por esto:
native za_register_zombie_class(const name[], const info[], const model[], const clawmodel[], fame, lvl, hp, speed, Float:gravity, Float:knockback)
y ahora si pueden acompilar
13) Ultimo paso descargan lo que deje al final del post y lo remplazan por el za_zclasses.sma y za_zclasses.ini y los remplazan imagino que saben donde
primero acompilen el za_classes.sma para que les de el amx
zombie
Bueno eso es todo
PD: Acepto Criticas y Correpciones
Pregunta: estoy en la seccion correcta XDDDD
CREDITOS: acesino25 y cLAANS
Empecemos con el TUTO
1) Vamos a: // Zombie Classes vars
y Agregamos esto:
Código PHP:
new Array:g_zclass_fama
arriba de:
Código PHP:
new Array:g_zclass_lvl
QUEDARIA ASI:
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_fame // level
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
2) Mas abajo estara esto: // For human classes file parsing
y Agregamos esto:
Código PHP:
Array:g_zclass2_fame
Detras de:
Código PHP:
Array:g_zclass2_lvl
QUEADRIA ASI:
Código 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_fame, Array:g_zclass2_lvl, Array:g_zclass2_hp,
Array:g_zclass2_spd, Array:g_zclass2_grav, Array:g_zclass2_kb, Array:g_zclass_new
3) Buscamos esto: // Initialize a few dynamically sized arrays (alright, maybe more than just a few...)
y Agregamos esto:
Código PHP:
g_zclass_fama = ArrayCreate(1, 1)
Código PHP:
g_zclass2_fama = ArrayCreate(1, 1)
QUEDARIA ASI:
Código PHP:
// Initialize a few dynamically sized arrays (alright, maybe more than just a few...)
g_range_names = ArrayCreate(128, 1)
g_combo_levels = ArrayCreate(1, 1)
g_combo_colors = ArrayCreate(32, 1)
g_combo_says = ArrayCreate(32, 1)
g_admin_names = ArrayCreate(32, 1)
g_admin_flags = ArrayCreate(1, 1)
g_admin_costs = ArrayCreate(1, 1)
g_admin_modes = ArrayCreate(1, 1)
g_admin_drop = ArrayCreate(1, 1)
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_nemali = ArrayCreate(64, 1)
sound_survwesk = 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)
grenade_aurashield = ArrayCreate(64, 1)
sound_antidote = ArrayCreate(64, 1)
sound_thunder = ArrayCreate(64, 1)
sound_thunder_awp = ArrayCreate(64, 1)
sound_quest = ArrayCreate(64, 1)
sound_level_up = ArrayCreate(64, 1)
sound_level_down = 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_additional_levels = ArrayCreate(1, 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_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_lvl = ArrayCreate(1, 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_lvl = 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_fama = 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_fama = 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)
4) Ahora Buscamos esto:
Código PHP:
public show_menu_zclass
y mas abajo aparecera esto:
// Add to menu
Ahora remplamos todo lo que esta abajo por esto:
QUEDARIA ASI:
Código PHP:
// Add to menu
if (g_fame[id] >= ArrayGetCell(g_zclass_fame, class) && g_level[id] >= ArrayGetCell(g_zclass_lvl, class) || (get_user_flags(id) &
g_access_flag[ACCESS_CLASSES_FREE]))
{
if (class == g_zombieclass[id])
formatex(g_menu, charsmax(g_menu), "\d%s %s", buffer, buffer2)
else
formatex(g_menu, charsmax(g_menu), "%s \y%s", buffer, buffer2)
}
else
formatex(g_menu, charsmax(g_menu), "\d%s (\rNivel \w%d\d) (\rFama \w%d\d)", buffer, ArrayGetCell(g_zclass_lvl, class),
ArrayGetCell(g_zclass_fame, class))
buffer[0] = class
buffer[1] = 0
buffer[2] = 0
menu_additem(menuid, g_menu, buffer)
}
5) Buscamos esto:
Código PHP:
public menu_zclass
y mas abajo aparecera esto:
// Level required
Ahora remplazamos todo lo que esta abajo por esto:
QUEDARIA ASI:
Código PHP:
if (g_fame[id] < ArrayGetCell(g_zclass_fame, classid) || 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;
}
6)Buscamos esto:
Código PHP:
save_customization
y mas abajo buscamos esto:
// Add any new zombie classes data at the end if needed
y mas bajo de // Add any new zombie classes data at the end if needed buscamos esto:
// Add clawmodel
dejamos un espacio y agregamos esto:
Código PHP:
formatex(buffer, charsmax(buffer), "^nFAMA = %d", ArrayGetCell(g_zclass_fama, i))
fputs(file_zombie, buffer)
QUEDARIA ASI:
Código PHP:
format(buffer, charsmax(buffer), "^nMODELS = %s", buffer)
fputs(file_zombie, buffer)
// Add clawmodel
ArrayGetString(g_zclass_clawmodel, i, buffer, charsmax(buffer))
format(buffer, charsmax(buffer), "^nCLAWMODEL = %s", buffer)
fputs(file_zombie, buffer)
// Add fama
formatex(buffer, charsmax(buffer), "^nFAMA = %d", ArrayGetCell(g_zclass_fame, i))
fputs(file_zombie, buffer)
// Add level
formatex(buffer, charsmax(buffer), "^nLEVEL = %d", ArrayGetCell(g_zclass_lvl, i))
fputs(file_zombie, buffer)
// Add health
formatex(buffer, charsmax(buffer), "^nHEALTH = %d", ArrayGetCell(g_zclass_hp, i))
fputs(file_zombie, buffer)
// Add speed
formatex(buffer, charsmax(buffer), "^nSPEED = %d", ArrayGetCell(g_zclass_spd, i))
fputs(file_zombie, buffer)
7) Buscamos esto:
// Set models end index <----- como hay 2 es el que esta de ultimo o segundo
y mas abajo buscamos esto:
Código PHP:
else if (equal(key, "CLAWMODEL"))
ArrayPushString(g_zclass2_clawmodel, value)
y abajo de eso agregamos esto:
Código PHP:
else if (equal(key, "FAMA"))
ArrayPushCell(g_zclass2_fama, str_to_num(value))
QUEDARIA ASI:
Código PHP:
else if (equal(key, "CLAWMODEL"))
ArrayPushString(g_zclass2_clawmodel, value)
else if (equal(key, "FAMA"))
ArrayPushCell(g_zclass2_fame, str_to_num(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)))
// Free arrays containing class/item overrides
y agregamos esto:
Código PHP:
ArrayDestroy(g_zclass2_fama)
QUEDANDO ASI:
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_fame)
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)
9) Buscamos esto:
Código PHP:
public native_register_zombie_class
y veran que al lado este tiene esto:
Código PHP:
(const name[], const info[], const model[], const clawmodel[], lvl, hp, speed, Float:gravity, Float:knockback)
entonces al lado de const clawmodel[] agregamos esto:
,fame
QUEDANDO ASI:
Código PHP:
public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], fame,lvl, hp, speed, Float:gravity, Float:knockback)
10) Buscamos esto:
// Using same zombie models for all classes?
y estara esto:
Código PHP:
if (g_same_models_zombies)
{
ArrayPushCell(g_zclass_modelsstart, 0)
ArrayPushCell(g_zclass_modelsend, ArraySize(g_zclass_playermodel))
}
else
{
ArrayPushCell(g_zclass_modelsstart, ArraySize(g_zclass_playermodel))
ArrayPushString(g_zclass_playermodel, model)
ArrayPushCell(g_zclass_modelsend, ArraySize(g_zclass_playermodel))
ArrayPushCell(g_zclass_modelindex, -1)
}
ArrayPushString(g_zclass_clawmodel, clawmodel)
ArrayPushCell(g_zclass_lvl, lvl)
ArrayPushCell(g_zclass_hp, hp)
ArrayPushCell(g_zclass_spd, speed)
ArrayPushCell(g_zclass_grav, gravity)
ArrayPushCell(g_zclass_kb, knockback)
entonces agregamos esto:
Código PHP:
ArrayPushCell(g_zclass_fame, fame)
QUEDANDO ASI:
Código PHP:
if (g_same_models_zombies)
{
ArrayPushCell(g_zclass_modelsstart, 0)
ArrayPushCell(g_zclass_modelsend, ArraySize(g_zclass_playermodel))
}
else
{
ArrayPushCell(g_zclass_modelsstart, ArraySize(g_zclass_playermodel))
ArrayPushString(g_zclass_playermodel, model)
ArrayPushCell(g_zclass_modelsend, ArraySize(g_zclass_playermodel))
ArrayPushCell(g_zclass_modelindex, -1)
}
ArrayPushString(g_zclass_clawmodel, clawmodel)
ArrayPushCell(g_zclass_fame, fame)
ArrayPushCell(g_zclass_lvl, lvl)
ArrayPushCell(g_zclass_hp, hp)
ArrayPushCell(g_zclass_spd, speed)
ArrayPushCell(g_zclass_grav, gravity)
ArrayPushCell(g_zclass_kb, knockback)
// Replace clawmodel
y estara todo esto:
Código PHP:
// Replace clawmodel
ArrayGetString(g_zclass2_clawmodel, i, buffer, charsmax(buffer))
ArraySetString(g_zclass_clawmodel, g_zclass_i, buffer)
// Precache clawmodel
formatex(prec_mdl, charsmax(prec_mdl), "models/zombie_apocalypse/%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])
// Replace health
buffer[0] = ArrayGetCell(g_zclass2_hp, i)
ArraySetCell(g_zclass_hp, g_zclass_i, buffer[0])
// Replace speed
buffer[0] = ArrayGetCell(g_zclass2_spd, i)
ArraySetCell(g_zclass_spd, g_zclass_i, buffer[0])
// Replace gravity
buffer2 = Float:ArrayGetCell(g_zclass2_grav, i)
ArraySetCell(g_zclass_grav, g_zclass_i, buffer2)
// Replace knockback
buffer2 = Float:ArrayGetCell(g_zclass2_kb, i)
ArraySetCell(g_zclass_kb, g_zclass_i, buffer2)
y arriba de // Replace level agregamos esto:
// Replace fama
buffer[0] = ArrayGetCell(g_zclass2_fame, i)
ArraySetCell(g_zclass_fame, g_zclass_i, buffer[0])
Código PHP:
// Replace clawmodel
ArrayGetString(g_zclass2_clawmodel, i, buffer, charsmax(buffer))
ArraySetString(g_zclass_clawmodel, g_zclass_i, buffer)
// Precache clawmodel
formatex(prec_mdl, charsmax(prec_mdl), "models/zombie_apocalypse/%s", buffer)
engfunc(EngFunc_PrecacheModel, prec_mdl)
// Replace fama
buffer[0] = ArrayGetCell(g_zclass2_fame, i)
ArraySetCell(g_zclass_fame, g_zclass_i, buffer[0])
// Replace level
buffer[0] = ArrayGetCell(g_zclass2_lvl, i)
ArraySetCell(g_zclass_lvl, g_zclass_i, buffer[0])
// Replace health
buffer[0] = ArrayGetCell(g_zclass2_hp, i)
ArraySetCell(g_zclass_hp, g_zclass_i, buffer[0])
// Replace speed
buffer[0] = ArrayGetCell(g_zclass2_spd, i)
ArraySetCell(g_zclass_spd, g_zclass_i, buffer[0])
// Replace gravity
buffer2 = Float:ArrayGetCell(g_zclass2_grav, i)
ArraySetCell(g_zclass_grav, g_zclass_i, buffer2)
// Replace knockback
buffer2 = Float:ArrayGetCell(g_zclass2_kb, i)
ArraySetCell(g_zclass_kb, g_zclass_i, buffer2)
native za_register_zombie_class(const name[], const info[], const model[], const clawmodel[], lvl, hp, speed, Float:gravity, Float:knockback)
y cambiarlo por esto:
native za_register_zombie_class(const name[], const info[], const model[], const clawmodel[], fame, lvl, hp, speed, Float:gravity, Float:knockback)
y ahora si pueden acompilar
13) Ultimo paso descargan lo que deje al final del post y lo remplazan por el za_zclasses.sma y za_zclasses.ini y los remplazan imagino que saben donde
primero acompilen el za_classes.sma para que les de el amx
zombie
Bueno eso es todo
PD: Acepto Criticas y Correpciones
Pregunta: estoy en la seccion correcta XDDDD
CREDITOS: acesino25 y cLAANS