Delphi og HL server

Tags:    delphi

Hej

Jeg vil gerne prøve at skabe forbindelse til en Half-Life.
Jeg bruger "Indy's UDP Client" komponet til at lave forbindelse.

nogen der kan hjælpe???

/Martin[Redigeret d. 14/12-02 17:00:32 af Martin Juhl Jørgensen]



5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
De data du får tilbage er ikke alle i ASCII, men nogle er "rå" bytes og integers. Derfor kan du støde på alle karakterer fra #0 til #255.

Et memo er fint til output, men nogle gange er man nødt til at konvertere sine data inden man smider dem ud i memo'et. Hvis du ser på dit link (http://www.kquery.com/developer/index.php?article=4) kan du jo også se formatet for de data du får tilbage. De første 4 er en "rå" integer med værdien -1, som i ASCII ser sådan ud: ÿÿÿÿ. Derefter kommer der nogle rå bytes, før der kommer et player navn. Hver players frags står også som rå data, osv.

En måde du kan hive en integer ud af en string på er: Move(UPDsvarString[index],MinInteger,4);
En måde du kan hive en byte ud af en string på er: Move(UPDsvarString[index],MinByte,1);

Jeg har set lavet et ping program til Q2 og Q3, så bare spørg hvis du vil vide mere.

--------------------------------------------------
If it can be done, it can be done with Delphi[Redigeret d. 08/01-03 10:07:24 af Jesper Christensen]



Hej

Jeg vil gerne prøve at skabe forbindelse til en Half-Life.
Jeg bruger "Indy's UDP Client" komponet til at lave forbindelse.

nogen der kan hjælpe???

/Martin[Redigeret d. 14/12-02 17:00:32 af Martin Juhl Jørgensen]


Prøv TCP, der er en tut på http://www.hower.org/Kudzu/Articles/IntroToIndy/ .
TCP er vidst bedre. Med UDP er det ikke sikkert at datapakkerne kommer frem
i den rigtige rækkefølge.

MH.

The-Freak

Livet er for kort til at kede sig.



Hej

Jeg vil gerne prøve at skabe forbindelse til en Half-Life.
Jeg bruger "Indy's UDP Client" komponet til at lave forbindelse.

nogen der kan hjælpe???

/Martin[Redigeret d. 14/12-02 17:00:32 af Martin Juhl Jørgensen]


yes, det er rigtigt du skal bruge UDP hvis du vil skabe adgang til Rcon i halflife, det kan du jo bruge til at hente serverstatus osv. med

her er en gennem gang af rCON:
http://www.kquery.com/developer/index.php?article=13
-
neuroman? det' da mig :D
Aloha - Er du fresh???



yes, det er rigtigt du skal bruge UDP hvis du vil skabe adgang til Rcon i halflife, det kan du jo bruge til at hente serverstatus osv. med

her er en gennem gang af rCON:
http://www.kquery.com/developer/index.php?article=13
-
neuroman? det' da mig :D
Aloha - Er du fresh???


Jeg har prøvet at sende et UDP request til en HL server, problemet er at den string jeg får smidt i hovedet indeholder flere '#0' som ikke kan indlæses i en memo, da den stopper ved #0.

Kig på linket her under HL:
http://www.kquery.com/developer/index.php?article=4

læg mærke til det svar man burde få ved 'ÿÿÿÿplayers', mit bliver til:
ÿÿÿÿD|-SAF-| Thug * Elite ,hvor |-SAF-| Thug * Elite er en tilfældig player.

men den er længere hvis man bruger length(UPDsvarString) bliver den omkring 200.
/Martin



De data du får tilbage er ikke alle i ASCII, men nogle er "rå" bytes og integers. Derfor kan du støde på alle karakterer fra #0 til #255.

Et memo er fint til output, men nogle gange er man nødt til at konvertere sine data inden man smider dem ud i memo'et. Hvis du ser på dit link (http://www.kquery.com/developer/index.php?article=4) kan du jo også se formatet for de data du får tilbage. De første 4 er en "rå" integer med værdien -1, som i ASCII ser sådan ud: ÿÿÿÿ. Derefter kommer der nogle rå bytes, før der kommer et player navn. Hver players frags står også som rå data, osv.

En måde du kan hive en integer ud af en string på er: Move(UPDsvarString[index],MinInteger,4);
En måde du kan hive en byte ud af en string på er: Move(UPDsvarString[index],MinByte,1);

Jeg har set lavet et ping program til Q2 og Q3, så bare spørg hvis du vil vide mere.

--------------------------------------------------
If it can be done, it can be done with Delphi[Redigeret d. 08/01-03 10:07:24 af Jesper Christensen]

Her har jeg også været...

Kan altså ikke finde ud af at få antallet af spillere på serveren ud af de oplysninger jeg får fra serveren...



t