(26/05/2021 16:31)ProKillerPa Escreveu: Boa tarde! Bom, primeiramente voce precisa salvar os veiculos ( quando comprados na concessionaria, por exemplo ), por ordem de número.
Exemplo:
Código PHP:0.ini > carro do joãozinho
1.ini > carro do matheus
etc....
Posteriormente, quando o player logar no servidor, voce fará um loop que começa em 0 e vai até um numero MAX de veiculos que voce definiu ( Nao MAX_VEHICLES ).
Aí voce verifica se o arquivo .ini existe, e após isso voce verifica se o nome do player condiz com o nome no arquivo encontrado, e se sim, spawna o veiculo.
Veja:
Código PHP:for(new i; i < MAX_VEH_CONCE; i++){
format(ff, sizeof(ff), CONCE, i);
if(DOF2::FileExists(ff)){
format(Conce[i][Dono], 24, DOF2::GetString(ff, "Dono")); // Carreguei o que está em Dono no arquivo .ini
if(strcmp(NomePQP(playerid), Conce[i][Dono], true) == 0){ // Comparei se o jogador é dono do veiculo
// Aqui voce vai criar o veiculo:
VAR_Da_Enum_Que_Armazena_O_ID_Do_Veiculo[i] = createv......
// caso o jogador só possa ter um veiculo, use um break; pro loop não girar em vão.
}
}
}
E Pra verificar se o jogador é dono do veiculo ao entrar nele, basta fazer o seguinte:
Código PHP:for(new i; i < MAX_VEH_CONCE; i++){
if(vehicleid == VAR_Da_Enum_Que_Armazena_O_ID_Do_Veiculo[i]){
if(strcmp(NomePQP(playerid), Conce[i][Dono], true) == 0){
// jogador é dono
} else SendClientMessage(playerid, -1, "Voce nao e o dono."); // aqui vc faz o que quiser com o jogador.
break;
}
}
bom eu tb uso dessa forma porem eu fiz de um jeito um pouquinho mas otimizado basta vc fazer um count a cada vez que um carro é criado pela conce ou seja Count+1 e logo em seguida usar o valor de count no lugar MAX_VEH_CONCE
Pois se essa define for declarada por exemplo MAX_VEH_CONCE 1000 sendo que na pasta no momento só está criado 5 carros, assim o loop irá contar de 0 até 1000 mesmo passando da quantidade de carros criados atualmente, tornando a ação um pouco mais demorada, pois se esse loop for chamado diversas vezes ao mesmo tempo o servidor perderá desempenho.