View Single Post
xOR
Veteran Member
Join Date: Jun 2006
Location: x-base.info
Old 07-14-2009 , 20:21   Re: New (CS, maybe later also others mods?) beta kills xREDIRECT - counteractions
#3

here is some brainstorming for us to start with.


1. alias executed by server
my first try would be to create an "alias" command on the player for the connect command and execute that one.
pros:
- player wouldn't notice any changes to earlier versions of xREDIRECT
- the change in xREDIRECT would need minimal effort (which doesn't even matter, i will do what's neccessary, no matter what effort is needed)
cons:
- none
operability:
will only work when creating aliases on a player is possible. i never needed this and this is brainstorming, i didn't do any investigation yet, so i don't know.
and even if, we still don't know whether hl1 will be fooled by it or not.

2. alias executed by player
if that doesn't work because hl still detects that the connect command is run in the context of a server command execution, maybe we could at least tell the user (in chat area and console) that he has to type "y" in console when he really wants to redirect himself. before we create the alias "y" with our connect command. this way the command is executed by the player.
pros:
- change in operation of xREDIRECT not too big
cons:
- changes for the player, he has to execute a command himself
- many players don't know how to work with the console very well
operability:
will only work when creating aliases on a player from server-side is possible. i never needed this so far and as this is brainstorming i didn't do any investigation yet, so i don't know.

3. bind executed by player
bind the connect command to a player's key. it is highly abusive, as there won't be a key that isn't used by some players which will be annoyed then.
we should try to restore the binding before actually redirecting, that would at least change this fix from "highly abusive" to "dirty"
pros:
- change in operation of xREDIRECT not too big
cons:
- changes for the player, he has to press one more key
- annoyance: it might use keys that the player usually uses for other things and he doesn't like xREDIRECT altering it
operability:
will only work when creating aliases on a player from server-side is possible. will only work when changing binds on a player from server-side is possible.

4. menu hack
probably a solution only suitable for xREDIRECT, because it is using a menu. it also depends on the server being able to alter client aliases and bindings.
e.g. if in the menu "1" is the menu entry "Connect" the key binding for "1" is changed and restored after the user left the menu page. so bind "1" "slot1" is being changed to bind "1" "slot1; xredirconnect". the alias xredirconnect has been set before to restore the binding (bind "1" "slot1") and execute the connect command for the currently connected server.
pros:
- no change in operation of xREDIRECT for the player
- only alters the key while it is reserved for the menu anyway
cons:
- some small risk stays that the key binding is not reset (e.g. the player gets a connection problem when he has the menu open) which would lead to the key executing the connect command once at a later time when the user probably would not want that anymore
operability:
will only work when creating aliases on a player from server-side is possible. will only work when changing binds on a player from server-side is possible.

5. client application
not a good idea, just listing it for the sake of completeness.
a simple client program that sits in the tray. xREDIRECT directly sends a connect command to that application. then it executes a steam:// link or otherwise hacks into hl to execute a command there, if that is possible.
pros:
- no change in operation of xREDIRECT itself for the player (ofc he has to install the client)
cons:
- extra program installation needed
- high risk of security issues for the user (an application that can execute commands when you tell them to via network? can easily be abused by other programs as well)
- because of the above the application has to be secured very good which will need very much time and testing
operability:
noone will want to install a program only to be able to redirect himself between special servers. this is where the idea dies already before it's born...

6. player enters command manually
the worst solution, but at least the only solution that will always be possible, even when aliases and binds can't be changed on the player: tell the player the command (in chat or console) that he has to execute in the console. "please type <connect ip:port> in console now." it sucks big time, sort out 50/100 players that don't know what a console is or how they could open it. sort out 10/50 players that know how to open the console but don't get the command to execute because they mess something up with quotation marks or the colon or other characters (opening the console in german CS always writes a "^" character to the line, that has to be deleted first before executing a command).
sort out 35/40 players that would know but are too lazy because they ask themselves "what comfort does that give me over managing my own favourites list instead?"
pros:
- independant from technical limiations (aliases, bindings)
cons:
- many players won't understand what they should do
- many players won't want to do that, as they are lazy
operability:
- great, it will work but we are left with 5/100 players actually using that
__________________
Got more than one HL1 (CS, DoD, NS, TS, TFC, HLDM...) server? Check:
xOR is offline