SA-MP Forums Archive
sobre esc - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: sobre esc (/showthread.php?tid=463236)



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