27.09.2013, 00:18
Gostaria de um tutorial otimo de dof2 pois eu queria salvar os empregos do meu sever .... ja fui em todos do gooogle e tb tenho uma pergunta quem e melhor dof2 ou dini ?
#include <a_samp>
#include <DOF2>
//VO SALVAR SKIN NO MINI TUTO *u*
//~~SKIN
//ACHO QUE JA ESTA BOM POIS Й SO UM SIMPLES TUTORIAL! ^^
//AGORA E SУ VOCК CRIAR UMA ENUM (POIS NГO LEMBRO O NOME CORRETO)
//E UMA NEW (TBM NГO LEMBRO O NOME CORRETO!)
enum pInfo // CRIA A ENUM
{//AKI ABRIMOS A ENUM(ACHO QUE Й NE ^^)
pSkin, //AQUI Й A SKIN DГ
};//AKI FEXAMOS A ENUM '-'
//AGORA VOCК VAI CRIAR A NEW PLAYERINFO (ISSO IRA NOS AJUDAR MAIS PRA FRENTE...)
new PlayerInfo[MAX_PLAYERS][pInfo];
// PARA QUANDO O PLAYER LOGAR E VERIFICAR SE OS DADOS EXISTEM OU NГO VAMOS
//USAR A FUNЗГO DA DOF2 CHAMADAD "DOF2_FileExists" ELA VERIFICA NA PASTA SCRIPTFILES
//SE O ARQUIVO EXISTE OU NГO!
// ISSO TEM QUE SER FEITO NA CALLBACK ONPLAYERCONNECT!!
public OnPlayerConnect(playerid)
{
//VOCК CRIAR UMA NEW CHAMADA FILE QUE SERVE PARA DEFINIR O ARQUIVO..
//E OUTRA CHAMADA SENDERNAME PARA PEGAR O NOME DO PLAYER!
new File[70], sendername[MAX_PLAYER_NAME];
//VAMO USAR AGORA A FUNЗГO GETPLAYERNAME Para saber mais sobre ela pode ler em
//https://sampwiki.blast.hk/wiki/GetPlayerName
GetPlayerName(playerid, sendername, sizeof(sendername));
//E TAMBEM UMA FORMAT PARA "CRIAR" OU "CARREGAR" OS DADOS!
format(File, sizeof(File), "%s.ini", sendername); //VAI LER O ARQUIVO DIRETAMENTE NA PASTA SCRIPTFILES!
//AGORA VOCК VAI UTILIZAR A DOF2_FILEEXISTS QUE CITEI ALI EM CIMA '-'
if(DOF2_FileExists(File))
{
//VAMOS USAR LOGO ABAIXO A FUNЗГO "DOF2_GetInt" QUE CARREGA O DADO DO PLAYER
//CITADO LOGO A FRENTE DA FUNЗAO. E TAMBEM VAMOS UTILIZAR A NEW QUE CRIAMOS NO COMEЗO
//LEMBRA?? "PlayerInfo" ^^
PlayerInfo[playerid][pSkin] = DOF2_GetInt(File, "Skin");
//AGORA VOCК IRA ENVIAR UMA MENSAGEM PRO PLAYER DIZENDO QUE OS ARQUIVOS FORAM CARREGADOS!
SendClientMessage(playerid, -1, "Arquivos Carregados!");
}
else// ACIMA E SE O ARQUIVO COM O NOME DO PLAYER JБ EXISTIR.. AGORA VOCК VAI CRIAR CASO NГO EXISTA
{
//AQUI VOCК USA ABAIXO AS FUNЗХES DA DOF2:
//DOF2_CreateFile -> CRIA O ARQUIVO COMO O PROPRIO NOME DIZ..
//DOF2_SetInt -> SETA OQUE TA ESCRITO LOGO A FRENTE DELE DENTRO NO ARQUIVO CRIADO PELA FUNЗГO ACIMA.
//DOF2_SaveFile ~~ TA OBVIO '-'
DOF2_CreateFile(File); // CRIA O ARQUIVO.
DOF2_SetInt(File, "Skin", 23); //SETA O ARQUIVO.. E O NUMERO 23 E O ID DA SKIN.
DOF2_SaveFile(); // NO COMENTS
//AGORA VOCК VAI ENVIAR UMA MENSAGEM PARA O PLAYER DIZENDO QUE FOI CRIADO O ARQUIVO EM SEU NOME!
SendClientMessage(playerid, -1, "Arquivos Criados");
OnPlayerConnect(playerid);//REDIRECIONA PARA ONPLAYERCONNECT, FAZENDO ASSIM OS ARQUIVOS
//SEREM CARREGADOS ALTOMATICAMENTE'-'
}
return 1;
}
// AGORA NA ONPLAYERDISCONNECT PARA QUE QUANDO O PLAYER DESLOGUE
//SALVE OS ARQUIVOS '-'
public OnPlayerDisconnect(playerid)
{
new File[70], sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid, sendername, sizeof(sendername));
format(File, sizeof(File), "%s.ini", sendername);
DOF2_SetInt(File, "Skin", PlayerInfo[playerid][pSkin]); //VAI SALVAR A SKIN QUE O PLAYER ESTA A USAR!
DOF2_SaveFile(); // NO COMENTS NOVAMENTE!
return 1;
}
// CRIAR A PUBLIC ONPLAYERSPAWN, E DENTRO DELA VAMOS SETAR PARA QUANDO O PLAYER
//APERTAR SPAWN ELE TENHA A SKIN SETADA PARA A SKIN QUE ESTA NOS ARQUIVOS...
public OnPlayerSpawn(playerid)
{
//USAR AGORA A FUNЗГO SETPLAYERSKIN QUE E DO PROPRIO
SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
return 1;
}
#include <DOF2>
//OnPlayerConnect(playerid)
new arquivo[34], playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(arquivo, sizeof(arquivo), "%s.ini", playername);
Profissao[playerid] = DOF2_GetInt(arquivo, "Profissao");
//OnPlayerDisconnect
new arquivo[34], playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
format(arquivo, sizeof(arquivo), "%s.ini", playername);
if(DOF2_FileExists(arquivo))
{
DOF2_SetInt(arquivo, "Profissao", Profissao[playerid]);
}
else
{
DOF2_CreateFile(arquivo);
DOF2_SetInt(arquivo, "Profissao", Profissao[playerid]);
}
//e em OnGameModeExit
DOF2_Exit();