04/06/2018, 10:21 AM (Última modificación: 04/06/2018, 10:24 AM por MarLeo94.)
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(0, g_zclass_i - 1)
// 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))
04/06/2018, 04:23 PM (Última modificación: 04/06/2018, 04:25 PM por MarLeo94.)
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?
04/06/2018, 05:10 PM (Última modificación: 04/06/2018, 05:10 PM por totopizza.)
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=1, reserved=32);
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
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?
// Set temporary new class flag ArrayPushCell(g_zclass_new, 1)
// Override zombie classes data with our customizations new i, k, buffer[32], Float:buffer2, nummodels_custom, nummodels_default, prec_mdl[100], size = ArraySize(g_zclass2_realname) for (i = 0; i < size; i++) { ArrayGetString(g_zclass2_realname, i, buffer, charsmax(buffer))
// Check if this is the intended class to override if (!equal(name, buffer)) continue;
// Remove new class flag ArraySetCell(g_zclass_new, g_zclass_i, 0)
// Replace caption ArrayGetString(g_zclass2_name, i, buffer, charsmax(buffer)) ArraySetString(g_zclass_name, g_zclass_i, buffer)
// Replace info ArrayGetString(g_zclass2_info, i, buffer, charsmax(buffer)) ArraySetString(g_zclass_info, g_zclass_i, buffer)
// Replace models, unless using same models for all classes if (!g_same_models_for_all) { nummodels_custom = ArrayGetCell(g_zclass2_modelsend, i) - ArrayGetCell(g_zclass2_modelsstart, i) nummodels_default = ArrayGetCell(g_zclass_modelsend, g_zclass_i) - ArrayGetCell(g_zclass_modelsstart, g_zclass_i)
// Replace each player model and model index for (k = 0; k < min(nummodels_custom, nummodels_default); k++) { ArrayGetString(g_zclass2_playermodel, ArrayGetCell(g_zclass2_modelsstart, i) + k, buffer, charsmax(buffer)) ArraySetString(g_zclass_playermodel, ArrayGetCell(g_zclass_modelsstart, g_zclass_i) + k, buffer)
// Precache player model and replace its modelindex with the real one formatex(prec_mdl, charsmax(prec_mdl), "models/player/%s/%s.mdl", buffer, buffer) ArraySetCell(g_zclass_modelindex, ArrayGetCell(g_zclass_modelsstart, g_zclass_i) + k, engfunc(EngFunc_PrecacheModel, prec_mdl)) if (g_force_consistency == 1) force_unmodified(force_model_samebounds, {0,0,0}, {0,0,0}, prec_mdl) if (g_force_consistency == 2) force_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_PrecacheModel, prec_mdl) }
// We have more custom models than what we can accommodate, // Let's make some space... if (nummodels_custom > nummodels_default) { for (k = nummodels_default; k < nummodels_custom; k++) { ArrayGetString(g_zclass2_playermodel, ArrayGetCell(g_zclass2_modelsstart, i) + k, buffer, charsmax(buffer)) ArrayInsertStringAfter(g_zclass_playermodel, ArrayGetCell(g_zclass_modelsstart, g_zclass_i) + k - 1, buffer)
// Precache player model and retrieve its modelindex formatex(prec_mdl, charsmax(prec_mdl), "models/player/%s/%s.mdl", buffer, buffer) ArrayInsertCellAfter(g_zclass_modelindex, ArrayGetCell(g_zclass_modelsstart, g_zclass_i) + k - 1, engfunc(EngFunc_PrecacheModel, prec_mdl)) if (g_force_consistency == 1) force_unmodified(force_model_samebounds, {0,0,0}, {0,0,0}, prec_mdl) if (g_force_consistency == 2) force_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_PrecacheModel, prec_mdl) }
// Fix models end index for this class ArraySetCell(g_zclass_modelsend, g_zclass_i, ArrayGetCell(g_zclass_modelsend, g_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_clawmodel, i, buffer, charsmax(buffer)) ArraySetString(g_zclass_clawmodel, g_zclass_i, buffer)
// If class was not overriden with customization data if (ArrayGetCell(g_zclass_new, g_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_mdl, charsmax(prec_mdl), "models/player/%s/%s.mdl", model, model) ArraySetCell(g_zclass_modelindex, ArrayGetCell(g_zclass_modelsstart, g_zclass_i), engfunc(EngFunc_PrecacheModel, prec_mdl)) if (g_force_consistency == 1) force_unmodified(force_model_samebounds, {0,0,0}, {0,0,0}, prec_mdl) if (g_force_consistency == 2) force_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_PrecacheModel, prec_mdl) }
// 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 i, k, buffer[32], Float:buffer2, nummodels_custom, nummodels_default, prec_mdl[100], size = ArraySize(g_zclass2_realname)
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