Jeito para que nгo de lag nisso... -
Ley - 26.08.2012
Ola galerinha...
Eu tenho um sistema de armas salvбveis em meu gamemode, e puis em OnPlayerUpdate o seguinte script;
Porйm desta forma, meu servidor fica com um lag enorme, pois fica salvando rapidamente as armas de todos os players onlines.
Como eu poderia fazer com que essas armas salvassem sem causar lag no servidor?
Re: Jeito para que nгo de lag nisso... -
arakuta - 26.08.2012
Vocк quer salvar por que? Pra quando entra no jogo voltar com o mesmo armamento?
Se sim, coloque em OnPlayerDisconnect isso e nгo em OnPlayerUpdate.
Re: Jeito para que nгo de lag nisso... -
Ley - 26.08.2012
Jб tentei por em OnPlayerDisconnect, mais quando o servidor reinicia ou o player reloga, ele perde o armamento...
Tem que por de um jeito que salve enquanto o player ainda esteja online...
Respuesta: Jeito para que nгo de lag nisso... -
Truck - 26.08.2012
Exato, coloque no OnPlayerDisconnect para salvar, e para carregar OnPlayerConnect.
Re: Jeito para que nгo de lag nisso... -
Kuddy - 26.08.2012
Tenta usar:
pawn Code:
OnGamemodeInit()
{
SetTimer("UpdateWeapons", 5000, true);
return 1;
}
forward UpdateWeapons();
public UpdateWeapons()
return for(new x = 0; x < MAX_PLAYERS; x ++) SaveWeapons(x);
Re: Jeito para que nгo de lag nisso... -
Ley - 26.08.2012
Quote:
Originally Posted by Kuddy
Tenta usar:
pawn Code:
OnGamemodeInit() { SetTimer("UpdateWeapons", 5000, true); return 1; }
forward UpdateWeapons(); public UpdateWeapons() return for(new x = 0; x < MAX_PLAYERS; x ++) SaveWeapons(x);
|
Deu um erro...
pawn Code:
error 029: invalid expression, assumed zero
Linha:
pawn Code:
return for(new x = 0; x < MAX_PLAYERS; x ++) SaveWeapons(x);
Re: Jeito para que nгo de lag nisso... -
Ley - 26.08.2012
UP...
Re: Jeito para que nгo de lag nisso... -
Maklister - 26.08.2012
Peguei a Base do cmd do Kuddy e Modifiquei
pawn Code:
OnGamemodeInit()
{
SetTimer("UpdateArmas", 30000, true);
return 1;
}
forward UpdateArmas();
public UpdateArmas()
{
for(new i = 0; i < MAX_PLAYERS; i ++)
{
SaveWeapons(i);
}
}
Re: Jeito para que nгo de lag nisso... -
Ley - 26.08.2012
Quote:
Originally Posted by Murilo_sousa
Peguei a Base do cmd do Kuddy e Modifiquei
pawn Code:
OnGamemodeInit() { SetTimer("UpdateArmas", 30000, true); return 1; }
forward UpdateArmas(); public UpdateArmas() { for(new i = 0; i < MAX_PLAYERS; i ++) { SaveWeapons(i); } }
|
Agora foi, obrigado...
Tambйm pensei em por o SaveWeapons quando comprar a arma...
Mas acho que vou utilizar os dois modos
Re: Jeito para que nгo de lag nisso... -
Kuddy - 26.08.2012
pawn Code:
OnGamemodeInit()
{
SetTimer("UpdateArmas", 30000, true);
return 1;
}
forward UpdateArmas();
public UpdateArmas()
{
for(new i = 0; i < MAX_PLAYERS; i ++)
{
SaveWeapons(i);
}
return 1;
}
Correзгo*
Re: Jeito para que nгo de lag nisso... -
Ley - 26.08.2012
Quote:
Originally Posted by Kuddy
pawn Code:
OnGamemodeInit() { SetTimer("UpdateArmas", 30000, true); return 1; }
forward UpdateArmas(); public UpdateArmas() { for(new i = 0; i < MAX_PLAYERS; i ++) { SaveWeapons(i); } return 1; }
Correзгo*
|
Pelo visto tambйm nгo funcionou em meu servidor :l
Re: Jeito para que nгo de lag nisso... -
Maklister - 26.08.2012
Quote:
Originally Posted by Ley
Pelo visto tambйm nгo funcionou em meu servidor :l
|
Entгo o erro e no SaveWeapons
Poste ele ou me mande MP com ela (:
Re: Jeito para que nгo de lag nisso... -
Ley - 26.08.2012
pawn Code:
stock SaveWeapons(playerid)
{
new File:arquivo, File:ftmp, tmp[256], fname[30], pname[30], arma[13], municao[13];
arquivo = fopen(WEAPON_FILE, io_readwrite);
ftmp = fopen(WEAPON_FILE#.tmp, io_write);
GetPlayerName(playerid, pname, sizeof pname);
while(fread(arquivo, tmp, sizeof tmp, false))
{
new off[256], index;
off = strtok(tmp, index);
strmid(fname, off, 0, strlen(off));
if(!strcmp(pname, fname, false))continue;
format(tmp, sizeof tmp, "%s", tmp);
fwrite(ftmp, tmp);
}
fclose(arquivo);
fclose(ftmp);
fremove(WEAPON_FILE);
arquivo = fopen(WEAPON_FILE, io_write);
ftmp = fopen(WEAPON_FILE#.tmp, io_read);
while(fread(ftmp, tmp))
{
format(tmp, sizeof tmp, "%s", tmp);
fwrite(arquivo, tmp);
}
fclose(ftmp);
fremove(WEAPON_FILE#.tmp);
for(new i; i < 12; i++)GetPlayerWeaponData(playerid, i+1, arma[i+1], municao[i+1]);
format(tmp, sizeof tmp, "%s ", pname);
for(new a; a < 24; a++)
{
new s[10];
if(a < 12)
{
format(s, sizeof s, "%d ", arma[a]);
strcat(tmp, s);
} else {
format(s, sizeof s, "%d ", municao[a-12]);
strcat(tmp, s);
}
}
strcat(tmp, "\r\n");
fwrite(arquivo, tmp);
fclose(arquivo);
return 1;
}
Re: Jeito para que nгo de lag nisso... -
Ley - 26.08.2012
UP...