1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

gametypes and official stats..

Discussion in 'General Discussion' started by NR_marcO, Oct 17, 2004.

  1. NR_marcO

    NR_marcO New Member

    Joined:
    Sep 25, 2004
    Messages:
    19
    Likes Received:
    0
    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...
     
  2. ProAsm

    ProAsm New Member

    Joined:
    Mar 20, 2002
    Messages:
    2,106
    Likes Received:
    0
    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 :(
     
  3. ArPharazon

    ArPharazon New Member

    Joined:
    Aug 22, 2003
    Messages:
    46
    Likes Received:
    0
    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.
     
  4. ProAsm

    ProAsm New Member

    Joined:
    Mar 20, 2002
    Messages:
    2,106
    Likes Received:
    0
    I'm afraid you lost me here.
    Can you be a bit more specific with some examples if possible.
     
  5. sargon

    sargon New Member

    Joined:
    Sep 21, 2003
    Messages:
    14
    Likes Received:
    0
    Gameclass

    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="...
     
  6. ProAsm

    ProAsm New Member

    Joined:
    Mar 20, 2002
    Messages:
    2,106
    Likes Received:
    0
    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.
     
  7. ArPharazon

    ArPharazon New Member

    Joined:
    Aug 22, 2003
    Messages:
    46
    Likes Received:
    0
    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:
    Code:
    GameType=
    (
    	[b]ID=1[/b],
    	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):
    Code:
    [UT2Vote47.GameTypes]
    [b]DefaultID=4[/b]
    [b]SelectedID=2[/b]
    GameType=([b]ID=1[/b],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?WeaponStay=False?BalanceTeams=False?ForceRespawn=True?PlayersMustBeReady=True?Tournament=0?GamePassword=?GameStats=True?GameSpeed=1.00?FF=1.00?NumBots=0?Difficulty=6")
    GameType=([b]ID=2[/b],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?WeaponStay=True?BalanceTeams=False?ForceRespawn=True?PlayersMustBeReady=True?Tournament=0?GamePassword=?GameStats=True?GameSpeed=1.00?FF=0.00?NumBots=0?Difficulty=6")
    GameType=([b]ID=3[/b],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?WeaponStay=False?BalanceTeams=False?ForceRespawn=True?PlayersMustBeReady=False?Tournament=0?GamePassword=?GameStats=True?GameSpeed=1.00?FF=0.00?NumBots=0?Difficulty=6")
    GameType=([b]ID=4[/b],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?WeaponStay=False?BalanceTeams=False?ForceRespawn=True?PlayersMustBeReady=False?Tournament=0?GamePassword=?GameStats=True?GameSpeed=1.00?FF=0.00?NumBots=0?Difficulty=6")
    GameType=([b]ID=5[/b],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?WeaponStay=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.
    Code:
    [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
     
  8. ArPharazon

    ArPharazon New Member

    Joined:
    Aug 22, 2003
    Messages:
    46
    Likes Received:
    0
    What do you think ProASM? Is this doable?
     
  9. ProAsm

    ProAsm New Member

    Joined:
    Mar 20, 2002
    Messages:
    2,106
    Likes Received:
    0
    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.
     
    Last edited: Oct 23, 2004

Share This Page