Server Help

General Questions - Undocumented Subgame2 commands

50% Packetloss - Fri Jul 23, 2004 1:00 am
Post subject: Undocumented Subgame2 commands
I figured that the title would get people to look, its a little exadurated. I was reading the hex dump of fix.dll so that i could get the array of strings that *watchgreen uses, when i ran across some commands i havent seen before.

*sendto
*rstat

Both commands seem to do something, sendto i havent figured out how to use. Ive place a variety of things after it and have sent it private to a player and it crashes subgame. rstat prints out information, it is send privately to a player. Anyone have any ideas what these commands do?
Slowking Man - Fri Jul 23, 2004 2:54 am
Post subject:
Slowking Man> *rstat
Timer: 10485
Counts: 0 0 0 0
Trigger: 0 0 0 0

That's what *rstat prints out, if anyone's curious.
CypherJF - Fri Jul 23, 2004 5:43 am
Post subject:
Interesting; At the beginning, from time-to-time I used to do *sendto # # instead of warpto; and it never crashed; but it also didn't do anything. :/ It'll be interesting to know what these thing's do. icon_smile.gif
Dr Brain - Fri Jul 23, 2004 8:20 am
Post subject:
Sendto is obvious. It's like asss's /?send.

Sends a player to the specified arena.
Solo Ace - Fri Jul 23, 2004 8:30 am
Post subject:
What?!
Subgame supported sending players to other arenas!?

Damn, I'd love to see a player getting banned into an arena. icon_razz.gif
50% Packetloss - Fri Jul 23, 2004 10:07 am
Post subject:
CypherJF wrote:
Interesting; At the beginning, from time-to-time I used to do *sendto # # instead of warpto; and it never crashed; but it also didn't do anything. :/ It'll be interesting to know what these thing's do. icon_smile.gif


Yah, my comp is fragile. I had a corrupt ntdll but used some microsoft update to replace it. Now explorer will just restart every so often, XP can be a POS if it wants to. I tested out *sendto again,

Unhandled exception at 0x00d4ee1a in subgame2.exe: 0xC0000005: Access violation reading location 0x00000000.
00D4EE1A mov al,byte ptr [edi]
00D4EE1C add esp,8
00D4EE1F test al,al
00D4EE21 je 00D4EEC4


Sounds like it was trying to read a NULL pointer or something
k0zy - Fri Jul 23, 2004 1:14 pm
Post subject:
*sendto crashes subgame2.exe on my pc, too.

Bob Dole.. Bob Dole... Bob Dole...... bob dole.... bob... dole....
Mr Ekted - Fri Jul 23, 2004 2:31 pm
Post subject:
That's a null pointer error.
Anonymous - Sat Jul 24, 2004 9:32 am
Post subject:
Shouldn't *sendto be disabled? Otherwise malicious users can crash subgames everywhere.
Solo Ace - Sat Jul 24, 2004 11:43 am
Post subject:
Isn't it sysop only?
50% Packetloss - Sat Jul 24, 2004 3:24 pm
Post subject:
yep, sysop only.
50% Packetloss - Sat Jul 24, 2004 4:02 pm
Post subject:
still what does the *rstat command print out?

Timer: 10485 ------What is this a timer for?
Counts: 0 0 0 0 -----Counts?
Trigger: 0 0 0 0 -----Trigger?
CypherJF - Sat Jul 24, 2004 4:05 pm
Post subject:
I had been wondering myself...
Slowking Man - Sat Jul 24, 2004 5:27 pm
Post subject:
50% Packetloss wrote:
still what does the *rstat command print out?

Timer: 10485 ------What is this a timer for?
Counts: 0 0 0 0 -----Counts?
Trigger: 0 0 0 0 -----Trigger?

No idea. The "timer" number varies wildly, though.

Slowking Man> *rstat
Timer: 42625

Then about thirty seconds later:

Slowking Man> *rstat
Timer: 5765

I was in spec, by the way.

"Counts" and "Trigger" show all zeroes for everyone that I've tried it on.
Solo Ace - Sat Jul 24, 2004 7:11 pm
Post subject:
-Smong- wrote:
Shouldn't *sendto be disabled? Otherwise malicious users can crash subgames everywhere.
Well, if it's sysop only, no big deal. icon_razz.gif
Anonymous - Tue Mar 08, 2005 10:22 pm
Post subject:
sendto crashes subgame here too ...
CypherJF - Tue Mar 08, 2005 10:30 pm
Post subject:
oh dear god
Anonymous - Tue Mar 08, 2005 11:06 pm
Post subject:
Bumperoni
Testtube - Wed Mar 09, 2005 12:05 am
Post subject:
This may have somthing to do with trench wars version of subgame. I think this command works over there
CypherJF - Wed Mar 09, 2005 12:49 am
Post subject:
TW has a different subgame?! >: ( If so, then pft. share the wealth. lol. icon_smile.gif
Night_Fox - Wed Mar 09, 2005 6:37 am
Post subject:
If they did we werent aware, I think thats how you spell it tongue.gif
Cerium - Wed Mar 09, 2005 9:12 am
Post subject:
Quote:

Timer: 17515
Counts: 0 0 0 0
Trigger: 0 0 0 999


I have triggers. I win.
Maverick - Wed Mar 09, 2005 9:13 am
Post subject:
Quote:
Timer: 16875
Counts: 169 49 84 0
Trigger: 152 43 22 0

I have more tongue.gif
Muskrat - Wed Mar 09, 2005 2:42 pm
Post subject:
*rstat
Timer: 12828
Counts: 0 0 0 0
Trigger: 0 0 0 119
Testtube - Thu Mar 10, 2005 12:11 am
Post subject:
Yes trenches subgames allows the zone to run on more than one server i believe. when you enter different arenas you are actually entering on a different server atleast thats what the server.ini suggests from thier subgame
CypherJF - Thu Mar 10, 2005 12:14 am
Post subject:
they're hogging the wealth - go figure. doesn't surprise me though .. i doubt 1 subgame would have been able to hold 800 people on at one time.. heh. anyways im off to bed. nite all icon_smile.gif
Cerium - Thu Mar 10, 2005 1:26 am
Post subject:
Does the client even support that? It seems like itd need a router on the frontend to allow different servers to process each arena...

And even still... wouldnt that require another login exchange each time you change servers? If it doesnt, isnt that prone to spoofing an ops name?

Details... damnit!
50% Packetloss - Thu Mar 10, 2005 2:17 am
Post subject:
Prittk probably has all of the subgame source code, so I imagine that he worked out any issues with passing players to other servers. Then again, maybe subgame is capable of supporting hundreds of people as long as the server computer has sufficient speed and memory to support it.
Anonymous - Thu Mar 10, 2005 3:13 am
Post subject:
VIE SubGame supported upto 300~320 users at a "stable" status, AFAIR, correct me if I'm wrong MGB, though I cannot remember if it was in relation to the entire zone or arena.
But that was the specific Jeff gave back in the day.


Cerium, every (korean) MMORPG uses this technique, I don't see the problem of SS using it as well.


As for timer, most likely same timer that is being tracked at Infantry.
System timer? bios? Used to search for overclocking/unsync packets/speed hacking?
Beats me really.
Instead of beating the bush of underknowledge, I take the direct approach and go ask Priit, see if he ever care to answer. icon_smile.gif
Cerium - Thu Mar 10, 2005 5:31 am
Post subject:
Im not saying its not possible, im wondering how its done and if its secure. The protocol was never designed to support such a thing.

Also, I would assume the limit per arena is 255, since the position packet sends the player ID as 1 byte... anything beyond 255 players would start duplicating IDs or sending invalid positions.

The timer doesnt seem to mean much of anything to me. I checked it 5 times in a row as fast as my dialup connection could send the packets... each value varied by huge degress and increased and decreased at seemingly random rates.
Maverick - Thu Mar 10, 2005 5:36 am
Post subject:
I wonder if there is a protection against having more then 255 players in one arena because it might crash the server if that happens (if it ever does). icon_confused.gif
Cerium - Thu Mar 10, 2005 5:48 am
Post subject:
I dont think the server would crash.

A few years back in DZ pub, I ended up getting the same ID as another guy who was playing at the moment... Server didnt have any problem... the client (and TestTube who was smod/sysop at the time) did.

Whenever the other guy made a kill, I got a kill and whatever points he got and my bty went up by 30. But when he died, nothing happened. Whenever I saw the other guy, his ship constantly cycled between the one he was using (jav) and the one I was using (lev). I dont know how it looked to everyone else, but he appeared to be firing L3s whenever he bombed. Anyway, in a matter of all of a minute or two of sitting in safe leeching points, I had a 5k bty and a perfect 60-0 or so. TestTube assumed I was cheating and banned me...

Moral of the story: I dont think the server would choke, but it sure as hell would have some side effects.
Anonymous - Thu Mar 10, 2005 6:49 am
Post subject:
There are two s2c position packets, one of them supports 16bit player id's and 16bit bounties.

I remember reading about having one zone on multiple subgame2's, but couldn't find anything about it in whatsnew.txt when I had another look, maybe it got edited out.

I doubt the *sendto command has anything to do with it as that would imply needing a bot to message people in order to manage the server load.
Cerium - Thu Mar 10, 2005 7:34 am
Post subject:
Really? How do you tell the difference between the two? Checking for an extra 2 bytes could (will) get confused with a smaller position with energy.
Smong - Thu Mar 10, 2005 8:33 am
Post subject:
Every packet has an type number, there are two different types for s2c positions, 0x5 and 0x28.
Gravitron - Thu Mar 10, 2005 10:19 am
Post subject:
Cerium the uber hacker. icon_lol.gif

How it's being done?
The biller ties subgames together.
Koreans do it in a four server format (1 extra, for current SS - dr.brain's zone could use it, a character DB server).
A main hub server connects between the billing server and the zone server with the aforementioned Char-DB (download and analyse helbreath for a good example of it).
Example:
Central Account Database that share its info with different Zone Server(s).
The Zone Server act as a mutual hub for all the different Arena Server(s) that form up the zone.
So you have, always, one biller, so to speak.
Then you have 5 (for sake of argument) subgame-managers.
Each subgame-manager has its own several subgame-arena servers (IE the zone is split onto different hosting, each takes an arena or two or whatever).


Is it secure?
Though I have no knowledge, theory would suggest, absolutely not.
Unless you'll be employing some kind of a high bit encryption or whatever.
As Catid said to me once, biller and zone server need to be the same, when you split up the functionality, you inherently damage security.

Although, as long as you are running all servers from the same machine (which causes a huge burden and kind of beat the purpose, no?) and those with access you trust, it wouldn't be more insecure than as it is now.
Still, at the end result you can divide each server, or host all but the actual zone ones at the same spot, and have the various arenas/zone themselves hosted across other servers.
Which isn't really different than the way biller connects all zones together.

Bottom line, though:
Since subspace is not a MMORPG, and you can't nor need to tie up one arena after another or add "maps" to an arena, there is no use for having different arenas (which are not meant really to be different from the main zone/pub anyway) as it stands now.
Having running a central biller and various zones to choose playing from is good enough and is just the same.
The only use would be to take all SVS zones, superzones, misc/junk zones, and put them under a main zone title, then the actual games as arenas, inorder to clean the clutter at the directory server and make it easier for a player to pick his favorite gaming style.
And there, you would need different servers to host the arenas to lighten the burden.



BTW, (unless you already know for certain what it does) *sendto might be used as mentioned above to move players from a zone to another, the way MMORPGs move you from "map world" to another, not arenas.
Perhaps Priit had the insight to look onto future, more enticing, features.
(nonetheless, banning a player onto a cellblock/duelbox arena would be fun new_evil.gif).
I know Infantry already has (or had planned) a system for deploying a level ojbect on the map to move a player from one zone to another (virtually creating a MMORPG world in a sense, or some extreme CTF style battlefield).
And both INF and VIE SubSpace clients supports a ?zone command that allows the player to change zone (so it is inherenitly built-in, just needs to add a server-side command to trigger its use and supply parameters).


P.S.
Another undocumented, yet well known, command is the *points (sysop I believe).
CypherJF - Thu Mar 10, 2005 10:48 am
Post subject:
*points It's documentated on MGB's server help site on the commands list. But an interesting thought about the sendto actually moving a player to another server...

Maucaub said that transfering a continuum from one zone to another has been built in already - just it's not used. He had asked us our thoughts on it: good, bad, and ... the ugly.

hm interesting thoughts though.
Cerium - Thu Mar 10, 2005 4:37 pm
Post subject:
You mean 0x05 =)

At first I thought there was a 2nd position packet (rather than the weapon fired packet).
Was wondering why I never received an unknown in my logs...
Smong - Thu Mar 10, 2005 5:07 pm
Post subject:
Cerium wrote:
You mean 0x05 =)
icon_rolleyes.gif Like it makes any difference.
D1st0rt - Thu Mar 10, 2005 11:56 pm
Post subject:
is that how they can handle 600+ people without massive lag?
Gravitron - Fri Mar 11, 2005 7:05 pm
Post subject:
That and the fact that they are not C&W.
Different routing to their servers, less load on thier host bandwidth.
Night_Fox - Fri Mar 11, 2005 7:07 pm
Post subject:
Oh is that causes a packet.log?
History dump?
D1st0rt - Sat Oct 01, 2005 10:43 pm
Post subject:
After talking with DoCk> about it, he said it was used for when they kept getting DoS attacked. Once a player logged in, they would get redirected to the real server so it didn't fall prey to a script kiddie.

Apparently they support high populations with mysterious things called "Threads"
Donkano - Sat Oct 01, 2005 11:25 pm
Post subject:
A topic over a year ago being brought up again? Wow.
Muskrat - Sun Oct 02, 2005 12:09 am
Post subject:
I found it a pretty significant and interesting contribution. Don't get cynical.
Mr Ekted - Sun Oct 02, 2005 12:19 am
Post subject:
D1st0rt wrote:
Apparently they support high populations with mysterious things called "Threads"


Threads as in process threads? If so, that is a serious misconception.
Cyan~Fire - Sun Oct 02, 2005 12:40 am
Post subject:
Each player runs in its own thread! That cuts the processing time required greatly!
Maverick - Sun Oct 02, 2005 4:26 am
Post subject:
Mr Ekted wrote:
that is a serious misconception.

Why so? I think it would be possible to have all those players on a single server with threads (as long as the coding is ok icon_biggrin.gif ).
Mr Ekted - Sun Oct 02, 2005 12:13 pm
Post subject:
Threads help you in two circumstances:

1. You have more than 1 processor. Each thread can potentially be running at the same time.

2. Your threads are making lots of blocking calls (waiting for disk I/O, etc), so they won't slow down other threads.

Having a thread per user is just a cop-out. It lets you write procedural code (rather than event-driven), but then a ton of time is spent thread switching. There's almost no case where a thread per user is going to be better than "flat", unless your language or operating system is handicapped.
D1st0rt - Sun Oct 02, 2005 1:27 pm
Post subject:
Well, the previous idea in the topic was that they had multiple subgames. I assume that with one subgame and 700 players they would have to have some sort of threading, but probably not for each player as the sarcastic Cyan suggests. I would think one per arena would probably be reasonable though.

Donkano, you are guilty of what you accused me for because you didn't contribute anything so please refrain from talking.
Donkano - Sun Oct 02, 2005 2:53 pm
Post subject:
D1st0rt wrote:
Donkano, you are guilty of what you accused me for because you didn't contribute anything so please refrain from talking.


How am I guilty of anything? All I said is that it is an old topic.
Confess - Sun Oct 02, 2005 4:51 pm
Post subject:
I, for one, am very glad that they brought this back up...although I still am confused on what *rstats is for.
Maverick - Sun Oct 02, 2005 5:34 pm
Post subject:
I think all these people here wonder about *rstat.
It would be most likely has to do something with the timer of Continuum vs Server, like *tinfo . However, only PriitK knows for sure.
Confess - Sun Oct 02, 2005 6:20 pm
Post subject:
Well, i think it CAN be used for making sure/seeing if someone is speed hacking for sure..I called someone in and asked em to speed hack...watch..

I got there *rstats before they speed hacked..
Timer: 5368
Counts: 0 0 0 0
Trigger: 0 0 0 12

Shortly then, they speed hacked..
Timer: 7791
Counts: 0 0 0 0
Trigger: 0 0 0 35
Timer: 10024
Counts: 0 0 0 0
Trigger: 0 0 0 45
Timer: 12698
Counts: 0 0 0 0
Trigger: 0 0 0 51
Timer: 15442
Counts: 0 0 0 0
Trigger: 0 0 0 57

It went up as they had it on longer.

Edit: i also gave them *super

Before:
Timer: 55389
Counts: 0 0 0 0
Trigger: 0 0 0 3

After:
Timer: 1011
Counts: 0 0 0 0
Trigger: 0 0 0 29

My hypothesis is that the last number on trigger stands for how many weapon packets are being sent by them.

Maybe rstats stands for Rating Statistics or something?
Dr Brain - Sun Oct 02, 2005 10:54 pm
Post subject:
D1st0rt wrote:
I would think one per arena would probably be reasonable though.


I think coding one thread per arena would be more difficult programming wise than doing things globally.
Cyan~Fire - Sun Oct 02, 2005 11:05 pm
Post subject:
I was kidding...
D1st0rt - Mon Oct 03, 2005 8:09 pm
Post subject:
D1st0rt wrote:
as the sarcastic Cyan suggests.

I figured you were biggrin.gif

How does asss arrange its threading?
Cyan~Fire - Mon Oct 03, 2005 9:45 pm
Post subject:
Net has a receiver thread, a sender thread, and a few packet-handlish threads. Deadlock also has one (of course), logman has one, and IIRC persist has one.
All times are -5 GMT
View topic
Powered by phpBB 2.0 .0.11 © 2001 phpBB Group