home *** CD-ROM | disk | FTP | other *** search
/ Tripas 2 / TRIPAS 002.iso / UNREAL.exe / System / IpServer.u / AmtSent_TextBuffer11.TextBuffer < prev    next >
Unknown  |  1998-07-09  |  8.1 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text


This file was not able to be converted.
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
100% file data default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 00 00 00 00 00 00 00 | 77 80 01 2f 2f 3d 3d 3d |........|w..//===|
|00000010| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000020| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000030| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000040| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000050| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 0d 0a 2f 2f 20 55 |========|==..// U|
|00000060| 64 70 53 65 72 76 65 72 | 51 75 65 72 79 20 0d 0a |dpServer|Query ..|
|00000070| 2f 2f 20 09 09 62 79 20 | 52 79 61 6e 20 48 6f 64 |// ..by |Ryan Hod|
|00000080| 67 73 6f 6e 2c 20 72 79 | 61 6e 40 6d 70 61 74 68 |gson, ry|an@mpath|
|00000090| 2e 63 6f 6d 0d 0a 2f 2f | 0d 0a 2f 2f 20 44 65 73 |.com..//|..// Des|
|000000a0| 63 72 69 70 74 69 6f 6e | 3a 0d 0a 2f 2f 0d 0a 2f |cription|:..//../|
|000000b0| 2f 20 54 68 69 73 20 66 | 69 6c 65 20 69 6d 70 6c |/ This f|ile impl|
|000000c0| 65 6d 65 6e 74 73 20 61 | 20 55 44 50 20 53 65 72 |ements a| UDP Ser|
|000000d0| 76 65 72 20 51 75 65 72 | 79 20 70 72 6f 74 6f 63 |ver Quer|y protoc|
|000000e0| 6f 6c 20 73 69 6d 69 6c | 61 72 20 74 6f 20 74 68 |ol simil|ar to th|
|000000f0| 61 74 20 6f 66 20 51 75 | 61 6b 65 32 2e 0d 0a 2f |at of Qu|ake2.../|
|00000100| 2f 20 54 68 69 73 20 70 | 72 6f 74 6f 63 6f 6c 20 |/ This p|rotocol |
|00000110| 68 61 73 20 62 65 65 6e | 20 6d 6f 64 69 66 69 65 |has been| modifie|
|00000120| 64 20 74 6f 20 69 6e 63 | 6c 75 64 65 20 61 20 6c |d to inc|lude a l|
|00000130| 69 67 68 74 77 65 69 67 | 68 74 20 55 44 50 20 65 |ightweig|ht UDP e|
|00000140| 63 68 6f 20 66 61 63 69 | 6c 69 74 79 2c 0d 0a 2f |cho faci|lity,../|
|00000150| 2f 20 75 70 64 61 74 65 | 20 64 61 74 61 20 76 65 |/ update| data ve|
|00000160| 72 73 69 6f 6e 69 6e 67 | 20 61 6e 64 20 73 65 76 |rsioning| and sev|
|00000170| 65 72 61 6c 20 75 6e 72 | 65 61 6c 20 73 70 65 63 |eral unr|eal spec|
|00000180| 69 66 69 63 20 64 61 74 | 61 20 76 61 6c 75 65 73 |ific dat|a values|
|00000190| 2e 0d 0a 2f 2f 0d 0a 2f | 2f 0d 0a 2f 2f 20 55 44 |...//../|/..// UD|
|000001a0| 50 20 45 63 68 6f 20 3a | 0d 0a 2f 2f 09 0d 0a 2f |P Echo :|..//.../|
|000001b0| 2f 09 09 41 20 6c 69 67 | 68 74 77 65 69 67 68 74 |/..A lig|htweight|
|000001c0| 20 55 44 50 20 65 63 68 | 6f 20 66 61 63 69 6c 69 | UDP ech|o facili|
|000001d0| 74 79 20 77 61 73 20 61 | 64 64 65 64 20 74 6f 20 |ty was a|dded to |
|000001e0| 62 65 20 6b 69 6e 64 65 | 72 20 61 6e 64 20 67 65 |be kinde|r and ge|
|000001f0| 6e 74 6c 65 72 09 09 0d | 0a 2f 2f 09 09 74 6f 20 |ntler...|.//..to |
|00000200| 73 65 72 76 65 72 20 72 | 65 73 6f 75 72 63 65 20 |server r|esource |
|00000210| 75 74 69 6c 69 7a 61 74 | 69 6f 6e 2e 20 54 68 65 |utilizat|ion. The|
|00000220| 20 72 65 70 6c 79 20 70 | 61 63 6b 65 74 20 63 6f | reply p|acket co|
|00000230| 6e 74 61 69 6e 73 20 61 | 20 63 6f 70 79 20 6f 66 |ntains a| copy of|
|00000240| 0d 0a 2f 2f 09 09 61 6c | 6c 20 64 61 74 61 20 69 |..//..al|l data i|
|00000250| 6e 63 6c 75 64 65 64 20 | 69 6e 20 74 68 65 20 6f |ncluded |in the o|
|00000260| 72 69 67 69 6e 61 6c 20 | 65 63 68 6f 20 70 61 63 |riginal |echo pac|
|00000270| 6b 65 74 20 74 68 75 73 | 20 61 6c 6c 6f 77 69 6e |ket thus| allowin|
|00000280| 67 20 63 6c 69 65 6e 74 | 73 0d 0a 2f 2f 09 09 74 |g client|s..//..t|
|00000290| 6f 20 73 65 6e 64 20 6d | 61 63 68 69 6e 65 20 73 |o send m|achine s|
|000002a0| 70 65 63 69 66 69 63 20 | 74 69 6d 65 73 74 61 6d |pecific |timestam|
|000002b0| 70 73 20 69 6e 20 74 68 | 65 20 65 63 68 6f 20 72 |ps in th|e echo r|
|000002c0| 65 71 75 65 73 74 2e 20 | 54 68 69 73 20 61 6c 6c |equest. |This all|
|000002d0| 6f 77 73 0d 0a 2f 2f 09 | 09 63 6c 69 65 6e 74 73 |ows..//.|.clients|
|000002e0| 20 74 6f 20 68 61 76 65 | 20 6d 75 6c 74 69 70 6c | to have| multipl|
|000002f0| 65 20 70 69 6e 67 73 20 | 69 6e 20 74 72 61 6e 73 |e pings |in trans|
|00000300| 69 74 20 77 69 74 68 6f | 75 74 20 67 65 74 74 69 |it witho|ut getti|
|00000310| 6e 67 20 74 68 65 20 72 | 65 73 70 6f 6e 73 65 0d |ng the r|esponse.|
|00000320| 0a 2f 2f 09 09 74 69 6d | 65 73 20 61 6c 6c 20 6d |.//..tim|es all m|
|00000330| 65 73 73 65 64 20 75 70 | 20 73 69 67 6e 69 66 69 |essed up| signifi|
|00000340| 63 61 6e 74 6c 79 20 69 | 6d 70 72 6f 76 69 6e 67 |cantly i|mproving|
|00000350| 20 73 65 72 76 65 72 20 | 62 72 6f 77 73 65 72 20 | server |browser |
|00000360| 70 65 72 66 6f 72 6d 61 | 6e 63 65 2e 0d 0a 2f 2f |performa|nce...//|
|00000370| 0d 0a 2f 2f 20 55 70 64 | 61 74 65 20 56 65 72 73 |..// Upd|ate Vers|
|00000380| 69 6f 6e 69 6e 67 20 3a | 0d 0a 2f 2f 0d 0a 2f 2f |ioning :|..//..//|
|00000390| 20 09 09 45 61 63 68 20 | 70 61 63 6b 65 74 20 77 | ..Each |packet w|
|000003a0| 69 74 68 69 6e 20 61 20 | 71 75 65 72 79 20 68 61 |ithin a |query ha|
|000003b0| 73 20 61 20 75 6e 69 71 | 75 65 20 75 70 64 61 74 |s a uniq|ue updat|
|000003c0| 65 20 73 65 71 75 65 6e | 63 65 20 69 6e 20 74 68 |e sequen|ce in th|
|000003d0| 65 20 66 6f 72 6d 20 6f | 66 20 0d 0a 2f 2f 20 09 |e form o|f ..// .|
|000003e0| 09 6d 61 6a 6f 72 2e 6d | 69 6e 6f 72 2e 20 0d 0a |.major.m|inor. ..|
|000003f0| 2f 2f 0d 0a 2f 2f 20 09 | 09 54 68 65 20 6d 61 6a |//..// .|.The maj|
|00000400| 6f 72 20 69 73 20 74 68 | 65 20 75 70 64 61 74 65 |or is th|e update|
|00000410| 20 76 65 72 73 69 6f 6e | 20 61 6e 64 20 63 68 61 | version| and cha|
|00000420| 6e 67 65 73 20 77 69 74 | 68 20 74 68 65 20 64 61 |nges wit|h the da|
|00000430| 74 61 20 77 68 69 63 68 | 20 69 73 0d 0a 2f 2f 09 |ta which| is..//.|
|00000440| 09 72 65 63 61 6c 75 6c | 61 74 65 64 20 61 74 20 |.recalul|ated at |
|00000450| 61 6e 20 69 6e 74 65 72 | 76 61 6c 20 6e 6f 20 66 |an inter|val no f|
|00000460| 61 73 74 65 72 20 74 68 | 61 6e 20 55 70 64 61 74 |aster th|an Updat|
|00000470| 65 52 61 74 65 20 69 6e | 20 61 6e 20 65 66 66 6f |eRate in| an effo|
|00000480| 72 74 0d 0a 2f 2f 20 09 | 09 74 6f 20 63 6f 6e 73 |rt..// .|.to cons|
|00000490| 65 72 76 65 20 43 50 55 | 20 63 79 63 6c 65 73 2e |erve CPU| cycles.|
|000004a0| 20 54 68 65 20 75 70 64 | 61 74 65 20 76 65 72 73 | The upd|ate vers|
|000004b0| 69 6f 6e 20 63 61 6e 20 | 62 65 20 75 73 65 64 20 |ion can |be used |
|000004c0| 74 6f 20 63 6f 6c 6c 61 | 74 65 20 61 0d 0a 2f 2f |to colla|te a..//|
|000004d0| 09 09 64 61 74 61 20 73 | 65 74 20 61 63 72 6f 73 |..data s|et acros|
|000004e0| 73 20 6d 75 6c 74 69 70 | 6c 65 20 71 75 65 72 69 |s multip|le queri|
|000004f0| 65 73 2e 20 0d 0a 2f 2f | 0d 0a 2f 2f 09 09 54 68 |es. ..//|..//..Th|
|00000500| 65 20 6d 69 6e 6f 72 20 | 69 73 20 74 68 65 20 71 |e minor |is the q|
|00000510| 75 65 72 79 20 73 65 71 | 75 65 6e 63 65 20 61 6e |uery seq|uence an|
|00000520| 64 20 63 68 61 6e 67 65 | 73 20 77 69 74 68 20 65 |d change|s with e|
|00000530| 61 63 68 20 71 75 65 72 | 79 2e 20 54 68 65 0d 0a |ach quer|y. The..|
|00000540| 2f 2f 09 09 70 75 72 70 | 6f 73 65 20 6f 66 20 74 |//..purp|ose of t|
|00000550| 68 65 20 71 75 65 72 79 | 20 73 65 71 75 65 6e 63 |he query| sequenc|
|00000560| 65 20 69 73 20 74 6f 20 | 64 69 66 66 65 72 65 6e |e is to |differen|
|00000570| 74 69 61 74 65 20 69 6e | 64 69 76 69 64 75 61 6c |tiate in|dividual|
|00000580| 20 72 65 70 6c 69 65 73 | 0d 0a 2f 2f 20 09 09 66 | replies|..// ..f|
|00000590| 72 6f 6d 20 73 74 61 6c | 65 20 71 75 65 72 69 65 |rom stal|e querie|
|000005a0| 73 20 74 68 61 74 20 61 | 72 72 69 76 65 20 61 6d |s that a|rrive am|
|000005b0| 69 64 73 74 20 6d 6f 72 | 65 20 72 65 63 65 6e 74 |idst mor|e recent|
|000005c0| 20 72 65 70 6c 69 65 73 | 20 28 20 55 44 50 20 64 | replies| ( UDP d|
|000005d0| 6f 65 73 20 6e 6f 74 0d | 0a 2f 2f 09 09 67 75 61 |oes not.|.//..gua|
|000005e0| 72 61 6e 74 65 65 20 6f | 72 64 65 72 2c 20 74 69 |rantee o|rder, ti|
|000005f0| 6d 6c 69 6e 65 73 73 2c | 20 6f 72 20 72 65 6c 69 |mliness,| or reli|
|00000600| 61 62 69 6c 69 74 79 20 | 29 2e 0d 0a 2f 2f 0d 0a |ability |)...//..|
|00000610| 2f 2f 20 49 4d 50 4f 52 | 54 41 4e 54 20 3a 0d 0a |// IMPOR|TANT :..|
|00000620| 2f 2f 0d 0a 2f 2f 09 09 | 51 75 65 72 79 20 69 64 |//..//..|Query id|
|00000630| 65 6e 74 69 66 69 65 72 | 73 20 28 20 61 73 63 69 |entifier|s ( asci|
|00000640| 69 20 6e 61 6d 65 73 20 | 29 20 73 68 6f 75 6c 64 |i names |) should|
|00000650| 20 62 65 20 6b 65 70 74 | 20 73 65 70 61 72 61 74 | be kept| separat|
|00000660| 65 20 66 72 6f 6d 20 72 | 65 70 6c 79 0d 0a 2f 2f |e from r|eply..//|
|00000670| 09 09 69 64 65 6e 74 69 | 66 69 65 72 73 20 73 6f |..identi|fiers so|
|00000680| 20 74 68 61 74 20 69 74 | 20 77 69 6c 6c 20 6e 6f | that it| will no|
|00000690| 74 20 62 65 20 70 6f 73 | 73 69 62 6c 65 20 74 6f |t be pos|sible to|
|000006a0| 20 66 6c 6f 6f 64 20 75 | 6e 72 65 61 6c 20 73 65 | flood u|nreal se|
|000006b0| 72 76 65 72 73 0d 0a 2f | 2f 09 09 62 79 20 73 65 |rvers../|/..by se|
|000006c0| 6e 64 69 6e 67 20 61 20 | 73 70 6f 6f 66 65 64 20 |nding a |spoofed |
|000006d0| 71 75 65 72 79 20 70 61 | 63 6b 65 74 20 63 6f 6e |query pa|cket con|
|000006e0| 74 61 69 6e 69 6e 67 20 | 74 68 65 20 72 65 70 6c |taining |the repl|
|000006f0| 79 20 61 64 64 72 65 73 | 73 20 6f 66 20 61 6e 6f |y addres|s of ano|
|00000700| 74 68 65 72 0d 0a 2f 2f | 09 09 75 6e 72 65 61 6c |ther..//|..unreal|
|00000710| 20 73 65 72 76 65 72 2e | 0d 0a 2f 2f 0d 0a 2f 2f | server.|..//..//|
|00000720| 09 09 50 6c 61 79 65 72 | 20 61 6e 64 20 42 6f 74 |..Player| and Bot|
|00000730| 20 6e 61 6d 65 73 20 61 | 6e 64 20 74 65 61 6d 6e | names a|nd teamn|
|00000740| 61 6d 65 73 20 61 72 65 | 20 72 65 70 72 65 73 65 |ames are| represe|
|00000750| 6e 74 65 64 20 61 73 20 | 32 30 20 63 68 61 72 61 |nted as |20 chara|
|00000760| 63 74 65 72 20 66 69 65 | 6c 64 73 2e 0d 0a 2f 2f |cter fie|lds...//|
|00000770| 09 09 54 6f 20 65 78 74 | 72 61 63 74 20 74 68 65 |..To ext|ract the|
|00000780| 20 70 6c 61 79 65 72 2f | 62 6f 74 20 6e 61 6d 65 | player/|bot name|
|00000790| 20 6f 72 20 74 65 61 6d | 6e 61 6d 65 20 6a 75 73 | or team|name jus|
|000007a0| 74 20 72 65 6d 6f 76 65 | 20 74 68 65 20 74 72 61 |t remove| the tra|
|000007b0| 69 6c 69 6e 67 20 73 70 | 61 63 65 73 2e 0d 0a 2f |iling sp|aces.../|
|000007c0| 2f 09 09 54 68 69 73 20 | 63 68 61 6e 67 65 20 77 |/..This |change w|
|000007d0| 61 73 20 6d 61 64 65 20 | 64 75 65 20 74 6f 20 74 |as made |due to t|
|000007e0| 68 65 09 6c 61 72 67 65 | 20 6e 75 6d 62 65 72 20 |he.large| number |
|000007f0| 6f 66 20 61 6c 6c 6f 77 | 61 62 6c 65 20 63 68 61 |of allow|able cha|
|00000800| 72 61 63 74 65 72 73 20 | 69 6e 20 74 68 65 0d 0a |racters |in the..|
|00000810| 2f 2f 09 09 70 6c 61 79 | 65 72 6e 61 6d 65 20 61 |//..play|ername a|
|00000820| 6e 64 20 74 65 61 6d 6e | 61 6d 65 20 66 69 65 6c |nd teamn|ame fiel|
|00000830| 64 73 20 28 20 6d 75 6c | 74 69 70 6c 65 20 73 70 |ds ( mul|tiple sp|
|00000840| 61 63 65 73 2c 20 71 75 | 6f 74 65 73 2c 20 62 61 |aces, qu|otes, ba|
|00000850| 63 6b 73 6c 61 73 68 65 | 73 2c 20 0d 0a 2f 2f 09 |ckslashe|s, ..//.|
|00000860| 09 74 69 6c 64 65 20 61 | 6e 64 20 6d 6f 72 65 20 |.tilde a|nd more |
|00000870| 61 72 65 20 61 6c 6c 20 | 61 6c 6c 6f 77 65 64 20 |are all |allowed |
|00000880| 29 2e 0d 0a 2f 2f 0d 0a | 2f 2f 20 54 4f 44 4f 3a |)...//..|// TODO:|
|00000890| 0d 0a 2f 2f 0d 0a 2f 2f | 20 2d 20 47 65 74 20 26 |..//..//| - Get &|
|000008a0| 20 73 65 6e 64 20 6d 61 | 78 70 6c 61 79 65 72 20 | send ma|xplayer |
|000008b0| 69 6e 66 6f 20 66 6f 72 | 20 67 61 6d 65 74 79 70 |info for| gametyp|
|000008c0| 65 73 20 6f 74 68 65 72 | 20 74 68 61 6e 20 64 65 |es other| than de|
|000008d0| 61 74 68 6d 61 74 63 68 | 0d 0a 2f 2f 20 2d 20 45 |athmatch|..// - E|
|000008e0| 78 74 65 6e 64 20 22 73 | 74 61 74 75 73 22 20 71 |xtend "s|tatus" q|
|000008f0| 75 65 72 79 20 77 69 74 | 68 20 22 76 61 72 73 22 |uery wit|h "vars"|
|00000900| 20 71 75 65 72 79 20 66 | 6f 72 20 67 61 6d 65 20 | query f|or game |
|00000910| 66 6c 61 67 73 0d 0a 2f | 2f 20 2d 20 41 64 64 20 |flags../|/ - Add |
|00000920| 73 75 70 70 6f 72 74 20 | 66 6f 72 20 6d 6f 72 65 |support |for more|
|00000930| 20 74 68 61 6e 20 32 35 | 36 20 70 6c 61 79 65 72 | than 25|6 player|
|00000940| 73 20 26 20 32 35 36 20 | 62 6f 74 73 20 28 20 34 |s & 256 |bots ( 4|
|00000950| 30 30 20 74 6f 74 61 6c | 20 29 0d 0a 2f 2f 3d 3d |00 total| )..//==|
|00000960| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000970| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000980| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000990| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000009a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 0d 0a 0d 0a 63 |========|===....c|
|000009b0| 6c 61 73 73 20 55 64 70 | 53 65 72 76 65 72 51 75 |lass Udp|ServerQu|
|000009c0| 65 72 79 20 65 78 70 61 | 6e 64 73 20 55 64 70 4c |ery expa|nds UdpL|
|000009d0| 69 6e 6b 20 63 6f 6e 66 | 69 67 3b 0d 0a 0d 0a 76 |ink conf|ig;....v|
|000009e0| 61 72 28 29 20 67 6c 6f | 62 61 6c 63 6f 6e 66 69 |ar() glo|balconfi|
|000009f0| 67 20 69 6e 74 20 55 70 | 64 61 74 65 52 61 74 65 |g int Up|dateRate|
|00000a00| 3b 0d 0a 76 61 72 28 29 | 20 67 6c 6f 62 61 6c 63 |;..var()| globalc|
|00000a10| 6f 6e 66 69 67 20 69 6e | 74 20 55 70 64 61 74 65 |onfig in|t Update|
|00000a20| 56 65 72 3b 0d 0a 0d 0a | 76 61 72 20 69 6e 74 20 |Ver;....|var int |
|00000a30| 55 44 50 51 75 65 72 79 | 50 6f 72 74 3b 0d 0a 0d |UDPQuery|Port;...|
|00000a40| 0a 76 61 72 20 73 74 72 | 69 6e 67 5b 32 30 5d 20 |.var str|ing[20] |
|00000a50| 4e 61 6d 65 3b 0d 0a 76 | 61 72 20 73 74 72 69 6e |Name;..v|ar strin|
|00000a60| 67 5b 32 30 5d 20 54 65 | 61 6d 3b 0d 0a 76 61 72 |g[20] Te|am;..var|
|00000a70| 20 73 74 72 69 6e 67 5b | 32 30 5d 20 50 61 64 3b | string[|20] Pad;|
|00000a80| 0d 0a 76 61 72 20 69 6e | 74 20 4e 75 6d 50 6c 61 |..var in|t NumPla|
|00000a90| 79 65 72 73 3b 0d 0a 76 | 61 72 20 69 6e 74 20 4e |yers;..v|ar int N|
|00000aa0| 75 6d 42 6f 74 73 3b 0d | 0a 76 61 72 20 69 6e 74 |umBots;.|.var int|
|00000ab0| 20 4d 61 78 50 6c 61 79 | 65 72 73 3b 0d 0a 76 61 | MaxPlay|ers;..va|
|00000ac0| 72 20 69 6e 74 20 54 69 | 6d 65 4c 69 6d 69 74 3b |r int Ti|meLimit;|
|00000ad0| 0d 0a 76 61 72 20 69 6e | 74 20 46 72 61 67 4c 69 |..var in|t FragLi|
|00000ae0| 6d 69 74 3b 0d 0a 0d 0a | 76 61 72 20 73 74 72 69 |mit;....|var stri|
|00000af0| 6e 67 5b 32 35 35 5d 20 | 53 65 72 76 65 72 50 6b |ng[255] |ServerPk|
|00000b00| 74 3b 0d 0a 76 61 72 20 | 73 74 72 69 6e 67 5b 32 |t;..var |string[2|
|00000b10| 35 35 5d 20 43 6f 6d 6d | 65 6e 74 50 6b 74 3b 0d |55] Comm|entPkt;.|
|00000b20| 0a 76 61 72 20 73 74 72 | 69 6e 67 5b 32 35 35 5d |.var str|ing[255]|
|00000b30| 20 50 6c 61 79 65 72 50 | 6b 74 5b 36 34 5d 3b 09 | PlayerP|kt[64];.|
|00000b40| 2f 2f 20 70 6c 61 79 65 | 72 73 20 73 65 6e 74 20 |// playe|rs sent |
|00000b50| 69 6e 20 67 72 6f 75 70 | 73 20 6f 66 20 34 0d 0a |in group|s of 4..|
|00000b60| 76 61 72 20 73 74 72 69 | 6e 67 5b 32 35 35 5d 20 |var stri|ng[255] |
|00000b70| 42 6f 74 70 6b 74 5b 36 | 34 5d 3b 09 09 2f 2f 20 |Botpkt[6|4];..// |
|00000b80| 62 6f 74 73 20 73 65 6e | 74 20 69 6e 20 67 72 6f |bots sen|t in gro|
|00000b90| 75 70 73 20 6f 66 20 34 | 0d 0a 0d 0a 76 61 72 20 |ups of 4|....var |
|00000ba0| 53 65 72 76 65 72 55 70 | 6c 69 6e 6b 20 53 55 4c |ServerUp|link SUL|
|00000bb0| 69 6e 6b 3b 0d 0a 76 61 | 72 20 70 6c 61 79 65 72 |ink;..va|r player|
|00000bc0| 70 61 77 6e 20 55 50 6c | 61 79 65 72 3b 0d 0a 76 |pawn UPl|ayer;..v|
|00000bd0| 61 72 20 62 6f 74 73 20 | 55 42 6f 74 3b 0d 0a 0d |ar bots |UBot;...|
|00000be0| 0a 76 61 72 20 62 6f 6f | 6c 20 20 55 70 64 61 74 |.var boo|l Updat|
|00000bf0| 65 45 78 70 69 72 65 64 | 3b 0d 0a 76 61 72 20 69 |eExpired|;..var i|
|00000c00| 6e 74 20 20 20 53 65 71 | 3b 0d 0a 0d 0a 66 75 6e |nt Seq|;....fun|
|00000c10| 63 74 69 6f 6e 20 42 65 | 67 69 6e 50 6c 61 79 28 |ction Be|ginPlay(|
|00000c20| 29 0d 0a 7b 0d 0a 09 6c | 6f 63 61 6c 20 69 6e 74 |)..{...l|ocal int|
|00000c30| 20 69 6e 64 65 78 3b 0d | 0a 09 6c 6f 63 61 6c 20 | index;.|..local |
|00000c40| 73 74 72 69 6e 67 5b 32 | 34 30 5d 20 74 6d 70 3b |string[2|40] tmp;|
|00000c50| 0d 0a 09 0d 0a 09 2f 2f | 20 73 65 74 75 70 20 70 |......//| setup p|
|00000c60| 61 64 64 69 6e 67 20 66 | 6f 72 20 70 6c 61 79 65 |adding f|or playe|
|00000c70| 72 6e 61 6d 65 20 61 6e | 64 20 74 65 61 6d 6e 61 |rname an|d teamna|
|00000c80| 6d 65 20 66 69 65 6c 64 | 73 0d 0a 09 50 61 64 20 |me field|s...Pad |
|00000c90| 3d 20 22 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |= " | |
|00000ca0| 20 20 20 20 20 20 20 22 | 3b 0d 0a 0d 0a 09 2f 2f | "|;.....//|
|00000cb0| 20 64 65 66 61 75 6c 74 | 20 71 75 65 72 79 20 70 | default| query p|
|00000cc0| 6f 72 74 0d 0a 09 55 44 | 50 51 75 65 72 79 50 6f |ort...UD|PQueryPo|
|00000cd0| 72 74 20 3d 20 38 37 37 | 37 3b 0d 0a 09 0d 0a 09 |rt = 877|7;......|
|00000ce0| 2f 2f 20 65 78 70 69 72 | 65 20 28 20 6e 6f 6e 65 |// expir|e ( none|
|00000cf0| 78 69 73 74 61 6e 74 20 | 29 20 75 70 64 61 74 65 |xistant |) update|
|00000d00| 0d 0a 09 55 70 64 61 74 | 65 45 78 70 69 72 65 64 |...Updat|eExpired|
|00000d10| 20 3d 20 74 72 75 65 3b | 0d 0a 09 0d 0a 09 2f 2f | = true;|......//|
|00000d20| 20 69 6e 69 74 69 61 6c | 69 7a 65 20 70 61 63 6b | initial|ize pack|
|00000d30| 65 74 20 73 65 71 75 65 | 6e 63 65 0d 0a 09 53 65 |et seque|nce...Se|
|00000d40| 71 20 3d 20 30 3b 0d 0a | 0d 0a 09 2f 2f 20 50 61 |q = 0;..|...// Pa|
|00000d50| 72 73 65 20 4c 65 76 65 | 6c 2e 47 65 74 41 64 64 |rse Leve|l.GetAdd|
|00000d60| 72 65 73 73 55 52 4c 28 | 29 20 66 6f 72 20 49 50 |ressURL(|) for IP|
|00000d70| 20 70 6f 72 74 20 6e 75 | 6d 62 65 72 20 61 6e 64 | port nu|mber and|
|00000d80| 20 64 65 66 61 75 6c 74 | 20 63 6f 6d 6d 65 6e 74 | default| comment|
|00000d90| 0d 0a 09 2f 2f 20 46 6f | 72 6d 61 74 3a 20 49 70 |...// Fo|rmat: Ip|
|00000da0| 2e 41 64 64 72 65 73 73 | 2e 63 6f 6d 3a 50 6f 72 |.Address|.com:Por|
|00000db0| 74 4e 75 6d 2f 4c 65 76 | 65 6c 4e 61 6d 65 20 69 |tNum/Lev|elName i|
|00000dc0| 66 20 74 68 65 20 70 6f | 72 74 20 69 73 6e 27 74 |f the po|rt isn't|
|00000dd0| 20 74 68 65 0d 0a 09 2f | 2f 20 64 65 66 61 75 6c | the.../|/ defaul|
|00000de0| 74 2e 20 20 4f 74 68 65 | 72 77 69 73 65 2c 20 69 |t. Othe|rwise, i|
|00000df0| 74 73 20 49 70 2e 41 64 | 64 72 65 73 73 2e 63 6f |ts Ip.Ad|dress.co|
|00000e00| 6d 2f 4c 65 76 65 6c 4e | 61 6d 65 0d 0a 0d 0a 09 |m/LevelN|ame.....|
|00000e10| 74 6d 70 20 3d 20 4c 65 | 76 65 6c 2e 47 65 74 41 |tmp = Le|vel.GetA|
|00000e20| 64 64 72 65 73 73 55 52 | 4c 28 29 3b 0d 0a 09 69 |ddressUR|L();...i|
|00000e30| 6e 64 65 78 20 3d 20 49 | 6e 53 74 72 28 20 74 6d |ndex = I|nStr( tm|
|00000e40| 70 2c 20 22 3a 22 20 20 | 29 3b 09 09 2f 2f 20 45 |p, ":" |);..// E|
|00000e50| 6e 64 20 62 6f 75 6e 64 | 20 66 6f 72 20 49 70 41 |nd bound| for IpA|
|00000e60| 64 64 72 65 73 73 09 0d | 0a 0d 0a 09 69 66 28 20 |ddress..|....if( |
|00000e70| 69 6e 64 65 78 20 3e 20 | 30 20 29 0d 0a 09 7b 0d |index > |0 )...{.|
|00000e80| 0a 09 09 2f 2f 20 46 6f | 72 6d 61 74 20 68 61 73 |...// Fo|rmat has|
|00000e90| 20 70 6f 72 74 20 69 6e | 63 6c 75 64 65 64 0d 0a | port in|cluded..|
|00000ea0| 09 09 74 6d 70 20 3d 20 | 4d 69 64 28 20 74 6d 70 |..tmp = |Mid( tmp|
|00000eb0| 2c 20 69 6e 64 65 78 2b | 31 20 29 3b 09 09 2f 2f |, index+|1 );..//|
|00000ec0| 20 47 65 74 20 74 68 65 | 20 73 75 62 73 74 72 69 | Get the| substri|
|00000ed0| 6e 67 20 73 74 61 72 74 | 69 6e 67 20 61 74 20 50 |ng start|ing at P|
|00000ee0| 6f 72 74 20 6e 75 6d 62 | 65 72 0d 0a 09 09 69 6e |ort numb|er....in|
|00000ef0| 64 65 78 20 3d 20 49 6e | 53 74 72 28 20 74 6d 70 |dex = In|Str( tmp|
|00000f00| 2c 20 22 2f 22 20 29 3b | 09 09 2f 2f 20 45 6e 64 |, "/" );|..// End|
|00000f10| 20 62 6f 75 6e 64 20 66 | 6f 72 20 50 6f 72 74 20 | bound f|or Port |
|00000f20| 6e 75 6d 62 65 72 0d 0a | 09 09 69 66 28 20 69 6e |number..|..if( in|
|00000f30| 64 65 78 20 3e 20 30 20 | 29 0d 0a 09 09 09 55 44 |dex > 0 |).....UD|
|00000f40| 50 51 75 65 72 79 50 6f | 72 74 20 3d 20 49 6e 74 |PQueryPo|rt = Int|
|00000f50| 28 20 4d 69 64 28 20 74 | 6d 70 2c 20 30 2c 20 69 |( Mid( t|mp, 0, i|
|00000f60| 6e 64 65 78 20 29 20 29 | 3b 0d 0a 09 09 55 44 50 |ndex ) )|;....UDP|
|00000f70| 51 75 65 72 79 50 6f 72 | 74 20 3d 20 55 44 50 51 |QueryPor|t = UDPQ|
|00000f80| 75 65 72 79 50 6f 72 74 | 20 2b 20 31 30 30 30 3b |ueryPort| + 1000;|
|00000f90| 0d 0a 09 7d 0d 0a 09 09 | 0d 0a 09 2f 2f 09 0d 0a |...}....|...//...|
|00000fa0| 09 2f 2f 20 49 6e 69 74 | 20 73 65 72 76 65 72 20 |.// Init| server |
|00000fb0| 63 6f 6d 6d 65 6e 74 20 | 70 61 63 6b 65 74 0d 0a |comment |packet..|
|00000fc0| 09 2f 2f 0d 0a 09 0d 0a | 09 66 6f 72 65 61 63 68 |.//.....|.foreach|
|00000fd0| 20 41 6c 6c 41 63 74 6f | 72 73 28 20 63 6c 61 73 | AllActo|rs( clas|
|00000fe0| 73 20 27 53 65 72 76 65 | 72 55 70 6c 69 6e 6b 27 |s 'Serve|rUplink'|
|00000ff0| 2c 20 53 55 4c 69 6e 6b | 20 29 0d 0a 09 09 43 6f |, SULink| )....Co|
|00001000| 6d 6d 65 6e 74 50 6b 74 | 20 3d 20 22 5c 5c 63 6f |mmentPkt| = "\\co|
|00001010| 6d 6d 65 6e 74 5c 5c 22 | 20 24 20 53 55 4c 69 6e |mment\\"| $ SULin|
|00001020| 6b 2e 43 6f 6d 6d 65 6e | 74 53 74 72 69 6e 67 3b |k.Commen|tString;|
|00001030| 0d 0a 0d 0a 09 69 66 28 | 20 42 69 6e 64 50 6f 72 |.....if(| BindPor|
|00001040| 74 28 55 44 50 51 75 65 | 72 79 50 6f 72 74 29 20 |t(UDPQue|ryPort) |
|00001050| 29 0d 0a 09 7b 0d 0a 09 | 09 6c 6f 67 28 20 22 55 |)...{...|.log( "U|
|00001060| 44 50 20 51 75 65 72 79 | 20 68 6f 73 74 20 5c 22 |DP Query| host \"|
|00001070| 22 20 24 20 74 6d 70 20 | 24 20 22 5c 22 20 62 6f |" $ tmp |$ "\" bo|
|00001080| 75 6e 64 20 6f 6e 20 70 | 6f 72 74 20 22 20 24 20 |und on p|ort " $ |
|00001090| 55 44 50 51 75 65 72 79 | 50 6f 72 74 20 29 3b 0d |UDPQuery|Port );.|
|000010a0| 0a 09 09 6c 6f 67 28 20 | 22 55 44 50 20 51 75 65 |...log( |"UDP Que|
|000010b0| 72 79 20 75 70 64 61 74 | 65 20 72 61 74 65 20 22 |ry updat|e rate "|
|000010c0| 20 24 20 55 70 64 61 74 | 65 52 61 74 65 20 24 20 | $ Updat|eRate $ |
|000010d0| 22 20 6d 73 2e 22 20 29 | 3b 0d 0a 09 09 72 65 74 |" ms." )|;....ret|
|000010e0| 75 72 6e 3b 0d 0a 09 7d | 0d 0a 09 65 6c 73 65 20 |urn;...}|...else |
|000010f0| 6c 6f 67 28 20 22 55 44 | 50 20 51 75 65 72 79 20 |log( "UD|P Query |
|00001100| 75 6e 61 62 6c 65 20 74 | 6f 20 62 69 6e 64 20 22 |unable t|o bind "|
|00001110| 20 24 20 55 44 50 51 75 | 65 72 79 50 6f 72 74 29 | $ UDPQu|eryPort)|
|00001120| 3b 0d 0a 7d 0d 0a 0d 0a | 66 75 6e 63 74 69 6f 6e |;..}....|function|
|00001130| 20 4d 61 6b 65 53 65 72 | 76 65 72 49 6e 66 6f 28 | MakeSer|verInfo(|
|00001140| 29 0d 0a 7b 0d 0a 09 6c | 6f 63 61 6c 20 69 6e 74 |)..{...l|ocal int|
|00001150| 20 69 2c 20 6a 2c 20 63 | 6f 75 6e 74 3b 0d 0a 09 | i, j, c|ount;...|
|00001160| 0d 0a 09 2f 2f 09 0d 0a | 09 2f 2f 20 49 6e 69 74 |...//...|.// Init|
|00001170| 20 70 6c 61 79 65 72 20 | 64 61 74 61 20 70 61 63 | player |data pac|
|00001180| 6b 65 74 73 20 26 20 67 | 65 74 20 63 75 72 72 65 |kets & g|et curre|
|00001190| 6e 74 20 70 6c 61 79 65 | 72 20 63 6f 75 6e 74 2e |nt playe|r count.|
|000011a0| 0d 0a 09 2f 2f 0d 0a 09 | 0d 0a 09 66 6f 72 28 20 |...//...|...for( |
|000011b0| 69 3d 30 3b 20 69 3c 36 | 34 3b 20 69 2b 2b 20 29 |i=0; i<6|4; i++ )|
|000011c0| 0d 0a 09 09 50 6c 61 79 | 65 72 50 6b 74 5b 69 5d |....Play|erPkt[i]|
|000011d0| 20 3d 20 22 22 3b 0d 0a | 09 0d 0a 09 69 20 3d 20 | = "";..|....i = |
|000011e0| 30 3b 0d 0a 09 63 6f 75 | 6e 74 20 3d 20 30 3b 0d |0;...cou|nt = 0;.|
|000011f0| 0a 09 66 6f 72 65 61 63 | 68 20 41 6c 6c 41 63 74 |..foreac|h AllAct|
|00001200| 6f 72 73 28 20 63 6c 61 | 73 73 20 27 70 6c 61 79 |ors( cla|ss 'play|
|00001210| 65 72 70 61 77 6e 27 2c | 20 55 50 6c 61 79 65 72 |erpawn',| UPlayer|
|00001220| 20 29 0d 0a 09 7b 0d 0a | 09 09 4e 61 6d 65 20 3d | )...{..|..Name =|
|00001230| 20 55 50 6c 61 79 65 72 | 2e 50 6c 61 79 65 72 4e | UPlayer|.PlayerN|
|00001240| 61 6d 65 3b 0d 0a 09 09 | 69 66 28 20 4c 65 6e 28 |ame;....|if( Len(|
|00001250| 20 4e 61 6d 65 20 29 20 | 3c 20 32 30 20 29 0d 0a | Name ) |< 20 )..|
|00001260| 09 09 09 4e 61 6d 65 20 | 3d 20 4e 61 6d 65 20 24 |...Name |= Name $|
|00001270| 20 4d 69 64 28 20 50 61 | 64 2c 20 4c 65 6e 28 20 | Mid( Pa|d, Len( |
|00001280| 4e 61 6d 65 20 29 20 29 | 3b 0d 0a 09 09 0d 0a 09 |Name ) )|;.......|
|00001290| 09 54 65 61 6d 20 3d 20 | 55 50 6c 61 79 65 72 2e |.Team = |UPlayer.|
|000012a0| 54 65 61 6d 4e 61 6d 65 | 3b 0d 0a 09 09 69 66 28 |TeamName|;....if(|
|000012b0| 20 4c 65 6e 28 20 54 65 | 61 6d 20 29 20 3c 20 32 | Len( Te|am ) < 2|
|000012c0| 30 20 29 0d 0a 09 09 09 | 54 65 61 6d 20 3d 20 54 |0 ).....|Team = T|
|000012d0| 65 61 6d 20 24 20 4d 69 | 64 28 20 50 61 64 2c 20 |eam $ Mi|d( Pad, |
|000012e0| 4c 65 6e 28 20 54 65 61 | 6d 20 29 20 29 3b 0d 0a |Len( Tea|m ) );..|
|000012f0| 09 09 09 0d 0a 09 09 69 | 66 28 20 63 6f 75 6e 74 |.......i|f( count|
|00001300| 20 25 20 34 20 3d 3d 20 | 30 20 29 0d 0a 09 09 09 | % 4 == |0 ).....|
|00001310| 50 6c 61 79 65 72 50 6b | 74 5b 69 5d 20 3d 20 22 |PlayerPk|t[i] = "|
|00001320| 5c 5c 70 6c 61 79 65 72 | 73 5c 5c 22 3b 0d 0a 09 |\\player|s\\";...|
|00001330| 09 09 0d 0a 09 09 50 6c | 61 79 65 72 50 6b 74 5b |......Pl|ayerPkt[|
|00001340| 69 5d 20 3d 20 50 6c 61 | 79 65 72 50 6b 74 5b 69 |i] = Pla|yerPkt[i|
|00001350| 5d 20 24 20 20 0d 0a 09 | 09 20 20 20 20 20 20 20 |] $ ...|. |
|00001360| 20 20 20 20 20 20 20 20 | 4e 61 6d 65 20 24 20 22 | |Name $ "|
|00001370| 20 22 20 24 0d 0a 09 09 | 20 20 20 20 20 20 20 20 | " $....| |
|00001380| 20 20 20 20 20 20 20 55 | 50 6c 61 79 65 72 2e 53 | U|Player.S|
|00001390| 6b 69 6e 20 24 20 22 20 | 22 20 24 0d 0a 09 09 09 |kin $ " |" $.....|
|000013a0| 20 20 20 20 20 20 20 20 | 20 20 20 54 65 61 6d 20 | | Team |
|000013b0| 24 20 22 20 22 20 24 0d | 0a 09 09 20 20 20 20 20 |$ " " $.|... |
|000013c0| 20 20 20 20 20 20 20 20 | 20 20 55 50 6c 61 79 65 | | UPlaye|
|000013d0| 72 2e 4b 69 6c 6c 43 6f | 75 6e 74 20 24 20 22 20 |r.KillCo|unt $ " |
|000013e0| 22 20 24 0d 0a 09 09 20 | 20 20 20 20 20 20 20 20 |" $.... | |
|000013f0| 20 20 20 20 20 20 55 50 | 6c 61 79 65 72 2e 44 69 | UP|layer.Di|
|00001400| 65 43 6f 75 6e 74 20 24 | 20 0d 0a 20 09 09 20 20 |eCount $| .. .. |
|00001410| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 22 5c 5c | | "\\|
|00001420| 22 3b 0d 0a 20 09 09 20 | 20 20 20 20 20 20 20 20 |";.. .. | |
|00001430| 20 20 20 20 20 20 0d 0a | 20 09 09 69 66 28 20 2b | ..| ..if( +|
|00001440| 2b 63 6f 75 6e 74 20 25 | 20 34 20 3d 3d 20 30 20 |+count %| 4 == 0 |
|00001450| 29 0d 0a 20 09 09 09 69 | 2b 2b 3b 0d 0a 09 7d 0d |).. ...i|++;...}.|
|00001460| 0a 09 0d 0a 09 4e 75 6d | 50 6c 61 79 65 72 73 20 |.....Num|Players |
|00001470| 3d 20 63 6f 75 6e 74 3b | 0d 0a 0d 0a 09 2f 2f 09 |= count;|.....//.|
|00001480| 0d 0a 09 2f 2f 20 49 6e | 69 74 20 62 6f 74 20 64 |...// In|it bot d|
|00001490| 61 74 61 20 70 61 63 6b | 65 74 20 26 20 67 65 74 |ata pack|et & get|
|000014a0| 20 63 75 72 72 65 6e 74 | 20 62 6f 74 20 63 6f 75 | current| bot cou|
|000014b0| 6e 74 2e 0d 0a 09 2f 2f | 0d 0a 09 0d 0a 09 66 6f |nt....//|......fo|
|000014c0| 72 28 20 69 3d 30 3b 20 | 69 3c 36 34 3b 20 69 2b |r( i=0; |i<64; i+|
|000014d0| 2b 20 29 0d 0a 09 09 42 | 6f 74 50 6b 74 5b 69 5d |+ )....B|otPkt[i]|
|000014e0| 20 3d 20 22 22 3b 0d 0a | 09 09 0d 0a 09 69 20 3d | = "";..|.....i =|
|000014f0| 20 30 3b 0d 0a 09 63 6f | 75 6e 74 20 3d 20 30 3b | 0;...co|unt = 0;|
|00001500| 0d 0a 09 66 6f 72 65 61 | 63 68 20 41 6c 6c 41 63 |...forea|ch AllAc|
|00001510| 74 6f 72 73 28 20 63 6c | 61 73 73 20 27 62 6f 74 |tors( cl|ass 'bot|
|00001520| 73 27 2c 20 55 42 6f 74 | 20 29 0d 0a 09 7b 0d 0a |s', UBot| )...{..|
|00001530| 09 09 4e 61 6d 65 20 3d | 20 55 42 6f 74 2e 50 6c |..Name =| UBot.Pl|
|00001540| 61 79 65 72 4e 61 6d 65 | 3b 0d 0a 09 09 69 66 28 |ayerName|;....if(|
|00001550| 20 4c 65 6e 28 20 4e 61 | 6d 65 20 29 20 3c 20 32 | Len( Na|me ) < 2|
|00001560| 30 20 29 0d 0a 09 09 09 | 4e 61 6d 65 20 3d 20 4e |0 ).....|Name = N|
|00001570| 61 6d 65 20 24 20 4d 69 | 64 28 20 50 61 64 2c 20 |ame $ Mi|d( Pad, |
|00001580| 4c 65 6e 28 20 4e 61 6d | 65 20 29 20 29 3b 0d 0a |Len( Nam|e ) );..|
|00001590| 09 09 0d 0a 09 09 54 65 | 61 6d 20 3d 20 55 42 6f |......Te|am = UBo|
|000015a0| 74 2e 54 65 61 6d 4e 61 | 6d 65 3b 0d 0a 09 09 69 |t.TeamNa|me;....i|
|000015b0| 66 28 20 4c 65 6e 28 20 | 54 65 61 6d 20 29 20 3c |f( Len( |Team ) <|
|000015c0| 20 32 30 20 29 0d 0a 09 | 09 09 54 65 61 6d 20 3d | 20 )...|..Team =|
|000015d0| 20 54 65 61 6d 20 24 20 | 4d 69 64 28 20 50 61 64 | Team $ |Mid( Pad|
|000015e0| 2c 20 4c 65 6e 28 20 54 | 65 61 6d 20 29 20 29 3b |, Len( T|eam ) );|
|000015f0| 0d 0a 09 09 09 0d 0a 09 | 09 69 66 28 20 63 6f 75 |........|.if( cou|
|00001600| 6e 74 20 25 20 34 20 3d | 3d 20 30 20 29 0d 0a 09 |nt % 4 =|= 0 )...|
|00001610| 09 09 42 6f 74 50 6b 74 | 5b 69 5d 20 3d 20 22 5c |..BotPkt|[i] = "\|
|00001620| 5c 62 6f 74 73 5c 5c 22 | 3b 0d 0a 0d 0a 09 09 42 |\bots\\"|;......B|
|00001630| 6f 74 50 6b 74 5b 69 5d | 20 3d 20 42 6f 74 50 6b |otPkt[i]| = BotPk|
|00001640| 74 5b 69 5d 20 24 20 0d | 0a 09 09 20 20 20 20 20 |t[i] $ .|... |
|00001650| 20 20 20 20 20 20 20 4e | 61 6d 65 20 24 20 22 20 | N|ame $ " |
|00001660| 22 20 24 0d 0a 09 09 20 | 20 20 20 20 20 20 20 20 |" $.... | |
|00001670| 20 20 20 55 42 6f 74 2e | 53 6b 69 6e 20 24 20 22 | UBot.|Skin $ "|
|00001680| 20 22 20 24 0d 0a 09 09 | 20 20 20 20 20 20 20 20 | " $....| |
|00001690| 20 20 20 20 54 65 61 6d | 20 24 20 22 20 22 20 24 | Team| $ " " $|
|000016a0| 0d 0a 09 09 09 20 20 20 | 20 20 20 20 20 55 42 6f |..... | UBo|
|000016b0| 74 2e 4b 69 6c 6c 43 6f | 75 6e 74 20 24 20 22 20 |t.KillCo|unt $ " |
|000016c0| 22 20 24 0d 0a 09 09 09 | 20 20 20 20 20 20 20 20 |" $.....| |
|000016d0| 55 42 6f 74 2e 44 69 65 | 43 6f 75 6e 74 20 24 20 |UBot.Die|Count $ |
|000016e0| 22 20 22 20 24 0d 0a 09 | 09 09 20 20 20 20 20 20 |" " $...|.. |
|000016f0| 20 20 55 42 6f 74 2e 53 | 6b 69 6c 6c 20 24 20 0d | UBot.S|kill $ .|
|00001700| 0a 09 20 09 09 20 20 20 | 20 20 20 20 20 22 5c 5c |.. .. | "\\|
|00001710| 22 3b 0d 0a 20 09 09 09 | 09 20 20 20 20 20 20 20 |";.. ...|. |
|00001720| 20 20 20 20 20 0d 0a 20 | 09 09 69 66 28 20 2b 2b | .. |..if( ++|
|00001730| 63 6f 75 6e 74 20 25 20 | 34 20 3d 3d 20 30 20 29 |count % |4 == 0 )|
|00001740| 0d 0a 20 09 09 09 69 2b | 2b 3b 0d 0a 09 7d 0d 0a |.. ...i+|+;...}..|
|00001750| 09 0d 0a 09 4e 75 6d 42 | 6f 74 73 20 3d 20 63 6f |....NumB|ots = co|
|00001760| 75 6e 74 3b 0d 0a 09 0d | 0a 09 2f 2f 09 0d 0a 09 |unt;....|..//....|
|00001770| 2f 2f 20 49 6e 69 74 20 | 73 65 72 76 65 72 20 64 |// Init |server d|
|00001780| 61 74 61 20 70 61 63 6b | 65 74 0d 0a 09 2f 2f 0d |ata pack|et...//.|
|00001790| 0a 09 0d 0a 09 2f 2f 20 | 54 68 69 73 20 69 73 20 |.....// |This is |
|000017a0| 65 78 63 65 70 74 69 6f | 6e 61 6c 6c 79 20 63 68 |exceptio|nally ch|
|000017b0| 65 65 7a 65 65 2e 20 57 | 65 20 73 68 6f 75 6c 64 |eezee. W|e should|
|000017c0| 20 6b 6e 6f 77 20 74 68 | 65 20 6d 61 78 20 70 6c | know th|e max pl|
|000017d0| 61 79 65 72 73 20 69 6e | 20 74 68 65 20 67 61 6d |ayers in| the gam|
|000017e0| 65 0d 0a 09 2f 2f 20 72 | 65 67 61 72 64 6c 65 73 |e...// r|egardles|
|000017f0| 73 20 6f 66 20 67 61 6d | 65 74 79 70 65 2e 20 4d |s of gam|etype. M|
|00001800| 61 78 43 6c 69 65 6e 74 | 73 20 69 64 65 61 6c 6c |axClient|s ideall|
|00001810| 79 20 73 68 6f 75 6c 64 | 20 62 65 20 6d 6f 76 65 |y should| be move|
|00001820| 64 20 74 6f 20 47 61 6d | 65 49 6e 66 6f 2e 0d 0a |d to Gam|eInfo...|
|00001830| 09 2f 2f 20 54 68 69 73 | 20 77 6f 75 6c 64 20 68 |.// This| would h|
|00001840| 65 6c 70 20 70 72 65 76 | 65 6e 74 20 6c 61 75 6e |elp prev|ent laun|
|00001850| 63 68 69 6e 67 20 69 6e | 74 6f 20 66 75 6c 6c 20 |ching in|to full |
|00001860| 67 61 6d 65 73 2e 0d 0a | 0d 0a 09 69 66 28 20 4c |games...|...if( L|
|00001870| 65 76 65 6c 2e 47 61 6d | 65 2e 49 73 41 28 20 27 |evel.Gam|e.IsA( '|
|00001880| 44 65 61 74 68 4d 61 74 | 63 68 47 61 6d 65 27 20 |DeathMat|chGame' |
|00001890| 29 20 29 0d 0a 09 7b 0d | 0a 09 09 20 4d 61 78 50 |) )...{.|... MaxP|
|000018a0| 6c 61 79 65 72 73 20 3d | 20 44 65 61 74 68 4d 61 |layers =| DeathMa|
|000018b0| 74 63 68 47 61 6d 65 28 | 20 4c 65 76 65 6c 2e 47 |tchGame(| Level.G|
|000018c0| 61 6d 65 20 29 2e 4d 61 | 78 50 6c 61 79 65 72 73 |ame ).Ma|xPlayers|
|000018d0| 3b 0d 0a 09 09 20 54 69 | 6d 65 4c 69 6d 69 74 20 |;.... Ti|meLimit |
|000018e0| 3d 20 44 65 61 74 68 4d | 61 74 63 68 47 61 6d 65 |= DeathM|atchGame|
|000018f0| 28 20 4c 65 76 65 6c 2e | 47 61 6d 65 20 29 2e 54 |( Level.|Game ).T|
|00001900| 69 6d 65 4c 69 6d 69 74 | 3b 0d 0a 09 09 20 46 72 |imeLimit|;.... Fr|
|00001910| 61 67 4c 69 6d 69 74 20 | 3d 20 44 65 61 74 68 4d |agLimit |= DeathM|
|00001920| 61 74 63 68 47 61 6d 65 | 28 20 4c 65 76 65 6c 2e |atchGame|( Level.|
|00001930| 47 61 6d 65 20 29 2e 46 | 72 61 67 4c 69 6d 69 74 |Game ).F|ragLimit|
|00001940| 3b 0d 0a 09 09 20 0d 0a | 09 7d 20 65 6c 73 65 0d |;.... ..|.} else.|
|00001950| 0a 09 7b 09 20 0d 0a 09 | 20 09 4d 61 78 50 6c 61 |..{. ...| .MaxPla|
|00001960| 79 65 72 73 20 3d 20 30 | 3b 0d 0a 09 20 09 54 69 |yers = 0|;... .Ti|
|00001970| 6d 65 4c 69 6d 69 74 20 | 3d 20 30 3b 0d 0a 09 20 |meLimit |= 0;... |
|00001980| 09 46 72 61 67 4c 69 6d | 69 74 20 3d 20 30 3b 0d |.FragLim|it = 0;.|
|00001990| 0a 09 7d 0d 0a 09 09 0d | 0a 09 53 65 72 76 65 72 |..}.....|..Server|
|000019a0| 50 6b 74 20 3d 20 22 5c | 5c 73 65 72 76 65 72 5c |Pkt = "\|\server\|
|000019b0| 5c 67 61 6d 65 74 79 70 | 65 5c 5c 22 20 24 20 53 |\gametyp|e\\" $ S|
|000019c0| 74 72 69 6e 67 28 20 4c | 65 76 65 6c 2e 47 61 6d |tring( L|evel.Gam|
|000019d0| 65 2e 43 6c 61 73 73 2e | 4e 61 6d 65 20 29 20 24 |e.Class.|Name ) $|
|000019e0| 20 0d 0a 09 09 09 09 22 | 5c 5c 6d 61 70 6e 61 6d | ......"|\\mapnam|
|000019f0| 65 5c 5c 22 20 24 20 53 | 74 72 69 6e 67 28 20 4c |e\\" $ S|tring( L|
|00001a00| 65 76 65 6c 2e 50 61 72 | 65 6e 74 2e 4e 61 6d 65 |evel.Par|ent.Name|
|00001a10| 20 29 20 24 20 0d 0a 09 | 09 09 09 22 5c 5c 6e 75 | ) $ ...|..."\\nu|
|00001a20| 6d 70 6c 61 79 65 72 73 | 5c 5c 22 20 24 20 4e 75 |mplayers|\\" $ Nu|
|00001a30| 6d 50 6c 61 79 65 72 73 | 20 24 20 0d 0a 09 09 09 |mPlayers| $ .....|
|00001a40| 09 22 5c 5c 6e 75 6d 62 | 6f 74 73 5c 5c 22 20 24 |."\\numb|ots\\" $|
|00001a50| 20 4e 75 6d 42 6f 74 73 | 20 24 0d 0a 09 09 09 09 | NumBots| $......|
|00001a60| 22 5c 5c 6d 61 78 70 6c | 61 79 65 72 73 5c 5c 22 |"\\maxpl|ayers\\"|
|00001a70| 20 24 20 4d 61 78 50 6c | 61 79 65 72 73 20 24 20 | $ MaxPl|ayers $ |
|00001a80| 0d 0a 09 09 09 09 22 5c | 5c 74 69 6d 65 6c 69 6d |......"\|\timelim|
|00001a90| 69 74 5c 5c 22 20 24 20 | 54 69 6d 65 4c 69 6d 69 |it\\" $ |TimeLimi|
|00001aa0| 74 20 24 0d 0a 09 09 09 | 09 22 5c 5c 66 72 61 67 |t $.....|."\\frag|
|00001ab0| 6c 69 6d 69 74 5c 5c 22 | 20 24 20 46 72 61 67 4c |limit\\"| $ FragL|
|00001ac0| 69 6d 69 74 20 24 0d 0a | 09 09 09 09 22 5c 5c 73 |imit $..|...."\\s|
|00001ad0| 68 61 72 65 77 61 72 65 | 5c 5c 22 20 24 20 4c 65 |hareware|\\" $ Le|
|00001ae0| 76 65 6c 2e 47 61 6d 65 | 2e 62 53 68 61 72 65 77 |vel.Game|.bSharew|
|00001af0| 61 72 65 20 24 0d 0a 09 | 09 09 09 22 5c 5c 76 65 |are $...|..."\\ve|
|00001b00| 72 73 69 6f 6e 5c 5c 22 | 20 24 20 4c 65 76 65 6c |rsion\\"| $ Level|
|00001b10| 2e 45 6e 67 69 6e 65 56 | 65 72 73 69 6f 6e 20 24 |.EngineV|ersion $|
|00001b20| 20 0d 0a 09 09 09 09 22 | 5c 5c 22 3b 0d 0a 0d 0a | ......"|\\";....|
|00001b30| 09 69 66 28 20 2b 2b 55 | 70 64 61 74 65 56 65 72 |.if( ++U|pdateVer|
|00001b40| 20 3e 20 36 35 35 33 35 | 20 29 0d 0a 09 09 55 70 | > 65535| )....Up|
|00001b50| 64 61 74 65 56 65 72 20 | 3d 20 30 3b 0d 0a 0d 0a |dateVer |= 0;....|
|00001b60| 09 55 70 64 61 74 65 45 | 78 70 69 72 65 64 20 3d |.UpdateE|xpired =|
|00001b70| 20 66 61 6c 73 65 3b 0d | 0a 09 53 65 74 54 69 6d | false;.|..SetTim|
|00001b80| 65 72 28 20 55 70 64 61 | 74 65 52 61 74 65 20 2f |er( Upda|teRate /|
|00001b90| 20 31 30 30 30 2c 20 66 | 61 6c 73 65 20 29 3b 0d | 1000, f|alse );.|
|00001ba0| 0a 7d 0d 0a 0d 0a 66 75 | 6e 63 74 69 6f 6e 20 54 |.}....fu|nction T|
|00001bb0| 69 6d 65 72 28 29 0d 0a | 7b 0d 0a 09 55 70 64 61 |imer()..|{...Upda|
|00001bc0| 74 65 45 78 70 69 72 65 | 64 20 3d 20 74 72 75 65 |teExpire|d = true|
|00001bd0| 3b 0d 0a 7d 0d 0a 0d 0a | 66 75 6e 63 74 69 6f 6e |;..}....|function|
|00001be0| 20 53 65 6e 64 53 65 72 | 76 65 72 49 6e 66 6f 28 | SendSer|verInfo(|
|00001bf0| 49 70 41 64 64 72 20 41 | 64 64 72 29 0d 0a 7b 0d |IpAddr A|ddr)..{.|
|00001c00| 0a 09 6c 6f 63 61 6c 20 | 69 6e 74 20 69 3b 0d 0a |..local |int i;..|
|00001c10| 09 0d 0a 09 69 66 28 20 | 55 70 64 61 74 65 45 78 |....if( |UpdateEx|
|00001c20| 70 69 72 65 64 20 29 0d | 0a 09 09 4d 61 6b 65 53 |pired ).|...MakeS|
|00001c30| 65 72 76 65 72 49 6e 66 | 6f 28 29 3b 09 0d 0a 09 |erverInf|o();....|
|00001c40| 0d 0a 09 69 66 28 20 2b | 2b 53 65 71 20 3e 20 36 |...if( +|+Seq > 6|
|00001c50| 35 35 33 35 20 29 0d 0a | 09 09 53 65 71 20 3d 20 |5535 )..|..Seq = |
|00001c60| 30 3b 0d 0a 09 0d 0a 09 | 53 65 6e 64 54 65 78 74 |0;......|SendText|
|00001c70| 28 20 41 64 64 72 2c 20 | 22 69 6e 66 6f 5c 5c 22 |( Addr, |"info\\"|
|00001c80| 20 24 20 55 70 64 61 74 | 65 56 65 72 20 24 20 22 | $ Updat|eVer $ "|
|00001c90| 2e 22 20 24 20 53 65 71 | 20 24 20 53 65 72 76 65 |." $ Seq| $ Serve|
|00001ca0| 72 50 6b 74 20 29 3b 0d | 0a 09 0d 0a 09 53 65 6e |rPkt );.|.....Sen|
|00001cb0| 64 54 65 78 74 28 20 41 | 64 64 72 2c 20 22 69 6e |dText( A|ddr, "in|
|00001cc0| 66 6f 5c 5c 22 20 24 20 | 55 70 64 61 74 65 56 65 |fo\\" $ |UpdateVe|
|00001cd0| 72 20 24 20 22 2e 22 20 | 24 20 53 65 71 20 24 20 |r $ "." |$ Seq $ |
|00001ce0| 43 6f 6d 6d 65 6e 74 50 | 6b 74 20 29 3b 0d 0a 09 |CommentP|kt );...|
|00001cf0| 0d 0a 09 66 6f 72 28 20 | 69 3d 30 3b 20 50 6c 61 |...for( |i=0; Pla|
|00001d00| 79 65 72 50 6b 74 5b 69 | 5d 20 21 3d 20 22 22 3b |yerPkt[i|] != "";|
|00001d10| 20 69 2b 2b 20 29 0d 0a | 09 09 53 65 6e 64 54 65 | i++ )..|..SendTe|
|00001d20| 78 74 28 20 41 64 64 72 | 2c 20 22 69 6e 66 6f 5c |xt( Addr|, "info\|
|00001d30| 5c 22 20 24 20 55 70 64 | 61 74 65 56 65 72 20 24 |\" $ Upd|ateVer $|
|00001d40| 20 22 2e 22 20 24 20 53 | 65 71 20 24 20 50 6c 61 | "." $ S|eq $ Pla|
|00001d50| 79 65 72 50 6b 74 5b 69 | 5d 20 29 3b 0d 0a 09 09 |yerPkt[i|] );....|
|00001d60| 0d 0a 09 66 6f 72 28 20 | 69 3d 30 3b 20 42 6f 74 |...for( |i=0; Bot|
|00001d70| 50 6b 74 5b 69 5d 20 21 | 3d 20 22 22 3b 20 69 2b |Pkt[i] !|= ""; i+|
|00001d80| 2b 20 29 0d 0a 09 09 53 | 65 6e 64 54 65 78 74 28 |+ )....S|endText(|
|00001d90| 20 41 64 64 72 2c 20 22 | 69 6e 66 6f 5c 5c 22 20 | Addr, "|info\\" |
|00001da0| 24 20 55 70 64 61 74 65 | 56 65 72 20 24 20 22 2e |$ Update|Ver $ ".|
|00001db0| 22 20 24 20 53 65 71 20 | 24 20 42 6f 74 50 6b 74 |" $ Seq |$ BotPkt|
|00001dc0| 5b 69 5d 20 29 3b 0d 0a | 09 09 0d 0a 09 2f 2f 20 |[i] );..|.....// |
|00001dd0| 54 68 69 73 20 73 68 6f | 75 6c 64 20 62 65 20 63 |This sho|uld be c|
|00001de0| 6f 6e 73 69 64 65 72 65 | 64 20 73 6f 72 74 20 6f |onsidere|d sort o|
|00001df0| 66 20 61 20 67 72 61 74 | 75 69 74 75 6f 73 20 63 |f a grat|uituos c|
|00001e00| 6c 6f 73 65 2e 20 43 6f | 6e 73 69 64 65 72 69 6e |lose. Co|nsiderin|
|00001e10| 67 20 74 68 65 20 70 6f | 73 73 69 62 69 6c 69 74 |g the po|ssibilit|
|00001e20| 79 0d 0a 09 2f 2f 20 6f | 66 20 64 72 6f 70 70 69 |y...// o|f droppi|
|00001e30| 6e 67 20 74 68 69 73 20 | 70 61 63 6b 65 74 2c 20 |ng this |packet, |
|00001e40| 74 68 65 20 76 61 6c 75 | 65 20 6f 66 20 73 65 6e |the valu|e of sen|
|00001e50| 64 69 6e 67 20 69 74 20 | 69 73 20 6d 61 72 67 69 |ding it |is margi|
|00001e60| 6e 61 6c 2e 0d 0a 09 0d | 0a 09 53 65 6e 64 54 65 |nal.....|..SendTe|
|00001e70| 78 74 28 20 41 64 64 72 | 2c 20 22 69 6e 66 6f 5c |xt( Addr|, "info\|
|00001e80| 5c 22 20 24 20 55 70 64 | 61 74 65 56 65 72 20 24 |\" $ Upd|ateVer $|
|00001e90| 20 22 2e 22 20 24 20 53 | 65 71 20 24 20 22 5c 5c | "." $ S|eq $ "\\|
|00001ea0| 65 6e 64 22 20 29 3b 0d | 0a 7d 0d 0a 0d 0a 65 76 |end" );.|.}....ev|
|00001eb0| 65 6e 74 20 52 65 63 65 | 69 76 65 64 54 65 78 74 |ent Rece|ivedText|
|00001ec0| 28 20 49 70 41 64 64 72 | 20 41 64 64 72 2c 20 73 |( IpAddr| Addr, s|
|00001ed0| 74 72 69 6e 67 5b 32 34 | 30 5d 20 54 65 78 74 20 |tring[24|0] Text |
|00001ee0| 29 0d 0a 7b 0d 0a 09 2f | 2f 20 53 69 6d 70 6c 69 |)..{.../|/ Simpli|
|00001ef0| 66 69 65 64 20 65 63 68 | 6f 2f 72 65 70 6c 79 20 |fied ech|o/reply |
|00001f00| 70 72 6f 74 6f 63 6f 6c | 2e 20 54 68 69 73 20 73 |protocol|. This s|
|00001f10| 68 6f 75 6c 64 20 69 6d | 70 72 6f 76 65 20 70 69 |hould im|prove pi|
|00001f20| 6e 67 20 72 65 73 70 6f | 6e 73 65 20 74 69 6d 65 |ng respo|nse time|
|00001f30| 73 0d 0a 09 2f 2f 20 61 | 73 20 77 65 6c 6c 20 61 |s...// a|s well a|
|00001f40| 73 20 6c 65 73 73 65 6e | 20 74 68 65 20 43 50 55 |s lessen| the CPU|
|00001f50| 20 62 75 72 64 65 6e 20 | 74 6f 20 61 20 73 6f 6d | burden |to a som|
|00001f60| 65 77 68 61 74 20 68 65 | 61 76 69 6c 79 20 70 69 |ewhat he|avily pi|
|00001f70| 6e 67 65 64 20 73 65 72 | 76 65 72 2e 0d 0a 09 0d |nged ser|ver.....|
|00001f80| 0a 09 69 66 28 20 49 6e | 53 74 72 28 20 54 65 78 |..if( In|Str( Tex|
|00001f90| 74 2c 20 22 65 63 68 6f | 22 20 29 20 3d 3d 20 30 |t, "echo|" ) == 0|
|00001fa0| 20 29 0d 0a 09 7b 0d 0a | 09 09 53 65 6e 64 54 65 | )...{..|..SendTe|
|00001fb0| 78 74 28 20 41 64 64 72 | 2c 20 22 72 65 70 6c 79 |xt( Addr|, "reply|
|00001fc0| 5c 5c 22 20 24 20 4d 69 | 64 28 20 54 65 78 74 2c |\\" $ Mi|d( Text,|
|00001fd0| 20 34 20 29 20 29 3b 0d | 0a 09 09 72 65 74 75 72 | 4 ) );.|...retur|
|00001fe0| 6e 3b 0d 0a 09 7d 0d 0a | 09 0d 0a 09 69 66 28 20 |n;...}..|....if( |
|00001ff0| 49 6e 53 74 72 28 20 54 | 65 78 74 2c 20 22 73 74 |InStr( T|ext, "st|
|00002000| 61 74 75 73 22 20 29 20 | 3d 3d 20 30 20 29 0d 0a |atus" ) |== 0 )..|
|00002010| 09 7b 0d 0a 09 09 53 65 | 6e 64 53 65 72 76 65 72 |.{....Se|ndServer|
|00002020| 49 6e 66 6f 28 41 64 64 | 72 29 3b 0d 0a 09 09 72 |Info(Add|r);....r|
|00002030| 65 74 75 72 6e 3b 0d 0a | 09 7d 0d 0a 7d 0d 0a 0d |eturn;..|.}..}...|
|00002040| 0a 00 | |.. | |
+--------+-------------------------+-------------------------+--------+--------+