Sign in to follow this  
Followers 0
Helge

Udfs : Quake3

14 posts in this topic

#1 ·  Posted (edited)

Quake 3 - UDFs for gamers and admins.

This is a collection of UDFs that can be used to communicate with Quake 3 servers, but they

aren't limited to this game only since many other games are also built on the same engine.

Examples are "Medal of Honor", "Call of Duty" and "Soldier of Fortune 2".

These UDFs might be most useful for server admins, but they can also fun for clients as well.

The admins could for example feel like announcing something or maybe even kicking someone

off the server, while a client would like to get the name of the current map or connected clients.

An example of how you could change the map could go like this :

_Q3AdminRcon("192.168.1.2", "password", "map q3dm6")

As you see, they're not all that difficult to use. More information can be found in my blog.

[ Project paused ]

Quake3_test.zip

Quake3.au3

Edited by Helge

Share this post


Link to post
Share on other sites



Version 1.1

- Two typos in ServerStatus and ServerClients fixed.

Pretty critical update since they didn't work as expected before !

Share this post


Link to post
Share on other sites

Version 1.11

- Lots of bugs and typos fixed.

- Some minor changes for descriptions.

Again, this is also a pretty critical update. Sorry for the mess !

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

Advanced example :

I've now uploaded a more advanced example, which shows how

most of the UDFs work, in the form of a GUI. While the example is

pretty advanced it should also be very easy to use; I assume..

This first picture shows information received from the servers, which

is also available for users who doesn't have admin-rights on the server.

http://www.autoitscript.com/fileman/users/Helge/pics/q3adv_info.jpg

Click the picture to get a bigger version of it.

This second picture shows information only available for users who

have admin-rights on the server. Here admins can send remote

commands to the server. They can also easily kick and ban a client by

selecting him on the clientlist. Removal of banned IPs is done below...

http://www.autoitscript.com/fileman/users/Helge/pics/q3adv_admin.jpg

Click the picture to get a bigger version of it.

See attachment for download !

Remember to update to the latest version of Quake3.au3 !!

Quake3_AdvTest.au3

Edited by Helge

Share this post


Link to post
Share on other sites

Hmm.

Nice but...

Error reading File "GUIListView.au3" ??? :)

Share this post


Link to post
Share on other sites

Do you use newest Beta?


--------------------------------------------------------------------------------------------------------------------------------Scripts : _Encrypt UDF_UniquePCCode UDF MS like calculatorInstall programm *UPDATED* --------------------------------------------------------------------------------------------------------------------------------[quote name='Helge' post='213117' date='Jul 26 2006, 10:22 AM']Have you ever tried surfing the internet with a milk-carton ?This is similar to what you're trying to do.[/quote]

Share this post


Link to post
Share on other sites

Hmm.

Nice but...

Error reading File "GUIListView.au3" ??? :)

Wow, someone's actually a little bit interested in this :(

Anyway, as Daniel hinted, the newest betas are required.

Get the newest here.

Share this post


Link to post
Share on other sites

Are you able to get player's team? in Q3 engine this is ingame command /team (spec/red/blue team)

Share this post


Link to post
Share on other sites

Are you able to get player's team? in Q3 engine this is ingame command /team (spec/red/blue team)

If I remember correctly there is added a key in ServerStatus when

playing team-based modes, which holds the player-numbers for each

team-member. So a little work with ServerStatus and AdminClients

should do the trick, requiring that you have admin-rights that is.

I will investigate this when I come home later today, and maybe I'll

create one or two UDFs for it. I did actually plan to make a UDF for

this before, but I never got to it.

Anyway, thanks for testing rysiora !

Share this post


Link to post
Share on other sites

I did my investigation yesterday and I found out that admin-rights

aren't needed after all, as the "team-keys" appear to be using

information available from ServerClients.

I'll most likely update the UDFs before the weekend, with lots of

of improvements and bug-fixes, and hopefully a UDF that does the

the job you wanted (and more).

Share this post


Link to post
Share on other sites

NIce :)


-jaenster

Share this post


Link to post
Share on other sites

Thanks a lot I will certainly use this more often ^^ great work.

Share this post


Link to post
Share on other sites

You are right, all is in the statusResponse :D

Here is an example Enemy Territory packet:

˙˙˙˙statusResponse
\etadmin_mod\ver=0.29,spree=1,mga=0,list=1\mod_version\3.2.5\mod_url\http://etpro.anime.net/\P\11031221222133121122120-3\g_maxlivesRespawnPenalty\0\voteFlags\37291\g_balancedteams\1\g_maxGameClients\0\g_covertopsChargeTime\30000\g_soldierChargeTime\20000\g_LTChargeTime\40000\g_engineerChargeTime\30000\g_medicChargeTime\45000\g_bluelimbotime\20000\g_redlimbotime\30000\gamename\etpro\g_heavyWeaponRestriction\10\.url\http://hbc.forumup.org/\.Email\support@fps.net\.Admins\(HBC)LABRAT \g_gametype\4\g_antilag\1\g_voteFlags\0\g_alliedmaxlives\0\g_axismaxlives\0\g_minGameClients\7\g_needpass\0\g_maxlives\0\g_friendlyFire\1\sv_allowAnonymous\0\sv_floodProtect\0\sv_maxPing\0\sv_minPing\0\sv_maxRate\25000\sv_minguidage\0\sv_maxclients\26\sv_hostname\^3(HBC)^1CLAN^3SERVER^4|ETPRO|\sv_privateClients\0\mapname\fueldump\protocol\84\timelimit\30\version\ET 2.60b linux-i386 May  8 2006\sv_punkbuster\0
910 50 "^3(HBC)^1High^3lander"
23 70 "RAF"
0 999 "diedvalar"
0 48 "^3(HBC)^7Lola^5<3"
347 48 "^3(HBC)^1VERTA^3KING"
582 48 "^3(HBC)^1LAB^3RAT"
829 48 "Capone"
178 48 "Jesaya"
250 64 "^7Calkas"
101 74 "Terminator"
173 38 "M<nT@L!sT"
214 67 "^1Ij^7on"
0 50 "^2r^7Qui^0.^7cLess ^4*^7*^1*"
0 50 "^0-SaTe^1L^0LiTe"
563 38 "^3(HBC)^1Han^0nes"
1 129 "m16hty_duck"
9 98 "^p>>^np74^p|^pEch3lon"
240 53 "kaszan"
6 72 "panPrzemyk"
307 48 "slash"
0 230 "Cold_Soul"
0 51 "Mog"
0 999 "Gereral Cyborgdude"
0 45 "^3(HBC)^1High^0flyr"

"11031221222133121122120-3" - It contains the information about player team (Allies/Axis/Spect).

This server have 26 slots. So there are 26 chars in this string. The '-' means that this slot is empty at the moment. There is only one "-" char, so we know that there are 25/26 players. These numbers are given in the same sequence as players are listed by server in the packet (but we should remember to strip "-").

1 - Axis

2 - Allies

3 - Spectator

Not sure about 0, but I think this means that player is connecting (score is usually 0 and ping 999).

Share this post


Link to post
Share on other sites

As I've been sick for the last days I haven't managed to update the UDFs like

I said I was. I did do something however (fixing and tweaking) before I got sick

though, having only this GetTeam-func left to do.

@rysiora : That's not exactly how it's done in Quake 3 though, so I'll probably

won't create a UDF that supports the format used in ET. To me it just looks like a

little StringSplit and some work should do it, required that the client-listing part in

the end is of the same format that Q3 uses, which it appears to be.

I'll download the game later today, and see if I can find some time to test it out

myself.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0