[Ajuda] Salvar armas
#1

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://sampforum.blast.hk/showthread.php?tid=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
Reply
#2

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.
Reply
#3

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 ?
Reply
#4

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.
Reply
#5

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
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)