PDA

View Full Version : gametypes and official stats..


NR_marcO
17th Oct 2004, 11:59 AM
hiya all,

well ... a hopefully simple question tho ;-) a gametype should only exists once in u2vote - so for example if i create a new gametype to setup some muts with it on a single vote (created a new gametype with parent gametype teamdeathmatch - placed ig - translocator - gs 1.4 in) the game will show as custom game and not as InstaGib TeamDeathmatch on the official stats tho. Well .. i think if i use the XGame TDM with the same muts loaded it will show up as IG TDM in the stats tho ... so i only can modify the gametype TDM in ut2vote and loose my 'normal' TDM gametype?

... or maybe i simply got something wrong here...

ProAsm
17th Oct 2004, 03:31 PM
Up to now, Epic only require the correct suffix section of the Classname like .xTeamGame for instance.
GameMake3.3 will now do this for you but there is rumors that Epic are now requiring the full GameClass which will screw custom games altogether :(

ArPharazon
19th Oct 2004, 06:27 PM
Please remove the unique gameclass restriction - use an indexing system instead.

Or, better yet, scrap the command line usage altogether and write the settings directly to the appropriate gametype sections in the ini file - which would cover outside switches i think.

Then use a seperate section to maintain gametype profiles. When a profile is selected, it updates the appropriate gametype section in the ini file.

ProAsm
20th Oct 2004, 11:04 AM
I'm afraid you lost me here.
Can you be a bit more specific with some examples if possible.

sargon
20th Oct 2004, 12:08 PM
How about something like this.
Swapout the dummy gameclass with the real one.

[UT2Vote47.UT2VoteConfigs]
VoteAdminPass=
ClanAdminPass=
GamePassword=
DefaultGame=UT2Vote47.GameClass13
DefServerName=Sargon's Invasion RPG
ServerMuts=
ServerLine=
...
...

[UT2Vote47.UT2VoteGameClasses]
GameClass1=UT2k4Assault.ASGameInfo
GameClass2=XGame.xBombingRun
GameClass3=XGame.xCTFGame
GameClass4=XGame.xDeathMatch
GameClass5=XGame.xDoubleDom
GameClass6=XGame.InstagibCTF
GameClass7=SkaarjPack.Invasion
GameClass8=BonusPack.xLastManStandingGame
GameClass9=BonusPack.xMutantGame
GameClass10=Onslaught.ONSOnslaughtGame
GameClass11=XGame.xTeamGame
GameClass12=XGame.xVehicleCTFGame
GameClass13=SkaarjPack.Invasion
GameClass14=SkaarjPack.Invasion
GameClass15=XGame.xDeathMatch
GameClass16=XGame.xCTFGame
GameClass17=
GameClass18=
GameClass19=
GameClass20=

[UT2Vote47.UT2VoteGameTypes]
GameType=(GameName="Assault",HideVote=False,Clan=False,RequiredPlayers=1,MapLimits=0,ServerName="Assault",UseMapList=True,DefaultMap="AS-Convoy",MapPrefix="AS",GameClass="UT2Vote47.GameClass1",Mutators="...
GameType=(GameName="Bombing Run",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="Bombing Run",UseMapList=True,DefaultMap="DM-sHoK-Attic][2k4",MapPrefix="BR",GameClass="UT2Vote47.GameClass2",Mutators="...
GameType=(GameName="Capture the Flag",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="CTF",UseMapList=True,DefaultMap="CTF-Maul",MapPrefix="CTF",GameClass="UT2Vote47.GameClass3",Mutators="...
GameType=(GameName="DeathMatch",HideVote=False,Clan=False,RequiredPlayers=1,MapLimits=0,ServerName="DeathMatch",UseMapList=True,DefaultMap="DM-ODC_Arena",MapPrefix="DM",GameClass="UT2Vote47.GameClass4",Mutators="...
GameType=(GameName="Double Domination",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="Double Domination",UseMapList=True,DefaultMap="DOM-Core",MapPrefix="DOM",GameClass="UT2Vote47.GameClass5",Mutators="...
GameType=(GameName="InstaGib CTF",HideVote=False,Clan=True,RequiredPlayers=2,MapLimits=0,ServerName="None",UseMapList=False,DefaultMap="CTF-Chrome",MapPrefix="CTF",GameClass="UT2Vote47.GameClass6",Mutators="...
GameType=(GameName="Invasion",HideVote=False,Clan=False,RequiredPlayers=1,MapLimits=0,ServerName="Invasion",UseMapList=True,DefaultMap="DM-ODC_Arena",MapPrefix="DM",GameClass="UT2Vote47.GameClass7",Mutators="...
GameType=(GameName="Last Man Standing",HideVote=True,Clan=False,RequiredPlayers=1,MapLimits=0,ServerName="Last Man Standing",UseMapList=True,DefaultMap="DM-ODC_Arena",MapPrefix="DM",GameClass="UT2Vote47.GameClass8",Mutators="...
GameType=(GameName="Mutant",HideVote=False,Clan=False,RequiredPlayers=1,MapLimits=0,ServerName="Mutant",UseMapList=True,DefaultMap="DM-ODC_Arena",MapPrefix="DM",GameClass="UT2Vote47.GameClass9",Mutators="...
GameType=(GameName="Onslaught",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="Onslaught",UseMapList=True,DefaultMap="ONS-Icarus",MapPrefix="ONS",GameClass="UT2Vote47.GameClass10",Mutators="...
GameType=(GameName="Team DeathMatch",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="TDM",UseMapList=True,DefaultMap="DM-ODC_Arena",MapPrefix="DM",GameClass="UT2Vote47.GameClass11",Mutators="...
GameType=(GameName="Vehicle CTF",HideVote=True,Clan=True,RequiredPlayers=2,MapLimits=0,ServerName="None",UseMapList=False,DefaultMap="None",MapPrefix="VCTF",GameClass="UT2Vote47.GameClass12",Mutators="...
GameType=(GameName="SSInvasion RPG",HideVote=False,Clan=False,RequiredPlayers=1,MapLimits=0,ServerName="Invasion RPG",UseMapList=True,DefaultMap="DM-ODC_Arena",MapPrefix="DM",GameClass="UT2Vote47.GameClass13",Mutators="...
GameType=(GameName="SSInvasion VINV",HideVote=False,Clan=False,RequiredPlayers=1,MapLimits=0,ServerName="Vehicle Invasion",UseMapList=True,DefaultMap="VINV-Torlan",MapPrefix="VINV",GameClass="UT2Vote47.GameClass14",Mutators="...
GameType=(GameName="DeathMatch RPG",HideVote=False,Clan=False,RequiredPlayers=1,MapLimits=0,ServerName="RPG DeathMatch",UseMapList=True,DefaultMap="DM-ODC_Arena",MapPrefix="DM",GameClass="UT2Vote47.GameClass15",Mutators="...
GameType=(GameName="Capture the Flag RPG",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="RPG CTF",UseMapList=True,DefaultMap="CTF-Maul",MapPrefix="CTF",GameClass="UT2Vote47.GameClass16",Mutators="...

ProAsm
20th Oct 2004, 04:20 PM
As I said many times, the way UT2Vote is designed it is just not possible to do it any other way than the actual GameClassName, thus ruling out any form of Struct, Indexing or whatever.
If UT2Vote never had any Admining section and no ClanSetup then it might be possible but currently it needs the GameClassName in full and the only way around custom games is GameMake.

For instance often UT2Vote needs to know what the current game is, incase some Admin forced a switch from WebAdmin, or as a ServerAdmin etc, and the only possible "Real" information that UT2004 returns is the GameClass or the GameName although the GameName is often unrealiable as some mods change the GameName.
As an example, say the current game is XGame.xCTFGame and your Structs or Indexing has 10 XGame.xCTFGame - which one must it choose as at this point it does not have a clue because the Admin forced a switch from WebAdmin, so it will take the first XGame.xCTFGame it finds in the list.
During the making of version 4.4 we tried every trick in the book to accomplish some form of indexing or structing for the games but it was just a no go area unless we dumped 80% of the Admin stuff and almost all of the ClanSetup stuff.

ArPharazon
20th Oct 2004, 06:01 PM
Lets say we want the following configs:
- team deathmatch - IG, 2v2
- team deathmatch - NW, 4v4
- ctf - IG - 2v2
- ctf - IG - 5v5
- ctf - NW - 5v5

Currently this is not allowed because the 'gameclass' parameter must be unique, therefore I'm proposing that a new parameter called 'ID' should be added which would then become the new unique identifier for gametypes.

The gametype definition would look something like this then:
GameType=
(
ID=1,
GameName="IG-Capture the Flag",
HideVote=False,
Clan=True,
RequiredPlayers=1,
MapLimits=0,
ServerName="None",
UseMapList=False,
DefaultMap="CTF-Impasse",
MapPrefix="CTF",
GameClass="XGame.xCTFGame",
Mutators="XGame.MutInstaGib,
XGame.MutNoAdrenaline",
Commands="?..."
)

The desired configs could be represented in ut2vote as follows (new entries in bold):

[UT2Vote47.GameTypes]
DefaultID=4
SelectedID=2
GameType=(ID=1,GameName="IG-Team DeathMatch-2v2",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="None",UseMapList=False,DefaultMap="DM-Gael",MapPrefix="DM",GameClass="XGame.xTeamGame",Mutators="XGame.MutInstaGib,XGame.MutNoAdrenaline",Commands="?MaxLives=0?GoalScore=0?TimeLimit=20?MinPlayers=0?MaxPlayers=4?MaxSpectators=0?Translocator=False?We aponStay=False?BalanceTeams=False?ForceRespawn=True?PlayersMustBeReady=True?Tournament=0?GamePasswor d=?GameStats=True?GameSpeed=1.00?FF=1.00?NumBots=0?Difficulty=6")
GameType=(ID=2,GameName="NW-Team DeathMatch-5v5",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="None",UseMapList=False,DefaultMap="DM-Gael",MapPrefix="DM",GameClass="XGame.xTeamGame",Mutators="",Commands="?MaxLives=0?GoalScore=0?TimeLimit=20?MinPlayers=0?MaxPlayers=8?MaxSpectators=0?Translocator=False?We aponStay=True?BalanceTeams=False?ForceRespawn=True?PlayersMustBeReady=True?Tournament=0?GamePassword =?GameStats=True?GameSpeed=1.00?FF=0.00?NumBots=0?Difficulty=6")
GameType=(ID=3,GameName="IG-Capture the Flag-2v2",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="None",UseMapList=False,DefaultMap="CTF-Impasse",MapPrefix="CTF",GameClass="XGame.xCTFGame",Mutators="XGame.MutInstaGib,XGame.MutNoAdrenaline",Commands="?MaxLives=0?GoalScore=0?TimeLimit=20?MinPlayers=0?MaxPlayers=4?MaxSpectators=0?Translocator=False?We aponStay=False?BalanceTeams=False?ForceRespawn=True?PlayersMustBeReady=False?Tournament=0?GamePasswo rd=?GameStats=True?GameSpeed=1.00?FF=0.00?NumBots=0?Difficulty=6")
GameType=(ID=4,GameName="IG-Capture the Flag-5v5",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="None",UseMapList=False,DefaultMap="CTF-Impasse",MapPrefix="CTF",GameClass="XGame.xCTFGame",Mutators="XGame.MutInstaGib,XGame.MutNoAdrenaline",Commands="?MaxLives=0?GoalScore=0?TimeLimit=20?MinPlayers=0?MaxPlayers=10?MaxSpectators=2?Translocator=False?W eaponStay=False?BalanceTeams=False?ForceRespawn=True?PlayersMustBeReady=False?Tournament=0?GamePassw ord=?GameStats=True?GameSpeed=1.00?FF=0.00?NumBots=0?Difficulty=6")
GameType=(ID=5,GameName="NW-Capture the Flag-5v5",HideVote=False,Clan=True,RequiredPlayers=1,MapLimits=0,ServerName="None",UseMapList=False,DefaultMap="CTF-Impasse",MapPrefix="CTF",GameClass="XGame.xCTFGame",Mutators="",Commands="?MaxLives=0?GoalScore=0?TimeLimit=15?MinPlayers=0?MaxPlayers=10?MaxSpectators=2?Translocator=True?We aponStay=True?BalanceTeams=False?ForceRespawn=True?PlayersMustBeReady=True?Tournament=0?GamePassword =?GameStats=True?GameSpeed=1.00?FF=0.00?NumBots=0?Difficulty=6")

DefaultID=4 - implies that CTF IG 5v5 is the default for server startup, or when everyone leaves
SelectedID=2 - implies the currently selected gametype. This value gets updated whenever gametypes are changed.

This brings us to the issue of gametype switches, which appears to be the main stumbling block [Webadmin doesnt like duplicate gametype entries either it seems].

When the mutator is active, it should modify the 'current_game.htm' page - specifically the gametype dropdown to reflect the game id & name instead of the gametype name e.g.
[1]-IG-Team DeathMatch-2v2
[2]-NW-Team DeathMatch-4v4
[3]-IG-Capture the Flag-2v2
[4]-IG-Capture the Flag-5v5
[5]-IG-Capture the Flag-5v5

It should also override the default handler for the 'switch' button and implement its own so that it knows which gametype ID is to be applied.

When the mutator is not active, it simply reverts to showing the unique default list of gametypes and using the default switch handler.

As for the the game rule settings in the 'Commands=' parameter, these should be applied / written directly to the appropriate gametype sections in the ini file - i.e. bypassing the command line totally.
[XGame.xTeamGame]
HUDType=XInterface.HudBTeamDeathMatch
MaxLives=0
TimeLimit=20
GoalScore=0
bTeamScoreRound=False
bPlayersMustBeReady=False
bAllowTaunts=False
FriendlyFireScale=0.000000
MaxTeamSize=16
bForceRespawn=True
bWeaponStay=true
bAllowNonTeamChat=False
NetWait=5
bAdjustSkill=False
bAllowTrans=False
SpawnProtectionTime=0.000000
LateEntryLives=1
LoginMenuClass=GUI2K4.UT2K4PlayerLoginMenu
bAllowPrivateChat=False
bAllowWeaponThrowing=True
ResetTimeDelay=0

[XGame.xCTFGame]
HUDType=XInterface.HudBCaptureTheFlag
MaxLives=0
TimeLimit=20
GoalScore=0
bTeamScoreRound=False
bPlayersMustBeReady=False
bAllowTaunts=False
FriendlyFireScale=0.000000
MaxTeamSize=16
bForceRespawn=False
bWeaponStay=True
bAllowNonTeamChat=False
NetWait=5
bAdjustSkill=False
bAllowTrans=False
SpawnProtectionTime=0.000000
LateEntryLives=1
LoginMenuClass=GUI2K4.UT2K4PlayerLoginMenu
bAllowPrivateChat=False
bAllowWeaponThrowing=True
ResetTimeDelay=0
If webadmin is used to modify the settings for the active gametype, ut2vote should update the 'Commands=' parameter for the selected gametype profile.

As for the Clan Setup feature - simply store those settings in its own ut2vote section.

It would also be very handy to have the Clan Setup features available in webadmin :D

I hope all the above makes sense - i'm not very good at describing what i'm thinking :D

ArPharazon
23rd Oct 2004, 01:08 PM
What do you think ProASM? Is this doable?

ProAsm
23rd Oct 2004, 03:51 PM
No, check my last post.
Regardless how you structure the games, UT2Vote will not allow more than one game of the same ClassName - period, just the way everything works.
If there was a way, I most certainly would implement it as it would solve many problems but to do that I would have to dump most the Admin stuff and the whole of the ClanSetup.