←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

PHP
GameQ jak zmniejszyc ilosc pobieranych dan...

PimP517 - zdjęcie PimP517 09.11.2012

Witam.
Mam problem tego typu że gamequery pobiera za dużo informacji o serwerze, chciał bym pobierać tylko kilka z nich takie jak np aktualna mapa, i aktualna ilość graczy tymczasem mam.
dane => Array (120)
	  _tutor_bomb_viewable_check_interval => "0.5"
	  _tutor_debug_level => "0"
	  _tutor_examine_time => "0.5"
	  _tutor_hint_interval_time => "10.0"
	  _tutor_look_angle => "10"
	  _tutor_look_distance => "200"
	  _tutor_message_character_display_time_coefficient => "0.07"
	  _tutor_message_minimum_display_time => "1"
	  _tutor_message_repeats => "5"
	  _tutor_view_distance => "1000"
	  address => "127.0.0.1:27020"
	  allow_spectators => "0"
	  amx_client_languages => "1"
	  amx_language => "en"
	  amx_nextmap => "de_aztec"
	  amx_timeleft => "13:14"
	  amxmodx_version => "1.8.1.3746"
	  coop => "0"
	  deathmatch => "1"
	  decalfrequency => "60"
	  dedicated => "d"
	  dp_version => "0.9.179"
	  edgefriction => "2"
	  game_descr => "Counter-Strike"
	  game_dir => "cstrike"
	  gq_address => "193.33.176.125"
	  gq_dedicated => "d"
	  gq_gametype => false
	  gq_hostname => "Cs-Matrix.eu | Call Of Duty"
	  gq_mapname => "de_dust2"
	  gq_maxplayers => 20
	  gq_mod => "cstrike"
	  gq_numplayers => 0
	  gq_online => true
	  gq_password => 0
	  gq_port => "27020"
	  gq_protocol => "source"
	  gq_transport => "udp"
	  gq_type => "cs16"
	  hostage_debug => "0"
	  hostage_stop => "0"
	  hostname => "Cs-Matrix.eu | Call Of Duty"
	  humans_join_team => "any"
	  map => "de_dust2"
	  max_players => 20
	  max_queries_sec => "1"
	  max_queries_sec_global => "1"
	  max_queries_window => "1"
	  metamod_version => "1.19p32"
	  mp_allowmonsters => "0"
	  mp_autokick => "1"
	  mp_autoteambalance => "1"
	  mp_buytime => "1.5"
	  mp_c4timer => "30"
	  mp_chattime => "0"
	  mp_consistency => "1"
	  mp_fadetoblack => "0"
	  mp_flashlight => "1"
	  mp_footsteps => "1"
	  mp_forcecamera => "0"
	  mp_forcechasecam => "0"
	  mp_fragsleft => "0"
	  mp_freezetime => "0"
	  mp_friendlyfire => "0"
	  mp_ghostfrequency => "0.1"
	  mp_hostagepenalty => "2"
	  mp_kickpercent => "0.66"
	  mp_limitteams => "2"
	  mp_logdetail => "3"
	  mp_logfile => "1"
	  mp_logmessages => "1"
	  mp_mapvoteratio => "0.66"
	  mp_maxrounds => "0"
	  mp_mirrordamage => "0"
	  mp_playerid => "0"
	  mp_roundtime => "4"
	  mp_startmoney => "800"
	  mp_timeleft => "0"
	  mp_timelimit => "25"
	  mp_tkpunish => "1"
	  mp_windifference => "1"
	  mp_winlimit => "0"
	  num_players => 0
	  num_rules => 90
	  os => "l"
	  password => 0
	  pausable => "0"
	  players => Array (0)
	  protocol => 47
	  secure => 1
	  sv_accelerate => "5"
	  sv_aim => "0"
	  sv_airaccelerate => "10"
	  sv_airmove => "1"
	  sv_allowupload => "1"
	  sv_alltalk => "0"
	  sv_bounce => "1"
	  sv_cheats => "0"
	  sv_clienttrace => "1"
	  sv_clipmode => "0"
	  sv_contact => ""
	  sv_friction => "4"
	  sv_gravity => "800"
	  sv_logblocks => "0"
	  sv_maxrate => "25000"
	  sv_maxspeed => "9999"
	  sv_minrate => "10000"
	  sv_password => "0"
	  sv_proxies => "1"
	  sv_region => "3"
	  sv_restart => "0"
	  sv_restartround => "0"
	  sv_stepsize => "18"
	  sv_stopspeed => "75"
	  sv_uploadmax => "0.5"
	  sv_voiceenable => "1"
	  sv_wateraccelerate => "10"
	  sv_waterfriction => "1"
	  teams => Array (0)
	  version => 0
Dla każdego serwera :yikes: gdzie przy 2 serwerach strona wczytuje się 7sekund.
Proszę o pomoc :wstyd: .
Odpowiedz

  • +
  • -
Leihto - zdjęcie Leihto 09.11.2012

Po pierwsze, możesz zmniejszyć timeout, który domyślnie jest ustawiony na 3 sekundy.
Po drugie, możesz użyć np. hlsockets zamiast gamqa, które pobiera znacznie mniej informacji..
Odpowiedz

PimP517 - zdjęcie PimP517 09.11.2012

Timeout mam na 1 ustawiony a czas przy odświeżeniu strony:
Smarty Debug Console - Total Time 3.92418
Gdzie bez gameq wytchodzi
Smarty Debug Console - Total Time 0.00700
Musi być jakiś sposób na zmniejszenie ilości wyników. hlsockets mija się z celem bo nie odpytuje takich serwerów jak ts3, vt.
Użytkownik PimP517 edytował ten post 09.11.2012 23:10
Odpowiedz

Gość_21977_* 11.11.2012

Najlepiej napisz własną funkcję na to, GameQ pobiera dużo niepotrzebnych danych.
Jednak w przypadku cvarów, nie ma innej możliwości, niż pobranie określonej liczby pakietów.
Cvary są pobierane pakietami danych, wszystko masz na stronach developerkish Steam HLDS.

Możesz ew., po otrzmaniu odpowiedniego cvaru, przestać wysyłąć kolejne zapytania o pakiety,
choć zazwyczaj kończy się na 2 zaledwie pakietach danych. Pytanie może z innej beczki, czy Twoje zapytanie
dotyczy jedynie cvarów, czy może pobierasz inne, niepotrzebne dane, jak lista graczy, co trochę trwa jednak.
Odpowiedz