Crashea el juego al agregar chaleco y daño al humano
#1
Buenas, lamento molestar y no se si esto va acá pero estaba siguiendo este post sobre como agregar clases humanas al ZP 4.3.
El punto es, que tome solo la parte del código que me interesaba para agregarle chaleco y daño al humano. Luego los agregue en el sma de las clases humanas y modifique el include del zombieplague.
Todo termina compilando bien pero el problema es que cuando entro al juego crashea (a veces mientras carga los recursos y otras veces al entrar al mapa). Por suerte tengo un back up del juego con los avances que llevo del ZP pero cada vez que intento agregarle esos atributos al humano me sucede lo mismo. Les adjunto los archivos que modifique para que vean cual puede ser la razón del problema seguramente algo de lo que cambie este mal puesto y lo haga reventar pero no se que puede ser.

Desde ya, muchas gracias.


Archivos adjuntos
.sma   Descargar AMXX / zombie_plague40.sma (Tamaño: 382.71 KB / Descargas: 5)
.sma   Descargar AMXX / zp_hclasses40.sma (Tamaño: 18.14 KB / Descargas: 43)
.inc   zombieplague.inc (Tamaño: 13.13 KB / Descargas: 0)
Responder
#2
Lamento el doble post y quedar pesado pero realmente necesito ayuda con esto para seguir avanzando en mi ZP ya que el back up que tenia tampoco me funciona (se sigue saliendo el juego al cargar el mapa) y no quiero tener que empezar todo de 0 (realmente no se que hacer ni porque pasa esto). Voy a detallar como agregue esos atributos para ver si me pueden ayudar. Si hay otra forma de agregarlos para usarlos mediante el plugin externo de las clases humanas díganmelo tendré que empezar de 0 pero usare ese método...

Uso este ZP (ya lo había modificado): https://amxmodx-es.com/Thread-Zombie-Plague-4-3-HCLASS
Pero el problema empezó cuando use esto para agregar los atributos: https://forums.alliedmods.net/showpost.p...ostcount=6

En zombieplague40.sma modifique esto:
PRIMERO:
-Fui a
Código PHP:
// Human Classes vars 
y agregue esto
Código PHP:
new Array:g_hclass_damage // daño
new Array:g_hclass_armor // chaleco 

Me quedo:
Código PHP:
// Human Classes vars
new Array:g_hclass_name // name
new Array:g_hclass_info // description
new Array:g_hclass_model // player model
new Array:g_hclass_modelindex // model index
new Array:g_hclass_modelsstart // start position in models array
new Array:g_hclass_modelsend // end position in models array
new Array:g_hclass_lvl // level
new Array:g_hclass_reset // reset
new Array:g_hclass_sreset // sreset
new Array:g_hclass_hp // health
new Array:g_hclass_spd // speed
new Array:g_hclass_grav // gravity
new Array:g_hclass_damage // daño
new Array:g_hclass_armor // chaleco
new g_hclass_i // loaded human classes counter 

-Mas abajo en
Código PHP:
// For human classes file parsing 
agregue esto
Código PHP:
Array:g_hclass2_damage,
Array:
g_hclass2_armor 

Me quedo:
Código 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_reset, Array:g_hclass2_sreset, Array:g_hclass2_hp,
Array:
g_hclass2_spd, Array:g_hclass2_grav, Array:g_hclass2_damage, Array:g_hclass2_armor, Array:g_hclass_new 

-Mas abajo en
Código PHP:
// Cached stuff for players 
agregue esto
Código PHP:
new Float:g_human_dmg[33// human class dmg 

Me quedo:
Código PHP:
// Cached stuff for players
new g_isconnected[33// whether player is connected
new g_isalive[33// whether player is alive
new g_isbot[33// whether player is a bot
new g_currentweapon[33// player's current weapon id
new g_playername[33][32// player's name
new Float:g_zombie_spd[33// zombie class speed
new Float:g_zombie_knockback[33// zombie class knockback
new g_zombie_classname[33][32// zombie class name
new Float:g_human_spd[33// human class speed
new Float:g_human_dmg[33// human class dmg
new g_human_classname[33][32// human class name 
SEGUNDO:
-En
Código PHP:
public plugin_precache()
// Initialize a few dynamically sized arrays (alright, maybe more than just a few...) 
agregue esto
Código PHP:
g_hclass_damage ArrayCreate(11)
    
g_hclass_armor ArrayCreate(11)
g_hclass2_damage ArrayCreate(11)
    
g_hclass2_armor ArrayCreate(11

Me quedo:
Código PHP:
// Initialize a few dynamically sized arrays (alright, maybe more than just a few...)
    
model_human ArrayCreate(321)
    
model_nemesis ArrayCreate(321)
    
model_survivor ArrayCreate(321)
    
model_admin_human ArrayCreate(321)
    
model_admin_zombie ArrayCreate(321)
    
g_modelindex_nemesis ArrayCreate(11)
    
g_modelindex_survivor ArrayCreate(11)
    
g_modelindex_admin_human ArrayCreate(11)
    
g_modelindex_admin_zombie ArrayCreate(11)
    
sound_win_zombies ArrayCreate(641)
    
sound_win_zombies_ismp3 ArrayCreate(11)
    
sound_win_humans ArrayCreate(641)
    
sound_win_humans_ismp3 ArrayCreate(11)
    
sound_win_no_one ArrayCreate(641)
    
sound_win_no_one_ismp3 ArrayCreate(11)
    
zombie_infect ArrayCreate(641)
    
zombie_pain ArrayCreate(641)
    
nemesis_pain ArrayCreate(641)
    
zombie_die ArrayCreate(641)
    
zombie_fall ArrayCreate(641)
    
zombie_miss_slash ArrayCreate(641)
    
zombie_miss_wall ArrayCreate(641)
    
zombie_hit_normal ArrayCreate(641)
    
zombie_hit_stab ArrayCreate(641)
    
zombie_idle ArrayCreate(641)
    
zombie_idle_last ArrayCreate(641)
    
zombie_madness ArrayCreate(641)
    
sound_nemesis ArrayCreate(641)
    
sound_survivor ArrayCreate(641)
    
sound_swarm ArrayCreate(641)
    
sound_multi ArrayCreate(641)
    
sound_plague ArrayCreate(641)
    
grenade_infect ArrayCreate(641)
    
grenade_infect_player ArrayCreate(641)
    
grenade_fire ArrayCreate(641)
    
grenade_fire_player ArrayCreate(641)
    
grenade_frost ArrayCreate(641)
    
grenade_frost_player ArrayCreate(641)
    
grenade_frost_break ArrayCreate(641)
    
grenade_flare ArrayCreate(641)
    
sound_antidote ArrayCreate(641)
    
sound_thunder ArrayCreate(641)
    
sound_ambience1 ArrayCreate(641)
    
sound_ambience2 ArrayCreate(641)
    
sound_ambience3 ArrayCreate(641)
    
sound_ambience4 ArrayCreate(641)
    
sound_ambience5 ArrayCreate(641)
    
sound_ambience1_duration ArrayCreate(11)
    
sound_ambience2_duration ArrayCreate(11)
    
sound_ambience3_duration ArrayCreate(11)
    
sound_ambience4_duration ArrayCreate(11)
    
sound_ambience5_duration ArrayCreate(11)
    
sound_ambience1_ismp3 ArrayCreate(11)
    
sound_ambience2_ismp3 ArrayCreate(11)
    
sound_ambience3_ismp3 ArrayCreate(11)
    
sound_ambience4_ismp3 ArrayCreate(11)
    
sound_ambience5_ismp3 ArrayCreate(11)
    
g_primary_items ArrayCreate(321)
    
g_secondary_items ArrayCreate(321)
    
g_additional_items ArrayCreate(321)
    
g_primary_weaponids ArrayCreate(11)
    
g_secondary_weaponids ArrayCreate(11)
    
g_extraweapon_names ArrayCreate(321)
    
g_extraweapon_items ArrayCreate(321)
    
g_extraweapon_costs ArrayCreate(11)
    
g_sky_names ArrayCreate(321)
    
lights_thunder ArrayCreate(321)
    
zombie_decals ArrayCreate(11)
    
g_objective_ents ArrayCreate(321)
    
g_extraitem_name ArrayCreate(321)
    
g_extraitem_cost ArrayCreate(11)
    
g_extraitem_team ArrayCreate(11)
    
g_extraitem2_realname ArrayCreate(321)
    
g_extraitem2_name ArrayCreate(321)
    
g_extraitem2_cost ArrayCreate(11)
    
g_extraitem2_team ArrayCreate(11)
    
g_extraitem_new ArrayCreate(11)
    
g_zclass_name ArrayCreate(321)
    
g_zclass_info ArrayCreate(321)
    
g_zclass_modelsstart ArrayCreate(11)
    
g_zclass_modelsend ArrayCreate(11)
    
g_zclass_playermodel ArrayCreate(321)
    
g_zclass_modelindex ArrayCreate(11)
    
g_zclass_clawmodel ArrayCreate(321)
    
g_zclass_lvl ArrayCreate(11)
    
g_zclass_reset ArrayCreate(11)
    
g_zclass_sreset ArrayCreate(11
    
g_zclass_hp ArrayCreate(11)
    
g_zclass_spd ArrayCreate(11)
    
g_zclass_grav ArrayCreate(11)
    
g_zclass_kb ArrayCreate(11)
    
g_zclass2_realname ArrayCreate(321)
    
g_zclass2_name ArrayCreate(321)
    
g_zclass2_info ArrayCreate(321)
    
g_zclass2_modelsstart ArrayCreate(11)
    
g_zclass2_modelsend ArrayCreate(11)
    
g_zclass2_playermodel ArrayCreate(321)
    
g_zclass2_modelindex ArrayCreate(11)
    
g_zclass2_clawmodel ArrayCreate(321)
    
g_zclass2_lvl ArrayCreate(11)
    
g_zclass2_reset ArrayCreate(11)
    
g_zclass2_sreset ArrayCreate(11
    
g_zclass2_hp ArrayCreate(11)
    
g_zclass2_spd ArrayCreate(11)
    
g_zclass2_grav ArrayCreate(11)
    
g_zclass2_kb ArrayCreate(11)
    
g_zclass_new ArrayCreate(11)
    
    
g_hclass_name ArrayCreate(321)
    
g_hclass_info ArrayCreate(321)
    
g_hclass_modelsstart ArrayCreate(11)
    
g_hclass_modelsend ArrayCreate(11)
    
g_hclass_model ArrayCreate(321)
    
g_hclass_modelindex ArrayCreate(11)
    
g_hclass_lvl ArrayCreate(11)
    
g_hclass_reset ArrayCreate(11)
    
g_hclass_sreset ArrayCreate(11
    
g_hclass_hp ArrayCreate(11)
    
g_hclass_spd ArrayCreate(11)
    
g_hclass_grav ArrayCreate(11)
    
g_hclass_damage ArrayCreate(11)
    
g_hclass_armor ArrayCreate(11)
    
    
g_hclass2_realname ArrayCreate(321)
    
g_hclass2_name ArrayCreate(321)
    
g_hclass2_info ArrayCreate(321)
    
g_hclass2_modelsstart ArrayCreate(11)
    
g_hclass2_modelsend ArrayCreate(11)
    
g_hclass2_playermodel ArrayCreate(321)
    
g_hclass2_modelindex ArrayCreate(11)
    
g_hclass2_lvl ArrayCreate(11)
    
g_hclass2_reset ArrayCreate(11)
    
g_hclass2_sreset ArrayCreate(11
    
g_hclass2_hp ArrayCreate(11)
    
g_hclass2_spd ArrayCreate(11)
    
g_hclass2_grav ArrayCreate(11)
    
g_hclass2_damage ArrayCreate(11)
    
g_hclass2_armor ArrayCreate(11)
    
g_hclass_new ArrayCreate(11

TERCERO:
-Fui a
Código PHP:
// Ham Player Spawn Post Forward
public fw_PlayerSpawn_Post(id
y agregue esto
Código PHP:
set_pev(idpev_armorvalueget_pcvar_num(ArrayGetCell(g_hclass_armorg_humanclass[id])))

    
// Cache damage for player's class
    
g_human_dmg[id] = Float:ArrayGetCell(g_hclass_damageg_humanclass[id]) 

Me quedo:
Código PHP:
// Ham Player Spawn Post Forward
public fw_PlayerSpawn_Post(id)
{
    
// Not alive or didn't join a team yet
    
if (!is_user_alive(id) || !fm_cs_get_user_team(id))
        return;
    
    
// Player spawned
    
g_isalive[id] = true
    
    
// Remove previous tasks
    
remove_task(id+TASK_SPAWN)
    
remove_task(id+TASK_MODEL)
    
remove_task(id+TASK_BLOOD)
    
remove_task(id+TASK_AURA)
    
remove_task(id+TASK_BURN)
    
remove_task(id+TASK_CHARGE)
    
remove_task(id+TASK_FLASH)
    
remove_task(id+TASK_NVISION)
    
    
// Spawn at a random location?
    
if (get_pcvar_num(cvar_randspawn)) do_random_spawn(id)
    
    
// Hide money?
    
if (get_pcvar_num(cvar_removemoney))
        
set_task(0.4"task_hide_money"id+TASK_SPAWN)
    
    
// Respawn player if he dies because of a worldspawn kill?
    
if (get_pcvar_num(cvar_respawnworldspawnkill))
        
set_task(2.0"respawn_player_check_task"id+TASK_SPAWN)
    
    
// Spawn as zombie?
    
if (g_respawn_as_zombie[id] && !g_newround)
    {
        
reset_vars(id0// reset player vars
        
zombieme(id0000// make him zombie right away
        
return;
    }
    
    
// Reset player vars
    
reset_vars(id0)
    
g_buytime[id] = get_gametime()
    
    
// Show custom buy menu?
    
if (get_pcvar_num(cvar_buycustom))
        
set_task(0.2"show_menu_buy1"id+TASK_SPAWN)
    
    
// Set selected human class
    
g_humanclass[id] = g_humanclassnext[id]
    if (
g_humanclass[id] == HCLASS_NONEg_humanclass[id] = 0
    
    
// Set health and gravity
    
fm_set_user_health(idArrayGetCell(g_hclass_hpg_humanclass[id]))
    
set_pev(idpev_gravityFloat:ArrayGetCell(g_hclass_gravg_humanclass[id]))
    
    
// Cache speed and name for player's class
    
ArrayGetString(g_hclass_nameg_humanclass[id], g_human_classname[id], charsmax(g_human_classname[]))
    
g_human_spd[id] = float(ArrayGetCell(g_hclass_spdg_humanclass[id]))
    
    
set_pev(idpev_armorvalueget_pcvar_num(ArrayGetCell(g_hclass_armorg_humanclass[id])))

    
// Cache damage for player's class
    
g_human_dmg[id] = Float:ArrayGetCell(g_hclass_damageg_humanclass[id])
    
    
// Switch to CT if spawning mid-round
    
if (!g_newround && fm_cs_get_user_team(id) != FM_CS_TEAM_CT// need to change team?
    
{
        
remove_task(id+TASK_TEAM)
        
fm_cs_set_user_team(idFM_CS_TEAM_CT)
        
fm_user_team_update(id)
    }
    
    
// Custom models stuff
    
static currentmodel[32], tempmodel[32], already_has_modeliiRandsize
    already_has_model 
false

// code code code... 

-Mas abajo en
Código PHP:
// Ham Take Damage Forward
public fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type
agregue esto
Código PHP:
// Añadimos el daño que tenemos como habilidad
        
damage *= g_human_dmg[attacker]

        
SetHamParamFloat(4damage

Me quedo:
Código PHP:
// Ham Take Damage Forward
public fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type)
{
    
// Non-player damage or self damage
    
if (victim == attacker || !is_user_valid_connected(attacker))
        return 
HAM_IGNORED;
    
    
// New round starting or round ended
    
if (g_newround || g_endround)
        return 
HAM_SUPERCEDE;
    
    
// Victim shouldn't take damage or victim is frozen
    
if (g_nodamage[victim] || g_frozen[victim])
        return 
HAM_SUPERCEDE;
    
    
// Prevent friendly fire
    
if (g_zombie[attacker] == g_zombie[victim])
        return 
HAM_SUPERCEDE;
    
    
kDamage[attacker] += floatround(damage)
        
    while(
kDamage[attacker] >= DMG_NECESARIO
    { 
        
kDamage[attacker] -= DMG_NECESARIO;    
        
setExpattacker WINEXP );
    } 
    
    
// Attacker is human...
    
if (!g_zombie[attacker])
    {
        
kDamage[attacker] += floatround(damage)
        
    while(
kDamage[attacker] >= DMG_NECESARIO) { 
        
kDamage[attacker] -= DMG_NECESARIO 
        setExp
attacker WINEXP ); 
    } 
        
// Armor multiplier for the final damage on normal zombies
        
if (!g_nemesis[victim])
        {
            
damage *= get_pcvar_float(cvar_zombiearmor)
            
SetHamParamFloat(4damage)
        } 
        
// Añadimos el daño que tenemos como habilidad
            
damage *= g_human_dmg[attacker]

            
SetHamParamFloat(4damage
        
        
// Reward ammo packs to humans for damaging zombies?
        
if ((get_pcvar_num(cvar_ammodamage_human) > 0) && (!g_survivor[attacker] || !get_pcvar_num(cvar_survignoreammo)))
        {
            
// Store damage dealt
            
g_damagedealt_human[attacker] += floatround(damage)
            
            
// Reward ammo packs for every [ammo damage] dealt
            
while (g_damagedealt_human[attacker] > get_pcvar_num(cvar_ammodamage_human))
            {
                
g_ammopacks[attacker]++
                
g_damagedealt_human[attacker] -= get_pcvar_num(cvar_ammodamage_human)
            }
        }
        
        return 
HAM_IGNORED;
    }
    
    
// code code code... 

CUARTO:
-Fui a
Código PHP:
// Function Human Me (player id, turn into a survivor, silent mode)
humanme(idsurvivorsilentmode
y agregue esto
Código PHP:
set_pev(idpev_armorvalueget_pcvar_num(ArrayGetCell(g_hclass_armorg_humanclass[id])))

    
// Cache damage for player's class
    
g_human_dmg[id] = Float:ArrayGetCell(g_hclass_damageg_humanclass[id]) 

Me quedo:
Código PHP:
// Function Human Me (player id, turn into a survivor, silent mode)
humanme(idsurvivorsilentmode)
{
    
// User humanize attempt forward
    
ExecuteForward(g_fwUserHumanize_attemptg_fwDummyResultidsurvivor)
    
    
// One or more plugins blocked the "humanization". Only allow this after making sure it's
    // not going to leave us with no humans. Take into account a last player leaving case.
    // BUGFIX: only allow after a mode has started, to prevent blocking first survivor e.g.
    
if (g_fwDummyResult >= ZP_PLUGIN_HANDLED && g_modestarted && fnGetHumans() > g_lastplayerleaving)
        return;
    
    
// Pre user humanize forward
    
ExecuteForward(g_fwUserHumanized_preg_fwDummyResultidsurvivor)
    
    
// Set selected human class
    
g_humanclass[id] = g_humanclassnext[id]
    
    
// If no class selected yet, use the first (default) one
    
if (g_humanclass[id] == HCLASS_NONEg_humanclass[id] = 0
    
    
// Remove previous tasks
    
remove_task(id+TASK_MODEL)
    
remove_task(id+TASK_BLOOD)
    
remove_task(id+TASK_AURA)
    
remove_task(id+TASK_BURN)
    
remove_task(id+TASK_NVISION)
    
    
// Reset some vars
    
g_zombie[id] = false
    g_nemesis
[id] = false
    g_survivor
[id] = false
    g_firstzombie
[id] = false
    g_canbuy
[id] = true
    g_buytime
[id] = get_gametime()
    
    
// Remove survivor's aura (bugfix)
    
set_pev(idpev_effectspev(idpev_effects) &~ EF_BRIGHTLIGHT)
    
    
// Remove spawn protection (bugfix)
    
g_nodamage[id] = false
    set_pev
(idpev_effectspev(idpev_effects) &~ EF_NODRAW)
    
    
// Reset burning duration counter (bugfix)
    
g_burning_duration[id] = 0
    
    
// Remove CS nightvision if player owns one (bugfix)
    
if (cs_get_user_nvg(id))
    {
        
cs_set_user_nvg(id0)
        if (
get_pcvar_num(cvar_customnvg)) remove_task(id+TASK_NVISION)
        else if (
g_nvisionenabled[id]) set_user_gnvision(id0)
    }
    
    
// Drop previous weapons
    
drop_weapons(id1)
    
drop_weapons(id2)
    
    
// Strip off from weapons
    
fm_strip_user_weapons(id)
    
fm_give_item(id"weapon_knife")
    
    
// Set human attributes based on the mode
    
if (survivor)
    {
        
// Survivor
        
g_survivor[id] = true
        
        
// Set Health [0 = auto]
        
if (get_pcvar_num(cvar_survhp) == 0)
        {
            if (
get_pcvar_num(cvar_survbasehp) == 0)
                
fm_set_user_health(idArrayGetCell(g_hclass_hp0) * fnGetAlive())
            else
                
fm_set_user_health(idget_pcvar_num(cvar_survbasehp) * fnGetAlive())
        }
        else
            
fm_set_user_health(idget_pcvar_num(cvar_survhp))
        
        
// Set gravity, if frozen set the restore gravity value instead
        
if (!g_frozen[id]) set_pev(idpev_gravityget_pcvar_float(cvar_survgravity))
        else 
g_frozen_gravity[id] = get_pcvar_float(cvar_survgravity)
            
        
// Set survivor maxspeed
        
ExecuteHamB(Ham_Player_ResetMaxSpeedid)
        
        
// Give survivor his own weapon
        
static survweapon[32]
        
get_pcvar_string(cvar_survweaponsurvweaponcharsmax(survweapon))
        
fm_give_item(idsurvweapon)
        
ExecuteHamB(Ham_GiveAmmoidMAXBPAMMO[cs_weapon_name_to_id(survweapon)], AMMOTYPE[cs_weapon_name_to_id(survweapon)], MAXBPAMMO[cs_weapon_name_to_id(survweapon)])
        
        
// Turn off his flashlight
        
turn_off_flashlight(id)
        
        
// Give the survivor a bright light
        
if (get_pcvar_num(cvar_survaura)) set_pev(idpev_effectspev(idpev_effects) | EF_BRIGHTLIGHT)
        
        
// Survivor bots will also need nightvision to see in the dark
        
if (g_isbot[id])
        {
            
g_nvision[id] = true
            cs_set_user_nvg
(id1)
        }
    }
    else
    {
        
// Human taking an antidote
        
        // Set health and gravity for player class
        
fm_set_user_health(idArrayGetCell(g_hclass_hpg_humanclass[id]))
        if (!
g_frozen[id]) set_pev(idpev_gravityFloat:ArrayGetCell(g_hclass_gravg_humanclass[id]))
        
        
g_human_spd[id] = float(ArrayGetCell(g_hclass_spdg_humanclass[id]))
        
        
set_pev(idpev_armorvalueget_pcvar_num(ArrayGetCell(g_hclass_armorg_humanclass[id])))
        
        
// Cache damage for player's class
        
g_human_dmg[id] = Float:ArrayGetCell(g_hclass_damageg_humanclass[id])
        
        
// Show custom buy menu?
        
if (get_pcvar_num(cvar_buycustom))
            
set_task(0.2"show_menu_buy1"id+TASK_SPAWN)
        
        
// Silent mode = no HUD messages, no antidote sound
        
if (!silentmode)
        {
            
// Antidote sound
            
static sound[64]
            
ArrayGetString(sound_antidoterandom_num(0ArraySize(sound_antidote) - 1), soundcharsmax(sound))
            
emit_sound(idCHAN_ITEMsound1.0ATTN_NORM0PITCH_NORM)
            
            
// Show Antidote HUD notice
            
set_hudmessage(00255HUD_INFECT_XHUD_INFECT_Y00.05.01.01.0, -1)
            
ShowSyncHudMsg(0g_MsgSync"%L"LANG_PLAYER"NOTICE_ANTIDOTE"g_playername[id])
        }
    }

// code code code... 
QUINTO:
-Fui a
Código PHP:
load_customization_from_files() 
agregue esto
Código PHP:
else if (equal(key"DAMAGE"))
                
ArrayPushCell(g_hclass2_damagestr_to_float(value))
            else if (
equal(key"ARMOR"))
                
ArrayPushCell(g_hclass2_armorstr_to_num(value)) 

-Me quedo:
Código PHP:
// code code code ...
else if (equal(key"LEVEL"))
                                     
ArrayPushCell(g_hclass2_lvlstr_to_num(value))
            else if (
equal(key"RESET"))
                                     
ArrayPushCell(g_hclass2_resetstr_to_float(value))
            else if (
equal(key"SRESET"))
                
ArrayPushCell(g_hclass2_sresetstr_to_float(value))          
            else if (
equal(key"HEALTH"))
                
ArrayPushCell(g_hclass2_hpstr_to_num(value))
            else if (
equal(key"SPEED"))
                
ArrayPushCell(g_hclass2_spdstr_to_num(value))
            else if (
equal(key"GRAVITY"))
                
ArrayPushCell(g_hclass2_gravstr_to_float(value))
            else if (
equal(key"DAMAGE"))
                
ArrayPushCell(g_hclass2_damagestr_to_float(value))
            else if (
equal(key"ARMOR"))
                
ArrayPushCell(g_hclass2_armorstr_to_num(value))    
            
        }
// code code code... 

-Mas abajo en
Código PHP:
save_customization() 
agregue esto
Código PHP:
// Add damage
            
formatex(buffercharsmax(buffer), "^nDAMAGE = %.2f"Float:ArrayGetCell(g_hclass_damagei))
            
fputs(file2buffer)

            
// Add armor
            
formatex(buffercharsmax(buffer), "^nARMOR = %d"ArrayGetCell(g_hclass_armori))
            
fputs(file2buffer

Me quedo:
Código PHP:
// code code code...
format(buffercharsmax(buffer), "^nMODELS = %s"buffer)
            
fputs(filebuffer)
            
            
// Add level
                           
formatex(buffercharsmax(buffer), "^nLEVEL = %d"ArrayGetCell(g_hclass_lvli))
                           
fputs(filebuffer
              
            
// Add Reset
                           
formatex(buffercharsmax(buffer), "^nRESET = %d"ArrayGetCell(g_hclass_reseti))
                           
fputs(filebuffer
            
            
// Add sreset
            
formatex(buffercharsmax(buffer), "^nSRESET = %d"ArrayGetCell(g_hclass_sreseti))
            
fputs(filebuffer)
            
            
// Add health
            
formatex(buffercharsmax(buffer), "^nHEALTH = %d"ArrayGetCell(g_hclass_hpi))
            
fputs(file2buffer)
            
            
// Add speed
            
formatex(buffercharsmax(buffer), "^nSPEED = %d"ArrayGetCell(g_hclass_spdi))
            
fputs(file2buffer)
            
            
// Add gravity
            
formatex(buffercharsmax(buffer), "^nGRAVITY = %.2f"Float:ArrayGetCell(g_hclass_gravi))
            
fputs(file2buffer)
            
            
// Add damage
            
formatex(buffercharsmax(buffer), "^nDAMAGE = %.2f"Float:ArrayGetCell(g_hclass_damagei))
            
fputs(file2buffer)

            
// Add armor
            
formatex(buffercharsmax(buffer), "^nARMOR = %d"ArrayGetCell(g_hclass_armori))
            
fputs(file2buffer)
        }
    }
// code code code... 

SEXTO:
-Fui a
Código PHP:
// Native: zp_register_human_class 
agregue esto
Código PHP:
Float:damagearmor 

Me quedo:
Código PHP:
public native_register_human_class(const name[], const info[], const model[], lvlresetsresethpspeedFloat:gravityFloat:damagearmor

-Mas abajo en
Código PHP:
// Using same human models for all classes? 
agregue esto
Código PHP:
ArrayPushCell(g_hclass_damagedamage)
    
ArrayPushCell(g_hclass_armorarmor

-Me quedo:
Código PHP:
// code code code...
// Using same human models for all classes?
    
if (g_same_models_for_all)
    {
        
ArrayPushCell(g_hclass_modelsstart0)
        
ArrayPushCell(g_hclass_modelsendArraySize(g_hclass_model))
    }
    else
    {
        
ArrayPushCell(g_hclass_modelsstartArraySize(g_hclass_model))
        
ArrayPushString(g_hclass_modelmodel)
        
ArrayPushCell(g_hclass_modelsendArraySize(g_hclass_model))
        
ArrayPushCell(g_hclass_modelindex, -1)
    }
    
    
ArrayPushCell(g_hclass_lvllvl)
    
ArrayPushCell(g_hclass_resetreset)
    
ArrayPushCell(g_hclass_sresetsreset
    
ArrayPushCell(g_hclass_hphp)
    
ArrayPushCell(g_hclass_spdspeed)
    
ArrayPushCell(g_hclass_gravgravity)
    
ArrayPushCell(g_hclass_damagedamage)
    
ArrayPushCell(g_hclass_armorarmor)
// code code code... 

-Mas abajo agregue esto:
Código PHP:
// Replace damage
        
buffer2 Float:ArrayGetCell(g_hclass2_damagei)
        
ArraySetCell(g_hclass_damageg_hclass_ibuffer2)

        
// Replace armor
        
buffer[0] = ArrayGetCell(g_hclass2_armori)
        
ArraySetCell(g_hclass_armorg_hclass_ibuffer[0]) 

-Me quedo:
Código PHP:
// code code code...
// Replace level
                  
buffer[0] = ArrayGetCell(g_hclass2_lvli)
                  
ArraySetCell(g_hclass_lvlg_hclass_ibuffer[0]) 
        
        
// Replace health
        
buffer[0] = ArrayGetCell(g_hclass2_hpi)
        
ArraySetCell(g_hclass_hpg_hclass_ibuffer[0])
        
        
// Replace speed
        
buffer[0] = ArrayGetCell(g_hclass2_spdi)
        
ArraySetCell(g_hclass_spdg_hclass_ibuffer[0])
        
        
// Replace gravity
        
buffer2 Float:ArrayGetCell(g_hclass2_gravi)
        
ArraySetCell(g_hclass_gravg_hclass_ibuffer2)
        
        
// Replace damage
        
buffer2 Float:ArrayGetCell(g_hclass2_damagei)
        
ArraySetCell(g_hclass_damageg_hclass_ibuffer2)

        
// Replace armor
        
buffer[0] = ArrayGetCell(g_hclass2_armori)
        
ArraySetCell(g_hclass_armorg_hclass_ibuffer[0])
    }
// code code code... 

En humanclasses40.sma modifique esto:
Agregue esto:
Código PHP:
const Float:hclass1_damage 1.1
const hclass1_armor 10 

Me quedo:
Código PHP:
// Recluta
new const hclass1_name[] = { "Recluta" }
new const 
hclass1_info[] = { "" }
new const 
hclass1_model[] = { "ZS_Recluta" }
const 
hclass1_lvl 0
const hclass1_reset 0
const hclass1_sreset 0
const hclass1_health 100
const hclass1_speed 200
const Float:hclass1_gravity 1.0
const Float:hclass1_damage 1.1
const hclass1_armor 10 

-Mas abajo en:
Código PHP:
// Register all classes 
agregue esto
Código PHP:
hclass1_damagehclass1_armor 

-Me quedo:
Código PHP:
zp_register_human_class(hclass1_namehclass1_infohclass1_modelhclass1_lvlhclass1_resethclass1_sresethclass1_healthhclass1_speedhclass1_gravityhclass1_damagehclass1_armor

Por ultimo, en el zombieplague.inc modifique esto:
En:
Código PHP:
native zp_register_human_class 
agregue esto
Código PHP:
Float:damagearmor 

Me quedo:
Código PHP:
native zp_register_human_class(const name[], const info[], const model[], lvlresetsresethealthspeedFloat:gravityFloat:damagearmor

Trate de explicarlo lo mas detalladamente posible, espero no les cueste leer todo ya que es medio largo de ser así igual me ayudaría que pongan otro método para agregarlos...
Desde ya, muchas gracias.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)