Raised This Month: $51 Target: $400
 12% 

RuneTF gamemode


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author
happs
Junior Member
Join Date: Aug 2012
Plugin ID:
3716
Plugin Version:
1.0
Plugin Category:
Gameplay
Plugin Game:
Team Fortress 2
Plugin Dependencies:
    Servers with this Plugin:
     
    Plugin Description:
    Based off Quake Runes with a Team Fortress team-play twist.
    Old 06-29-2013 , 04:42   RuneTF gamemode
    Reply With Quote #1


    Runes are power-ups that grant special abilities. You can have only one rune active at a time, and it will remain active until death.


    Design Rationale
    The original Quake Runes mod was a free-for-all player deathmatch. Many of the runes had abilities increasing the players survivability or fragging efficiency. When porting the concept to Team Fortress, it became apparent that some of the runes were too strong in a team objective-based setting. Similar to the design philosophy of the weapon alternatives, runes that increase a players damage output come with negative effects.

    When designing new runes, the focus was to complement team-play more than buffing individual players. Some runes can become more effective when used in coordination with teammates. Because of the random nature of the rune drops, runes that only effect certain classes were avoided. However some runes are certainly more effective in the hands of certain classes. To facilitate teamplay runes can be shared with teammates by dropping them on the ground.

    Although most runes have passive abilities, some runes require activating with the command +use.


    List of Runes
    Aware - Periodically scans your nearby surroundings. Shows class and health of nearby players.

    Recall - Teleport to a previous location. +use sets or clears teleport destination. When far enough away, teleports player to destination.

    Blink - Teleports between two locations. +use to toggle destinations.

    IronDome - Launches interceptor rockets upon death. Interceptor rockets cause knockback only. Based on javalia

    DeadMansTrigger - Triggers explosion upon death. +use to activate with greater effect. When fully detonated the affected players are temporarily stunned. Contact with interceptor rockets negate this runes effects.

    Sharing - Healthkits and ammokits picked up are shared with nearby teammates.

    Rage - Increases rate of fire upon damaging an enemy. Prolonged usage can cause adverse effects.

    Powerplay - Instantly respawns fallen teammates when you kill three enemies in under 10 seconds.

    Shared Sacrifice - Incoming damage is divided among nearby teammates.

    Diamond Skin - Damage reduced by 10. The bleed, jarate, milk, and stun conditions have no effect.

    Engineering - Grants speed boost when carrying objects. Steals enemy sentries upon death.

    Ammo - Passively replenishes ammo. Active with +use to restore your weapon clip. Additionally, engineers gain metal, and spies gain cloak time.

    Pounce - Passively grants more control over movement when in the air. Shamelessly copied from Chanz

    Vault - Passively increases height of jumps.

    Assault - Grants a speed boost when ubered.

    Vanguard - Redirects damage from nearby weaker teammates to you.

    AirBud - Increased air movement. Decreased gravity.

    Sabotage - Deal extra damage to buildings and take extra damage from engineers. Stronger spy sappers.

    Melee - Melee attacks only. Damage increased.

    Haste - Slight buff to player movement speed. Penality when under the effects of jarate, bleed, milk, or daze.

    Repulsion - Enemy rockets, flares, and arrows are pushed away from the player.


    Installation
    Requires sdkhooks

    Copy materials, models and sound directories into respective tf mod folder. Copy plugins, extensions, gamedata, data into the respective sourcemod folder.

    Add to your server.cfg tf_allow_player_use 1, it is required!

    Alternatively add exec happs.cfg to your server.cfg, provides useful aliases for testing runetf.


    Currently, only stock maps have rune spawn points. But an in-game menu is provided to add spawn points to custom maps.


    cvars
    Code:
    rune_enable			Enables runetf game-mode
    rune_version			Version
    rune_spawn_interval		Time between random spawns
    rune_spawn_lifetime		Time until a spawned rune expires
    rune_spawn_droptime		Time until a rune dropped by a player expires
    rune_round_start_clear		Clear runes on map and from players when a new round starts
    rune_round_end_clear		Clear runes on map and from players when a mini-round ends
    
    st_gamedesc_override		Changes game type to RuneTF.  Set to empty string to disable.
    
    rune_vote_threshold		Percentage of players needed to toggle runetf
    rune_vote_allow_enable		Allow rune voting to enable
    rune_vote_allow_disable		Allow rune voting to disable
    
    rune_update_mapcfg		If you modify the map spawn configuration files, you should set this to 0
    rune_update_branch		Change the branch the autoupdater will use to sync with
    You can change these cvars on a per map basis by adding them to a cfg/mapname.cfg file.


    User Commands
    Code:
    +use				players must have bound a key to +use
    !drop				drop your currently held rune
    !inspect_rune			shows rune held by player or targeting
    !runes				vote to enable runetf
    !norunes			vote to disable runetf
    !info_rune			display a runes abilities
    Dev Commands
    Code:
    !spawn_rune			spawn a specific rune
    !menu_rune			manipulate spawn generators
    /toggle_spawn_rune		enable !spawn__rune for everyone
    /sm_give			give the target player a specific rune
    /sm_take			take from the target player a specific rune
    sm_give and sm_take bypass the checks if a player already has a rune, and should only be used when developing new runes.

    Use !spawn_rune when play-testing.


    Spawn Generator
    Runes do not spawn at random locations in the map. All spawn locations have a fixed origin, angle and force. Each spawn point has a unique number. There are two arrays, a global array and a disabled array. Periodically, as configurable by rune_spawn_interval, a random rune from the global array will be selected and spawned. You can group spawn points into named clusters.

    The !menu_rune command is the interface you should use to create new rune generators. It is a wrapper around most of the lower-level commands listed below.

    There is a third array, the working set, that is used when creating new spawn points. The working set is not saved to disk, and must be merged for changes to take effect.

    Code:
    sm_gen			list the contents of all three arrays
    sm_gen set <...>	manipulate properties of spawn point
    sm_it				iterate through an array
    Before you can do anything useful with the spawn points, you have to create a cluster. Clusters can have any number of spawn points, and each spawn point can be a member of any number of clusters. Currently, it is not possible to remove a cluster from the config unless you manually edit the map config file and remove all references to it; so choose wisely.

    Code:
    sm_gen cluster create <cluster>
    All spawn points that are currently in the working set will automatically be added to the created cluster.


    Code:
    sm_cluster <cluster?>								list cluster membership and events
    sm_gen cluster <add|remove> <cluster> [id|lower-upper]		change cluster membership status of a sequence of spawn points
    sm_gen cluster load <cluster>						loads all spawn points in the cluster from the working set
    sm_gen cluster drop <cluster>						drop all spawn points in the cluster from the working set

    Each spawn point has a boolean flag that assigns it's membership to the global array or disabled array when the map is started. (or new full round)
    Code:
    sm_gen cluster <enable|disable> <cluster name>		Change the startup membership of every spawn point in a cluster.

    To get an idea of what a cluster will look like, you can spawn an entire cluster at once. This is how I created the graphic in the logo.
    Code:
    sm_gen cluster spawn <cluster>			Spawn temporary runes from cluster

    Clusters can be tied to map entity outputs to create events that will do one of four actions:
    1. Spawn cluster of runes at once.
    2. Add spawn points into global array if not already
    3. Remove spawn points from global array if not already
    4. Toggle each spawn point between global and disabled.


    Code:
    sm_cluster <cluster?>			display cluster events
    sm_gen event <cluster> remove <#>			remove event #number from cluster, starting at 0
    sm_gen event <cluster> <create|clone>			low-level event tools; use !menu_rune

    The event that is triggered can either be from an output of any classname, or a named entitiy of a particular classname.

    For example;
    Code:
    sm_gen event blue_forward create Add ByEnt control_point_1 OnCapTeam2
    This will add all rune spawn points from blue_forward when the team_control_point entity named control_point_1 is captured by team blu.

    Code:
    sm_gen event center_ramps create Spawn ByClass trigger_capture_area OnEndCap
    All spawn points in the cluster center_ramps will be spawn a rune when any team_control_point is captured by either team.



    When you are done, always make sure to merge and save your changes.
    Code:
    sm_gen merge		Copy working set into persistent arrays, overriding changes if id already exists.
    sm_gen_save			Save persistant arrays to disk.
    test_spawn			Test your changes with spawn_test.



    Optional Plugins
    The only required plugins are spawn_test, spawn_gen and the runetf extension.
    Code:
    rune_vote		Handles the !runes and !norunes vote commands, and rune_enable forwards.
    rune_help		Greets players with a description of the game-mode, and warns players every ~5 mins if they have never used +use.
    rune_info		Displays rune descriptions with the !info_rune command.
    rune_plugin_updater	Periodically check for new releases of the plugin.
    rune_updater		Separately check for new map spawn generator files.  If you modify any, set rune_update_mapcfg 0!
    Compiling
    Source is located at github if you wish to contribute.

    Requires sdkhooks, steamtools, smlib, color.inc

    Updater required for plugin autoupdates.
    Attached Thumbnails
    Click image for larger version

Name:	rune_web.jpg
Views:	2870
Size:	37.6 KB
ID:	121934  
    Attached Files
    File Type: zip runetf_mdl_mp3.zip (585.9 KB, 368 views)
    File Type: zip runetf_v1.zip (492.2 KB, 363 views)
    File Type: zip master.zip (1.17 MB, 364 views)

    Last edited by happs; 07-07-2013 at 01:47.
    happs is offline
     



    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 01:34.


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