array sizes do not match, or destination array is too small
#1

Mi duda es quй le pasa a este cуdigo, le he dado muchas vueltas y no logro saber cual es el error.
Error = array sizes do not match, or destination array is too small

pawn Код:
#include <dini>

#define MAX_FACCION_NAME        30

forward LoadDataFaccion(faccionid);
forward SaveDataFaccion(faccionid);

enum DataFacciones
{
    NameFaccion[MAX_FACCION_NAME],
    Lider[MAX_PLAYER_NAME]
}

new DIR_FACCIONES[12]   = "/Facciones/";
new FaccionData[MAX_FACCION_COUNT][DataFacciones];

public SaveDataFaccion(faccionid)
{
    new File[18];
    format(File, sizeof(File), "%s%i.ini", DIR_FACCIONES, faccionid);
   
    dini_Set(File, "NameFaccion", FaccionData[faccionid][NameFaccion]);
    dini_Set(File, "Lider", FaccionData[faccionid][Lider]);
}

public LoadDataFaccion(faccionid)
{
    new File[18];
    format(File, sizeof(File), "%s%i.ini", DIR_FACCIONES, faccionid);
   
    FaccionData[faccionid][NameFaccion]     = dini_Get(File, "NameFaccion"); // Lнnea de error
    FaccionData[faccionid][Lider]           = dini_Get(File, "Lider"); // Lнnea de error
}

Gracias.
Reply
#2

Tu errores son 'FaccionData[faccionid][NameFaccion]' - 'FaccionData[faccionid][Lider]' ya que tratas de convertir esas variables enteras en cadenas.

Lo que tienes que hacer es crearlas aparte (si deseas):

pawn Код:
new NameFaction[MAX_FACTIONS][MAX_NAME_FACTION];
// ....


// LoadDataFaccion
format(NameFaction[factionid], MAX_NAME_FACTION, "%s", dini_Get(File, "NameFaccion"));
// ...

Creo que esa es la soluciуn.
Reply
#3

Perfecto, ahora lo entiendo. Muchas gracias.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)