// no onplayerdisconect
public OnPlayerDisconnect(playerid, reason)
{
switch(reason)
{
case 0, 1, 2: SalvarPlayer(playerid);
}
return true;
}
public SalvarPlayer(playerid)
{
if(IsPlayerConnected(playerid) && playerlogado[playerid] == 1)
{
new arquivo[50],nome[50],msg[100];
GetPlayerName(playerid, nome, sizeof(nome));
format(arquivo, sizeof(arquivo),"Usuarios/%s.ini",nome);
GetPlayerPos(playerid,PlayerInfo[playerid][x],PlayerInfo[playerid][y],PlayerInfo[playerid][z]);
GetPlayerFacingAngle(playerid, PlayerInfo[playerid][Angle]);
PlayerInfo[playerid][pInterior] = GetPlayerInterior(playerid);
if(!fexist(arquivo)) return print("arquivo nгo existe");
INI_Open(arquivo);
INI_WriteFloat("CorX",PlayerInfo[playerid][x]);
INI_WriteFloat("CorY",PlayerInfo[playerid][y]);
INI_WriteFloat("CorZ",PlayerInfo[playerid][z]);
INI_WriteFloat("Anglo",PlayerInfo[playerid][Angle]);
INI_WriteInt("pCash",GetPlayerMoney(playerid));
INI_WriteInt("Admin",PlayerInfo[playerid][pAdmin]);
INI_WriteInt("VIP",PlayerInfo[playerid][pVIP]);
INI_WriteInt("Sex",PlayerInfo[playerid][pSex]);
INI_WriteInt("Level",PlayerInfo[playerid][pLevel]);
INI_WriteInt("Skin",PlayerInfo[playerid][pSkin]);
INI_WriteInt("Leader",PlayerInfo[playerid][pLeader]);
INI_WriteInt("Team",PlayerInfo[playerid][pTeam]);
INI_WriteInt("Cargo",PlayerInfo[playerid][pCargo]);
INI_WriteInt("Job",PlayerInfo[playerid][pJob]);
INI_WriteInt("Score",GetPlayerScore(playerid));
INI_WriteInt("Interior", PlayerInfo[playerid][pInterior]);
INI_WriteInt("Tutorial", tutorial[playerid]);
INI_WriteInt("pPreso",PlayerInfo[playerid][pPreso]);
INI_Save();
INI_Close();
}
return 1;
}
if(!strcmp(cmdtext, "/gmx", true))
{
GameModeExitEx();
}
forward GameModeExitEx();
public GameModeExitEx() {
for(new i = 0; i < MAX_PLAYERS; ++i) {
SalvarPlayer(i);
}
GameModeExit();
}
switch(reason)
{
case 0:format(msg, sizeof(msg), "%s Saiu Do Servidor. (Poblema na Conexгo)", nome);
case 1:format(msg, sizeof(msg), "%s Saiu Do Servidor. (Saiu por conta prуpria)", nome);
case 2:SalvarPlayer(playerid);
}
public OnPlayerDisconnect(playerid, reason)
{
SalvarPlayer(playerid);
return true;
}
|
na public OnGameModeExit vc ta pondo um loop pra salvar todos os jogadores?
|
|
pawn Код:
|
dados: 200,0.000000,0.000000,0.000000,0.000000,reg:1
dados: 200,173.418136,-67.863677,1.426282,280.600677,reg:1
|
nгo.. sу chamo a public salvarplayer no OnPlayerDisconnect, e no /gmx. |
public OnGameModeExit()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
SalvarPlayer(i);
}
return 1;
}
|
entгo faзa assim:
pawn Код:
|
|
Ban na certa... O cara nгo consegue e ta pedindo ajuda! agora vc alem de se axar o maiorzao nгo sabe fazer um simples funзгo de cadastro e registro, Nbzao...
@Topic Hum.. Nunca usei Y_ini mas por ser feito pelo ******, й certeza o problema nгo seja no sistema de salvamento.. Dini nem pensar muito lenta, Fini Bugadona, Bini ouзo falarem muito bem dela eu uso DOF2 e nгo aprensou problemas para mim. O problema seu й somente com esses floats ai ou com todos os floats do GM ? |
|
Ele ta pedindo ajuda porque os dados nao estao sendo salvos quando й dado o Gamemode Exit(GMX), o unico inutil aqui й tu mesmo que vive criando topicos de ajuda e se acha foda.
Ah, e pra terminar, ao menos ele sabe usar INI, enquanto tu cria um tutorial inutil que mal й um codigo util cheio de coisas desnecessarias, com um codigo feio e desajeitado. sem mais TOPICO: Cria uma funзгo nova, exemplo: pawn Код:
Este seria correto: pawn Код:
|
|
http://www.mediafire.com/?haiobhxab6ix2x1 Segue ae...
|