04/12/2023 14:52
(Esta mensagem foi modificada pela última vez a: 04/12/2023 14:53 por Carlos Victor.)
(04/12/2023 13:21)L10motos Escreveu: Eu não sei mais o que fazer, estou ficando desgastado, bugs simples e complexos dificies de encontrar, o problema que estou tendo é o seguinte, o arquivo esta deletando e não cria um arquivo novo, recentemente tirei um bug "eu acho", o valor estava sendo definido como zero.- O problema aqui justamente na ordem dos códigos, como eu disse ontem em um tópico seu, o compilador e o Pawn lê os códigos de cima para baixo, então primeiro vai chamar as funções SaveTurfsOwner(), SaveSafes(), DOF2_Exit(), SaveOganizations e o problema está justamente aí, você está executando a função DOF2_Exit antes de usar por completo no código, já que a função SaveOrganizations utiliza o DOF2 para salvar.
errado:
Citar:public OnGameModeExit()
{
SaveTurfsOwner();
SaveSafes();
DOF2_Exit();
SaveOrganizations();
return 1;
}
certo:
Citar:public OnGameModeExit()
{
SaveTurfsOwner();
SaveSafes();
SaveOrganizations();
DOF2_Exit();
return 1;
}
O que mudou? DOF2 estava antes de SaveOrganizations, ae coloquei depois de DOF2_Exit, ae parou de resetar os arquivos. "Eu acho"
Você deve descarregar o DOF2 por último, como fez no exemplo correto.
Citar:Qual o problema que enfrento agora? O problema é que o arquivo está sendo excluido mais não cria outro, ae fica faltando o arquivo, e na hora de carregar não existe o arquivo dentro da scriptfiles, é foda, por que no codigo abaixo, o sistema dof2 exclui o arquivo e depois cria, mais será que é isso?- O problema nessa parte está justamente em:
Será que não está dando tempo de criar o arquivo? Isso acontece muito das vezes que desligo o servidor. Fecho o prontdecmd.
Código PHP:forward SaveOrganizations();
public SaveOrganizations()
{
new file[64], string[64];
for(new f = 1; f < MAX_TEAMS; f++)
{
format(file, sizeof(file), "general/teams/team-%02d.ini", f);
if(!DOF2_FileExists(file)) DOF2_CreateFile(file);
DOF2_RemoveFile(file);
DOF2_CreateFile(file);
for(new i = 1; i < MAX_MEMBERS; i++)
{
format(string, sizeof(string), "Member%02d",i);
DOF2_SetString(file, string, Org_Member[f][i]);
format(string, sizeof(string), "Cargo%02d",i);
DOF2_SetInt(file, string, Org_Position[f][i]);
}
DOF2_SetString(file, "Name", Org_Name[f]);
DOF2_SetInt(file, "Type", Org_Type[f]);
DOF2_SetFloat(file, "X", Org_X[f]);
DOF2_SetFloat(file, "Y", Org_Y[f]);
DOF2_SetFloat(file, "Z", Org_Z[f]);
DOF2_SetFloat(file, "EntX", Org_EntX[f]);
DOF2_SetFloat(file, "EntY", Org_EntY[f]);
DOF2_SetFloat(file, "EntZ", Org_EntZ[f]);
DOF2_SetFloat(file, "ExitX", Org_ExitX[f]);
DOF2_SetFloat(file, "ExitY", Org_ExitY[f]);
DOF2_SetFloat(file, "ExitZ", Org_ExitZ[f]);
DOF2_SetInt(file, "ExitI", Org_ExitI[f]);
DOF2_SetFloat(file, "CatX", Org_CatX[f]);
DOF2_SetFloat(file, "CatY", Org_CatY[f]);
DOF2_SetFloat(file, "CatZ", Org_CatZ[f]);
DOF2_SetInt(file, "CatOpen", Org_CatOpen[f]);
DOF2_SetInt(file, "World", Org_W[f]);
DOF2_SetInt(file, "Int", Org_W[f]);
DOF2_SetString(file, "CargoName1", Org_PositionName[f][0]);
DOF2_SetString(file, "CargoName2", Org_PositionName[f][1]);
DOF2_SetString(file, "CargoName3", Org_PositionName[f][2]);
DOF2_SetString(file, "CargoName4", Org_PositionName[f][3]);
DOF2_SetString(file, "CargoName5", Org_PositionName[f][4]);
DOF2_SetString(file, "CargoName6", Org_PositionName[f][5]);
DOF2_SetInt(file, "Skin01", Org_Skin[f][0]);
DOF2_SetInt(file, "Skin02", Org_Skin[f][1]);
DOF2_SetInt(file, "Skin03", Org_Skin[f][2]);
DOF2_SetInt(file, "Skin04", Org_Skin[f][3]);
DOF2_SetInt(file, "Skin05", Org_Skin[f][4]);
DOF2_SetHex(file, "Color", Org_Color[f]);
DOF2_SetFloat(file, "GaragemX", Org_GarageX[f]);
DOF2_SetFloat(file, "GaragemY", Org_GarageY[f]);
DOF2_SetFloat(file, "GaragemZ", Org_GarageZ[f]);
DOF2_SetFloat(file, "GaragemA", Org_GarageA[f]);
DOF2_SetInt(file, "GaragemActived", Org_GarageActived[f]);
DOF2_SetInt(file, "Warning", ORG_WARNING[f]);
DOF2_SetInt(file, "Vaga", ORG_VAGA[f]);
DOF2_SetInt(file, "respect", org_respect[f]);
DOF2_SetInt(file, "activities", org_activities[f]);
DOF2_SetInt(file, "weaponact", org_weaponact[f]);
DOF2_SetInt(file, "attack", AttackTerritory[f]);
for(new z = 0; z < max_subsection_members; ++z)
{
format(string, sizeof(string), "sub1_members-%d", z); DOF2_SetString(file, string, subsection1_members[f][z]);
format(string, sizeof(string), "sub2_members-%d", z); DOF2_SetString(file, string, subsection2_members[f][z]);
}
DOF2_SetString(file, "sub1_name", subsection1_name[f]);
DOF2_SetString(file, "sub2_name", subsection2_name[f]);
DOF2_SetInt(file, "sub1maxmember", subsection1_maxmember[f]);
DOF2_SetInt(file, "sub2maxmember", subsection2_maxmember[f]);
DOF2_SaveFile();
format(file, sizeof(file), "general/teams/team-%02d-vehicles.ini", f);
if(!DOF2_FileExists(file)) DOF2_CreateFile(file);
DOF2_RemoveFile(file); //aqui deleta o arquivo
DOF2_CreateFile(file); //aqui cria o arquivo (sera que não está dando tempo para criar?)
for(new c = 0; c < MAX_ORG_CARS; ++c)
{
new slot = c+1;
format(string, sizeof(string), "Carro%dM", slot);
DOF2_SetInt(file, string, ORG_vMODEL[f][c]);
format(string, sizeof(string), "Carro%dX", slot);
DOF2_SetFloat(file, string, ORG_VEHICLE_PX[f][c]);
format(string, sizeof(string), "Carro%dY", slot);
DOF2_SetFloat(file, string, ORG_VEHICLE_PY[f][c]);
format(string, sizeof(string), "Carro%dZ", slot);
DOF2_SetFloat(file, string, ORG_VEHICLE_PZ[f][c]);
format(string, sizeof(string), "Carro%dA", slot);
DOF2_SetFloat(file, string, ORG_VEHICLE_PA[f][c]);
format(string, sizeof(string), "Carro%dC1", slot);
DOF2_SetInt(file, string, ORG_VEHICLE_C1[f][c]);
format(string, sizeof(string), "Carro%dC2", slot);
DOF2_SetInt(file, string, ORG_VEHICLE_C2[f][c]);
format(string, sizeof(string), "Carro%dwheels", slot);
DOF2_SetInt(file, string, ORG_VEHICLE_HIDRAULIC[f][c]);
format(string, sizeof(string), "Carro%dhidra", slot);
DOF2_SetInt(file, string, ORG_VEHICLE_WHEELS[f][c]);
format(string, sizeof(string), "Carro%dspoiler", slot);
DOF2_SetInt(file, string, ORG_VEHICLE_SPOILER[f][c]);
format(string, sizeof(string), "Carro%dpack", slot);
DOF2_SetInt(file, string, ORG_VEHICLE_PACK[f][c]);
format(string, sizeof(string), "Carro%dpaintjob", slot);
DOF2_SetInt(file, string, ORG_VEHICLE_PAINTJOB[f][c]);
}
DOF2_SaveFile();
}
return 1;
}
Código PHP:
format(file, sizeof(file), "general/teams/team-%02d.ini", f);
if(!DOF2_FileExists(file))
DOF2_CreateFile(file);
DOF2_RemoveFile(file);
DOF2_CreateFile(file);
Também isso é meio que inútil, se você não tiver controle sobre facções apagadas é compreensível colocar esse código, mas se a facção é apagada por algo específico, não precisa ficar esse código dinâmico para verificar e criar se existir, além do mais, se apagado é por algum motivo, o arquivo simplesmente não vai apagar sozinho.
Aproveitando o tópico, não sei se esse GM que você está utilizando é da internet, ou se você está fazendo um do zero. Mas uma dica que eu gostaria de ter recebido quando eu estava iniciando era esquecer o DOF2/Dini e focar no SQL, hoje eu sei, mas se eu tivesse aprendido no meu inicio em 2019 com certeza eu teria aproveitado muito mais do que fiz durante essa minha caminhada.
Se eu fosse você, aprenderia SQL e sei lá, inicialmente cria um servidor em SQLite e posteriormente quando estiver sabendo legal vai pro MySQL, assim, de inicio pode ser complicado, mas vai valer a pena, não só no SAMP, mas se você quiser seguir carreira como programador, saiba que você não vai encontrar um DOF2 na vida em um desenvolvimento de um site.