et-nik / gameap

Game Admin Panel (GameAP) is the opensource game servers control panel.
https://gameap.com
102 stars 23 forks source link

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

Closed r4sas closed 5 years ago

r4sas commented 5 years ago

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

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

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

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

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

et-nik commented 5 years ago

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

r4sas commented 5 years ago

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

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

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

https://github.com/Austinb/GameQ/issues/287#issuecomment-538049323

r4sas commented 5 years ago

Продублирую https://github.com/Austinb/GameQ/issues/287#issuecomment-538064640:

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.

et-nik commented 5 years ago

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

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

r4sas commented 5 years ago

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

r4sas commented 5 years ago

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

Ситуация такая: Сейчас проверка на 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 5 years ago

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

et-nik commented 5 years ago

Спасибо!

r4sas commented 5 years ago

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

et-nik commented 5 years ago

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

r4sas commented 5 years ago

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