SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 28/09/2019, 04:02 AM   #1
SrGhost
Big Clucker
 
SrGhost's Avatar
 
Join Date: Jun 2019
Location: Uberlandia-MG
Posts: 71
Reputation: 5
Exclamation Salvar armas

Ola estou com um problema em salvar armas estou usando o Dini para salvar mas
esta dando uma Warning chato na minha GM eu segui o tutorial do ipsBruno

https://forum.sa-mp.com/showthread.php?t=143657

as codes sao

Em OnPlayerSpawn:


PHP Code:
if(dini_Isset("Weapon.ini",PlayerName(playerid))) GivePlayerWeapon(playerid,dini_Int("Weapon.ini",PlayerName(playerid))); 

em OnPlayerDisconnect:

PHP Code:
dini_IntSet("Weapon.ini",PlayerName(playerid),GetPlayerWeapon(playerid)); 
Em OnGameModeInit:[b]

PHP Code:
if(!fexist("Weapon.ini")) dini_Create("Weapon.ini"); 
e no fim da GM

PHP Code:
stock PlayerName(playerid)
{
new 
Name[MAX_PLAYERS];
GetPlayerName(playeridNamesizeof(Name));
return 
Name;


agora vamos a Warning

PHP Code:
 warning 202number of arguments does not match definition 
linha da Warning

PHP Code:
public OnPlayerSpawn(playerid)
{
    if(
dini_Isset("Weapon.ini",PlayerName(playerid))) GivePlayerWeapon(playerid,dini_Int("Weapon.ini",PlayerName(playerid)));

    
GangZoneShowForPlayer(playeridSPAWN0x00FF40FD);
    return 
1;

Se poder ajudar ficarei grato
SrGhost is offline   Reply With Quote
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
Old 28/09/2019, 05:40 AM   #3
SrGhost
Big Clucker
 
SrGhost's Avatar
 
Join Date: Jun 2019
Location: Uberlandia-MG
Posts: 71
Reputation: 5
Question Re: Salvar armas

Quote:
Originally Posted by MorteAmerica View Post
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.
opah vlw era justamente disso q precisava kkk me salvou e valeu seu esforço pois eu lee sua explicaçao e me ajudou a aprender um pouco mais mas deu um erro acontece que esta salvando a arma no banco de dados

PHP Code:
[PHP]senha 07122003
score 
1
dinheiro 
900
admin 
5
skin 
29
Arma 
0=0
Municao 
0=0
Arma 
1=0
Municao 
1=0
Arma 
2=0
Municao 
2=0
Arma 
3=0
Municao 
3=0
Arma 
4=0
Municao 
4=0
Arma 
5=0
Municao 
5=0
Arma 
6=0
Municao 
6=0
Arma 
7=0
Municao 
7=0
Arma 
8=0
Municao 
8=0
Arma 
9=0
Municao 
9=0
Arma 
10=0
Municao 
10=0
Arma 
11=0
Municao 
11=0
Arma 
12=0
Municao 
12=
[/PHP]

mas quando saio do serve e entro dnv ele nao carrega as armas Voce consegue me ajudar ?
SrGhost is offline   Reply With Quote
Old 28/09/2019, 05:47 AM   #4
MorteAmerica
Big Clucker
 
MorteAmerica's Avatar
 
Join Date: Feb 2015
Location: Gravatai-RS
Posts: 124
Reputation: 3
Default Re: Salvar armas

Está salvando no banco de dados pq eu defini como diretório padrão a pasta Contas e o arquivo com o nome do player.
Se quiser mudar é so procurar por "Contas/%s.ini"
Mudando onde está contas, mudará a pasta que salva e carrega as armas salvas. Tem que mudar as duas linhas q formatam a variável arquivo. Se mudar apenas uma, vai salvar em um lugar e carregar em outro.

Pelo arquivo que vi ali acima, da sua conta, você nao estava com nenhuma arma quando deslogou, está tudo em 0.

Lembrando que se Mudar o nome de Contas, a pasta tem q estar criada se não, não irá salvar.

loga no servidor, seta armas e desloga, loga denovo e ve se elas voltam. Pode ser algum conflito com algum code que já está no servidor, tira uma print e de onde colocou eles, na GM.
__________________
Trabalhos:
DisableMachines
Projetos:
Modern World
MorteAmerica is offline   Reply With Quote
Old 28/09/2019, 05:54 AM   #5
SrGhost
Big Clucker
 
SrGhost's Avatar
 
Join Date: Jun 2019
Location: Uberlandia-MG
Posts: 71
Reputation: 5
Exclamation Re: Salvar armas

Quote:
Originally Posted by MorteAmerica View Post
Está salvando no banco de dados pq eu defini como diretório padrão a pasta Contas e o arquivo com o nome do player.
Se quiser mudar é so procurar por "Contas/%s.ini"
Mudando onde está contas, mudará a pasta que salva e carrega as armas salvas. Tem que mudar as duas linhas q formatam a variável arquivo. Se mudar apenas uma, vai salvar em um lugar e carregar em outro.

Pelo arquivo que vi ali acima, da sua conta, você nao estava com nenhuma arma quando deslogou, está tudo em 0.
sim antes eu fiz o teste e nao consegui... uso pasta padrao mesmo mas quando olho ta com a arma la ai quando logo nao aparece !!

PHP Code:
senha 07122003
score 
1
dinheiro 
900
admin 
5
skin 
29
Arma 
0=0
Municao 
0=0
Arma 
1=0
Municao 
1=0
Arma 
2=0
Municao 
2=0
Arma 
3=0
Municao 
3=0
Arma 
4=0
Municao 
4=0
Arma 
5=0
Municao 
5=0
Arma 
6=0
Municao 
6=0
Arma 
7=38
Municao 
7=600
Arma 
8=0
Municao 
8=0
Arma 
9=0
Municao 
9=0
Arma 
10=0
Municao 
10=0
Arma 
11=0
Municao 
11=0
Arma 
12=0
Municao 
12=
Se quiser testar 191.55.54.44:7777
SrGhost is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] Sistema de salvar armas FilipiMelo Português/Portuguese 5 06/03/2018 01:22 AM
[Pedido] FS de Salvar Armas Agamaster Português/Portuguese 0 09/12/2013 04:57 PM
[ajuda] salvar skin armas etc... gabriel_matador Português/Portuguese 2 05/12/2011 09:27 PM
[FilterScript] [FS]Sistema de salvar armas ::Caio:: Lançamentos/Releases 23 15/03/2011 12:20 AM


All times are GMT. The time now is 06:56 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.