et-nik/gameap

[HL][CS 1.6] Query - status : offline

r4sas opened this issue · 12 comments

r4sas commented

GameAP, демон и игровой сервер стоят на одной тачке.
Используется предустановленный шаблон ReHLDS, далее сам руками доставлял reunion.

В настройках сервера в ПУ rcon прописан, он совпадает с рконом на сервере.
Query и RCON порт в настройказ указан тот же, что порт самого сервера (например 27015 во всех полях).

Некоторые параметры из reunion.cfg:

AuthVersion = 1
ServerInfoAnswerType = 0
FixBuggedQuery = 1
EnableQueryLimiter = 0
AllowSplitPackets = 0
IPClientsLimit = 5

При всём этом, в ПУ общий статус корректно работает, а query говорит offline.

Проблема такая наблюдается на GoldSource серверах. Причину выяснить ещё не удалось. Проблема скорее всего связана с GameQ библиотекой.

r4sas commented

Мне кажется GameQ не тот тип парсера пытается использовать, вот такую кашу он мне выдал на одном из серверов в ПУ:

status : online
hostname : 0
map : nademodes_version
players : 48/0
version : 114
password : yes
joinlink : steam://connect/<SERVERIP>:<PORT>/
r4sas commented

Углубленное изучение показало что он не может распарсить A2S_RULES приходящий в разбитом на пакеты ответе.

Austinb/GameQ#287 (comment)

r4sas commented

Продублирую Austinb/GameQ#287 (comment):

Example debugging output
00000000  ff ff ff ff 49 30 57 41  52 33 46 54 20 d0 9f d0  |....I0WAR3FT ...|
00000010  b8 d0 b2 d0 ba d0 b0 20  d0 b4 d0 bb d1 8f 20 d0  |....... ...... .|
00000020  a0 d1 8b d0 b2 d0 ba d0  b0 20 32 30 32 20 6c 76  |......... 202 lv|
00000030  6c 20 5b 53 74 65 61 6d  20 42 6f 6e 75 73 5d 00  |l [Steam Bonus].|
00000040  63 73 5f 6d 61 6e 73 69  6f 6e 00 63 73 74 72 69  |cs_mansion.cstri|
00000050  6b 65 00 43 6f 75 6e 74  65 72 2d 53 74 72 69 6b  |ke.Counter-Strik|
00000060  65 00 0a 00 1f 20 00 64  6c 00 01 31 2e 31 2e 32  |e.... .dl..1.1.2|
00000070  2e 37 2f 53 74 64 69 6f  00 80 05 6a              |.7/Stdio...j|
0000007C


00000000  ff ff ff ff 44 1f 00 57  68 65 72 65 27 73 20 79  |....D..Where's y|
00000010  6f 75 72 20 47 6f 64 3f  00 00 00 00 00 c0 fe 49  |our God?.......I|
00000020  43 01 56 4e 44 59 20 57  56 52 48 4f 4c 00 02 00  |C.VNDY WVRHOL...|
00000030  00 00 4c 10 49 43 02 48  6e 74 20 7c 20 4b 6c 61  |..L.IC.Hnt | Kla|
00000040  75 73 20 57 69 6c 73 6f  6e 00 0a 00 00 00 9f bf  |us Wilson.......|
00000050  4a 43 03 68 6f 73 74 00  00 00 00 00 ec fc 4a 43  |JC.host.......JC|
00000060  04 43 72 61 62 27 73 5b  4c 53 5d 2a 4c 65 65 72  |.Crab's[LS]*Leer|
00000070  6f 79 00 00 00 00 00 4a  a5 4a 43 05 ef bc 83 ef  |oy.....J.JC.....|
00000080  bc 83 4d 61 4b 73 49 6d  ef bc 83 ef bc 83 00 00  |..MaKsIm........|
00000090  00 00 00 70 8f 3d 43 06  5a 65 75 73 20 6d 6f 64  |...p.=C.Zeus mod|
000000A0  65 3a 20 4f 4e 00 03 00  00 00 e4 d4 f3 42 07 34  |e: ON........B.4|
000000B0  59 4d 41 00 00 00 00 00  9d 9b b3 42 08 4c 49 53  |YMA........B.LIS|
000000C0  00 03 00 00 00 63 0f 4a  43 09 70 72 6f 31 30 30  |.....c.JC.pro100|
000000D0  64 6e 6f 00 00 00 00 00  8d 40 a3 42 0a 42 65 65  |dno......@.B.Bee|
000000E0  72 41 6e 64 57 61 72 33  20 7c 20 49 6e 6b 6f 67  |rAndWar3 | Inkog|
000000F0  6e 69 74 6f 00 00 00 00  00 35 71 4a 43 0b 5a 45  |nito.....5qJC.ZE|
00000100  4b 00 03 00 00 00 f0 2a  4a 43 0c 28 28 28 28 28  |K......*JC.(((((|
00000110  28 28 28 28 28 00 00 00  00 00 cd 54 9c 41 0d 5a  |(((((......T.A.Z|
00000120  6d 65 79 44 69 6b 69 79  00 00 00 00 00 77 e7 47  |meyDikiy.....w.G|
00000130  43 0e 56 4b 3a 20 56 4b  2e 43 4f 4d 2f 57 41 52  |C.VK: VK.COM/WAR|
00000140  33 46 54 00 00 00 00 00  46 92 0f 46 0f 41 53 41  |3FT.....F..F.ASA|
00000150  53 53 49 4e 00 01 00 00  00 82 5d 49 43 10 4a 65  |SSIN......]IC.Je|
00000160  6b 36 36 36 47 72 69 6e  00 00 00 00 00 a3 70 4a  |k666Grin......pJ|
00000170  43 11 47 4f 4f 44 5f 47  41 4d 45 00 06 00 00 00  |C.GOOD_GAME.....|
00000180  69 9a 30 43 12 30 78 30  6d 48 69 6b 00 00 00 00  |i.0C.0x0mHik....|
00000190  00 98 5d 4a 43 13 73 69  72 6f 7a 68 61 00 04 00  |..]JC.sirozha...|
000001A0  00 00 d4 28 49 43 14 6e  65 6c 65 67 61 6c 00 00  |...(IC.nelegal..|
000001B0  00 00 00 76 5c 59 42 15  42 65 6e 65 68 69 72 64  |...v\YB.Benehird|
000001C0  65 00 05 00 00 00 a8 1d  4a 43 16 6b 65 6b 69 65  |e.......JC.kekie|
000001D0  00 01 00 00 00 93 7b 49  43 17 4a 65 73 75 73 20  |......{IC.Jesus |
000001E0  43 68 72 69 73 74 00 00  00 00 00 83 99 4a 43 18  |Christ.......JC.|
000001F0  53 68 72 61 79 6b 74 6f  72 6e 00 05 00 00 00 b9  |Shrayktorn......|
00000200  69 36 43 19 4a 55 53 54  34 53 4c 45 45 50 00 00  |i6C.JUST4SLEEP..|
00000210  00 00 00 07 f8 a8 40 1a  53 61 4e 5b 34 5d 65 5a  |......@.SaN[4]eZ|
00000220  00 00 00 00 00 2d 13 4a  43 1b 43 45 50 7d 49 7b  |.....-.JC.CEP}I{|
00000230  00 02 00 00 00 12 7d 4a  43 1c 49 53 43 4f 20 44  |......}JC.ISCO D|
00000240  49 53 43 4f 00 06 00 00  00 ce d1 48 43 1d 4d 75  |ISCO.......HC.Mu|
00000250  6e 67 6f 60 73 00 05 00  00 00 6b dd 48 43 1e 4c  |ngo`s.....k.HC.L|
00000260  6f 62 73 74 65 72 00 03  00 00 00 44 39 4a 43     |obster.....D9JC|
0000026F


00000000  fe ff ff ff 66 b0 02 00  02 ff ff ff ff 45 6a 00  |....f........Ej.|
00000010  61 64 6d 61 6e 61 67 65  72 5f 76 65 72 73 69 6f  |admanager_versio|
00000020  6e 00 30 2e 35 00 61 64  6d 69 6e 6c 6f 61 64 5f  |n.0.5.adminload_|
00000030  76 65 72 73 69 6f 6e 00  33 2e 39 2e 32 20 44 65  |version.3.9.2 De|
00000040  76 00 61 6c 6c 6f 77 5f  73 70 65 63 74 61 74 6f  |v.allow_spectato|
00000050  72 73 00 31 00 61 6d 78  5f 61 64 6d 5f 6d 73 67  |rs.1.amx_adm_msg|
00000060  00 d0 93 d1 80 d1 83 d0  bf d0 bf d0 b0 20 d1 81  |............. ..|
00000070  d0 b5 d1 80 d0 b2 d0 b5  d1 80 d0 b0 20 d0 b2 d0  |............ ...|
00000080  ba d0 be d0 bd d1 82 d0  b0 d0 ba d1 82 d0 b5 3a  |...............:|
00000090  20 76 6b 2e 63 6f 6d 2f  77 61 72 33 66 74 20 2c  | vk.com/war3ft ,|
000000A0  20 d1 81 d0 b0 d0 b9 d1  82 3a 20 46 41 53 54 46  | ........: FASTF|
000000B0  52 41 47 2e 52 55 00 61  6d 78 5f 63 6c 69 65 6e  |RAG.RU.amx_clien|
000000C0  74 5f 6c 61 6e 67 75 61  67 65 73 00 30 00 61 6d  |t_languages.0.am|
000000D0  78 5f 63 6f 6e 74 61 63  74 69 6e 66 6f 00 76 6b  |x_contactinfo.vk|
000000E0  2e 63 6f 6d 2f 77 61 72  33 66 74 00 61 6d 78 5f  |.com/war3ft.amx_|
000000F0  6c 61 6e 67 75 61 67 65  00 72 75 00 61 6d 78 6d  |language.ru.amxm|
00000100  6f 64 78 5f 76 65 72 73  69 6f 6e 00 31 2e 38 2e  |odx_version.1.8.|
00000110  32 2d 64 65 76 00 61 6e  61 6c 69 7a 61 74 6f 72  |2-dev.analizator|
00000120  00 31 39 2e 30 37 2e 31  35 00 61 74 62 5f 61 64  |.19.07.15.atb_ad|
00000130  76 61 6e 63 65 64 5f 76  65 72 73 69 6f 6e 00 31  |vanced_version.1|
00000140  2e 35 2e 31 00 63 6f 6f  70 00 30 00 64 65 61 74  |.5.1.coop.0.deat|
00000150  68 6d 61 74 63 68 00 31  00 64 65 63 61 6c 66 72  |hmatch.1.decalfr|
00000160  65 71 75 65 6e 63 79 00  36 30 00 65 64 67 65 66  |equency.60.edgef|
00000170  72 69 63 74 69 6f 6e 00  32 00 67 61 6d 65 5f 76  |riction.2.game_v|
00000180  65 72 73 69 6f 6e 00 35  2e 37 2e 30 2e 33 31 33  |ersion.5.7.0.313|
00000190  2d 64 65 76 00 68 75 6d  61 6e 73 5f 6a 6f 69 6e  |-dev.humans_join|
000001A0  5f 74 65 61 6d 00 61 6e  79 00 6c 69 74 65 5f 63  |_team.any.lite_c|
000001B0  68 6f 6f 73 65 72 00 32  2e 36 00 6d 61 70 5f 73  |hooser.2.6.map_s|
000001C0  70 61 77 6e 73 00 54 28  32 32 29 20 43 54 28 32  |pawns.T(22) CT(2|
000001D0  32 29 00 6d 61 78 5f 71  75 65 72 69 65 73 5f 73  |2).max_queries_s|
000001E0  65 63 00 31 00 6d 61 78  5f 71 75 65 72 69 65 73  |ec.1.max_queries|
000001F0  5f 73 65 63 5f 67 6c 6f  62 61 6c 00 31 00 6d 61  |_sec_global.1.ma|
00000200  78 5f 71 75 65 72 69 65  73 5f 77 69 6e 64 6f 77  |x_queries_window|
00000210  00 31 00 6d 65 74 61 6d  6f 64 5f 76 65 72 73 69  |.1.metamod_versi|
00000220  6f 6e 00 31 2e 32 31 70  33 37 00 6d 70 5f 61 75  |on.1.21p37.mp_au|
00000230  74 6f 6b 69 63 6b 00 30  00 6d 70 5f 61 75 74 6f  |tokick.0.mp_auto|
00000240  6b 69 63 6b 5f 74 69 6d  65 6f 75 74 00 2d 31 00  |kick_timeout.-1.|
00000250  6d 70 5f 61 75 74 6f 74  65 61 6d 62 61 6c 61 6e  |mp_autoteambalan|
00000260  63 65 00 30 00 6d 70 5f  62 75 79 74 69 6d 65 00  |ce.0.mp_buytime.|
00000270  34 00 6d 70 5f 63 34 74  69 6d 65 72 00 34 35 00  |4.mp_c4timer.45.|
00000280  6d 70 5f 63 68 61 74 74  69 6d 65 00 30 00 6d 70  |mp_chattime.0.mp|
00000290  5f 63 6f 6e 73 69 73 74  65 6e 63 79 00 31 00 6d  |_consistency.1.m|
000002A0  70 5f 66 61 64 65 74 6f  62 6c 61 63 6b 00 30 00  |p_fadetoblack.0.|
000002B0  6d 70 5f 66 6c 61 73 68  6c 69 67 68 74 00 31 00  |mp_flashlight.1.|
000002C0  6d 70 5f 66 6f 6f 74 73  74 65 70 73 00 31 00 6d  |mp_footsteps.1.m|
000002D0  70 5f 66 6f 72 63 65 63  61 6d 65 72 61 00 30 00  |p_forcecamera.0.|
000002E0  6d 70 5f 66 6f 72 63 65  63 68 61 73 65 63 61 6d  |mp_forcechasecam|
000002F0  00 30 00 6d 70 5f 66 6f  72 63 65 72 65 73 70 61  |.0.mp_forcerespa|
00000300  77 6e 00 30 00 6d 70 5f  66 72 61 67 6c 69 6d 69  |wn.0.mp_fraglimi|
00000310  74 00 30 00 6d 70 5f 66  72 61 67 73 6c 65 66 74  |t.0.mp_fragsleft|
00000320  00 30 00 6d 70 5f 66 72  65 65 66 6f 72 61 6c 6c  |.0.mp_freeforall|
00000330  00 30 00 6d 70 5f 66 72  65 65 7a 65 74 69 6d 65  |.0.mp_freezetime|
00000340  00 31 00 6d 70 5f 66 72  69 65 6e 64 6c 79 66 69  |.1.mp_friendlyfi|
00000350  72 65 00 30 00 6d 70 5f  68 6f 73 74 61 67 65 5f  |re.0.mp_hostage_|
00000360  68 75 72 74 61 62 6c 65  00 31 00 6d 70 5f 68 6f  |hurtable.1.mp_ho|
00000370  73 74 61 67 65 70 65 6e  61 6c 74 79 00 30 00 6d  |stagepenalty.0.m|
00000380  70 5f 69 74 65 6d 5f 73  74 61 79 74 69 6d 65 00  |p_item_staytime.|
00000390  33 30 30 00 6d 70 5f 6b  69 63 6b 70 65 72 63 65  |300.mp_kickperce|
000003A0  6e 74 00 31 30 30 00 6d  70 5f 6c 65 67 61 63 79  |nt.100.mp_legacy|
000003B0  5f 62 6f 6d 62 74 61 72  67 65 74 5f 74 6f 75 63  |_bombtarget_touc|
000003C0  68 00 31 00 6d 70 5f 6c  6f 67 64 65 74 61 69 6c  |h.1.mp_logdetail|
000003D0  00 30 00 6d 70 5f 6c 6f  67 66 69 6c 65 00 31 00  |.0.mp_logfile.1.|
000003E0  6d 70 5f 6c 6f 67 6d 65  73 73 61 67 65 73 00 31  |mp_logmessages.1|
000003F0  00 6d 70 5f 6d 61 70 76  6f 74 65 72 61 74 69 6f  |.mp_mapvoteratio|
00000400  00 30 2e 36 36 00 6d 70  5f 6d 61 78 6d 6f 6e 65  |.0.66.mp_maxmone|
00000410  79 00 31 36 30 30 30 00  6d 70 5f 6d 61 78 72 6f  |y.16000.mp_maxro|
00000420  75 6e 64 73 00 30 00 6d  70 5f 6d 69 72 72 6f 72  |unds.0.mp_mirror|
00000430  64 61 6d 61 67 65 00 30  00 6d 70 5f 6f 6c 64 5f  |damage.0.mp_old_|
00000440  62 6f 6d 62 5f 64 65 66  75 73 65 64 5f 73 6f 75  |bomb_defused_sou|
00000450  6e 64 00 30 00 6d 70 5f  70 6c 61 79 65 72 69 64  |nd.0.mp_playerid|
00000460  00 31 00 6d 70 5f 72 65  73 70 61 77 6e 5f 69 6d  |.1.mp_respawn_im|
00000470  6d 75 6e 69 74 79 74 69  6d 65 00 30 2e 34 00 6d  |munitytime.0.4.m|
00000480  70 5f 72 6f 75 6e 64 5f  69 6e 66 69 6e 69 74 65  |p_round_infinite|
00000490  00 30 00 6d 70 5f 72 6f  75 6e 64 5f 72 65 73 74  |.0.mp_round_rest|
000004A0  61 72 74 5f 64 65 6c 61  79 00 35 00 6d 70 5f 72  |art_delay.5.mp_r|
000004B0  6f 75 6e 64 6f 76 65 72  00 30 00 6d 70 5f 72 6f  |oundover.0.mp_ro|
000004C0  75 6e 64 74 69 6d 65 00  33 00 6d 70 5f 73 68 6f  |undtime.3.mp_sho|
000004D0  77 5f 72 61 64 69 6f 69  63 6f 6e 00 31 00 6d 70  |w_radioicon.1.mp|
000004E0  5f 73 74 61 72 74 6d 6f  6e 65 79 00 38 30 30 00  |_startmoney.800.|
000004F0  6d 70 5f 74 69 6d 65 6c  65 66 74 00 31 36 3a 34  |mp_timeleft.16:4|
00000500  35 00 6d 70 5f 74 69 6d  65 6c 69 6d 69 74 00 32  |5.mp_timelimit.2|
00000510  30 00 6d 70 5f 74 6b 70  75 6e 69 73 68 00 30 00  |0.mp_tkpunish.0.|
00000520  6d 70 5f 77 69 6e 64 69  66 66 65 72 65 6e 63 65  |mp_windifference|
00000530  00 31 00 6d 70 5f 77 69  6e 6c 69 6d 69 74 00 30  |.1.mp_winlimit.0|
00000540  00 70 61 75 73 61 62 6c  65 00 30 00 72 65 61 69  |.pausable.0.reai|
00000550  6d 64 65 74 65 63 74 6f  72 5f 76 65 72 73 69 6f  |mdetector_versio|
00000560  6e 00 30 2e 31 2e 36 00  72 65 61 75 74 68 63 68  |n.0.1.6.reauthch|
00000570  65 63 6b 5f 76 65 72 73                           |eck_vers|
00000578


00000000  fe ff ff ff 66 b0 02 00  12 69 6f 6e 00 30 2e 31  |....f....ion.0.1|
00000010  2e 36 00 72 65 73 65 6d  69 63 6c 69 70 5f 76 65  |.6.resemiclip_ve|
00000020  72 73 69 6f 6e 00 32 2e  33 2e 39 00 72 65 75 5f  |rsion.2.3.9.reu_|
00000030  76 65 72 73 69 6f 6e 00  30 2e 31 2e 37 35 00 72  |version.0.1.75.r|
00000040  6f 63 6b 32 62 61 6e 00  31 2e 30 32 00 73 62 68  |ock2ban.1.02.sbh|
00000050  6f 70 70 65 72 5f 76 65  72 73 69 6f 6e 00 31 2e  |opper_version.1.|
00000060  32 00 53 4e 41 43 5f 56  65 72 73 69 6f 6e 00 31  |2.SNAC_Version.1|
00000070  2e 30 00 73 76 5f 61 63  63 65 6c 65 72 61 74 65  |.0.sv_accelerate|
00000080  00 35 00 73 76 5f 61 69  6d 00 30 00 73 76 5f 61  |.5.sv_aim.0.sv_a|
00000090  69 72 61 63 63 65 6c 65  72 61 74 65 00 31 30 30  |iraccelerate.100|
000000A0  00 73 76 5f 61 6c 6c 6f  77 75 70 6c 6f 61 64 00  |.sv_allowupload.|
000000B0  30 00 73 76 5f 61 6c 6c  74 61 6c 6b 00 31 00 73  |0.sv_alltalk.1.s|
000000C0  76 5f 62 6f 75 6e 63 65  00 31 00 73 76 5f 63 68  |v_bounce.1.sv_ch|
000000D0  65 61 74 73 00 30 00 73  76 5f 63 6c 69 65 6e 74  |eats.0.sv_client|
000000E0  74 72 61 63 65 00 31 00  73 76 5f 63 6f 6e 74 61  |trace.1.sv_conta|
000000F0  63 74 00 76 6b 2e 63 6f  6d 2f 77 61 72 33 66 74  |ct.vk.com/war3ft|
00000100  00 73 76 5f 66 72 69 63  74 69 6f 6e 00 34 00 73  |.sv_friction.4.s|
00000110  76 5f 67 72 61 76 69 74  79 00 38 30 30 00 73 76  |v_gravity.800.sv|
00000120  5f 6c 6f 67 62 6c 6f 63  6b 73 00 30 00 73 76 5f  |_logblocks.0.sv_|
00000130  6d 61 78 72 61 74 65 00  31 30 30 30 30 30 00 73  |maxrate.100000.s|
00000140  76 5f 6d 61 78 73 70 65  65 64 00 34 36 30 00 73  |v_maxspeed.460.s|
00000150  76 5f 6d 69 6e 72 61 74  65 00 32 35 30 30 30 00  |v_minrate.25000.|
00000160  73 76 5f 70 61 73 73 77  6f 72 64 00 30 00 73 76  |sv_password.0.sv|
00000170  5f 70 72 6f 78 69 65 73  00 31 00 73 76 5f 72 65  |_proxies.1.sv_re|
00000180  73 74 61 72 74 00 30 00  73 76 5f 72 65 73 74 61  |start.0.sv_resta|
00000190  72 74 72 6f 75 6e 64 00  30 00 73 76 5f 73 74 65  |rtround.0.sv_ste|
000001A0  70 73 69 7a 65 00 31 38  00 73 76 5f 73 74 6f 70  |psize.18.sv_stop|
000001B0  73 70 65 65 64 00 37 35  00 73 76 5f 75 70 6c 6f  |speed.75.sv_uplo|
000001C0  61 64 6d 61 78 00 30 2e  35 00 73 76 5f 76 65 72  |admax.0.5.sv_ver|
000001D0  73 69 6f 6e 00 31 2e 31  2e 32 2e 37 2f 53 74 64  |sion.1.1.2.7/Std|
000001E0  69 6f 2c 34 38 2c 31 35  30 31 00 73 76 5f 76 6f  |io,48,1501.sv_vo|
000001F0  69 63 65 65 6e 61 62 6c  65 00 31 00 73 76 5f 77  |iceenable.1.sv_w|
00000200  61 74 65 72 61 63 63 65  6c 65 72 61 74 65 00 31  |ateraccelerate.1|
00000210  30 00 73 76 5f 77 61 74  65 72 66 72 69 63 74 69  |0.sv_waterfricti|
00000220  6f 6e 00 31 00 56 54 43  5f 56 65 72 73 69 6f 6e  |on.1.VTC_Version|
00000230  00 32 30 31 37 52 43 33  00 77 63 33 5f 63 68 65  |.2017RC3.wc3_che|
00000240  61 74 73 00 30 00 77 63  33 5f 73 61 76 65 5f 70  |ats.0.wc3_save_p|
00000250  72 75 6e 69 6e 67 00 30  00 77 63 33 5f 73 61 76  |runing.0.wc3_sav|
00000260  65 5f 78 70 00 31 00 77  63 33 5f 78 70 5f 6d 75  |e_xp.1.wc3_xp_mu|
00000270  6c 74 69 70 6c 69 65 72  00 30 2e 38 37 00 77 68  |ltiplier.0.87.wh|
00000280  62 5f 76 65 72 73 69 6f  6e 00 31 2e 35 2e 36 39  |b_version.1.5.69|
00000290  32 00                                             |2.|
00000292


Delails:
{
    "protocol": 48,
    "hostname": "WAR3FT Пивка для Рывка 202 lvl [Steam Bonus]",
    "map": "cs_mansion",
    "game_dir": "cstrike",
    "game_descr": "Counter-Strike",
    "steamappid": 10,
    "num_players": 31,
    "max_players": 32,
    "num_bots": 0,
    "dedicated": "d",
    "os": "l",
    "password": 0,
    "secure": 1,
    "version": "1.1.2.7/Stdio",
    "port": 27141
}
Players:
{
    "num_players": 31,
    "players": [
        {
            "id": 0,
            "name": "Where's your God?",
            "score": 0,
            "time": 201.9951171875
        },
        {
            "id": 1,
            "name": "VNDY WVRHOL",
            "score": 2,
            "time": 201.06365966796875
        },
        {
            "id": 2,
            "name": "Hnt | Klaus Wilson",
            "score": 10,
            "time": 202.74851989746094
        },
        {
            "id": 3,
            "name": "host",
            "score": 0,
            "time": 202.98797607421875
        },
        {
            "id": 4,
            "name": "Crab's[LS]*Leeroy",
            "score": 0,
            "time": 202.64566040039062
        },
        {
            "id": 5,
            "name": "##MaKsIm##",
            "score": 0,
            "time": 189.560302734375
        },
        {
            "id": 6,
            "name": "Zeus mode: ON",
            "score": 3,
            "time": 121.91580200195312
        },
        {
            "id": 7,
            "name": "4YMA",
            "score": 0,
            "time": 89.8039321899414
        },
        {
            "id": 8,
            "name": "LIS",
            "score": 3,
            "time": 202.0601043701172
        },
        {
            "id": 9,
            "name": "pro100dno",
            "score": 0,
            "time": 81.6260757446289
        },
        {
            "id": 10,
            "name": "BeerAndWar3 | Inkognito",
            "score": 0,
            "time": 202.4422149658203
        },
        {
            "id": 11,
            "name": "ZEK",
            "score": 3,
            "time": 202.167724609375
        },
        {
            "id": 12,
            "name": "((((((((((",
            "score": 0,
            "time": 19.541406631469727
        },
        {
            "id": 13,
            "name": "ZmeyDikiy",
            "score": 0,
            "time": 199.90415954589844
        },
        {
            "id": 14,
            "name": "VK: VK.COM/WAR3FT",
            "score": 0,
            "time": 9188.568359375
        },
        {
            "id": 15,
            "name": "ASASSIN",
            "score": 1,
            "time": 201.36526489257812
        },
        {
            "id": 16,
            "name": "Jek666Grin",
            "score": 0,
            "time": 202.4399871826172
        },
        {
            "id": 17,
            "name": "GOOD_GAME",
            "score": 6,
            "time": 176.60316467285156
        },
        {
            "id": 18,
            "name": "0x0mHik",
            "score": 0,
            "time": 202.3656005859375
        },
        {
            "id": 19,
            "name": "sirozha",
            "score": 4,
            "time": 201.15948486328125
        },
        {
            "id": 20,
            "name": "nelegal",
            "score": 0,
            "time": 54.340293884277344
        },
        {
            "id": 21,
            "name": "Benehirde",
            "score": 5,
            "time": 202.1158447265625
        },
        {
            "id": 22,
            "name": "kekie",
            "score": 1,
            "time": 201.4827117919922
        },
        {
            "id": 23,
            "name": "Jesus Christ",
            "score": 0,
            "time": 202.5996551513672
        },
        {
            "id": 24,
            "name": "Shrayktorn",
            "score": 5,
            "time": 182.41297912597656
        },
        {
            "id": 25,
            "name": "JUST4SLEEP",
            "score": 0,
            "time": 5.280276775360107
        },
        {
            "id": 26,
            "name": "SaN[4]eZ",
            "score": 0,
            "time": 202.0749053955078
        },
        {
            "id": 27,
            "name": "CEP}I{",
            "score": 2,
            "time": 202.48855590820312
        },
        {
            "id": 28,
            "name": "ISCO DISCO",
            "score": 6,
            "time": 200.81954956054688
        },
        {
            "id": 29,
            "name": "Mungo`s",
            "score": 5,
            "time": 200.8649139404297
        },
        {
            "id": 30,
            "name": "Lobster",
            "score": 3,
            "time": 202.22369384765625
        }
    ]
}
Result ( output of $GameQ->process() ):
{
    "193.26.217.15:27141": {
        "gq_address": "193.26.217.15",
        "gq_dedicated": null,
        "gq_gametype": null,
        "gq_hostname": null,
        "gq_joinlink": "steam://connect/193.26.217.15:27141/",
        "gq_mapname": null,
        "gq_maxplayers": null,
        "gq_mod": null,
        "gq_name": "Source Server",
        "gq_numplayers": null,
        "gq_online": false,
        "gq_password": null,
        "gq_port_client": 27141,
        "gq_port_query": 27141,
        "gq_protocol": "source",
        "gq_transport": "udp",
        "gq_type": "source",
        "players": [],
        "teams": []
    }
}

As you can see, A2S_RULES is not processed.

Спасибо за информацию. Отмечу ещё, что в GameAP используется форк -- https://github.com/et-nik/GameQ

Поковыряю тоже её

r4sas commented

Да, я видал. Но код для Source не менялся уже годами, так что на данный момент нет разницы на чём проверять.

r4sas commented

В итоге я получил что требовалось.

Ситуация такая:
Сейчас проверка на GoldSrc не срабатывает, поскольку сервер отвечает c A2S_INFO с флагом I (для старых версий ответ был m).
Из-за этого у нас не активируется переключатель на GoldSrc

                // We need to peek and see what kind of engine this is for later processing
                //if ($buffer->lookAhead(1) == "\x6d") {
                    $this->source_engine = self::GOLDSOURCE_ENGINE;
                //}

который нужен для использования корректного (старого) для нас метода обработки многопакетного ответа.

            // Gold source
            if ($this->source_engine == self::GOLDSOURCE_ENGINE) {
                // Grab the packet number (byte)
                $packet_number = $buffer->readInt8();
...

Если там принудительно указать что мы обрабатываем GoldSrc, то A2S_RULES будет корректно обработан.

r4sas commented

Так что в итоге, решением является указание в вашем добавленном классе Protocols/Goldsource что мы работаем с GoldSrc: $source_engine = self::GOLDSOURCE_ENGINE;.

Спасибо!

r4sas commented

Чтобы не плодить иссуи спрошу здесь: а сейчас FastRCON и обычные RCON команды, не реализованы?
Вижу что можно указывать команды в конфигурации шаблона сервера, а вот где они сами на странице сервера - не вижу.

Да, ещё не реализованы, к сожалению. FastRCON команды будут списком под консолью.
Для RCON будет использоваться библиотека аналогичная GameQ для Query протокола. А так как библиотеки подобной я не находил, то придётся своё решение писать.

r4sas commented

Ну ничего, LGSL в крайнем случае спасёт в плане самих запросов :D