Originally Posted by MorteAmerica
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(playerid, reason)//O que acontece quando disconecta
{
new Arquivo[128], str[128], weaponid, ammo;//Variбveis
format(Arquivo, sizeof(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 i = 0; i < 13; i++)//Faz uma contagem de 0 б 13 para pegar os dados das armas.
{
GetPlayerWeaponData(playerid, i, weaponid, ammo);//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(Arquivo, str, weaponid);//Setando o id da arma no caminho formatado acima.
format(str, sizeof(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(Arquivo, str, ammo);//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], weaponid, ammo;//Variaveis
format(Arquivo, sizeof(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 i = 0; i < 13; i++)//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(Arquivo, str);//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(Arquivo, str);//Define que o valor da variбvel й o mesmo salvo do arquivo.
GivePlayerWeapon(playerid, weaponid, ammo);//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(playerid, Name, sizeof(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.
|