[Ajuda]Problema com Dini!
#1

Ola, estou a utilizar o sistema 'Didi' para gravar todas as definiзхes dos veнculos do meu server.
Entгo й o seguinte, quando eu faзo o Save dos veнculos ele grava tudo correctamente, mas as vezes quando faz o load nгo o
faz correctamente!

Acontece que as vezes quando ligo o server existem 2x o mesmo carro e desaparece outros..

Exemplo: Tenho 250 Carros, 148 Sгo infernos tudo com as mesmas caracterнsticas, 2 Sгo carros da policia.
Se desligar varias vezes o server os mesmos acabam por desaparecer e ficam como os outros 148 carros!

Nгo faзo a menor ideia de qual possa ser o problema jб tou a 3 dias a tentar resolver, peзo a vossa ajuda!

pawn Код:
public LoadDynamicCars()
{
    for(new idx = 1; idx < sizeof(DynamicCars); idx++) {
        new LoadCars[256];
        format(LoadCars,sizeof(LoadCars),"Sistema/Cars/All/%d.ini",idx);
        if(fexist(LoadCars)) {

            DynamicCars[idx][CarModel] = dini_Int(LoadCars, "CarModel");
            DynamicCars[idx][CarX] = dini_Int(LoadCars, "CarX");
            DynamicCars[idx][CarY] = dini_Int(LoadCars, "CarY");
            DynamicCars[idx][CarZ] = (dini_Int(LoadCars, "CarZ")+2);
            DynamicCars[idx][CarAngle] = dini_Int(LoadCars, "CarAngle");
            DynamicCars[idx][CarColor1] = dini_Int(LoadCars, "CarColor1");
            DynamicCars[idx][CarColor2] = dini_Int(LoadCars, "CarColor2");
            DynamicCars[idx][FactionCar] = dini_Int(LoadCars, "FactionCar");
            DynamicCars[idx][CarType] = dini_Int(LoadCars, "CarType");
            DynamicCars[idx][cOwner] = dini_Int(LoadCars, "cOwner");
            DynamicCars[idx][cDescription] = dini_Int(LoadCars, "cDescription");
            DynamicCars[idx][cValue] = dini_Int(LoadCars, "cValue");
            DynamicCars[idx][cOwned] = dini_Int(LoadCars, "cOwned");
            DynamicCars[idx][cLock] = dini_Int(LoadCars, "cLock");
//idx++;
            new vehicleid = CreateVehicle(DynamicCars[idx][CarModel],DynamicCars[idx][CarX],DynamicCars[idx][CarY],DynamicCars[idx][CarZ],DynamicCars[idx][CarAngle],DynamicCars[idx][CarColor1],DynamicCars[idx][CarColor2], -1);

        }
    }
    return 1;
}
//----------------------------------------------------------------------------------
public SaveDynamicCars()
{
    new idx = 1;
    while (idx < sizeof(DynamicCars)) {

        new SaveCars[256];
        format(SaveCars,sizeof(SaveCars),"Sistema/Cars/All/%d.ini",idx);
        if(!dini_Exists(SaveCars)) {
            dini_Create(SaveCars);
        }

        dini_IntSet(SaveCars,"CarModel", DynamicCars[idx][CarModel]);
        dini_FloatSet(SaveCars,"CarX", DynamicCars[idx][CarX]);
        dini_FloatSet(SaveCars,"CarY", DynamicCars[idx][CarY]);
        dini_FloatSet(SaveCars,"CarZ", DynamicCars[idx][CarZ]);
        dini_FloatSet(SaveCars,"CarAngle", DynamicCars[idx][CarAngle]);
        dini_IntSet(SaveCars,"CarColor1", DynamicCars[idx][CarColor1]);
        dini_IntSet(SaveCars,"CarColor2", DynamicCars[idx][CarColor2]);
        dini_IntSet(SaveCars,"FactionCar", DynamicCars[idx][FactionCar]);
        dini_IntSet(SaveCars,"CarType", DynamicCars[idx][CarType]);
        dini_IntSet(SaveCars,"cOwner", DynamicCars[idx][cOwner]);
        dini_IntSet(SaveCars,"cDescription", DynamicCars[idx][cDescription]);
        dini_IntSet(SaveCars,"cValue", DynamicCars[idx][cValue]);
        dini_IntSet(SaveCars,"cOwned", DynamicCars[idx][cOwned]);
        dini_IntSet(SaveCars,"cLock", DynamicCars[idx][cLock]);
        idx++;
    }
    return 1;
}
Reply
#2

Alguйm me ajuda?
Reply
#3

Amigo eu nao sei, mas o problema pode nao ser dai. Tente isto

Troque
pawn Код:
DynamicCars[idx][cOwned] = dini_Int(LoadCars, "cOwned");
            DynamicCars[idx][cLock] = dini_Int(LoadCars, "cLock");
//idx++;
            new vehicleid = CreateVehicle(DynamicCars[idx][CarModel],DynamicCars[idx][CarX],DynamicCars[idx][CarY],DynamicCars[idx][CarZ],DynamicCars[idx][CarAngle],DynamicCars[idx][CarColor1],DynamicCars[idx][CarColor2], -1);

        }
por
pawn Код:
DynamicCars[idx][cOwned] = dini_Int(LoadCars, "cOwned");
            DynamicCars[idx][cLock] = dini_Int(LoadCars, "cLock");
            printf("%d",DynamicCars[idx][CarModel]);
//idx++;
            CreateVehicle(DynamicCars[idx][CarModel],DynamicCars[idx][CarX],DynamicCars[idx][CarY],DynamicCars[idx][CarZ],DynamicCars[idx][CarAngle],DynamicCars[idx][CarColor1],DynamicCars[idx][CarColor2], -1);

        }
ja agora vai adicionar o printf e depois na janela de comando do server verifica se os id modelos dos carros correspondem mais ou menos ou se sao sempre iguais ou se o id de modelo й sempre o mesmo
Reply
#4

Quote:
Originally Posted by DJloko
Посмотреть сообщение
Amigo eu nao sei, mas o problema pode nao ser dai. Tente isto

Troque
pawn Код:
DynamicCars[idx][cOwned] = dini_Int(LoadCars, "cOwned");
            DynamicCars[idx][cLock] = dini_Int(LoadCars, "cLock");
//idx++;
            new vehicleid = CreateVehicle(DynamicCars[idx][CarModel],DynamicCars[idx][CarX],DynamicCars[idx][CarY],DynamicCars[idx][CarZ],DynamicCars[idx][CarAngle],DynamicCars[idx][CarColor1],DynamicCars[idx][CarColor2], -1);

        }
por
pawn Код:
DynamicCars[idx][cOwned] = dini_Int(LoadCars, "cOwned");
            DynamicCars[idx][cLock] = dini_Int(LoadCars, "cLock");
            printf("%d",DynamicCars[idx][CarModel]);
//idx++;
            CreateVehicle(DynamicCars[idx][CarModel],DynamicCars[idx][CarX],DynamicCars[idx][CarY],DynamicCars[idx][CarZ],DynamicCars[idx][CarAngle],DynamicCars[idx][CarColor1],DynamicCars[idx][CarColor2], -1);

        }
ja agora vai adicionar o printf e depois na janela de comando do server verifica se os id modelos dos carros correspondem mais ou menos ou se sao sempre iguais ou se o id de modelo й sempre o mesmo
Adicionando o printf nгo vai fazer diferenзa,
penso que o problema tem haver com a maneira de gravar e de fazer o loading.
Reply
#5

Tenta assim:
pawn Код:
public LoadDynamicCars()
{
    new LoadCars[256];
    for(new idx = 1; idx < 100; idx++) {
        format(LoadCars,sizeof(LoadCars),"Sistema/Cars/All/%d.ini",idx);
        if(fexist(LoadCars)) {

            DynamicCars[idx][CarModel] = dini_Int(LoadCars, "CarModel");
            DynamicCars[idx][CarX] = dini_Int(LoadCars, "CarX");
            DynamicCars[idx][CarY] = dini_Int(LoadCars, "CarY");
            DynamicCars[idx][CarZ] = (dini_Int(LoadCars, "CarZ")+2);
            DynamicCars[idx][CarAngle] = dini_Int(LoadCars, "CarAngle");
            DynamicCars[idx][CarColor1] = dini_Int(LoadCars, "CarColor1");
            DynamicCars[idx][CarColor2] = dini_Int(LoadCars, "CarColor2");
            DynamicCars[idx][FactionCar] = dini_Int(LoadCars, "FactionCar");
            DynamicCars[idx][CarType] = dini_Int(LoadCars, "CarType");
            DynamicCars[idx][cOwner] = dini_Int(LoadCars, "cOwner");
            DynamicCars[idx][cDescription] = dini_Int(LoadCars, "cDescription");
            DynamicCars[idx][cValue] = dini_Int(LoadCars, "cValue");
            DynamicCars[idx][cOwned] = dini_Int(LoadCars, "cOwned");
            DynamicCars[idx][cLock] = dini_Int(LoadCars, "cLock");
//idx++;
            new vehicleid = CreateVehicle(DynamicCars[idx][CarModel],DynamicCars[idx][CarX],DynamicCars[idx][CarY],DynamicCars[idx][CarZ],DynamicCars[idx][CarAngle],DynamicCars[idx][CarColor1],DynamicCars[idx][CarColor2], -1);

        }
    }
    return 1;
}
Reply
#6

Quote:
Originally Posted by CJoao
Посмотреть сообщение
Adicionando o printf nгo vai fazer diferenзa,
penso que o problema tem haver com a maneira de gravar e de fazer o loading.
"ja agora vai adicionar o printf e depois na janela de comando do server verifica se os id modelos dos carros correspondem mais ou menos ou se sao sempre iguais ou se o id de modelo й sempre o mesmo"

leu ?
й claro que nao faz diferenca
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)