AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Plugins (https://forums.alliedmods.net/forumdisplay.php?f=108)
-   -   [L4D] Director Controller (All4Dead) (https://forums.alliedmods.net/showthread.php?t=84609)

grandwazir 01-28-2009 21:03

[L4D] Director Controller (All4Dead)
 
4 Attachment(s)
What does it do?

Ever thought that the other team were just that little bit too good? Want to experience what a real panic event feels like? Want a return to the old boss logic but want to make sure it spawns the same bosses for each team? Or are there just not enough zombies in your life?


This plugin has the answer. All4Dead allows admins (who are permitted to use cheats) to control the director without actually having to turn sv_cheats on. It enables the following commands in game:
  • Force the director to spawn a tank
  • Force the director to spawn a witch
  • Force the director to trigger a panic event
  • Force the director to keep triggering panic events until you tell it to stop
  • Delay the rescue vehicle indefinitely
  • Add more zombies to the horde
  • Spawn any infected you like
  • Spawn any weapon you like
  • Spawn any item you like
  • Enable all bot teams
  • Use the old versus boss spawning logic (and ensure consistency of boss spawns between teams)
How do I use it?

The plugin has now been seperated into two different versions for each version of Left4dead, All4Dead and All4Dead2. All4dead will work with both games while All4Dead2 will only work properly with Left4Dead2.

The plugin is controlled either from the console by calling the various commands or by using the menu system which is attached to the sm_admin menu. For completeness the list of available commands are:
  • a4d_add_zombies
  • a4d_continuous_bosses
  • a4d_delay_rescue
  • a4d_enable_all_bot_teams
  • a4d_enable_auto_placement
  • a4d_enable_notifications
  • a4d_disable_new_versus_logic
  • a4d_force_panic
  • a4d_force_tank
  • a4d_force_witch
  • a4d_panic_forever
  • a4d_reset_to_defaults
  • a4d_spawn_infected
  • a4d_spawn_uinfected
  • a4d_spawn_weapon
  • a4d_spawn_item
You can only use the various commands if you are in an admin group that permits you to use cheats on that server. If you are familiar with the existing director commands these are intended to be very similar to make them easier to remember. Some commands are only available in all4dead and not in all4dead2 and visa versa.

Important note for people downloading All4Dead2

You need to download the extension SDKHooks for this mod to work properly. You do not need this extension for All4Dead.

This is now required to spawn uncommon infected. Interesting things will no doubt happen if you try to run the plugin without it.

How do I configure this beast?

It does come with some ConVars as well for your configuration pleasure:
  • a4d_automatic_placement: Whether or not we ask the director to place things we spawn.
  • a4d_notify_players: Whether or not we announce changes in game.
  • a4d_zombies_to_add: The amount of zombies to add when an admin requests more zombies.
  • a4d_always_force_bosses: When this is on a4d will not automatically toggle off force_tank/witch when one of them spawns. You want this off if you are using force_tank to ensure that at least one tank spawns each round. When it is on you may end up with multiple tanks in one round if used in conjunction with force_tank.
  • a4d_refresh_zombie_location: The amount of time in seconds between spawn location refreshes. Used only for placing uncommon infected automatically in a z_spawn auto type fashion. Any changes currently require a map restart to take affect.
All the All4Dead plugins have been seperated out into a seperate configuration file which you can find in l4d/left4dead/cfg/sourcemod/plugin.all4dead.cfg. You should configure it here not in server.cfg as plugin.all4dead.cfg is loaded after the server starts.

Please make sure to delete your plugin.all4dead.cfg when you upgrade otherwise a4d_version will give you misleading information.

How does this plugin announce it's dirty deeds?
The way it provides feedback is based on the sm_show_activity cvar and will honour whatever that commands. If you want to turn off notifications completely either:
  • set a4d_notify_players to 0
  • type "a4d_enable_notifications 0"
It also logs on the server the name of the admin and the action used. This logging can not be turned off.

You can turn notifications off permanently by going to "plugin.all4dead.cfg" and making sure "a4d_enable_notifications" is set to 0.

Sounds great! But is there anything wrong with it?

These are the known issues so far.
  1. Delaying the rescue vehicle and not turning it back on before the final wave of the finale, means that it never turns up at all.
  2. Spawning tanks in various finales in Left4Dead2 can cause interesting problems such as the finale ending prementually.
  3. Choosing an item from the end of a menu, redraws the menu back at the start again. This seems to be the default behaviour for menus in Sourcemod and I am not entirely sure how to change it. Answers on a postcard please.
  4. Attemping to spawn some melee weapons on some maps will fail unless they are normally available on that map.
  5. The webcompilor will fail to compile All4Dead2 as it requires an extension. Instead you can use the attached all4dead2.smx or compile it yourself.
  6. Spawning a witch on C6_m1 (first map of the passing) will not work. You can work around this for the time being by precaching the normal witch model.
Oooooh! What's the extras?

Thanks to
Celanor and Jay Dogg I have put together three radial menus to add shortcuts to various commands. Currently they only work when you are a survivor. There seems to be a Left 4 Dead issue that infected can not have radial menus. Follow the install instructions in the zip file - it is that easy!

I have also added three key bindings to the most commonly used commands which can be used when you are either side. You can find all this in the keyboard settings screen in Left 4 Dead (just scroll down to the bottom).

The extras currently have not been updated for Left4Dead2 as Valve has changed the way radial menus now work. There is a guide on how to do it and a program to create the menus if people want to do it themselves. Distributing the changes here though would no doubt be illegal as it would involve uploading whole resource files from Left4Dead2.

Thank you and...

Please be kind reviewing my mod as it is the first I've written. Heavy credit goes to Fexii for his Infected Spawning mod for his code showing me how to strip cheat flags and the people who wrote the excellent tutorials on the wiki. Credit also goes to liam12360 for doing me a cool image.
Thanks also to DJ Tsunami for doing such an excellent extension. I would also like to express my gratitude to raoulduke and AtomicStryker for releasing a fix in my absence.

If you would like me to add additional features please either request them in this thread or post a patch and I will credit you accordingly.


The all knowing all powerful change log

Code:

* Version 1.0
*            - Initial release.
* Version 1.1
*            - Added support for console and chat commands instead of using the menu
* Version 1.2
*            - Changed name from "Overseer" to "All4Dead"
*            - Added "a4d_spawn" to spawn infected without sv_cheats 1.
*            - Added support for automatically resetting relevant game ConVars to defaults on a map change.
*            - Added "FCVAR_CHEAT" to all the CVARs.
* Version 1.2.1
*            - Fixed a bug where manually spawned infected would spawn with little or no health.
* Version 1.3
*            - Changed "a4d_spawn" to "a4d_spawn_infected"
*            - Added "a4d_spawn_weapon"
*            - Added "a4d_spawn_item"
*            - Added commands to toggle all bot survivor teams.
*            - Added support for randomising boss locations in versus.
*            - Added support to ensure consistency of boss spawns between teams.
*            - Moved the automatic reset function to OnMapEnd instead of OnMapStart. Should resolve double tank bug.
* Version 1.3.1
*            - Fixed bug with the arg string array being slightly too small for "a4d_spawn_item" and "a4d_spawn_weapon".
* Version 1.4.0
*            - Added feature which enforces versus mode across a series maps until the server hibernates.
*            - Changed "toggle" commands to "enable" commands. More descriptive of what they actually do.
*            - Cleaned up menus so they are easier to understand.
*            - Fixed bug where we were not enforcing consistent boss types if the old versus logic was not enabled.
*            - General code clean up.
*            - Replaced "a4d_director_is_enabled" ConVar with an internal variable.
*            - Replaced "a4d_vs_force_versus_mode" ConVar with an internal variable.
*            - Removed "a4d_force_old_versus_logic" ConVar.
*            - Removed feature for automatic reset of game settings. Instead settings are reverted when the server hibernates.
*            - Seperated All4Dead configuation into cfg/sourcemod/plugin.all4dead
* Version 1.4.1
*            - Fixed issue where players would get stuck in limbo if you disable versus mode.   
* Version 1.4.2
*            - Changed PlayerSpawn to give health to all infected players when spawned. This should fix a rare bug.
* Version 1.4.3
*            - All4Dead will now actually take notice of what you put in plugin.all4dead.cfg.
*            - Added "a4d_vs_randomise_boss_locations" ConVar.
*            - Added warning if plugin.all4dead.cfg version does not match plugin version.
*            - Fixed bug where ResetToDefaults would force coop mode on versus maps.
*            - Removed hibernation timer. It was causing errors and was unnecessary after all.
*            - Reverted change to PlayerSpawn made in 1.4.2. The old behaviour was correct.
* Version 1.4.4
*            - Automatically change "z_spawn_safety_range" to match the game mode in play.
*            - Changed behaviour so versus mode is now continuously forced and safe from tampering.
*            - Fixed a bug where Event_BossSpawnsSet would not reset its own changes to ForceTank and ForceWitch on map changes.
*            - Fixed a bug with EnableOldVersusLogic reporting incorrect state changes.
*            - Fixed a bug where boss spawn tracking was sometimes not being reset correctly between maps.
*            - Fixed a bug where EnableOldVersusLogic would display a misleading notification.       
*            - Worked around RoundEnd being called twice! (once at the end of a round and again just before a new round starts)
* Version 1.4.5
*            - Removed force versus feature (it was an ugly hack and is no longer necessary now all maps are playable on versus)
* Version 1.5.0
*            - Code refactoring and rewrite to make it easier to add new features.
*            - Removed all the old code related to the force versus feature.
*            - Added back buttons to menus, thanks to extrospect for the code.
*            - Added new cvar "always_force_bosses" which if set to 0 will reset director_force_tank/witch when a boss has spawned.
*              This should resolve the problem with multiple tanks and witches appearing in one round when the admin intended to ensure only one appears.
*            - Removed ensure consistency feature as it wasn't working correctly. Maybe an idea for a seperate mod.
*            - It is now possible to spawn infected, items and weapons from the rcon.
*            - Changed the name of the rifle to assault rifle as per public opinion
* Version 1.5.1
*            - Added Oxygen tank.
*            - Changed the way we find a fake client to execute console commands. New method is more elegant.
* Version 1.6.0 (All4Dead)
*            - Added spawning ammo piles.
* Version 2.0.0 (All4Dead2)
*            - Added spawning of all uncommon infected
*            - Added spawning of all the new weapons
*            - Added spawning of all the new items and weapon upgrades
*            - Added feature allowing automatic placement of uncommon infected z_spawn style.
*            - Removed Left4Dead specific features that no longer work. (delay_rescue and the versus settings.)


Number Six 01-28-2009 21:10

Re: [L4D] Director Controller (Overseer)
 
Impressive :o
Test now ... :mrgreen:
Thx

wgooch 01-28-2009 21:12

Re: [L4D] Director Controller (Overseer)
 
To override the max witches or tanks per round, run the command "z_spawn tank auto" or "z_spawn witch auto" this spawns the ai out of sight of any of the players, it can be done the same way with other ai such as boomers or smokers, common infected don't thought, I hope this helps in some way. Great plugin!

grandwazir 01-28-2009 21:17

Re: [L4D] Director Controller (Overseer)
 
Quote:

To override the max witches or tanks per round, run the command "z_spawn tank auto" or "z_spawn witch auto" this spawns the ai out of sight of any of the players, it can be done the same way with other ai such as boomers or smokers, common infected don't thought, I hope this helps in some way.
I am thinking of adding a way to spawn specific infected although I am reluctant to do so since one already exists. If people really want it I shall add it in the next version.

wgooch 01-28-2009 21:21

Re: [L4D] Director Controller (Overseer)
 
Quote:

Originally Posted by grandwazir (Post 751957)
I am thinking of adding a way to spawn specific infected although I am reluctant to do so since one already exists. If people really want it I shall add it in the next version.

I don't understand what you are trying to say by "adding a way to spawn a specific infected" because the command will spawn the specified infected, it just wont spawn under the cross air, instead it spawns it in a fair director decided place, such as "z_spawn hunter auto" this spawns a hunter close to the survivors, but in the spawn range, it will also not spawn the infected if it finds that there is no fair place to spawn it.

grandwazir 01-28-2009 21:33

Re: [L4D] Director Controller (Overseer)
 
I'll look into doing it once I've finished this versus.

Number Six 01-28-2009 22:25

Re: [L4D] Director Controller (Overseer)
 
Report :)
overseer_director_toggle , bloked on disabled in the menu if choose disable (but apparently AI work if map change just)
Need a option for reset all setup by default .
Others work for me :mrgreen:

Ps : panic forever terrifying players on a versus advanced :avast:

grandwazir 01-28-2009 22:42

Re: [L4D] Director Controller (Overseer)
 
Quote:

overseer_director_toggle , blocked on disabled in the menu if choose disable (but apparently AI work if map change just
Yup I forgot to set "overseer_director_enabled" back to true. Should fix the menu problem although the director is actually re-enabled.

Quote:

Need a option for reset all setup by default
Not sure if I will add this. Most of the options that you would want to change back are toggles, the only big thing not reversible is the mob increases. All the changes will be reset upon the map being changed anyway.

Number Six 01-28-2009 23:59

Re: [L4D] Director Controller (Overseer)
 
Quote:

Originally Posted by grandwazir (Post 751984)
Not sure if I will add this. Most of the options that you would want to change back are toggles, the only big thing not reversible is the mob increases. All the changes will be reset upon the map being changed anyway.

Ok.... Thx for answers

grandwazir 01-29-2009 01:01

Re: [L4D] Director Controller (Overseer)
 
I've almost finished adding the spawning stuff just a couple of bugs. Thanks for the feedback six :)


All times are GMT -4. The time now is 10:22.

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