[Dъvida] Melhor mйtodo para salvar posiзхes e outros.
#1

Se eu quero salvar por exemplo a posiзгo de um jogador no jogo, eu faзo isso

Veja abaixo

Код:
public OnPlayerDisconnect(playerid, reason) {
        GetPlayerHealth(playerid, playerInfo[playerid][pVida]); //  Me retorna 0.000 porque o jogador jб desconectou
	playerInfo[playerid][pDinheiro] = GetPlayerMoney(playerid); // Aqui me retorna certinho
	GetPlayerPos(playerid, playerInfo[playerid][pPosX], playerInfo[playerid][pPosY], playerInfo[playerid][pPosZ]); // Retorna tudo 0.000
	playerInfo[playerid][pSkin] = GetPlayerSkin(playerid); // Retorna 0
	playerInfo[playerid][pInterior] = GetPlayerInterior(playerid); // Retorna tambйm 0
	
	SaveData(playerid);
	
	return 1;
}
Entгo tive outra idйia

Rodar um timer a cada 1 segundo, ele procura os players online e salva os dados deles.

Код:
setTimer("SaveData".... 1000

public SaveData() {
        for(new i = 0; i < MAX_PLAYERS; i++) {
                if(IsPlayerConnected(i)) {
                        GetPlayerHealth(i, playerInfo[i][pVida]);
	                playerInfo[i][pDinheiro] = GetPlayerMoney(i);
                	GetPlayerPos(i, playerInfo[i][pPosX], playerInfo[i][pPosY], playerInfo[i][pPosZ]);
        	        playerInfo[i][pSkin] = GetPlayerSkin(i);
                	playerInfo[i][pInterior] = GetPlayerInterior(i);
	
                	SaveData(playerid);
                }
        }
	
	return 1;
}
Agora imagine isso rodando a cada 1 segundo!? Aff, jб era meu servidor.

Alguem me oferece uma soluзгo melhor?


------------------------------------- EDITADO

Bem, eu resolvi deixar assim e rodar um anti cheat junto, dai eu aproveito e verifico de 1 em 1 seg se o player ganhou dinheiro de uma forma inapropiada. Bem, no fim atй que й isso msm
Reply
#2

Dб pra colocar tambem em OnPlayerUpdate :P
Reply
#3

Aн sim que vocк racha o servidor, OnPlayerUpdate й chamado umas 30 vezes por segundo, timer de 1 segundo й bem melhor em comparaзгo ao OnPlayerUpdate.
Reply
#4

setTimer("SaveData".... 1000/100


esse vai ser 10 milesimos, acho q eh isso, melhorou ?
Reply
#5

Colocar SetTimers de poucos segundos sу laga o servidor (claro se nгo for o caseiro 1/1)

Coloque o SetTimer de 30 segundos e pronto.
Reply
#6

30 eh muito tempo, 10 segundos
Reply
#7

pow coloca ai pra salva os dados a cada 1 min e qnd o player sai e quando fecha o gamemode(GMX);
Reply
#8

Quote:
Originally Posted by Ivan_xD
Посмотреть сообщение
pow coloca ai pra salva os dados a cada 1 min e qnd o player sai e quando fecha o gamemode(GMX);
Nгo dб pra salvar as posiзхes do player quando ele desconecta. Esse й o problema. E isso inlcui o dinheiro tambem
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)