Raised This Month: $32 Target: $400
 8% 

[L4D2]Infected Bots Spawner/Difficulty Control(ASDC) V1.2


Post New Thread Reply   
 
Thread Tools Display Modes
Author
harryhecanada
Junior Member
Join Date: Jul 2013
Plugin ID:
3756
Plugin Version:
1.0
Plugin Category:
Gameplay
Plugin Game:
Left 4 Dead
Plugin Dependencies:
    Servers with this Plugin:
     
    Plugin Description:
    Difficulty Controller for the L4D2 AI director, automatically spawns extra zombies to increase difficulty.
    Old 07-17-2013 , 00:55   [L4D2]Infected Bots Spawner/Difficulty Control(ASDC) V1.2
    Reply With Quote #1

    Automatic Scaling Difficulty Controller (ASDC):

    This plugin is a controller for the l4d2 director, it automatically changes the spawn rates of all SI and CI to increase the difficulty based on the amount of health the survivors have.

    Plugin is based off of monsterbots by Machine, many thanks to him for the original spawn algorithms.

    Features:
    A very large amount of control variables to tune the plugin to perfectly fit any server.
    Much more efficient when compared to monsterbots.
    Up to 4 different special infected spawned.
    Tank and witch spawn control with separate timers.
    Common Infected mob control, with spawn size control and periodic spawns just like SI/Tank/Witch.

    Changelog:
    1.0 - Release
    1.1 - Fixed all the bugs I have found.
    1.2 - Added new features:
    Ability to control and spawn common infected "mobs" just like SIs, see new cvars.
    Changed the formula for CI spawns.
    Some more small bug fixes. (Plugin has been thoroughly play tested, with no crashes or bugs of any kind)
    Better play tested default convar values.
    Removed debug messages.
    1.3 - Added new features:
    Background # of zombies is now also controlled by ASDC. Value is set to 1% of maximum common infected value.
    Turned off automatic spawning of tank, witch, CI mobs for l4d1 maps only, will continue to spawn SI as usual though.

    Math:
    Plugin has internal timer that ticks every 3 seconds corresponding to 3 unmodified ticks.

    The modified tick increase per second is as follows:
    Tick/Sec=Difficulty Base+ASDC Multiplier(1->0)*Difficulty Multiplier

    The modified spawn amounts for zombie waves is as follows:
    #=2*(Amount of zombies per person*ASDC Multiplier*CI Difficulty Multiplier+Amount of zombies per person)

    Examples:
    4 Players all at 100% health, DB=1, DM=1 -> ASDC Multiplier = 1 -> Tick/Sec=2 -> 200% spawn rate.
    4 Players all at 50% health, DB=1, DM=1 -> ASDC Multiplier = 0.5 -> Tick/Sec=2 -> 150% spawn rate.
    3 Players 100% health 1 dead, DB=1, DM=1 -> ASDC Multiplier = 0.75 -> Tick/Sec=2 -> 175% spawn rate.
    4 Players 50% health, DB=2, DM=2 -> ASDC Multiplier = 0.5 -> Tick/Sec=3 -> 300% spawn rate.

    Convars:

    // Multiplication tuning for CI difficulty controller. Set base and mult to 0 to turn off CI part of ASDC.
    // -
    // Default: "1"
    // Minimum: "0.000000"
    ASDCCImult "1"

    // Multiplication tuning for difficulty controller. Set base and mult to 0 to turn off ASDC.
    // -
    // Default: "1"
    // Minimum: "0.000000"
    ASDCmult "1"

    // Base time scale for difficulty controller. Set base and mult to 0 to turn off ASDC.
    // -
    // Default: "1"
    // Minimum: "0.000000"
    ASDCbase "1"

    // Number of CI per person in a CI zombie wave.
    // -
    // Default: "10"
    // Minimum: "0.000000"
    ASDCcommons "30"

    // Number of CI per person in a CI zombie wave.
    // -
    // Default: "5"
    // Minimum: "0.000000"
    ASDCcommonsbackground "5"


    // Number of CI per person in a Mega CI zombie wave.
    // -
    // Default: "15"
    // Minimum: "0.000000"
    ASDCmob "60"

    // How many ticks(unmodified seconds) till another SI spawns
    // -
    // Default: "30"
    // Minimum: "0.000000"
    ASDCSIinterval "30"

    // How many ticks(unmodified seconds) till another Mob wave of CI spawns
    // -
    // Default: "120"
    // Minimum: "0.000000"
    ASDCMOBinterval "200"

    // How many ticks(unmodified seconds) till another tank spawns
    // -
    // Default: "180"
    // Minimum: "0.000000"
    ASDCtankinterval "180"

    // How many ticks(unmodified seconds) till another witch spawns
    // -
    // Default: "120"
    // Minimum: "0.000000"
    ASDCwitchinterval "120"

    // Is Mobs of Common Infected wave spawn on (1/0). Set to 0 to disable.
    // -
    // Default: "1"
    // Minimum: "0.000000"
    ASDCtypeMOB "1"

    // Is tank spawn on (1/0). Set to 0 to disable.
    // -
    // Default: "1"
    // Minimum: "0.000000"
    ASDCtypetank "1"

    // Is witch spawn on (1/0). Set to 0 to disable.
    // -
    // Default: "1"
    // Minimum: "0.000000"
    ASDCtypewitch "1"

    //////////////////////////////////////////////////////////
    //Monster Types
    //
    //0 = Random (Smoker,Boomer,Hunter,Spitter,Jockey,Charger)
    //1 = Smoker
    //2 = Boomer
    //3 = Hunter
    //4 = Spitter
    //5 = Jockey
    //6 = Charger
    //////////////////////////////////////////////////////////

    // The maximum amount of SI
    // -
    // Default: "8"
    // Minimum: "0.000000"
    ASDCmaxbots "8"

    // The first kind of special infected to spawn. Set to 9 to disable.
    // -
    // Default: "0"
    // Minimum: "0.000000"
    // Maximum: "9.000000"
    ASDCtype0 "0"

    // The second kind of special infected to spawn. Set to 9 to disable.
    // -
    // Default: "0"
    // Minimum: "0.000000"
    // Maximum: "9.000000"
    ASDCtype1 "0"

    // The third kind of special infected to spawn. Set to 9 to disable.
    // -
    // Default: "0"
    // Minimum: "0.000000"
    // Maximum: "9.000000"
    ASDCtype2 "0"

    // The fourth kind of special infected to spawn. Set to 9 to disable.
    // -
    // Default: "0"
    // Minimum: "0.000000"
    // Maximum: "9.000000"
    ASDCtype3 "0"
    Attached Files
    File Type: cfg l4d2_ASDCconfig.cfg (2.8 KB, 2594 views)
    File Type: sp Get Plugin or Get Source (l4d2_ASDC.sp - 4645 views - 13.6 KB)
    __________________

    Last edited by harryhecanada; 08-17-2013 at 13:38.
    harryhecanada is offline
    harryhecanada
    Junior Member
    Join Date: Jul 2013
    Old 07-17-2013 , 01:11   Re: [L4D2]Automatic Scaling Difficulty Controller
    Reply With Quote #2

    Would be good to get some user feedback on stability and bug feedback, new feature suggestions are welcome as well.

    Oh and dont underestimate the amount of difference this makes especially with large multipliers, this plugin can easily demolish an entire team when turned up to 11(but not 10! ) or so.

    Also try not to exceed about 200+ CI spawned in the calculations, this could lead to server lag, crashing and other unintended side effects...

    Last edited by harryhecanada; 07-17-2013 at 01:12.
    harryhecanada is offline
    T.n.K Ticket
    Junior Member
    Join Date: Nov 2012
    Old 07-20-2013 , 14:27   Re: [L4D2]Automatic Scaling Difficulty Controller
    Reply With Quote #3

    Fantastic
    T.n.K Ticket is offline
    harryhecanada
    Junior Member
    Join Date: Jul 2013
    Old 07-20-2013 , 21:36   Re: [L4D2]Automatic Scaling Difficulty Controller V1.2
    Reply With Quote #4

    Version 1.2 is very close to the final revision of this mod, atleast for what I intended it to do.

    If there is anything else that could be modified difficulty wise that people would like to see, post and I will try to add them in.

    Only one thing left to do and that is modify the wave spawning rates during holdout events, they are currently a bit too easy.
    __________________
    harryhecanada is offline
    Machine
    Senior Member
    Join Date: Apr 2010
    Old 07-21-2013 , 14:03   Re: [L4D2]Infected Bots Spawner/Difficulty Control(ASDC) V1.2
    Reply With Quote #5

    Thanks Harry. This looks to be a more automated system of monster bots which is cool. I will have to try it sometime and give you some feedback.
    Machine is offline
    Serpentdipity
    Member
    Join Date: Oct 2012
    Old 07-23-2013 , 19:49   Re: [L4D2]Infected Bots Spawner/Difficulty Control(ASDC) V1.2
    Reply With Quote #6

    This is pretty awesome. I like the constant stream of infected that spawn when you tweak it a certain way. It definitely makes for an incredibly intense game when you combine it with the vicious infected plugin. Just a request: anyway to make it so that the specials won't attack or be able to engage the survivors before they step out of the safe zones?
    Serpentdipity is offline
    harryhecanada
    Junior Member
    Join Date: Jul 2013
    Old 07-24-2013 , 22:39   Re: [L4D2]Infected Bots Spawner/Difficulty Control(ASDC) V1.2
    Reply With Quote #7

    Quote:
    Originally Posted by Serpentdipity View Post
    This is pretty awesome. I like the constant stream of infected that spawn when you tweak it a certain way. It definitely makes for an incredibly intense game when you combine it with the vicious infected plugin. Just a request: anyway to make it so that the specials won't attack or be able to engage the survivors before they step out of the safe zones?
    Once any common infected is killed the plugin starts to spawn zombies (this also bugs out sometimes, possibly leading to spawn before any zombie dies), there is not a better way to code this because sometimes the game doesnt register players leaving the safe room thus turning off the mod completely for that round.

    Then again, once the shots are fired its game on

    If anyone else has noticed issues with this mod and l4d1 campaign finales please report here. Im trying to think of a way to fix it but it seems like l4d1 campaigns are different...
    __________________

    Last edited by harryhecanada; 07-24-2013 at 22:41.
    harryhecanada is offline
    Serpentdipity
    Member
    Join Date: Oct 2012
    Old 07-26-2013 , 07:08   Re: [L4D2]Infected Bots Spawner/Difficulty Control(ASDC) V1.2
    Reply With Quote #8

    Okay. That makes sense. It would definitely explain why dead center almost immediately initiates the counter. All of that fire + wandering commons... Anyways, I have another request, if you will. And some things I've noticed about the finales.

    Firstly, my request is to add another special or two or three to the spawn ratio. I tend to run my server with a team of 5+ players... -snip-

    Secondly, I notice that in some finales, should the boomers bring the pain, the timer for the tank is pushed back. Or something to that effect. What i'm trying to say is that so long as you avoid the boomer, the tank spawns when he has to but as long as players keep getting boomed upon, the finale tanks appear to take longer. I don't mind this function but it really comes into play on the, as you've mentioned, l4d1 campaign finales (no mercy specifically) and, I've noticed, some of the l4d2 campaigns. More specifically, sometimes the first tank never comes for dark carnival and for dead center, since the vomit is everywhere, the tanks seem to never arrive for the party. Dead Air appears to work just fine.

    With more specials spawning and the personal tweaks made to the boomers, I think the finale problems could be avoided on my end but I'm really just guessing; I'm not a programmer in any way. Nevertheless, it's a really enjoyable plugin.

    Last edited by Serpentdipity; 07-27-2013 at 07:56. Reason: corrected info; since redux, changed some info
    Serpentdipity is offline
    Serpentdipity
    Member
    Join Date: Oct 2012
    Old 07-27-2013 , 03:00   Re: [L4D2]Infected Bots Spawner/Difficulty Control(ASDC) V1.2
    Reply With Quote #9

    So I looked into it a bit and did some tweaking; made two versions. Only major tweaks are how many specials will spawn and their related cvars. The first version has 6 specials and the other features 8 possible. I haven't yet fully tested the 8 version. I do know that with redux6, and avoiding boomer bile, at the end of dark carnival the tanks spawn appropriately.

    However, with the redux6 version, I noticed on the rare occasion that specials disappeared if you didn't kill them fast enough (after 20+ seconds and doing no damage to anyone) but over-all it works just fine. With redux8, the specials seem to spawn sporadically; if you only kill 1-3, they seem to spawn accordingly; should you kill 4-5 en masse, there seems to be this off-timer that waits until the last or second to last one of the 8 is killed. These scenarios happen with specials set to 1 sec/spawn and with [both .cfgs are set with these variables:] ASDCmult "0" ; ASDCCImult "0" ; ASDCbase "1".
    Attached Files
    File Type: sp Get Plugin or Get Source (l4d2_ASDCredux6.sp - 1584 views - 12.5 KB)
    File Type: smx l4d2_ASDCredux6.smx (7.3 KB, 476 views)
    File Type: sp Get Plugin or Get Source (l4d2_ASDCredux8.sp - 1588 views - 13.0 KB)
    File Type: smx l4d2_ASDCredux8.smx (7.4 KB, 505 views)
    Serpentdipity is offline
    Serpentdipity
    Member
    Join Date: Oct 2012
    Old 07-27-2013 , 07:46   Re: [L4D2]Infected Bots Spawner/Difficulty Control(ASDC) V1.2
    Reply With Quote #10

    A very cool thing which i just discovered was that the combination of this auto infected spawner plugin with the redux6/8 versions enable a steady flow of 6 to 8 specials. In other words, in redux8, you can face up to 8 specials but you're forced to kill each one of them until the counter refreshes. With the two plugins combined, you can now fight all 8 specials without having to wait between each full spawn wave + have modified common waves (which i think is a really neat idea).

    Although you don't need either one to run their functions, putting the two plugins together really does make up for some good times. Should you download this, the timers are set to a low setting by default. Modify accordingly. I felt it relevant to also post the modified .sps here and shall do so on the other plugin's page; perhaps some combination of code can be done so that this plugin can feature both modified increasing/decreasing hordes + various desired particular weight ratios in a special wave? this task falls beyond my abilities, though.
    Attached Files
    File Type: sp Get Plugin or Get Source (l4d2_autoISredux8.sp - 1600 views - 36.8 KB)
    File Type: smx l4d2_autoISredux8.smx (16.3 KB, 894 views)
    File Type: sp Get Plugin or Get Source (l4d2_autoISredux6.sp - 1522 views - 36.8 KB)
    File Type: smx l4d2_autoISredux6.smx (16.4 KB, 765 views)

    Last edited by Serpentdipity; 07-27-2013 at 07:51.
    Serpentdipity is offline
    Reply



    Posting Rules
    You may not post new threads
    You may not post replies
    You may not post attachments
    You may not edit your posts

    BB code is On
    Smilies are On
    [IMG] code is On
    HTML code is Off

    Forum Jump


    All times are GMT -4. The time now is 03:06.


    Powered by vBulletin®
    Copyright ©2000 - 2024, vBulletin Solutions, Inc.
    Theme made by Freecode