05.03.2012, 16:34
Bom pessoal o Ricop disse nesse topico:
https://sampforum.blast.hk/showthread.php?tid=323127
que dava para salvar os dados com o gmx.. mais aqui num dб certo.. tipo atй salva, tbm ja procurei em outros topicos e encontrei o mesmo problema porem sem muitas soluзхes..
mais quando acontece o gmx, ele torna a salvar os dados porem salva as cordenadas entre outros dados com 0. isso acontece com dados float..
segue como to usando:
na public que salva as cordenadas
comando gmx:
help?? ^^
quando eu do /gmx ele salva la blzinha as cordenadas e os dados etc.. mais quando acontece o gmx, ou seja os players sгo desconectados, ele chama a funcao salvar de novo e salva os dados como zero.. principalmente os em float.
tentei colocar assim tbm no onplayerdisconect
mais aqui, o comando gmx salva.. legal. so q se o cara sair, dando "/q", ou "Esc > sair do jogo" ele nгo salva pois cairia na reason 1.. a mesma do gmx. ¬¬ como o SalvarPlayer so estб na reason 2 ele so salva se o jogador levar kick.
no caso pra ele salvar quando ele saice o SalvarPlayer precisaria estar na reason 1.. mais ai acontece o q eu falei de salvar duas vezes, e na segunda salvar com poziзхes zeradas por exemplo.
espero ter explicado certinho.. aguardo ajuda de vcs. desde jб obrigado.
@edit, desculpe a identaзгo do forum й horrivel. no gm fica bunitin ^^
https://sampforum.blast.hk/showthread.php?tid=323127
que dava para salvar os dados com o gmx.. mais aqui num dб certo.. tipo atй salva, tbm ja procurei em outros topicos e encontrei o mesmo problema porem sem muitas soluзхes..
mais quando acontece o gmx, ele torna a salvar os dados porem salva as cordenadas entre outros dados com 0. isso acontece com dados float..
segue como to usando:
Код:
// 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(); }
quando eu do /gmx ele salva la blzinha as cordenadas e os dados etc.. mais quando acontece o gmx, ou seja os players sгo desconectados, ele chama a funcao salvar de novo e salva os dados como zero.. principalmente os em float.
tentei colocar assim tbm no onplayerdisconect
Код:
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); }
no caso pra ele salvar quando ele saice o SalvarPlayer precisaria estar na reason 1.. mais ai acontece o q eu falei de salvar duas vezes, e na segunda salvar com poziзхes zeradas por exemplo.
espero ter explicado certinho.. aguardo ajuda de vcs. desde jб obrigado.
@edit, desculpe a identaзгo do forum й horrivel. no gm fica bunitin ^^