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

RuneTF gamemode


Post New Thread Reply   
 
Thread Tools Display Modes
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:	2865
Size:	37.6 KB
ID:	121934  
    Attached Files
    File Type: zip runetf_mdl_mp3.zip (585.9 KB, 365 views)
    File Type: zip runetf_v1.zip (492.2 KB, 359 views)
    File Type: zip master.zip (1.17 MB, 360 views)

    Last edited by happs; 07-07-2013 at 01:47.
    happs is offline
    happs
    Junior Member
    Join Date: Aug 2012
    Old 06-29-2013 , 04:44   Re: RuneTF gamemode
    Reply With Quote #2

    I am currently looking for balance-testers and bug finders.

    Last edited by happs; 06-08-2014 at 01:43.
    happs is offline
    Trosty
    Member
    Join Date: Oct 2011
    Location: Romania
    Old 06-29-2013 , 04:53   Re: RuneTF gamemode
    Reply With Quote #3

    wow sounds like a new awesome gamemode.... I will test it
    __________________


    -


    You need a WebDesigner? Hire me!
    Trosty is offline
    Send a message via Skype™ to Trosty
    Root_
    Veteran Member
    Join Date: Jan 2012
    Location: ryssland
    Old 06-29-2013 , 06:15   Re: RuneTF gamemode
    Reply With Quote #4

    Very nice! I wanted to release something like that, but havent enough time and motivation
    Good job happs! I'll definitely use this
    __________________


    dodsplugins.com - Plugins and Resources for Day of Defeat
    http://twitch.tv/zadroot
    Root_ is offline
    friagram
    Veteran Member
    Join Date: Sep 2012
    Location: Silicon Valley
    Old 06-29-2013 , 16:55   Re: RuneTF gamemode
    Reply With Quote #5

    It would be better to generate the runes off of scanned / stored player locations automatically .. not near spawn rooms... And just vary the distances using adt array to keep track of old ones.

    Also, almost nobody has +use bound in tf2, why not use in_attack3 or even a combination of keys like in_attack and in_attack2 ?

    Also the base quake poweup system of haste, invisibility, quad damage, regeneration, shield.. Etc would be great.. Also if you use physprops you can make the runes spawn/get knocked out of players and bounce and such when people die by teleporting them with velocity that the player recieves from their deathblow, which would look awsome..

    I was going to write a mod like this ages agi, but never got around to it other than making the models and sounds
    __________________
    Profile - Plugins
    Add me on steam if you are seeking sp/map/model commissions.
    friagram is offline
    rowedahelicon
    Senior Member
    Join Date: Feb 2011
    Location: The Observatory
    Old 06-29-2013 , 17:23   Re: RuneTF gamemode
    Reply With Quote #6

    Aww can't wait till it works on Windows!
    __________________
    SCG, A furry community in the stars - https://www.scg.wtf
    rowedahelicon is offline
    Send a message via Skype™ to rowedahelicon
    deadmau54
    AlliedModders Donor
    Join Date: May 2013
    Old 07-01-2013 , 09:17   Re: RuneTF gamemode
    Reply With Quote #7

    Doesnt work for me. It says .smx files are not loading because extension is not working. Its driving me crazy, I think I installed everything alright. Help please.
    __________________
    deadmau54 is offline
    Skyrider
    AMX Mod X Beta Tester
    Join Date: May 2005
    Location: Netherlands
    Old 07-05-2013 , 12:01   Re: RuneTF gamemode
    Reply With Quote #8

    Works fine, but runes are simply being dropped on the floor. Don't they fly around like in the first picture? Or is that just a gimmick?

    Quote:
    +use players must have bound a key to +use
    Not sure why use is exactly used. I hear no sounds + it seems runes are auto-activated. Could be me, but I see or hear no activation text/sound.
    __________________

    Last edited by Skyrider; 07-05-2013 at 12:02.
    Skyrider is offline
    Send a message via AIM to Skyrider Send a message via MSN to Skyrider Send a message via Yahoo to Skyrider
    tatercrisp
    SourceMod Donor
    Join Date: Mar 2008
    Location: Chicken Coop
    Old 07-05-2013 , 12:29   Re: RuneTF gamemode
    Reply With Quote #9

    This looks promising gonna try this out on our test server. Ive been running war3source on tf2 for a long time our players have been wanting a new server with something different.

    [05] <FAILED> file "runetf.ext.so": Extension version is too new to load (6, max is 5)

    Last edited by tatercrisp; 07-05-2013 at 16:33. Reason: guess not
    tatercrisp is offline
    DJ Data
    SourceMod Donor
    Join Date: Dec 2012
    Location: Switzerland
    Old 07-06-2013 , 12:39   Re: RuneTF gamemode
    Reply With Quote #10

    [14] <FAILED> file "runetf.ext.dll": Kan opgegeven module niet vinden.

    means:

    [14] <failed> file "runetf.ext.dll": Can not find specified module.
    __________________
    SourcePawn Coding Level: Novice
    DJ Data is offline
    Reply


    Thread Tools
    Display Modes

    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:26.


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