thankyou
Donate to the B3 fund!

"even a small donation helps!"
Donate with PayPal!
Most of the plugins here are made by B3 users and the authors may not visit frequently. If you need support for plugins or if questions remain unanswered, you will have to contact the author directly. Read the full Support Disclaimer here

NOTE: Do not attach plugins to your forumtopics! Attachements are periodically removed by maintenance tasks. Upload your plugins to our Downloads section instead!

Author Topic: RotationManager [CoD|CoD:UO|CoD2|CoD4]  (Read 35529 times)

Offline Muumipappa

  • Jr. Member
  • **
  • Posts: 14
Re: RotationManager [CoD|CoD:UO|CoD2|CoD4]
« Reply #15 on: July 23, 2010, 05:01:25 PM »
Any idea why this isn't randomizing rotation properly?

I use latest B3 and 1.33(latest dev.) version of this plugin for COD4.

It randomizes somehow, but now and then it plays same map twice or even three times in a row, just changing the gametype.

Any idea what could be a problem?
Seems like its not checking the last played maps properly.

My XML:
Code: [Select]
<configuration plugin="rotationmanager">
        <settings name="settings">
                <!--
    Three rotations have two switchingpoints.
    The first rotationswitch will be when server reaches the next number of players:
    -->
                <set name="switchcount1">4</set>
                <!--
    Three rotations have two switchingpoints.
    The second rotationswitch will be when server reaches the next number of players:
    -->
                <set name="switchcount2">8</set>
    <!--
    Do you want the server to react fast to your playercount or would you like to
    reduce the number of rotationswitches? The hysteresis will make your switchcounts
    somewhat flexible. Setting it to 0 will make the plugin react at once when a
    switchpoint is passed.
    -->
    <set name="hysteresis">1</set>
                <!--
    Do you want the plugin to build a random rotation when switching? This is good when
    we need to switch a lot! I suggest you leave this set to true. (Options: true/false)
    -->
    <set name="randomizerotation">true</set>
                <!--
                How many maps should we store as a maphistory, so they don't get stored in the
                rotation too close to eachother. If for example set to 4, at least 4 other maps
    will be put in rotation before a map can be repeated. This goes for randomized
    rotations only! set to 0 to disable this.
    -->
                <set name="maphistory">4</set>
                <!--
    The next line makes the new rotation effective immediately (next map).
    NOTE: If you dont use randomizerotation this could lead to playing the same maps
    over and over again! (Options: true/false)
    -->
    <set name="immediate">true</set>
    <!--
    What gameversion is running? CoD1 or CoD:UO = 1 / CoD2 = 2 / CoD4 = 4 / CoD5 = 5
    -->
    <set name="version">4</set>
                <!--
    I think its fair if we wait for the slower maploaders. This option will fast_restart
    the next map after the set delay (seconds) so slower players have equal chances.
    Setting it to 0 will disable the function.
    -->
    <set name="mapdelay">0</set>
        </settings>
       
        <!--
        Next section is the setting of maprotations. You can supply several maps for several gametypes
        Don't use a gametype twice in the same rotation though, it will not work as planned!
        You can however use a map more than once in a gametype if you would like to play it more often.
        If you left randomizerotation to true the plugin will create a random rotation from all gametypes/maps
        provided and it will be a proper and smart maprotation! Don't overdo it on the number of maps,
        it could lead to errors because the maprotation becomes too big for CoD! Use the syntax below!

  "dm" - free for all deathmatch
  "dom" - domination
  "koth" - headquarters
  "sab" - sabotage
  "sd" - search & destroy
  "war" - team deathmatch

  -->

        <settings name="rotation_small">
          <set name="dm">mp_pipeline mp_crossfire mp_overgrown mp_countdown mp_shipment mp_backlot mp_bog mp_strike mp_killhouse mp_crash</set>
        </settings>

        <settings name="rotation_medium">
          <set name="war">mp_crossfire mp_backlot mp_creek mp_strike mp_pipeline mp_showdown mp_overgrown mp_bog mp_crash</set>
          <set name="koth">mp_strike mp_carentan mp_bloc mp_farm mp_convoy mp_broadcast mp_vacant mp_pipeline mp_backlot mp_crossfire mp_crash mp_overgrown</set>
        </settings>

        <settings name="rotation_large">
        <set name="war">mp_overgrown mp_carentan mp_broadcast mp_creek</set>
          <set name="sab">mp_strike mp_broadcast mp_citystreets mp_pipeline mp_overgrown mp_backlot</set>
          <set name="koth">mp_carentan mp_strike mp_bloc mp_overgrown mp_convoy mp_broadcast mp_vacant mp_pipeline mp_backlot mp_crossfire mp_crash</set>
          <set name="dom">mp_citystreets mp_backlot mp_convoy mp_vacant mp_carentan mp_strike mp_pipeline mp_overgrown</set>
          <set name="sd">mp_backlot mp_citystreets mp_broadcast mp_cargoship mp_bog mp_crash mp_overgrown mp_strike mp_pipeline mp_vacant mp_bloc mp_crossfire mp_carentan mp_convoy</set>
        </settings>

</configuration>

Offline xlr8or

  • [ www.xlrstats.com ]
  • Project Lead
  • Hero Member
  • *
  • Posts: 2057
    • The Art of Tactical Gaming
RotationManager [CoD|CoD:UO|CoD2|CoD4]
« Reply #16 on: July 23, 2010, 05:54:26 PM »
Can you isolate such an incident and find the part in the b3.log that corresponds with it? We'll need to see what is actually happening.

Offline Muumipappa

  • Jr. Member
  • **
  • Posts: 14
Re: RotationManager [CoD|CoD:UO|CoD2|CoD4]
« Reply #17 on: July 23, 2010, 06:28:39 PM »
Code: [Select]
100723 13:35:24	VERBOSE	Parsing Event: Client Connect: RotationmanagerPlugin
100723 13:35:24 DEBUG RotationmanagerPlugin: PlayerCount: 14
100723 13:35:24 DEBUG RotationmanagerPlugin: Adjusting to large mapRotation
100723 13:35:24 DEBUG RotationmanagerPlugin: Generate from: {'sab': ['mp_strike', 'mp_broadcast', 'mp_citystreets', 'mp_pipeline', 'mp_overgrown', 'mp_backlot'], 'dom': ['mp_citystreets', 'mp_backlot', 'mp_convoy', 'mp_vacant', 'mp_carentan', 'mp_strike', 'mp_pipeline', 'mp_overgrown'], 'war': ['mp_overgrown', 'mp_carentan', 'mp_broadcast', 'mp_creek'], 'koth': ['mp_carentan', 'mp_strike', 'mp_bloc', 'mp_overgrown', 'mp_convoy', 'mp_broadcast', 'mp_vacant', 'mp_pipeline', 'mp_backlot', 'mp_crossfire', 'mp_crash'], 'sd': ['mp_backlot', 'mp_citystreets', 'mp_broadcast', 'mp_cargoship', 'mp_bog', 'mp_crash', 'mp_overgrown', 'mp_strike', 'mp_pipeline', 'mp_vacant', 'mp_bloc', 'mp_crossfire', 'mp_carentan', 'mp_convoy']}
100723 13:35:24 DEBUG RotationmanagerPlugin: Creating randomized rotation...
100723 13:35:24 DEBUG RotationmanagerPlugin: MapCount: 43
100723 13:35:24 DEBUG RotationmanagerPlugin: Map mp_convoy skipped, already added in the last 4 items
100723 13:35:24 DEBUG RotationmanagerPlugin: Map mp_crash skipped, already added in the last 4 items
100723 13:35:24 DEBUG RotationmanagerPlugin: Map mp_overgrown skipped, already added in the last 4 items
100723 13:35:24 DEBUG RotationmanagerPlugin: Map mp_vacant skipped, already added in the last 4 items
100723 13:35:24 DEBUG RotationmanagerPlugin: Map mp_broadcast skipped, already added in the last 4 items
100723 13:35:24 DEBUG RotationmanagerPlugin: Map mp_carentan skipped, already added in the last 4 items
100723 13:35:24 DEBUG RotationmanagerPlugin: Map mp_pipeline skipped, already added in the last 4 items
100723 13:35:24 DEBUG RotationmanagerPlugin: Map mp_broadcast skipped, already added in the last 4 items
100723 13:35:24 DEBUG RotationmanagerPlugin: Maximum sv_rotation stringlength reached... Aborting adding maps to rotation!
100723 13:35:24 DEBUG RotationmanagerPlugin: NewRotation: gametype dom map mp_citystreets gametype koth map mp_backlot gametype sd map mp_bloc gametype koth map mp_overgrown gametype dom map mp_pipeline gametype koth map mp_crossfire gametype sab map mp_backlot gametype sd map mp_cargoship gametype sd map mp_convoy gametype sab map mp_citystreets gametype koth map mp_crash gametype koth map mp_carentan gametype dom map mp_convoy gametype sd map mp_bog gametype sd map mp_crash gametype dom map mp_overgrown gametype dom map mp_strike gametype sd map mp_overgrown gametype sd map mp_vacant gametype dom map mp_vacant gametype sd map mp_broadcast gametype koth map mp_strike gametype sab map mp_pipeline gametype sd map mp_carentan gametype war map mp_broadcast gametype war map mp_carentan gametype sd map mp_citystreets gametype sd map mp_crossfire gametype koth map mp_vacant gametype sd map mp_pipeline gametype war map mp_creek gametype sab map mp_overgrown gametype koth map mp_broadcast gametype koth map mp_pipeline
100723 13:35:24 DEBUG Set cvar sv_mapRotation = [gametype dom map mp_citystreets gametype koth map mp_backlot gametype sd map mp_bloc gametype koth map mp_overgrown gametype dom map mp_pipeline gametype koth map mp_crossfire gametype sab map mp_backlot gametype sd map mp_cargoship gametype sd map mp_convoy gametype sab map mp_citystreets gametype koth map mp_crash gametype koth map mp_carentan gametype dom map mp_convoy gametype sd map mp_bog gametype sd map mp_crash gametype dom map mp_overgrown gametype dom map mp_strike gametype sd map mp_overgrown gametype sd map mp_vacant gametype dom map mp_vacant gametype sd map mp_broadcast gametype koth map mp_strike gametype sab map mp_pipeline gametype sd map mp_carentan gametype war map mp_broadcast gametype war map mp_carentan gametype sd map mp_citystreets gametype sd map mp_crossfire gametype koth map mp_vacant gametype sd map mp_pipeline gametype war map mp_creek gametype sab map mp_overgrown gametype koth map mp_broadcast gametype koth map mp_pipeline]
100723 13:35:24 VERBOSE RCON sending (127.0.0.1:28930) set sv_mapRotation "gametype dom map mp_citystreets gametype koth map mp_backlot gametype sd map mp_bloc gametype koth map mp_overgrown gametype dom map mp_pipeline gametype koth map mp_crossfire gametype sab map mp_backlot gametype sd map mp_cargoship gametype sd map mp_convoy gametype sab map mp_citystreets gametype koth map mp_crash gametype koth map mp_carentan gametype dom map mp_convoy gametype sd map mp_bog gametype sd map mp_crash gametype dom map mp_overgrown gametype dom map mp_strike gametype sd map mp_overgrown gametype sd map mp_vacant gametype dom map mp_vacant gametype sd map mp_broadcast gametype koth map mp_strike gametype sab map mp_pipeline gametype sd map mp_carentan gametype war map mp_broadcast gametype war map mp_carentan gametype sd map mp_citystreets gametype sd map mp_crossfire gametype koth map mp_vacant gametype sd map mp_pipeline gametype war map mp_creek gametype sab map mp_overgrown gametype koth map mp_broadcast gametype koth map mp_pipeline"
100723 13:35:24 CONSOLE 3034:33 Weapon;289fd00be08ad019810769f84ed930f8;7;Recurve;m4_silencer_mp
100723 13:35:25 DEBUG Set cvar sv_mapRotationCurrent = []
100723 13:35:25 VERBOSE RCON sending (127.0.0.1:28930) set sv_mapRotationCurrent ""

Part of b3.log where it makes the rotation.
Map called mp_vacant comes there twice in a row, just gametype changes.

Sorry if its hard to read. Couldn't highlight the maps what comes twice as the code box won't allow making it bold or something..

Offline xlr8or

  • [ www.xlrstats.com ]
  • Project Lead
  • Hero Member
  • *
  • Posts: 2057
    • The Art of Tactical Gaming
Re: RotationManager [CoD|CoD:UO|CoD2|CoD4]
« Reply #18 on: July 23, 2010, 08:47:15 PM »
I think you found a bug in the rotation manager.
I've pushed version 1.3.4 to my repo, can you test it and let me know what happens?
You seem to have a good rotation setup to test this thing.

Offline Muumipappa

  • Jr. Member
  • **
  • Posts: 14
Re: RotationManager [CoD|CoD:UO|CoD2|CoD4]
« Reply #19 on: July 23, 2010, 10:18:17 PM »
Ok ty very much! Great plugins you have there mate  ::) Really appreciate your work!

I'll test the new one tonight and over weekend. Will post results as soon as possible :)

Offline Muumipappa

  • Jr. Member
  • **
  • Posts: 14
Re: RotationManager [CoD|CoD:UO|CoD2|CoD4]
« Reply #20 on: July 23, 2010, 10:37:28 PM »
Seems like it makes better rotation this time :)
Code: [Select]
100723 22:26:11	DEBUG	RotationmanagerPlugin: NewRotation: gametype sab map mp_pipeline gametype koth map mp_broadcast gametype koth map mp_vacant gametype koth map mp_bloc gametype koth map mp_strike gametype dom map mp_pipeline gametype sd map mp_crash gametype sd map mp_convoy gametype dom map mp_vacant gametype sd map mp_bloc gametype sab map mp_citystreets gametype sd map mp_bog gametype war map mp_carentan gametype koth map mp_convoy gametype sd map mp_crossfire gametype dom map mp_backlot gametype war map mp_broadcast gametype sd map mp_strike gametype war map mp_creek gametype koth map mp_crossfire gametype koth map mp_overgrown gametype sd map mp_broadcast gametype koth map mp_pipeline gametype sd map mp_citystreets gametype koth map mp_crash gametype koth map mp_backlot gametype dom map mp_convoy gametype sd map mp_pipeline gametype war map mp_overgrown gametype koth map mp_carentan gametype dom map mp_strike gametype sab map mp_broadcast gametype sab map mp_backlot gametype sd map mp_overgrown 

I'll post more results after weekend  ::)
Again thank you very much for your time :)

Offline Muumipappa

  • Jr. Member
  • **
  • Posts: 14
Re: RotationManager [CoD|CoD:UO|CoD2|CoD4]
« Reply #21 on: August 07, 2010, 05:20:57 PM »
What changes you made to the code?

Why i ask, is that it seems like it's making gametype randomization not so well now.
Map rotation is perfectly randomized now, but it plays HQ and SD like it's reading rotation directly from XML config.

Sorry my english. Weekend and i'm Finnish so you'd except im not sober atm  ::)

Offline xlr8or

  • [ www.xlrstats.com ]
  • Project Lead
  • Hero Member
  • *
  • Posts: 2057
    • The Art of Tactical Gaming
Re: RotationManager [CoD|CoD:UO|CoD2|CoD4]
« Reply #22 on: August 07, 2010, 07:00:47 PM »
I fixed a bug in the original code. It will check only that a map is not played in the last few rounds. Nothing else was changed.

Offline Muumipappa

  • Jr. Member
  • **
  • Posts: 14
Re: RotationManager [CoD|CoD:UO|CoD2|CoD4]
« Reply #23 on: August 07, 2010, 08:08:18 PM »
Reason i posted this is because previously before the bug, it mixed gametypes very well.
Now it mixes maps very well and works perfectly that way, but it doesn't mix gametypes that well anymore  ???

Offline xlr8or

  • [ www.xlrstats.com ]
  • Project Lead
  • Hero Member
  • *
  • Posts: 2057
    • The Art of Tactical Gaming
Re: RotationManager [CoD|CoD:UO|CoD2|CoD4]
« Reply #24 on: August 07, 2010, 08:11:02 PM »
Besides the previous-map-checking thing its completely random... so anything can happen.

Offline Muumipappa

  • Jr. Member
  • **
  • Posts: 14
Re: RotationManager [CoD|CoD:UO|CoD2|CoD4]
« Reply #25 on: August 07, 2010, 10:28:29 PM »
ah ok  :)
Thought it would also check gametype somehow :)
Sorry i didn't read your previous post that carefully  :o

Offline Strawhidy

  • Jr. Member
  • **
  • Posts: 24
Re: RotationManager [CoD|CoD:UO|CoD2|CoD4]
« Reply #26 on: September 03, 2010, 05:37:08 AM »
My maps are hanging and the end of the round and not changing to the next map in the rotation. In addition, I have only have a 22 player COD4 server and don't need 3 rotations. Is it possible to only setup two map rotations. I'm also a bit confused the way the way two switchpoints work with 3 map rotations.

Here is my current config:

- <configuration plugin="rotationmanager">
- <settings name="settings">
- <!--
    Three rotations have two switchingpoints.
    The first rotationswitch will be when server reaches the next number of players:
   

  -->
  <set name="switchcount1">5</set>
- <!--
    Three rotations have two switchingpoints.
    The second rotationswitch will be when server reaches the next number of players:
   

  -->
  <set name="switchcount2">12</set>
- <!--
    Do you want the server to react fast to your playercount or would you like to
    reduce the number of rotationswitches? The hysteresis will make your switchcounts
    somewhat flexible. Setting it to 0 will make the plugin react at once when a
    switchpoint is passed.
   

  -->
  <set name="hysteresis">0</set>
- <!--
    Do you want the plugin to build a random rotation when switching? This is good when
    we need to switch a lot! I suggest you leave this set to true. (Options: true/false)
   

  -->
  <set name="randomizerotation">true</set>
- <!--
      How many maps should we store as a maphistory, so they don't get stored in the
      rotation too close to eachother. If for example set to 4, at least 4 other maps
    will be put in rotation before a map can be repeated. This goes for randomized
    rotations only! set to 0 to disable this.
   

  -->
  <set name="maphistory">4</set>
- <!--
    The next line makes the new rotation effective immediately (next map).
    NOTE: If you dont use randomizerotation this could lead to playing the same maps
    over and over again! (Options: true/false)
   

  -->
  <set name="immediate">true</set>
- <!--
    What gameversion is running? CoD1 or CoD:UO = 1 / CoD2 = 2 / CoD4 = 4 / CoD5 = 5
   

  -->
  <set name="version">4</set>
- <!--
    I think its fair if we wait for the slower maploaders. This option will fast_restart
    the next map after the set delay (seconds) so slower players have equal chances.
    Setting it to 0 will disable the function.
   

  -->
  <set name="mapdelay">1</set>
  </settings>
- <!--
   Next section is the setting of maprotations. You can supply several maps for several gametypes
   Don't use a gametype twice in the same rotation though, it will not work as planned!
   You can however use a map more than once in a gametype if you would like to play it more often.
   If you left randomizerotation to true the plugin will create a random rotation from all gametypes/maps
   provided and it will be a proper and smart maprotation! Don't overdo it on the number of maps,
   it could lead to errors because the maprotation becomes too big for CoD! Use the syntax below!

  "dm" - free for all deathmatch
  "dom" - domination
  "koth" - headquarters
  "sab" - sabotage
  "sd" - search & destroy
  "war" - team deathmatch

  <set name="dm">mp_backlot mp_bloc mp_bog mp_cargoship mp_citystreets mp_convoy mp_countdown mp_crash mp_crossfire mp_farm mp_overgrown mp_pipeline mp_shipment mp_showdown mp_strike mp_vacant</set>
  <set name="dom">mp_backlot mp_bloc mp_bog mp_cargoship mp_citystreets mp_convoy mp_countdown mp_crash mp_crossfire mp_farm mp_overgrown mp_pipeline mp_shipment mp_showdown mp_strike mp_vacant</set>
  <set name="koth">mp_backlot mp_bloc mp_bog mp_cargoship mp_citystreets mp_convoy mp_countdown mp_crash mp_crossfire mp_farm mp_overgrown mp_pipeline mp_shipment mp_showdown mp_strike mp_vacant</set>
  <set name="sab">mp_backlot mp_bloc mp_bog mp_cargoship mp_citystreets mp_convoy mp_countdown mp_crash mp_crossfire mp_farm mp_overgrown mp_pipeline mp_shipment mp_showdown mp_strike mp_vacant</set>
  <set name="sd">mp_backlot mp_bloc mp_bog mp_cargoship mp_citystreets mp_convoy mp_countdown mp_crash mp_crossfire mp_farm mp_overgrown mp_pipeline mp_shipment mp_showdown mp_strike mp_vacant</set>
  <set name="war">mp_backlot mp_bloc mp_bog mp_cargoship mp_citystreets mp_convoy mp_countdown mp_crash mp_crossfire mp_farm mp_overgrown mp_pipeline mp_showdown mp_strike mp_vacant</set>

 

  -->
- <settings name="rotation_small">
  <set name="war">mp_killhouse mp_bog mp_countdown mp_showdown mp_vacant</set>
  </settings>
- <settings name="rotation_medium">
  <set name="war">mp_crash map mp_carentan map mp_overgrown mp_broadcast mp_vacant mp_backlot mp_citystreets mp_convoy mp_crossfire mp_strike map mp_pipeline</set>
  </settings>
- <settings name="rotation_large">
  <set name="war">mp_backlot mp_citystreets mp_convoy mp_crossfire mp_strike map mp_pipeline mp_crash map mp_carentan map mp_overgrown mp_broadcast mp_vacant</set>
  </settings>
  </configuration>

Offline Freelander

  • XLRstats dev.
  • Dev. Team
  • Hero Member
  • *
  • Posts: 1000
Re: RotationManager [CoD|CoD:UO|CoD2|CoD4]
« Reply #27 on: September 03, 2010, 10:43:56 AM »
Did you check your b3.log to see what happens at the end of round where the map had to change?

Offline xlr8or

  • [ www.xlrstats.com ]
  • Project Lead
  • Hero Member
  • *
  • Posts: 2057
    • The Art of Tactical Gaming
Re: RotationManager [CoD|CoD:UO|CoD2|CoD4]
« Reply #28 on: September 03, 2010, 11:30:26 AM »
1.) A server hanging at the end of a map is most likely a typo in a mapname. If it cannot load the next map (because it doesn't exist or is typed incorrectly), it hangs and can't move on... Like Freelander said, you should look in the b3.log where the incident happens and try to figure out which map is wrong.

2.) If you want to use only 2 maprotations you have to set the switchcount2 level higher than the amount of players your server can handle, so it will never switch to the third rotation. If you set it to 99 it will probably be high enough ;)

3.) How the switch works? Your first switch is at 5 players, your hysteresis - 0: rotation 2 will load if player 6 goes online, it will go back to rotation 1 if player 5 leaves.

basically it's like this:
rotate from 1 to 2 -> amount of online players must be greater than: switchpoint1 + hysteresis
rotate from 2 to 3 -> amount of online players must be greater than: switchpoint2 + hysteresis
rotate from 3 to 2 -> amount of online players must be smaller than: switchpoint2 - hysteresis
rotate from 2 to 1 -> amount of online players must be smaller than: switchpoint1 - hysteresis




Offline Strawhidy

  • Jr. Member
  • **
  • Posts: 24
Re: RotationManager [CoD|CoD:UO|CoD2|CoD4]
« Reply #29 on: September 05, 2010, 10:57:47 PM »
Got it, however now there are maps repeating over and over once the switchpoint happens. The maps that are continuesly repeating are not listed in my server's "server.cfg". Should I have all the maps i wish to rotate with rotationmanager also entered into the server's rotation?

 


Rate this page +1 at Google Search

anything