Veteran Member
Join Date: Aug 2011
Location: Cloudbank
|
08-16-2012
, 07:05
[TF2] Be the Robot (1.3, December 22 2012)
|
#1
|
Changes your player model into a robot from Mann vs. Machine, and adds a touch of metal to your voice. Nothing else changes.
By default, anyone can say !robot to toggle it on themselves. Admins can do !robot [target] [1/0] to toggle it on others.
NEW FOR 1.3: Now be robot as Engineer! Plugin has been re-written and no longer works terribly! Also, for plugin devs, it's got natives!
OVERRIDES
Use tf/addons/sourcemod/configs/ admin_overrides.cfg and set these to your preferred donator flag to limit access to BtR to your donators/admins:
- "betherobot" (def. all) Who can toggle it on themselves.
- "betherobot_admin" (def. kick) Who can toggle it on other players.
CVARS
Tune the plugin to your liking with tf/cfg/server.cfg.
- sm_betherobot_footsteps (1/0, def. 1) Play footsteps from robots?
- sm_betherobot_default (1/0, def. 0) Should everyone who joins get a robot model by default?
- sm_betherobot_classes (def. 0) What classes shouldn't be able to be robot? Add up the numbers to get the restrictions you want. 1=Scout, 2=Soldier, 4=Pyro, 8=Demo, 16=Heavy, 32=Engineer, 64=Medic, 128=Sniper, 256=Spy. Default is 0 (no restrictions)
- sm_betherobot_sounds (1/0, def. 1) Should robots' voices become robotic?
- sm_betherobot_taunts (1/0, def. 1) Should robots be able to taunt?
- sm_betherobot_fileexists (1/0, def. 1) Should the plugin check if the robot-voice sound file actually exists? Disable this if you're having trouble with sounds. It might fix it.
- sm_betherobot_cooldown (def. 2.0) Players must wait this long, in seconds, between toggling robot on themselves. Set to 0.0 for no cooldown.
- sm_betherobot_wearables (1/0, def. 1) Show wearables on robots? Many wearables don't merge with the robot model properly, and thus create long lines going to the map's origin.
- sm_betherobot_wearables_kill (1/0, def. 0) If this is 1, and _wearables is 0, wearables will be outright removed from players when they become robots. This makes it so they'll also have no wearables when they un-robot, but on the other hand, BLU zombie players appear RED if this isn't on.
MODULE: Be the Sentry Buster
Click for info ->
The Sentry Buster now has its own individual plugin file (see here for why) so you'll need to install betherobot.smx and betherobotsentrybuster.smx to use it. You'll also need TF2Items.
Players who become Sentry Busters with !buster are turned into Demomen with 2500 HP, and a specialized Caber that does some neat stuff. Primary fire attacks with the Caber--this can only hurt Dispensers and Teleporters of the enemy team, instantly destroying them in one hit. It has absolutely no effect on players, or Sentry Guns.
Sentry Busters, just like real Sentry Busters, start winding up and detonate two seconds after pressing their taunt key, or running out of health. The proceeding explosion deals 2500 HP of damage to any enemies or buildings within 300 Hammer units of them. (As the Wiki says, approximate radius of three Teleporters.) Unlike robots, after they die, Sentry Busters become humans again.
HOW TO GET IT: Install betherobot.smx, bethesentrybuster.smx (both below), and TF2Items.
OVERRIDES: "bethebuster" and "bethebuster_admin"--both of them default to z (root). What does _admin mean? ...You didn't read the main OVERRIDES section of this post. Which you should.
CVARS:
- sm_betherobot_buster_jump (def. 0.0) How high the Sentry Buster can jump, compared to normal players. So 1.0 is the same as normal players, and 10.0 is BRAVE JUMP!
- sm_betherobot_buster_announce (def. 0) These people will hear the Administrator say "Alert, a Sentry Buster has entered the area!": 1=Enemy team, 2=Sentry Buster's team, 3=Both, 0=No one.
MODULE: Bots are Robots
Available here. Turns the non-MvM bots into robots.
FOR DEVELOPERS
betherobot.inc
Get betherobot.inc below, #include <betherobot>, win the Internet.
PHP Code:
enum RobotStatus {
RobotStatus_Human = 0, // Client is human
RobotStatus_WantsToBeRobot, // Client wants to be robot, but can't because of defined rules.
RobotStatus_Robot // Client is a robot. Beep boop.
}
/**
* Checks if a client is a robot.
*
* @param client Index of the client to check.
* @return RobotStatus value of the client; RobotStatus_Human if they're a human, RobotStatus_Robot if they're a robot, RobotStatus_WantsToBeRobot if they want to be a robot, but can't for some reason.
*/
native RobotStatus:BeTheRobot_GetRobotStatus(client);
/**
* Sets if a client should be robot or not.
*
* @param client Index of the client to set.
* @param toggle True to make the client a robot, false to change them back to a human. Skip this argument to toggle instead.
* @noreturn
*/
native BeTheRobot_SetRobot(client, bool:toggle = bool:2);
/**
* Uses Be the Robot's "CheckTheRules()" native to check if a client should be allowed to be a robot or not.
*
* @param client Index of the client to check.
* @return True if the client is allowed to be a robot (not dead, allowed class by server, etc.) false otherwise.
*/
native bool:BeTheRobot_CheckRules(client);
KNOWN ISSUES
There aren't many, anymore.
If you're unlucky enough, your server will stringtable-overflow and crash if it precaches too many sounds. Players precaching another >60 robot sounds per minute helps this happen. We've been waiting ages for Valve to fix this since MvM, but they just fixed it for the majority of servers (not all) and have since been pretending it wasn't affecting anyone anymore.Fix: Set sm_betherobot_sounds to 0. No sounds will be precached by the plugin. Get NoMvM if you're still paranoid/still overflowing.
- Fix: February 22, 2013 Patch. It only took 'em half a year.
- Spy issues. All voice lines are delayed for some reason, and BLU Spies appear RED (or something like that) due to missing "disguised" sub-models.
- Fix: Disable Spy robots by adding 256 onto sm_betherobot_classes.
- Most taunts don't work right (e.g. Rainblower, Scorch Shot, Caber) as Valve hasn't set them up properly/at all for the robot models. Although they're for weapons the MvM bots don't actually use, so you can't really blame 'em.
- Fix: Disable taunts with sm_betherobot_taunts 0.
- Robots are reset back to humans on mapchange.
I'm looking into this, but for now, at least it's better than sounds not working past mapchanges, right? 99% sure that it's caused because OnClientDisconnect() is called on mapchange.
- Be the Buster un-robots you, waits out the cooldown time, then makes you a Buster.
- Fix: Don't be robot when using !buster.
- Clients' consoles are flooded with "Cannot update control point" errors.
- Fix: Tell your players to do record dem;stop in console. It does not look like Valve will be fixing this at any point.
- Sometimes, a line is drawn from a robot player that goes to some place.
- This is because an item that they have equipped attaches to a bone on the player model that does not exist on the robot model, so instead it just lazily goes to the map's origin point.
- Lazy Fix: Disable wearables with sm_betherobot_wearables 0. I've always meant to make a "wearable whitelist" for this plugin that makes wearables that cause this bug invisible, but there are quite a number of wearables, and Valve keeps adding more.
- Zombie-robot Spies are sometimes coloured the opposite team's colour.
- Fix: Disable and kill wearables with both sm_betherobot_wearables 0 and sm_betherobot_wearables_kill 1. I should probably make that whitelist, shouldn't I?
DOCUMENTED CHANGES
Click to see ->
1.3 December 22, 2012
- Rewrite!
- You can now be robot as Engineer
- The plugin will now make players who want to be robots into robots as soon as they qualify, instead of just telling them they can't for some unknown reason
- Fixed several issues, mostly involving mapchanges
- Added natives for other plugins to use: BeTheRobot_GetRobotStatus, BeTheRobot_SetRobot, BeTheRobot_CheckRules
- Added sm_betherobot_wearables_kill cvar, defaults to 0. Set it to 1, and wearables of players will be killed (instead of hidden) when they become a robot. sm_betherobot_wearables must be 0.
- Added @robots target filter for use with other plugins
- Base plugin no longer requires SDK Hooks and TF2Items (Be the Sentry Buster still requires both)
(Be the Sentry Buster)
- Now has its own module
- Added sm_betherobot_buster_jump cvar, defaults to 0.0. Controls Sentry Buster's jump height. 1.0 is the normal jump height for players.
- Added sm_betherobot_buster_announce cvar, defaults to 0. The Administrator will announce the Sentry Buster's presence to...1=enemy team, 2=Sentry Buster's team, 3=both teams.
- The Sentry Buster's scale now reads from the tf_mvm_miniboss_scale cvar instead of being hardcoded
- Fixed players who turned off Sentry Buster maintaining its weapon
- Fixed Administrator sounds not playing to Sentry Busters
1.2 October 27, 2012
- Added cvars
- Footsteps
- Enable by default
- Classes not allowed to be robot
- Taunts
- Disable FileExists check
- Cooldown
- Wearables
- Plugin version
- Greatly improved Be the Sentry Buster (!buster)
- Starts with 2,500 HP
- Deals 2,500 HP of damage
- Doesn't "die", and can't be backstabbed
- Intro sound only plays near the Sentry Buster
- Footstep sounds!
- Particle!
- All "static" precaching (which would be the Sentry Buster sounds) moved to OnMapStart
- Fixed another possible crash bug
- Fixed robot Medics playing footstep sounds (they roll on wheels)
- Fixed non-robot-at-the-time Engineers playing robot footstep sounds
- Fixed Buster sound looping after the explosion (it was written in there for some reason)
1.1 August 21, 2012
- Added the Sentry Buster! (!buster, WIP)
- Footstep sounds!
- !betherobot and !berobot shortcuts
- Switched use_valve_fs to true for the FileExists check
- Fixed a server crash involving taunts that Sreaper reported
1.0.1 August 17, 2012
- Clients are no longer un-robot'd on death/resupply. Forgive me, as I was lacking sleep when I decided to do that.
- Improved the admin command: sm_robot [target] [1/0]. Don't specify a second parameter and it'll be a toggle like it was before.
- Fixed clients ragdolls and death sounds not being those of robots and ROBOT NOISES.
HOWE 2 INSTALL- DO NOT CLICK Get Plugin for either file, because it won't work.
- Download betherobot.smx, save it into your sourcemod/plugins/ directory, and do sm plugins load betherobot in your server console if the server is already running. Bam, pow, snap, you're done.
- If you want to restrict it to certain players only, see the text underneath the big OVERRIDES text above, then save your overrides config and sm_reloadadmins.
- If you want to Be the Sentry Buster:
- Make sure you've got the extensions SDK Hooks and TF2Items installed and running on your server--sm exts load sdkhooks and sm exts load tf2items in server console if they're not.
- Grab betherobot_sentrybuster.smx and do the same dealio with stock robot. If it doesn't load, use your brain to carefully read the failure message. (For example, extension "tf2items" not running means you didn't install TF2Items right. Or you might need to restart the server.)
- If you want to manually compile Be the Robot, Be the Buster, or make your own module, hit Get Source for the respective .sp. You'll also need to plant betherobot.inc into your include/ folder when compiling.
__________________
Last edited by MasterOfTheXP; 10-02-2013 at 08:38.
|
|