Hello,

I made a fix for PsychoQuery

Only thing you need to do is change line 114 (4th line in function 
_getchallenge())
from: $res = $this->_sendquery($ip, "W");
to: $res = $this->_sendquery($ip, 'U' . pack("V", -1));

$res = $this->_sendquery($ip, "W"); - A2S_SERVERQUERY_GETCHALLENGE - not 
working way of getting challenge number
$res = $this->_sendquery($ip, 'U' . pack("V", -1)); - A2S_PLAYER with 
challenge number -1 (FF FF FF FF) - working way of getting challenge number

Tell me if it works.

Kveri


Kveri  wrote / napísal(a):
> Hi,
>
> I think A2S_SERVERQUERY_GETCHALLENGE is not working, because I sent FF 
> FF FF FF 57 to server and there was no response. But when I sent 
> A2S_PLAYER w/ challenge number -1 (FF FF FF FF) I get 41 CB 4F DF 0A and 
> this looks like challenge number, so we have to send first A2S_PLAYER to 
> get challenge number and second to actually get player list.
>
> HLSW does it this way:
> 1. send TSource Engine Query - because for this command it doesn't need 
> challenge number
> 2. receive server info
> 3. send A2S_PLAYER with challenge -1 (FF FF FF FF)
> 4. receive challenge number as stated in A2S_SERVERQUERY_GETCHALLENGE ff 
> ff ff ff 41* c6 2a 3f 09*
> so actually A2S_PLAYER with challenge -1 returns 
> A2S_SERVERQUERY_GETCHALLENGE packet not A2S_PLAYER packet, so you can't 
> parse it as player packet since it doesn't return players' infos.
> 5. send A2S_RULES with challenge from 4. step: FF FF FF FF 56 c6 2a 3f 09
> 6. receive A2S_RULES
> 7. send A2S_PLAYER with challenge from 4. step: FF FF FF FF 55 56 c6 2a 
> 3f 09
> 8. receive A2S_PLAYER
>
> source: wireshark
>
> conclusion: HLSW itself gets challenge number from A2S_PLAYERS (by 
> passing -1 as challenge number) not A2S_SERVERQUERY_GETCHALLENGE, this 
> could be because A2S_SERVERQUERY_GETCHALLENGE is broken. I've tested 
> this myself and yes, A2S_SERVERQUERY_GETCHALLENGE as stated in 
> http://developer.valvesoftware.com/wiki/Server_Queries is not working, 
> maybe they changed 57 to something else?
>
> PsychoQuery uses A2S_SERVERQUERY_GETCHALLENGE, so it won't work until 
> someone patches it.
>
> Kveri
>
> Crazy Canucks  wrote / napísal(a):
>   
>> Ah, ok, if this is just a problem with the latest update, I will wait 
>> for a fix.  Thanks for letting me know I'm not the only one experiencing 
>> this problem.  And you are right, the server information is fine for me, 
>> it's just the players list that is borked...  :)
>>
>> Owen
>>
>> Faustas Buškevičius wrote:
>>   
>>     
>>> I am not sure, but judging from all the emails there's some trouble
>>> with player lists/server rules since the recent update. Although
>>> server vitals (numplayers, secure?, dedicated?, os? and the like) seem
>>> to be delivered OK.
>>>
>>> On Thu, Oct 30, 2008 at 6:30 PM, Crazy Canucks <[EMAIL PROTECTED]> wrote:
>>>   
>>>     
>>>       
>>>> I'm having a problem where PsychoQuery isn't returning a list of players
>>>> for my Half-Life servers. I get the list if I am running a lan server,
>>>> but if I am running a wan server, I don't get the list of players. Is
>>>> this a problem with the recent update?
>>>>
>>>> I can't even query my Source/Orangebox servers when I am running a lan
>>>> server, but when I am running a wan server, I get all the information,
>>>> but I know this is typical Source behaviour. Although it would be nice
>>>> to see Half-Life and Source servers respond to queries in a consistent
>>>> fashion, seeing as they are both using the same query protocol.
>>>>
>>>> Drek
>>>>
>>>> Faustas Buškevičius wrote:
>>>>     
>>>>       
>>>>         
>>>>> I had a nice little php script to query my cs1.6 servers. After the
>>>>> update, the only thing I had to change was to append a "\x00" after
>>>>> the "SourceEngineQuery" string. And the return values have moved
>>>>> around in order a little, but thats trivial to adopt to by elementary
>>>>> trial and error.
>>>>>
>>>>> On Thu, Oct 30, 2008 at 9:41 AM, Jonathan Selander <[EMAIL PROTECTED]> 
>>>>> wrote:
>>>>>
>>>>>       
>>>>>         
>>>>>           
>>>>>> Hi,
>>>>>>
>>>>>> I've read some posts about goldsource changing to source, but
>>>>>> shouldn't that mean that i could use my CS:S query scripts to query
>>>>>> 1.6 servers? Anyway, that doesn't work, so i'm asking if there''s
>>>>>> another smaller change somewhere that i need to fix?
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>> _______________________________________________
>>>>>> To unsubscribe, edit your list preferences, or view the list archives, 
>>>>>> please visit:
>>>>>> http://list.valvesoftware.com/mailman/listinfo/hlds_linux
>>>>>>
>>>>>>
>>>>>>         
>>>>>>           
>>>>>>             
>>>>> _______________________________________________
>>>>> To unsubscribe, edit your list preferences, or view the list archives, 
>>>>> please visit:
>>>>> http://list.valvesoftware.com/mailman/listinfo/hlds_linux
>>>>>
>>>>>
>>>>>       
>>>>>         
>>>>>           
>>>> _______________________________________________
>>>> To unsubscribe, edit your list preferences, or view the list archives, 
>>>> please visit:
>>>> http://list.valvesoftware.com/mailman/listinfo/hlds_linux
>>>>
>>>>     
>>>>       
>>>>         
>>> _______________________________________________
>>> To unsubscribe, edit your list preferences, or view the list archives, 
>>> please visit:
>>> http://list.valvesoftware.com/mailman/listinfo/hlds_linux
>>>
>>>   
>>>     
>>>       
>> _______________________________________________
>> To unsubscribe, edit your list preferences, or view the list archives, 
>> please visit:
>> http://list.valvesoftware.com/mailman/listinfo/hlds_linux
>>
>>   
>>     
>
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives, please 
> visit:
> http://list.valvesoftware.com/mailman/listinfo/hlds_linux
>
>   


_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlds_linux

Reply via email to