sobre esc -
Russo66 - 11.09.2013
Pessoal, existe possнbilidade de fazer uma funзгo sem usar timer para descubrir se o jogador estб 'ausente' de 'esc' ?
Como por exemplo uma funзгo:
Jogador Russo estб de esc.
Jogador Russo voltou do esc.
e lуgico, sem comandos para as informaзхes.
Alguйm tem alguma lуgica ou dica para fazer o mesmo ?
Re: sobre esc -
PT - 11.09.2013
Nao tem como detectar a tecla ESC, mas em alternativa, podes verificar se o OnPlayerUpdate nao for chamado por 2 a 3 segundos
Re: sobre esc -
Russo66 - 11.09.2013
Como irei detectar se ele nгo for chamado ?
Re: sobre esc -
PT - 11.09.2013
olha aqui
pawn Код:
public OnPlayerConnect(playerid)
{
SetPVarInt(playerid, "pause", 0);
SetTimerEx("Paused", 1000, 1, "i", playerid);
//ofc could be given an ID to be killed on exit or on gamemode exit, but i'm just making an example
return 1;
}
public OnPlayerUpdate(playerid)
{
SetPVarInt(playerid, "pause", 0);
return 1;
}
forward Paused(playerid);
public Paused(playerid)
{
if( GetPVarInt(playerid, "pause") != 0 ) printf("%i is paused", playerid);
SetPVarInt(playerid, "pause", 1);
return 1;
}
By;
cmg4life
qualquer coisa ve mais
aqui
Re: sobre esc -
Russo66 - 11.09.2013
Eu tive uma lуgica semelhante, iria usar bools para isto, porйm utilizando Pvars da um resultado mais fast, correto ?
Re: sobre esc -
PT - 11.09.2013
correto
Re: sobre esc -
Russo66 - 11.09.2013
PT, utilizando Pvrs em inves de algumas variбveis globais, isso diminuirб o uso de processador do host ?
Por exemplo, meu game-mode tem bastante quantidade variбveis globais, nгo que nгo esteja sendo utilizadas, pelo contrбrio, todas tem suas funзхes. Agora se eu transferir maioria delas para pvrs as "compativeis" isto iria me poupar processamento ?
Re: sobre esc -
PT - 11.09.2013
quanto mais rapido for, menos usa o CPU
por isso ve por ti
pawn Код:
#include <a_samp>
#define LOOP 1000000 // 1 milhao
main()
{
new teste, teste2, playerid, Variavel[MAX_PLAYERS];
teste = tickcount();
for(new i; i < LOOP; i ++) if(Variavel[playerid] == 0) continue;
printf("Variavel Normal: %d", tickcount()-teste);
teste2 = tickcount();
for(new i; i < LOOP; i ++) if(GetPVarInt(playerid, "testando") == 0) continue;
printf("Pvars: %d", tickcount()-teste2);
}
sobre Pvars olha este topico do ******
https://sampforum.blast.hk/showthread.php?tid=268499
Re: sobre esc -
Russo66 - 11.09.2013
Sim, realmente й mais rбpida.
Nгo sei por qual motivo, meu game-mode й super otimizado, mas quando ligado ele ocupa 4% de CPU.
Quando estб por volta de 100/110 players fica em torno de 15% a 20% isto й muito?
O tamanho dele й de 925 kb (AMX) pwn 856 (pawn) no caso estб definido o MAX_PLAYERS a meu gosto, porem nгo sei por qual motivo ele inicia com 4% de uso de CPU, pois o mesmo possui poucos timers e nгo possui funзхes renundantes ou que causam lag na callback OnPlayerUpdate. O game-mode possui 14717 linhas, o mesmo foi tгo otimizado que foi poupado +/- 20 mil linhas, sendo assim nгo era para ganhar processamento ?
Lembrando que se eu executasse ele sem limite no MAX_PLAYERS, o tamanho dele ficaria em torno de 1950kb (AMX).
Re: sobre esc -
PT - 11.09.2013
isso nem sempre e mau, sabias?
usando mais recursos de cpu, mas claro so os necessarios, pode diminuir o lag e aumentar a velocidade do sv, para quem achar que eu estou errado, leia
isto.
acho que o teu esta dentro do normal