Thread: [Ajuda] Salvar armas
View Single Post
Old 28/09/2019, 05:08 AM   #2
MorteAmerica
Big Clucker
 
MorteAmerica's Avatar
 
Join Date: Feb 2015
Location: Gravatai-RS
Posts: 124
Reputation: 3
Default Re: Salvar armas

PHP Code:
if(dini_Isset("Weapon.ini",PlayerName(playerid))) GivePlayerWeapon(playerid,dini_Int("Weapon.ini",PlayerName(playerid)), 9999); 
para setar arma não é como skin, tem q definir o valor da munição. nestá linha acima coloquei 9999 só pra saber como é, deixando este valor, todas as armas carregadas vão ser setadas com este valor de munição padrão.

PHP Code:
#include <a_samp>
#include <dini>//Include indispensável.

new bool:JaCarregou[MAX_PLAYERS];//Variável que vai dizer se tu ja carregou as armas ou não.

public OnPlayerDisconnect(playeridreason)//O que acontece quando disconecta
{
    new 
Arquivo[128], str[128], weaponidammo;//Variáveis
    
format(Arquivosizeof(Arquivo), "Contas/%s.ini"PlayerName(playerid));//Formatando a variável 'Arquivo' com o caminho onde está salvo as armas.
    //Neste caso aqui, terá que ter uma pasta com nome de 'Contas' dentro da pasta de Scriptfiles. Isto pode ser editado.
    
if(!dini_Exists(Arquivo)) dini_Create(Arquivo);//Verificando se o arquivo .ini de mesmo nome do player existe, se não existir ele cria.
    
for(new 013i++)//Faz uma contagem de 0 á 13 para pegar os dados das armas.
    
{
        
GetPlayerWeaponData(playeridiweaponidammo);//Geta os parametos da arma nas variáveis criadas.
        
format(str,sizeof(str),"Arma - %d"i);//Formata a variável de nome 'str' para saber o id da arma q está salvando. ID definido pela contagem(loop).
        
dini_IntSet(Arquivostrweaponid);//Setando o id da arma no caminho formatado acima.
        
format(strsizeof(str), "Municao - %d"i);//Formata a variável de nome 'str' para saber a munição da arma q está salvando. ID definido pela contagem(loop)
        
dini_IntSet(Arquivostrammo);//Setando a munição da arma no caminho formatado acima
    
}
    return 
1;//Retornando á 1 pois aqui acaba a callback.
}

public 
OnPlayerConnect(playerid)//Quando o player conecta.
{
    
JaCarregou[playerid] = false;//define a variável como falsa, afinal ele acabou de logar e ainda nao carregou as armas
    
return 1;
}

public 
OnPlayerSpawn(playerid)//Quando o player da Spawn(entra no jogo, ou popularmente falando, cai no mapa)
{
    if(!
JaCarregou[playerid])//Verifica se a variável e falsa, por que se for ele precisa carregar as armas.
    
{
        new 
Arquivo[128], str[128], weaponidammo;//Variaveis
        
format(Arquivosizeof(Arquivo), "Contas/%s.ini"PlayerName(playerid));//Formatando a variável 'Arquivo' com o caminho onde está salvo as armas.
        
if(dini_Exists(Arquivo))//Verificando se o arquivo existe, se não existir não faz nada pq não tem o que carregar.
        
{
            
ResetPlayerWeapons(playerid);//Reseta as armas do player pra poder começar a carregar.
            
for(new 013i++)//Faz uma contagem de 0 á 13 para pegar os dados das armas.
            
{
                
format(str,sizeof(str),"Arma - %d"i);//Formata a variavel para saber qual arma carregar.
                
weaponid dini_Int(Arquivostr);//Define que o valor da variável é o mesmo salvo do arquivo.
                
format(str,sizeof(str),"Municao - %d"i);//Formata a variavel para saber qual munição carregar.
                
ammo dini_Int(Arquivostr);//Define que o valor da variável é o mesmo salvo do arquivo.
                
GivePlayerWeapon(playeridweaponidammo);//Seta a arma pro player conforme os parametros armazenados.
            
}
        }
        
JaCarregou[playerid] = true;//Seta a variável como verdadeira, pois ele acabou de carregar as armas.
        //Caso o player morra, nao acontecerá de carregar denovo por conta da verificação.
    
}
    return 
1;
}

stock PlayerName(playerid)//Isto é um code padrão usado para getar o nick do player com mais facilidade. usado nas linhas que formatam a variável 'Arquivo'
{
    new 
Name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridNamesizeof(Name));
    return 
Name;

Fiz correndo mas acho q não tem erros, é uma base boa, e já faz tudo sozinha.
Só por favor leia, deu trabalho kkk

Weaponid = ID da arma
ammo = Munição

Traduzindo fica mais fácil de entender.
__________________
Trabalhos:
DisableMachines
Projetos:
Modern World
MorteAmerica is offline   Reply With Quote