[ZP-AYUDA] Knife Humanas
#1
Buenas, tengo un problema descargue el zombie plague 4.3 hclass e intente adaptar el clawmodel(knife) a la clases humanas etc, lo adapte y compile sin ningun error ni warning nada, cuando entre al cs, entro en modo normal no en zp, me tira los siguente logs en consola
Código:
L 08/08/2018 - 23:43:09: -------- Mapchange to de_dust2 --------
L 08/08/2018 - 23:43:10: Invalid cellvector handle provided (119:0:0)
L 08/08/2018 - 23:43:10: [AMXX] Displaying debug trace (plugin "zombie_plague40.amxx")
L 08/08/2018 - 23:43:10: [AMXX] Run time error 10: native error (native "ArrayGetString")
L 08/08/2018 - 23:43:10: [AMXX]    [0] zombie_plague40.sma::native_register_human_class (line 10126)
L 08/08/2018 - 23:43:10: Unhandled dynamic native error
L 08/08/2018 - 23:43:10: [AMXX] Displaying debug trace (plugin "zp_hclasses40.amxx")
L 08/08/2018 - 23:43:10: [AMXX] Run time error 10: native error (native "zp_register_human_class")
L 08/08/2018 - 23:43:10: [AMXX]    [0] zp_hclasses40.sma::plugin_precache (line 53)
Visibility Table file (pvi) exists and is newer than waypoint file (pwf).
Loading & decompressing Visibility Table
Visibility Table loaded from File...
Loading & decompressing Experience Data
Experience Data loaded from File...
[AMXX] Loaded 1 admin from file
L 08/08/2018 - 23:43:10: [AMXX] Plugin ("zombie_plague40.amxx") is setting itself as failed.
L 08/08/2018 - 23:43:10: [AMXX] Plugin says: No human classes loaded!
L 08/08/2018 - 23:43:10: [AMXX] Displaying debug trace (plugin "zombie_plague40.amxx")
L 08/08/2018 - 23:43:10: [AMXX] Run time error 1: forced exit
L 08/08/2018 - 23:43:10: [AMXX]    [0] zombie_plague40.sma::plugin_init (line 1165)

Este es la linea del error

Código PHP:
// Native: zp_register_human_class
public native_register_human_class(const name[], const info[], const model[], const clawmodel[], hpspeedFloat:gravity)
{
    
// Arrays not yet initialized
    
if (!g_arrays_created)
        return -
1;
    
    
// Strings passed byref
    
param_convert(1)
    
param_convert(2)
    
param_convert(3)
    
    
// Add the class
    
ArrayPushString(g_hclass_namename)
    
ArrayPushString(g_hclass_infoinfo)
    
    
// 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)
    }
    
    
ArrayPushString(g_hclass_clawmodelclawmodel)
    
ArrayPushCell(g_hclass_hphp)
    
ArrayPushCell(g_hclass_spdspeed)
    
ArrayPushCell(g_hclass_gravgravity)
    
    
// Set temporary new class flag
    
ArrayPushCell(g_hclass_new1)
    
    
// Override zombie classes data with our customizations
    
new ikbuffer[32], Float:buffer2nummodels_customnummodels_defaultprec_mdl[100], size ArraySize(g_hclass2_realname)
    for (
0sizei++)
    {
        
ArrayGetString(g_hclass2_realnameibuffercharsmax(buffer))
        
        
// Check if this is the intended class to override
        
if (!equal(namebuffer))
            continue;
        
        
// Remove new class flag
        
ArraySetCell(g_hclass_newg_hclass_i0)
        
        
// Replace caption
        
ArrayGetString(g_hclass2_nameibuffercharsmax(buffer))
        
ArraySetString(g_hclass_nameg_hclass_ibuffer)
        
        
// Replace info
        
ArrayGetString(g_hclass2_infoibuffercharsmax(buffer))
        
ArraySetString(g_hclass_infog_hclass_ibuffer)
        
        
// Replace models, unless using same models for all classes
        
if (!g_same_models_for_all)
        {
            
nummodels_custom ArrayGetCell(g_hclass2_modelsendi) - ArrayGetCell(g_hclass2_modelsstarti)
            
nummodels_default ArrayGetCell(g_hclass_modelsendg_hclass_i) - ArrayGetCell(g_hclass_modelsstartg_hclass_i)
            
            
// Replace each player model and model index
            
for (0min(nummodels_customnummodels_default); k++)
            {
                
ArrayGetString(g_hclass2_playermodelArrayGetCell(g_hclass2_modelsstarti) + kbuffercharsmax(buffer))
                
ArraySetString(g_hclass_modelArrayGetCell(g_hclass_modelsstartg_hclass_i) + kbuffer)
                
                
// Precache player model and replace its modelindex with the real one
                
formatex(prec_mdlcharsmax(prec_mdl), "models/player/%s/%s.mdl"bufferbuffer)
                
ArraySetCell(g_hclass_modelindexArrayGetCell(g_hclass_modelsstartg_hclass_i) + kengfunc(EngFunc_PrecacheModelprec_mdl))
                if (
g_force_consistency == 1force_unmodified(force_model_samebounds, {0,0,0}, {0,0,0}, prec_mdl)
                if (
g_force_consistency == 2force_unmodified(force_exactfile, {0,0,0}, {0,0,0}, prec_mdl)
            }
            
            
// We have more custom models than what we can accommodate,
            // Let's make some space...
            
if (nummodels_custom nummodels_default)
            {
            for (
0min(nummodels_customnummodels_default); k++)
            {
                
ArrayGetString(g_hclass2_playermodelArrayGetCell(g_hclass2_modelsstarti) + kbuffercharsmax(buffer))
                
ArraySetString(g_hclass_modelArrayGetCell(g_hclass_modelsstartg_hclass_i) + kbuffer)
                
                
// Precache player model and replace its modelindex with the real one
                
formatex(prec_mdlcharsmax(prec_mdl), "models/player/%s/%s.mdl"bufferbuffer)
                
ArraySetCell(g_hclass_modelindexArrayGetCell(g_hclass_modelsstartg_hclass_i) + kengfunc(EngFunc_PrecacheModelprec_mdl))
                if (
g_force_consistency == 1force_unmodified(force_model_samebounds, {0,0,0}, {0,0,0}, prec_mdl)
                if (
g_force_consistency == 2force_unmodified(force_exactfile, {0,0,0}, {0,0,0}, prec_mdl)
            }
                
                
// Fix models end index for this class
            
ArraySetCell(g_hclass_modelsendg_hclass_iArrayGetCell(g_hclass_modelsendg_hclass_i) + (nummodels_custom nummodels_default))
            }
            
            
/* --- Not needed since classes can't have more than 1 default model for now ---
            // We have less custom models than what this class has by default,
            // Get rid of those extra entries...
            if (nummodels_custom < nummodels_default)
            {
            for (k = nummodels_custom; k < nummodels_default; k++)
            {
            ArrayDeleteItem(g_hclass_playermodel, ArrayGetCell(g_hclass_modelsstart, g_hclass_i) + nummodels_custom)
            }
            
            // Fix models end index for this class
            ArraySetCell(g_hclass_modelsend, g_hclass_i, ArrayGetCell(g_hclass_modelsend, g_hclass_i) - (nummodels_default - nummodels_custom))
            }
            */
        
}
        
        
// Replace clawmodel
        
ArrayGetString(g_hclass2_clawmodelibuffercharsmax(buffer))
        
ArraySetString(g_hclass_clawmodelg_hclass_ibuffer)
        
        
// Precache clawmodel
        
formatex(prec_mdlcharsmax(prec_mdl), "models/zombie_plague/%s"buffer)
        
engfunc(EngFunc_PrecacheModelprec_mdl)
        
        
// 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)
        
    }
    
    
// If class was not overriden with customization data
    
if (ArrayGetCell(g_hclass_newg_hclass_i))
    {
        
// If not using same models for all classes
        
if (!g_same_models_for_all)
        {
            
// Precache default class model and replace modelindex with the real one
            
formatex(prec_mdlcharsmax(prec_mdl), "models/player/%s/%s.mdl"modelmodel)
            
ArraySetCell(g_hclass_modelindexArrayGetCell(g_hclass_modelsstartg_hclass_i), engfunc(EngFunc_PrecacheModelprec_mdl))
            if (
g_force_consistency == 1force_unmodified(force_model_samebounds, {0,0,0}, {0,0,0}, prec_mdl)
            if (
g_force_consistency == 2force_unmodified(force_exactfile, {0,0,0}, {0,0,0}, prec_mdl)
            
// Precache modelT.mdl files too
            
copy(prec_mdl[strlen(prec_mdl)-4], charsmax(prec_mdl) - (strlen(prec_mdl)-4), "T.mdl")
            if (
file_exists(prec_mdl)) engfunc(EngFunc_PrecacheModelprec_mdl)
        }
        
        
// Precache default clawmodel
        
formatex(prec_mdlcharsmax(prec_mdl), "models/zombie_plague/%s"clawmodel)
        
engfunc(EngFunc_PrecacheModelprec_mdl)
    }
    
    
// Increase registered classes counter
    
g_hclass_i++
    
    
// Return id under which we registered the class
    
return g_hclass_i-1;

Código PHP:
        // Replace clawmodel
        
ArrayGetString(g_hclass2_clawmodelibuffercharsmax(buffer))
        
ArraySetString(g_hclass_clawmodelg_hclass_ibuffer)
        
        
// Precache clawmodel
        
formatex(prec_mdlcharsmax(prec_mdl), "models/zombie_plague/%s"buffer)
        
engfunc(EngFunc_PrecacheModelprec_mdl
Igual dejo el sma si alguien me puede ayudar tambien queria saber como adaptar un p_knife gracias!


Archivos adjuntos
.inc   zombieplague.inc (Tamaño: 13.11 KB / Descargas: 0)
.sma   Descargar AMXX / zombie_plague40.sma (Tamaño: 345.46 KB / Descargas: 50)
.sma   Descargar AMXX / zp_hclasses40.sma (Tamaño: 2.43 KB / Descargas: 56)
Responder
#2
Oh god why
Responder
#3
https://amxmodx-es.com/Thread-Zombie-Plague-4-3-HCLASS

Tomé esos archivos y los modifiqué, te lo dejo adjuntado.

Funciona aunque me tira un error Invalid cellvector handle provided (108:-1:4) podría debugear y ver si es error mío o si ya venía así, podrías intentar vos.

Lo importante es que compares los archivos originales de la publicación que te pasé contra mis archivos para ver qué hice. La verdad sólo fuí copiando y pegando la funcionalidad de la knife del zombie.

zombie_plague40.sma
https://gist.github.com/LuKks/3115543506.../revisions

zp_hclasses40.sma
https://gist.github.com/LuKks/9073960b4f.../revisions

zombieplague.inc
https://gist.github.com/LuKks/c8c46f4177.../revisions

También al momento de probar eliminé los dos .ini (clases humanas y zombies).

Disculpa si no fuí de gran ayuda pero creo que, al menos, es mejor que tu estado actual.
Responder
#4
Código PHP:
08/09/2018 22:38:40Invalid cellvector handle provided (108:-1:4)
08/09/2018 22:38:40: [AMXXDisplaying debug trace (plugin "zombie_plague40.amxx")
08/09/2018 22:38:40: [AMXXRun time error 10native error (native "ArrayGetString")
08/09/2018 22:38:40: [AMXX]    [0zombie_plague40.sma::replace_weapon_models (line 8352)
08/09/2018 22:38:40: [AMXX]    [1zombie_plague40.sma::fw_Item_Deploy_Post (line 2410

Me tira estos errores pero funciona, osea no sabría decir que bug tendría ?
Responder
#5
pasa el codigo en la linea 8352 y 2410 hay estan lo errores, y la native ArrayGetString
Si no te gusta algo, cámbialo. Si no lo puedes cambiar, cambia la forma en que piensas sobre ello <3
Responder
#6
(09/08/2018, 10:41 PM)Mashiro escribió:
Código PHP:
08/09/2018 22:38:40Invalid cellvector handle provided (108:-1:4)
08/09/2018 22:38:40: [AMXXDisplaying debug trace (plugin "zombie_plague40.amxx")
08/09/2018 22:38:40: [AMXXRun time error 10native error (native "ArrayGetString")
08/09/2018 22:38:40: [AMXX]    [0zombie_plague40.sma::replace_weapon_models (line 8352)
08/09/2018 22:38:40: [AMXX]    [1zombie_plague40.sma::fw_Item_Deploy_Post (line 2410

Me tira estos errores pero funciona, osea no sabría decir que bug tendría ?

Pues, a mí no me daba esos errores pero como dijeron arriba, pasa esas funciones indicando las líneas correspondientes.
Responder
#7
Si a ti no te dio errores, algo le debiste haber echo mal que dio esos logs
Si no te gusta algo, cámbialo. Si no lo puedes cambiar, cambia la forma en que piensas sobre ello <3
Responder
#8
Insisto, sólo un error me daba, la del cellvector.
Entiendo que es mala mía por dar un código con error desde un principio pero lo aclaré, además, estoy seguro de que algo hizo mal él.

Simplemente tienes que descargar los códigos y probar, o sea, no veas manualmente diferencia por diferencia porque quizás ahí te faltó algo.
Por cierto, recuerda desahabilitar los models de admin porque no podrás comprobar que realmente funciona (esto no tiene nada que ver con el error).

Edit: Lo que estás mostrando es el debug, por eso yo pensaba que lo mío era sólo 1 error pero las líneas no coinciden con las de mis archivos, en otras palabras, no estás utilizando el mismo .sma.

Edit 2:
Cuando pruebes mis archivos, cambia esto también, para resolver los errores:
Código PHP:
const HCLASS_NONE = -
->
Código PHP:
const HCLASS_NONE 

Lol, mira dentro de show_menu_hclass, hay una variable de las clases zombies, o sea, nah. Mejor olvida la publicación que te pasé xd, simplemente adapta mis cambios a tu zombie y disculpa por los inconvenientes.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)