|SOLUCIONADO| Texto acortado en menú.
#1
Pues la info de la clase se recorta el texto, ¿por donde hay que tocar para que se vea completo?


Archivos adjuntos Miniatura(s)
   
Responder
#2
En el código base del mod (donde se registra la native)
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
Responder
#3
Seguro estas sobrepasando el el limite de caracteres que puede mostrar un menu.

Lo que sucede es que si pasas ese limite las opciones no se muestran correctamente, pero el menu sigue funcional.
Responder
#4
Postea el code la parte del menu, así te digo que es lo que tenes que modificar.
Responder
#5
A ver, la parte del menú que se muestra es esta, ¿pero habría que cambiar quizás tambien 'g_zclass_info = ArrayCreate(32, 1)' a 'g_zclass_info = ArrayCreate(64, 1)' o eso se dejaría así?

Código PHP:
// Zombie Class Menu
public show_menu_zclass(id)
{
    
// Player disconnected
    
if(!g_isconnected[id]) {
        return;
    }
    
    
// Bots pick their zombie class randomly
    
if(g_isbot[id]) {
        
g_zombieclassnext[id] = random_num(0g_zclass_i 1)
        
        return;
    }
    
    static 
menuidmenu[128], class, buffer[32], buffer2[32]
    
    
// Title
    
formatex(menucharsmax(menu), "%L\r"id"MENU_ZCLASS_TITLE")
    
menuid menu_create(menu"menu_zclass")
    
    
// Class List
    
for(class = 0; class < g_zclass_i; class++) {
        
// Retrieve name and info
        
ArrayGetString(g_zclass_name, class, buffercharsmax(buffer))
        
ArrayGetString(g_zclass_info, class, buffer2charsmax(buffer2))
        
        
// Add to menu
        
if(class == g_zombieclassnext[id]) {
            
formatex(menucharsmax(menu), "\d%s %s"bufferbuffer2)
        }
        else {
            
formatex(menucharsmax(menu), "%s \y%s"bufferbuffer2)
        }
        
        
buffer[0] = class
        
buffer[1] = 0
        
        menu_additem
(menuidmenubuffer)
    }
    
    
// Back - Next - Exit
    
formatex(menucharsmax(menu), "%L"id"MENU_BACK")
    
menu_setprop(menuidMPROP_BACKNAMEmenu)
    
formatex(menucharsmax(menu), "%L"id"MENU_NEXT")
    
menu_setprop(menuidMPROP_NEXTNAMEmenu)
    
formatex(menucharsmax(menu), "%L"id"MENU_EXIT")
    
menu_setprop(menuidMPROP_EXITNAMEmenu)
    
    
// If remembered page is greater than number of pages, clamp down the value
    
MENU_PAGE_ZCLASS min(MENU_PAGE_ZCLASSmenu_pages(menuid) - 1)
    
    
// Fix for AMXX custom menus
    
if(pev_valid(id) == PDATA_SAFE) {
        
set_pdata_int(idOFFSET_CSMENUCODE0OFFSET_LINUX)
    }
    
    
menu_display(idmenuidMENU_PAGE_ZCLASS)


Viendo el codigo del menú así mas o menos y según me habéis comentado, ¿el cambio seria aquí no?

Código PHP:
static menuidmenu[128], class, buffer[32], buffer2[32
Responder
#6
Aumenta el tamaño de la variable buffer2, ponele 64

Código PHP:
static menuidmenu[128], class, buffer[32], buffer2[64
Responder
#7
Gracias chicos, a ver dejo solucion:

- Hay que cambiar 'g_zclass_info = ArrayCreate(32, 1)' y 'g_zclass2_info = ArrayCreate(32, 1)' por esto 'g_zclass_info = ArrayCreate(64, 1)' y 'g_zclass2_info = ArrayCreate(64, 1)'.

- Después como dice Exertency hay que cambiar 'static menuid, menu[128], class, buffer[32], buffer2[32]' por 'static menuid, menu[128], class, buffer[32], buffer2[64]'.

PD: Y ya como curiosidad, ¿la variable tiene un máximo y/o afecta en algo aumentar el numero? Ah, ¿y tiene que ser 32, 64, 128, etc... O puede ser cualquier numero?
Responder
#8
Código PHP:
/**
 * These arrays are intended to be used for a form of global storage without 
 * requiring a #define that needs to be increased each time a person needs more 
 * storage.
 * These are not designed to be used as a replacement for normal arrays, as
 * normal arrays are faster and should be used whenever possible.
 */

/**
 * Creates a handle to a dynamically sized array.
 * It is very important that the cellsize you provide matches up with the buffer sizes
 * that you pass with subsequent Array{Get,Set,Push} calls.
 *
 * @param cellsize        How many cells each entry in the array is.
 * @param reserved        How many blank entries are created immediately when the array is created.  These entries are not valid to read from until called with ArraySet.
 * @return             Handle to the array.
 */
native Array:ArrayCreate(cellsize=1reserved=32); 
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
Responder
#9
Vale, a ver, funciona pero al cambiar de mapa se pone el menú otra vez recortado... ¿Alguna idea?

Toto, en español por favor, no me llevo muy bien con el ingles. Entonces, he hecho bien al cambiar el tamaño del Array al igual que el del buffer2, pero, ¿por qué al cambiar de mapa no funciona?
Responder
#10
Código PHP:
* @param cellsize        How many cells each entry in the array is
--->
Código PHP:
* @param cellsize        Cuántas celdad puede almacenar cada array 

No sé que modo estés usando (supongo que el base builder), también debes de cambiar las variables temporales en la native de registro dentro del modo
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
Responder
#11
Ehmm... No, es ZP v4.3 Fix5a, pero no he entendido lo de las variables temporales, tengo nivel bastante bajo.

PD: Sí, a ver, entendí lo de Array, pero lo que no entiendo muy bien es la lógica.
Responder
#12
Código PHP:
// Native: zp_register_zombie_class
public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hpspeedFloat:gravityFloat:knockback)
{
    
// ZP disabled
    
if (!g_pluginenabled)
        return -
1;
    
    
// Strings passed byref
    
param_convert(1)
    
param_convert(2)
    
param_convert(3)
    
param_convert(4)
    
    
// Arrays not yet initialized
    
if (!g_arrays_created)
    {
        
log_error(AMX_ERR_NATIVE"[ZP-New] Can't register zombie class yet (%s)"name)
        return -
1;
    }
    
    if (
strlen(name) < 1)
    {
        
log_error(AMX_ERR_NATIVE"[ZP-New] Can't register zombie class with an empty name")
        return -
1;
    }
    
    new 
indexzombieclass_name[32]
    for (
index 0index g_zclass_iindex++)
    {
        
ArrayGetString(g_zclass_nameindexzombieclass_namecharsmax(zombieclass_name))
        if (
equali(namezombieclass_name))
        {
            
log_error(AMX_ERR_NATIVE"[ZP-New] Zombie class already registered (%s)"name)
            return -
1;
        }
    }
    
    
// Add the class
    
ArrayPushString(g_zclass_namename)
    
ArrayPushString(g_zclass_infoinfo)
    
    
// Using same zombie models for all classes?
    
if (g_same_models_for_all)
    {
        
ArrayPushCell(g_zclass_modelsstart0)
        
ArrayPushCell(g_zclass_modelsendArraySize(g_zclass_playermodel))
    }
    else
    {
        
ArrayPushCell(g_zclass_modelsstartArraySize(g_zclass_playermodel))
        
ArrayPushString(g_zclass_playermodelmodel)
        
ArrayPushCell(g_zclass_modelsendArraySize(g_zclass_playermodel))
        
ArrayPushCell(g_zclass_modelindex, -1)
    }
    
    
ArrayPushString(g_zclass_clawmodelclawmodel)
    
ArrayPushCell(g_zclass_hphp)
    
ArrayPushCell(g_zclass_spdspeed)
    
ArrayPushCell(g_zclass_gravgravity)
    
ArrayPushCell(g_zclass_kbknockback)
    
    
// Set temporary new class flag
    
ArrayPushCell(g_zclass_new1)
    
    
// Override zombie classes data with our customizations
    
new ikbuffer[32], Float:buffer2nummodels_customnummodels_defaultprec_mdl[100], size ArraySize(g_zclass2_realname)
    for (
0sizei++)
    {
        
ArrayGetString(g_zclass2_realnameibuffercharsmax(buffer))
        
        
// Check if this is the intended class to override
        
if (!equal(namebuffer))
            continue;
        
        
// Remove new class flag
        
ArraySetCell(g_zclass_newg_zclass_i0)
        
        
// Replace caption
        
ArrayGetString(g_zclass2_nameibuffercharsmax(buffer))
        
ArraySetString(g_zclass_nameg_zclass_ibuffer)
        
        
// Replace info
        
ArrayGetString(g_zclass2_infoibuffercharsmax(buffer))
        
ArraySetString(g_zclass_infog_zclass_ibuffer)
        
        
// Replace models, unless using same models for all classes
        
if (!g_same_models_for_all)
        {
            
nummodels_custom ArrayGetCell(g_zclass2_modelsendi) - ArrayGetCell(g_zclass2_modelsstarti)
            
nummodels_default ArrayGetCell(g_zclass_modelsendg_zclass_i) - ArrayGetCell(g_zclass_modelsstartg_zclass_i)
            
            
// Replace each player model and model index
            
for (0min(nummodels_customnummodels_default); k++)
            {
                
ArrayGetString(g_zclass2_playermodelArrayGetCell(g_zclass2_modelsstarti) + kbuffercharsmax(buffer))
                
ArraySetString(g_zclass_playermodelArrayGetCell(g_zclass_modelsstartg_zclass_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_zclass_modelindexArrayGetCell(g_zclass_modelsstartg_zclass_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)
                
// 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)
            }
            
            
// We have more custom models than what we can accommodate,
            // Let's make some space...
            
if (nummodels_custom nummodels_default)
            {
                for (
nummodels_defaultnummodels_customk++)
                {
                    
ArrayGetString(g_zclass2_playermodelArrayGetCell(g_zclass2_modelsstarti) + kbuffercharsmax(buffer))
                    
ArrayInsertStringAfter(g_zclass_playermodelArrayGetCell(g_zclass_modelsstartg_zclass_i) + 1buffer)
                    
                    
// Precache player model and retrieve its modelindex
                    
formatex(prec_mdlcharsmax(prec_mdl), "models/player/%s/%s.mdl"bufferbuffer)
                    
ArrayInsertCellAfter(g_zclass_modelindexArrayGetCell(g_zclass_modelsstartg_zclass_i) + 1engfunc(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)
                }
                
                
// Fix models end index for this class
                
ArraySetCell(g_zclass_modelsendg_zclass_iArrayGetCell(g_zclass_modelsendg_zclass_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_zclass_playermodel, ArrayGetCell(g_zclass_modelsstart, g_zclass_i) + nummodels_custom)
                }
                
                // Fix models end index for this class
                ArraySetCell(g_zclass_modelsend, g_zclass_i, ArrayGetCell(g_zclass_modelsend, g_zclass_i) - (nummodels_default - nummodels_custom))
            }
            */
        
}
        
        
// Replace clawmodel
        
ArrayGetString(g_zclass2_clawmodelibuffercharsmax(buffer))
        
ArraySetString(g_zclass_clawmodelg_zclass_ibuffer)
        
        
// Precache clawmodel
        
formatex(prec_mdlcharsmax(prec_mdl), "models/zombie_plague/%s"buffer)
        
engfunc(EngFunc_PrecacheModelprec_mdl)
        
        
// Replace health
        
buffer[0] = ArrayGetCell(g_zclass2_hpi)
        
ArraySetCell(g_zclass_hpg_zclass_ibuffer[0])
        
        
// Replace speed
        
buffer[0] = ArrayGetCell(g_zclass2_spdi)
        
ArraySetCell(g_zclass_spdg_zclass_ibuffer[0])
        
        
// Replace gravity
        
buffer2 Float:ArrayGetCell(g_zclass2_gravi)
        
ArraySetCell(g_zclass_gravg_zclass_ibuffer2)
        
        
// Replace knockback
        
buffer2 Float:ArrayGetCell(g_zclass2_kbi)
        
ArraySetCell(g_zclass_kbg_zclass_ibuffer2)
    }
    
    
// If class was not overriden with customization data
    
if (ArrayGetCell(g_zclass_newg_zclass_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_zclass_modelindexArrayGetCell(g_zclass_modelsstartg_zclass_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_zclass_i++
    
    
// Return id under which we registered the class
    
return g_zclass_i-1;

Aquí:
Código PHP:
// Override zombie classes data with our customizations
    
new ikbuffer[32], Float:buffer2nummodels_customnummodels_defaultprec_mdl[100], size ArraySize(g_zclass2_realname
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
Responder
#13
Sí, eso es Toto, muchas gracias, parece que ya se mantiene Gran sonrisa.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)