Sistema de Salvamento De Tunagens - Jamis2002 - 24/05/2022
Boa Tarde, Eu Tenho Um Sistema Que Salva E Carrega A Tunagem Dos Veículos Tranquilamente, So Que Tem Um Pequeno Problema,
Toda vez Que Eu Conecto Um Veículo ( Nesse Caso, Eu Crio Ele Em Um Conjunto de Posições), ele Vem Com Todas As Modificações Exceto o
Mod10 Que Esta Como Left Side Skirt, Fiz Alguns Testes E Constatei que:
1 - Quando vc Desconecta (Destroi) e Conecta (Cria) Dnv Ele Volta Com Os Mods Normalmente, Se RE-Spawnar Tbm, ele volta Normal.
2 - Ja Tentei Trocar A Ordem De Funções Mas o Veículo Volta Stock (Sem Nenhum Mod Instalado) e Se Caso Vc RE-Spawne Ele, ele volta Sem o Mod10.
3 - Ja Tentei Tbm Adicionar o Componente á Parte, Mas Sem Sucesso...
Como Posso Fazer Pra Toda Vez Que Eu Puxa-lo Ele Voltar Sem Faltar Nenhuma Modificação?
Trecho Do Código + Funções De Tunagem:
Código PHP: if(pInfo[playerid][VehConetado] == true) return SendClientMessage(playerid, COR_ERRO, "| ERRO | Seu Veiculo Já Está Conectado"); new Float:Pos[4], VehPlate[11], Float:KMs, Float:VehLife; format(String, sizeof(String), "Contas/%s.ini", pName(playerid)); new pVeh = DOF2::GetInt(String, "Veiculo"); Cor1[playerid] = DOF2::GetInt(String, "Cor1"); Cor2[playerid] = DOF2::GetInt(String, "Cor2"); new Fuel = DOF2::GetInt(String, "Combustivel"); KMs = DOF2_GetFloat(String, "KM Rodados"); VehLife = DOF2_GetFloat(String, "VidaVeh"); Pos[0] = DOF2_GetFloat(String, "XVeh"); Pos[1] = DOF2_GetFloat(String, "YVeh"); Pos[2] = DOF2_GetFloat(String, "ZVeh"); Pos[3] = DOF2_GetFloat(String, "RotVeh"); format(VehPlate, sizeof(VehPlate), "%s", DOF2::GetString(String, "PlacaVeh")); pInfo[playerid][VeiculoPessoal] = CreateVehicle(pVeh, Pos[0], Pos[1], Pos[2], Pos[3], Cor1[playerid], Cor2[playerid], -1); LoadMods(playerid, pInfo[playerid][VeiculoPessoal]); TunningVeh(playerid, pInfo[playerid][VeiculoPessoal]); Combustivel[pInfo[playerid][VeiculoPessoal]] = Fuel; SetVehicleHealth(pInfo[playerid][VeiculoPessoal], VehLife); SetVehicleNumberPlate(pInfo[playerid][VeiculoPessoal], VehPlate); MetrosRODADOS[pInfo[playerid][VeiculoPessoal]] = 0; KmRODADOS2[pInfo[playerid][VeiculoPessoal]] = KMs; pInfo[playerid][VehConetado] = true; SendClientMessage(playerid, COR_VERDE, "| INFO | Veiculo Conectado Com Sucesso!");
Código PHP: // Salvamento / Carregamento Dos Mods stock SaveMods(playerid, vehicleid) { format(String, sizeof(String), "Contas/%s.ini", pName(playerid)); if(DOF2_FileExists(String)) { DOF2_SetInt(String,"Mod1",TunningCar[vehicleid][mod1]); DOF2_SetInt(String,"Mod2",TunningCar[vehicleid][mod2]); DOF2_SetInt(String,"Mod3",TunningCar[vehicleid][mod3]); DOF2_SetInt(String,"Mod4",TunningCar[vehicleid][mod4]); DOF2_SetInt(String,"Mod5",TunningCar[vehicleid][mod5]); DOF2_SetInt(String,"Mod6",TunningCar[vehicleid][mod6]); DOF2_SetInt(String,"Mod7",TunningCar[vehicleid][mod7]); DOF2_SetInt(String,"Mod8",TunningCar[vehicleid][mod8]); DOF2_SetInt(String,"Mod9",TunningCar[vehicleid][mod9]); DOF2_SetInt(String,"Mod10",TunningCar[vehicleid][mod10]); DOF2_SetInt(String,"Mod11",TunningCar[vehicleid][mod11]); DOF2_SetInt(String,"Mod12",TunningCar[vehicleid][mod12]); DOF2_SetInt(String,"Mod13",TunningCar[vehicleid][mod13]); DOF2_SetInt(String,"Mod14",TunningCar[vehicleid][mod14]); DOF2_SetInt(String,"Mod15",TunningCar[vehicleid][mod15]); DOF2_SetInt(String,"Mod16",TunningCar[vehicleid][mod16]); DOF2_SetInt(String,"Mod17",TunningCar[vehicleid][mod17]); DOF2_SetInt(String,"PaintJob",TunningCar[vehicleid][PaintJob]); DOF2_SaveFile(); } else { DOF2_SetInt(String,"Mod1",TunningCar[vehicleid][mod1]); DOF2_SetInt(String,"Mod2",TunningCar[vehicleid][mod2]); DOF2_SetInt(String,"Mod3",TunningCar[vehicleid][mod3]); DOF2_SetInt(String,"Mod4",TunningCar[vehicleid][mod4]); DOF2_SetInt(String,"Mod5",TunningCar[vehicleid][mod5]); DOF2_SetInt(String,"Mod6",TunningCar[vehicleid][mod6]); DOF2_SetInt(String,"Mod7",TunningCar[vehicleid][mod7]); DOF2_SetInt(String,"Mod8",TunningCar[vehicleid][mod8]); DOF2_SetInt(String,"Mod9",TunningCar[vehicleid][mod9]); DOF2_SetInt(String,"Mod10",TunningCar[vehicleid][mod10]); DOF2_SetInt(String,"Mod11",TunningCar[vehicleid][mod11]); DOF2_SetInt(String,"Mod12",TunningCar[vehicleid][mod12]); DOF2_SetInt(String,"Mod13",TunningCar[vehicleid][mod13]); DOF2_SetInt(String,"Mod14",TunningCar[vehicleid][mod14]); DOF2_SetInt(String,"Mod15",TunningCar[vehicleid][mod15]); DOF2_SetInt(String,"Mod16",TunningCar[vehicleid][mod16]); DOF2_SetInt(String,"Mod17",TunningCar[vehicleid][mod17]); DOF2_SetInt(String,"PaintJob",TunningCar[vehicleid][PaintJob]); DOF2_SaveFile(); } return 0; }
stock LoadMods(playerid, vehicleid) { format(String, sizeof(String), "Contas/%s.ini", pName(playerid)); if(DOF2_FileExists(String)) { TunningCar[vehicleid][mod1] = DOF2_GetInt(String, "Mod1"); TunningCar[vehicleid][mod2] = DOF2_GetInt(String, "Mod2"); TunningCar[vehicleid][mod3] = DOF2_GetInt(String, "Mod3"); TunningCar[vehicleid][mod4] = DOF2_GetInt(String, "Mod4"); TunningCar[vehicleid][mod5] = DOF2_GetInt(String, "Mod5"); TunningCar[vehicleid][mod6] = DOF2_GetInt(String, "Mod6"); TunningCar[vehicleid][mod7] = DOF2_GetInt(String, "Mod7"); TunningCar[vehicleid][mod8] = DOF2_GetInt(String, "Mod8"); TunningCar[vehicleid][mod9] = DOF2_GetInt(String, "Mod9"); TunningCar[vehicleid][mod10] = DOF2_GetInt(String, "Mod10"); TunningCar[vehicleid][mod11] = DOF2_GetInt(String, "Mod11"); TunningCar[vehicleid][mod12] = DOF2_GetInt(String, "Mod12"); TunningCar[vehicleid][mod13] = DOF2_GetInt(String, "Mod13"); TunningCar[vehicleid][mod14] = DOF2_GetInt(String, "Mod14"); TunningCar[vehicleid][mod15] = DOF2_GetInt(String, "Mod15"); TunningCar[vehicleid][mod16] = DOF2_GetInt(String, "Mod16"); TunningCar[vehicleid][mod17] = DOF2_GetInt(String, "Mod17"); TunningCar[vehicleid][PaintJob] = DOF2_GetInt(String, "PaintJob"); } return 0; }
stock TunningVeh(playerid, vehicleid) { new Account[60]; format(Account, sizeof(Account), "Contas/%s.ini", pName(playerid)); if(DOF2_FileExists(Account)) { if(TunningCar[vehicleid][mod1] != 0) { AddVehicleComponent(vehicleid,TunningCar[vehicleid][mod1]); } if(TunningCar[vehicleid][mod2] != 0) { AddVehicleComponent(vehicleid,TunningCar[vehicleid][mod2]); } if(TunningCar[vehicleid][mod3] != 0) { AddVehicleComponent(vehicleid,TunningCar[vehicleid][mod3]); } if(TunningCar[vehicleid][mod4] != 0) { AddVehicleComponent(vehicleid,TunningCar[vehicleid][mod4]); } if(TunningCar[vehicleid][mod5] != 0) { AddVehicleComponent(vehicleid,TunningCar[vehicleid][mod5]); } if(TunningCar[vehicleid][mod6] != 0) { AddVehicleComponent(vehicleid,TunningCar[vehicleid][mod6]); } if(TunningCar[vehicleid][mod7] != 0) { AddVehicleComponent(vehicleid,TunningCar[vehicleid][mod7]); } if(TunningCar[vehicleid][mod8] != 0) { AddVehicleComponent(vehicleid,TunningCar[vehicleid][mod8]); } if(TunningCar[vehicleid][mod9] != 0) { AddVehicleComponent(vehicleid,TunningCar[vehicleid][mod9]); } if(TunningCar[vehicleid][mod10] != 0) { AddVehicleComponent(vehicleid,TunningCar[vehicleid][mod10]); } if(TunningCar[vehicleid][mod11] != 0) { AddVehicleComponent(vehicleid,TunningCar[vehicleid][mod11]); } if(TunningCar[vehicleid][mod12] != 0) { AddVehicleComponent(vehicleid,TunningCar[vehicleid][mod12]); } if(TunningCar[vehicleid][mod13] != 0) { AddVehicleComponent(vehicleid,TunningCar[vehicleid][mod13]); } if(TunningCar[vehicleid][mod14] != 0) { AddVehicleComponent(vehicleid,TunningCar[vehicleid][mod14]); } if(TunningCar[vehicleid][mod15] != 0) { AddVehicleComponent(vehicleid,TunningCar[vehicleid][mod15]); } if(TunningCar[vehicleid][mod16] != 0) { AddVehicleComponent(vehicleid,TunningCar[vehicleid][mod16]); } if(TunningCar[vehicleid][mod17] != 0) { AddVehicleComponent(vehicleid,TunningCar[vehicleid][mod17]); } if(TunningCar[vehicleid][PaintJob] != 0) { ChangeVehiclePaintjob(vehicleid, TunningCar[vehicleid][PaintJob]); } } return 1; }
RE: Sistema de Salvamento De Tunagens - ZiringueJhonsom - 26/05/2022
Aonde vc esta chamando a stock TunningVeh?, provavelmente vc não esta limpando as variáveis e quando o veiculo respawna ou e destruído ele volta da mesma forma,
limpar as variáveis TunningCar na OnVehicleSpawn e OnVehicleDeath, podem resolver o problema e não esquece de salvar de novo dps.
RE: Sistema de Salvamento De Tunagens - Jamis2002 - 28/05/2022
(26/05/2022 13:30)ZiringueJhonsom Escreveu: Aonde vc esta chamando a stock TunningVeh?, provavelmente vc não esta limpando as variáveis e quando o veiculo respawna ou e destruído ele volta da mesma forma,
limpar as variáveis TunningCar na OnVehicleSpawn e OnVehicleDeath, podem resolver o problema e não esquece de salvar de novo dps.
Ok, Eu chamo Essa Stock Quando Eu Conecto (Crio) Um Veículo e tbm em OnVehicleSpawn qnd ele é Re-spawnado.
Como Posso Limpar As Variáveis, Igualando Todas A Zero?
RE: Sistema de Salvamento De Tunagens - Carlos Victor - 29/05/2022
(28/05/2022 09:56)Jamis2002 Escreveu: (26/05/2022 13:30)ZiringueJhonsom Escreveu: Aonde vc esta chamando a stock TunningVeh?, provavelmente vc não esta limpando as variáveis e quando o veiculo respawna ou e destruído ele volta da mesma forma,
limpar as variáveis TunningCar na OnVehicleSpawn e OnVehicleDeath, podem resolver o problema e não esquece de salvar de novo dps.
Ok, Eu chamo Essa Stock Quando Eu Conecto (Crio) Um Veículo e tbm em OnVehicleSpawn qnd ele é Re-spawnado.
Como Posso Limpar As Variáveis, Igualando Todas A Zero?
Use algo relacionado a dummy reset, é basicamente você setar uma variável para os valores padrões de uma enum.
Código: enum E_PLAYER
{
E_PASSWORD[16],
E_MONEY,
E_SCORE
};
new playerData[MAX_PLAYERS][E_PLAYER];
resetAccount(playerid)
{
new dummy[E_PLAYER];
playerData[playerid] = dummy;
//Todos os valores padrões da enum 'E_PLAYER' são setadas em 'dummy' e logo em seguida eu seto a variável 'dummy' na variável que armazena a num 'E_PLAYER' assim resetando toda enum pros valores padrões.
return 1;
}
|