[Ayuda]Pasar de Dini a Y_ini
#1

Buenas amigos quisiera saber si me echan una mano con este sistema dinamico de facciones que esta en DINI y quisiera pasarlo a Y_ini lo intente pero me lanzaba error y bueno vine a acudir a sus ayudas.

Guardado y cargado de datos:

pawn Код:
stock IsInvalidSkin(skin)
{
    #define MAX_BAD_SKINS   14
    new badSkins[MAX_BAD_SKINS] =
    {
        3, 4, 5, 6, 8, 42, 65, 74, 86,
        119, 149, 208, 273, 289
    };

    for (new i = 0; i < MAX_BAD_SKINS; i++)
    {
        if (skin == badSkins[i] || skin < 0 || skin >= 300) return true;
    }

    return false;
}

stock CargarFacciones()
{
    new FileName[1024];
    for(new i = 0; i < MAX_FACCIONES; i++)
    {
        format(FileName, sizeof(FileName), "DataCenter/Facciones/Faccion_%d.ini", i);
        if(fexist(FileName))
        {
            Facciones[i][NombreFaccion] = dini_Get(FileName, "NombreFaccion");
            Facciones[i][Tipo] = dini_Int(FileName, "Tipo");
            Facciones[i][NombreRango1] = dini_Get(FileName, "NombreRango1");
            Facciones[i][NombreRango2] = dini_Get(FileName, "NombreRango2");
            Facciones[i][NombreRango3] = dini_Get(FileName, "NombreRango3");
            Facciones[i][NombreRango4] = dini_Get(FileName, "NombreRango4");
            Facciones[i][NombreRango5] = dini_Get(FileName, "NombreRango5");
            Facciones[i][NombreRango6] = dini_Get(FileName, "NombreRango6");
            Facciones[i][SkinRango1] = dini_Int(FileName, "SkinRango1");
            Facciones[i][SkinRango2] = dini_Int(FileName, "SkinRango2");
            Facciones[i][SkinRango3] = dini_Int(FileName, "SkinRango3");
            Facciones[i][SkinRango4] = dini_Int(FileName, "SkinRango4");
            Facciones[i][SkinRango5] = dini_Int(FileName, "SkinRango5");
            Facciones[i][SkinRango6] = dini_Int(FileName, "SkinRango6");
            Facciones[i][Miembros] = dini_Int(FileName, "Miembros");
            Facciones[i][LiderOficial] = dini_Get(FileName, "LiderOficial");
            printf("[Sistema] Faccion %d cargada.", i);
            printf("Faccion %d Nombre: %s Lider:%s ",i,Facciones[i][NombreFaccion],Facciones[i][LiderOficial]);
            facciones++;
       }
    }
    return 1;
}
stock GuardarFaccion(i)
{
    new FileName[1024];
    format(FileName, sizeof(FileName), "DataCenter/Facciones/Faccion_%d.ini", i);
    if(fexist(FileName))
    {
        dini_Set(FileName, "NombreFaccion", Facciones[i][NombreFaccion]);
        dini_IntSet(FileName, "Tipo", Facciones[i][Tipo]);
        dini_Set(FileName, "NombreRango1", Facciones[i][NombreRango1]);
        dini_Set(FileName, "NombreRango2", Facciones[i][NombreRango2]);
        dini_Set(FileName, "NombreRango3", Facciones[i][NombreRango3]);
        dini_Set(FileName, "NombreRango4", Facciones[i][NombreRango4]);
        dini_Set(FileName, "NombreRango5", Facciones[i][NombreRango5]);
        dini_Set(FileName, "NombreRango6", Facciones[i][NombreRango6]);
        dini_IntSet(FileName, "SkinRango1", Facciones[i][SkinRango1]);
        dini_IntSet(FileName, "SkinRango2", Facciones[i][SkinRango2]);
        dini_IntSet(FileName, "SkinRango3", Facciones[i][SkinRango3]);
        dini_IntSet(FileName, "SkinRango4", Facciones[i][SkinRango4]);
        dini_IntSet(FileName, "SkinRango5", Facciones[i][SkinRango5]);
        dini_IntSet(FileName, "SkinRango6", Facciones[i][SkinRango6]);
        dini_IntSet(FileName, "Miembros", Facciones[i][Miembros]);
        dini_Set(FileName, "LiderOficial", Facciones[i][LiderOficial]);
        printf("[Sistema] Faccion %d guardada.", i);
    }
    else
    {
        printf("Imposible guardar(%d).", i);
    }
}
stock GuardarFacciones()
{
    for(new i = 0; i < facciones; i++)
    {
        GuardarFaccion(i);
    }
    return 1;
}
CMDґS:

pawn Код:
YCMD:cambiarrangos(playerid, params[])
{
    new rankname[128], rank, string[128];
    if(sscanf(params, "ds[256]", rank, rankname))
    {
        SendClientMessage(playerid, COLOR_WHITE, "USO: /cambiarrangos <Rango> <Nombre>");
    }
    else
    {
        if(PlayerInfo[playerid][FRank] >= 6 && PlayerInfo[playerid][Faccion] >= 1)
        {
            if(rank < 7 && rank > 0)
            {
                if(strlen(rankname) >= 1 && strlen(rankname) < 20)
                {
                    switch(rank)
                    {
                        case 1: format(Facciones[PlayerInfo[playerid][Faccion]][NombreRango1], 255, "%s", rankname);
                        case 2: format(Facciones[PlayerInfo[playerid][Faccion]][NombreRango2], 255, "%s", rankname);
                        case 3: format(Facciones[PlayerInfo[playerid][Faccion]][NombreRango3], 255, "%s", rankname);
                        case 4: format(Facciones[PlayerInfo[playerid][Faccion]][NombreRango4], 255, "%s", rankname);
                        case 5: format(Facciones[PlayerInfo[playerid][Faccion]][NombreRango5], 255, "%s", rankname);
                        case 6: format(Facciones[PlayerInfo[playerid][Faccion]][NombreRango6], 255, "%s", rankname);
                    }

                    format(string, sizeof(string), "Has cambiado el rango  %d a  %s.", rank, rankname);
                    SendClientMessage(playerid, COLOR_WHITE, string);
                }
                else
                {
                    SendClientMessage(playerid, COLOR_WHITE, "El nombre del rango no puede ser mas de 10 caracteres o menos de 1.");
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_WHITE, "Rango Invalido (1-6)");
            }
        }
    }
    return 1;
}
YCMD:tipofaccion(playerid, params[])
{
    new GroupID, GroupType, string[128];
    if(sscanf(params, "dd", GroupID, GroupType))
    {
        if(PlayerInfo[playerid][Admin] >= 5)
        {
            SendClientMessage(playerid, COLOR_WHITE, "Uso: /tipofaccion <ID> <Tipo> (ID)");
        }
    }
    else
    {
        if(PlayerInfo[playerid][Admin] >= 5)
        {
            format(string, sizeof(string), "DataCenter/Facciones/Faccion_%d.ini", GroupID);

            if(fexist(string))
            {
                Facciones[GroupID][Tipo] = GroupType;
                format(string, sizeof(string), "Has seteado a %s el tipo de %d.", Facciones[GroupID][NombreFaccion], GroupType);
                SendClientMessage(playerid, COLOR_WHITE, string);
                GuardarFaccion(GroupID);
            }
            else
            {
                SendClientMessage(playerid, COLOR_WHITE, "ID Invalida!");
            }
        }
    }
    return 1;
}

YCMD:nombrefaccion(playerid, params[])
{
    new GroupID, NombreFaccion2[256], string[128];
    if(sscanf(params, "ds[256]", GroupID, NombreFaccion2))
    {
        if(PlayerInfo[playerid][Admin] >= 5)
        {
            SendClientMessage(playerid, COLOR_WHITE, "Uso: /nombrefaccion <ID> <Nombre>");
        }
    }
    else
    {
        if(PlayerInfo[playerid][Admin] >= 5)
        {
            format(string, sizeof(string), "DataCenter/Facciones/Faccion_%d.ini", GroupID);
           if(strlen(NombreFaccion2) >= 1 && strlen(NombreFaccion2) < 20)
           {
            if(fexist(string))
            {
                format(Facciones[GroupID][NombreFaccion], 255, "%s", NombreFaccion2);
                format(string, sizeof(string), "Has seteado a %s la faccion.", Facciones[GroupID][NombreFaccion]);
                SendClientMessage(playerid, COLOR_WHITE, string);
                GuardarFaccion(GroupID);
            }
            else
            {
                SendClientMessage(playerid, COLOR_WHITE, "ID Invalida!");
            }
            }
        }
    }
    return 1;
}
YCMD:skinfacciones (playerid, params[])
{
    new skin, skinslot, GroupID, string[128];
    if(sscanf(params, "ddd", GroupID, skinslot, skin))
    {
        if(PlayerInfo[playerid][Admin] >= 5)
        {
            SendClientMessage(playerid, COLOR_WHITE, "Uso: /skinfacciones [IDFaccion] [Skin Rango 1-6] [IDSkin]");
        }
    }
    else
    {
        if(PlayerInfo[playerid][Admin] >= 5)
        {
            format(string, sizeof(string), "DataCenter/Facciones/Faccion_%d.ini", GroupID);
            if(fexist(string))
            {
                if(skinslot < 7 && skinslot >= 0)
                {
                    if(!IsInvalidSkin(skin))
                    {
                        switch(skinslot)
                        {
                            case 1: Facciones[PlayerInfo[playerid][Faccion]][SkinRango1] = skin;
                            case 2: Facciones[PlayerInfo[playerid][Faccion]][SkinRango2] = skin;
                            case 3: Facciones[PlayerInfo[playerid][Faccion]][SkinRango3] = skin;
                            case 4: Facciones[PlayerInfo[playerid][Faccion]][SkinRango4] = skin;
                            case 5: Facciones[PlayerInfo[playerid][Faccion]][SkinRango5] = skin;
                            case 6: Facciones[PlayerInfo[playerid][Faccion]][SkinRango6] = skin;
                        }

                        format(string, sizeof(string), "Has cambiado al skin rango %d, skin %d.", skinslot, skin);
                        SendClientMessage(playerid, COLOR_WHITE, string);
                    }
                    else
                    {
                        SendClientMessage(playerid, COLOR_WHITE, "Skin Invalido.");
                    }
                }
                else
                {
                    SendClientMessage(playerid, COLOR_WHITE, "Slot Invalido 1-6.");
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_WHITE, "Faccion Invalida.");
            }
        }
    }
    return 1;
}
Enum:

pawn Код:
new facciones;

enum InfoFacciones
{
NombreFaccion[255],
Tipo,
NombreRango1[255],
NombreRango2[255],
NombreRango3[255],
NombreRango4[255],
NombreRango5[255],
NombreRango6[255],
SkinRango1,
SkinRango2,
SkinRango3,
SkinRango4,
SkinRango5,
SkinRango6,
Miembros,
LiderOficial[255],
}
;
new Facciones[MAX_FACCIONES][InfoFacciones];
Espero que puedan ayudarme por favor Gracias de ante mano.
Reply
#2

Si quieres que te pasen el script, va aqui; si quieres que te ayuden muestranos que errores obtuviste al intentarlo.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)