21.02.2012, 12:21
Bom, galera
Eu sou dos velho aqui do SAMP....
talvez tem ai alguem que me conheзa, nao sei....
Tava aqui sem nd para fazer, dai decidi ajudar aqui a comunidade do SAMP
Vou ensinar, neste tutorial, a criar um sistema de salvamento e de PlayerInfo....
E' aquele mesmo que tem la no The GodFather e em outros GM's...
Pode parecer mt complicado, mas na verdade e' bem simples:
Vamos la entao
Primeiramente, vai pensar no que no's queremos salvar. Neste tudo vai ser o seguinte:
:: AdminLevel -> pAdmin
:: Organizaзao -> pOrg
:: Lider -> pLider
:: Dinheiro -> pDinheiro
:: Skin -> pSkin
:: Nome -> pNome
:: Posicao de Spawn -> pCord X
-> pCord Y
-> pCord Z
Depois, vamos la no pawno, e no topo do GM, colocamos:
Agora na public OnPlayerConnect:
temos que ver se o ficheiro existe, e caso nao exista, tem que ser criado um...:
Agora em OnPlayerDisconect, para salvar tudo que o player fez e conquistou quando ele sair do servidor:
agora na public OnPlayerSpawn:
e e' isso, galera
dps e' so vcs estudar, compreender e desenvolver isso ai
Espero ter ajudado
Eu sou dos velho aqui do SAMP....
talvez tem ai alguem que me conheзa, nao sei....
Tava aqui sem nd para fazer, dai decidi ajudar aqui a comunidade do SAMP
Vou ensinar, neste tutorial, a criar um sistema de salvamento e de PlayerInfo....
E' aquele mesmo que tem la no The GodFather e em outros GM's...
Pode parecer mt complicado, mas na verdade e' bem simples:
Vamos la entao
Primeiramente, vai pensar no que no's queremos salvar. Neste tudo vai ser o seguinte:
:: AdminLevel -> pAdmin
:: Organizaзao -> pOrg
:: Lider -> pLider
:: Dinheiro -> pDinheiro
:: Skin -> pSkin
:: Nome -> pNome
:: Posicao de Spawn -> pCord X
-> pCord Y
-> pCord Z
Depois, vamos la no pawno, e no topo do GM, colocamos:
pawn Код:
enum pInfo
{
pAdmin,
pOrg,
pLider,
pDinheiro,
pSkin,
pNome[MAX_PLAYER_NAME],
Float: pX,
Float: pY,
Float: pZ,
}
new PlayerInfo[MAX_PLAYERS][pInfo];
Agora na public OnPlayerConnect:
temos que ver se o ficheiro existe, e caso nao exista, tem que ser criado um...:
pawn Код:
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname)); //pega o nome do player
new file[256];
new string[256];
format(file, sizeof(file), "%s.ini", pname); //pena no nome e "converte" em nome de ficheiro
if(dini_Exists(file)) // verifica se o ficheiro existe
{
SendClientMessage(playerid, 0xFFC800FF, "Vocк estб Registado"); //envia a informacao que esta' registrado
format(string, sizeof(string), "Bem-Vindo de Volta %s", pname);
SendClientMessage(playerid, 0xAF0000FF, string);//envia mensagem de boas vindas
PlayerInfo[playerid][pAdmin] = dini_Int(file, "pAdmin");
PlayerInfo[playerid][pOrg] = dini_Int(file, "pOrg");
PlayerInfo[playerid][pLider] = dini_Int(file, "pLider");
PlayerInfo[playerid][pDinheiro] = dini_Int(file, "pDinheiro");
PlayerInfo[playerid][pSkin] = dini_Int(file, "pSkin");
PlayerInfo[playerid][pNome] = dini_Int(file, "pNome");
PlayerInfo[playerid][pX] = dini_Int(file, "pX");
PlayerInfo[playerid][pY] = dini_Int(file, "pY");
PlayerInfo[playerid][pZ] = dini_Int(file, "pZ");
}
else //se o player nao estб registado
{
dini_Create(file);//Cria Ficheiro
dini_IntSet(file, "pAdmin", 0); //Admin Nivel 0
dini_IntSet(file, "pOrg", 0); //Sem ORG
dini_IntSet(file, "pLider", 0);//Nao e' lider
dini_IntSet(file, "pDinheiro", 1000); //coloca 1000$ de dinheiro
dini_IntSet(file, "pSkin", 299); //Seleciona e salva com a skin 299
dini_Set(file, "pNome", "Cristiano Ronaldo"); //Salva Nome como "Cristiano Ronaldo"
dini_FloatSet(file, "pX", -1964.5994); //Cord x
dini_FloatSet(file, "pY", 541.0098);// Cord Y
dini_FloatSet(file, "pZ", 35.1719); // Cord Z
SendClientMessage(playerid, 0x0069FFFF, "Conta em seu nome Criada");
OnPlayerConnect(playerid);//Chama a public novamente
}
Agora em OnPlayerDisconect, para salvar tudo que o player fez e conquistou quando ele sair do servidor:
pawn Код:
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));//pega o nome do player
new file[256];
format(file, sizeof(file), "%s.ini", pname);//transforma o nome e ficheiro
new Float: X, Float: Y, Float: Z;
GetPlayerPos(playerid, X, Y, Z);//pega a posicao do player
dini_IntSet(file, "pAdmin", PlayerInfo[playerid][pAdmin]);//salca o Admin Nivel
dini_IntSet(file, "pOrg", PlayerInfo[playerid][pOrg]); //salva a org do player
dini_IntSet(file, "pLider", PlayerInfo[playerid][pLider]); //salva se e lider e qual
dini_IntSet(file, "pDinheiro", GetPlayerMoney(playerid)); // salva o dinheiro que o player tem
dini_IntSet(file, "pSkin", GetPlayerSkin(playerid) ); //salva a skin que o player esta a usar
dini_Set( file, "pNome", PlayerInfo[playerid][pLevel]); //salva a nota "Nome" (neste caso: "Cristiano Ronaldo")
dini_FloatSet(file, "pX", X);//cordenada X
dini_FloatSet(file, "pY", Y);//Cordenada Y
dini_FloatSet(file, "pZ", Z);//Cordenada Z
return 1;
}
agora na public OnPlayerSpawn:
pawn Код:
ResetPlayerMoney(playerid);//reseta o dinheiro do player
GivePlayerMoney(playerid, PlayerInfo[playerid][pDinheiro]);//da o dinheiro ao player
SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);//Seta a Skin do player
SetPlayerPos(playerid, PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ]);
e e' isso, galera
dps e' so vcs estudar, compreender e desenvolver isso ai
Espero ter ajudado