Back to home

Ana Paintball (Team Deathmatch)

WK2GZ
click to copy
This game is archived.
If you with to unarchive it, click the "restore" button in the options menu.

Thumbnail for Ana Paintball (Team Deathmatch)

Category:
Custom game mode

Author:
thenickm2

Rating:
0

Version:
2.2.0

Posted:
17 days ago

Last updated:
14 days ago

Tags:
ana paintball queueing queue games

Share this workshop!

Options

Ana Simple Ana Paintball TDM

Just a simple version of Ana Paintball that I created. Features:

  • Paint splatter effect when you shoot (each team gets their own color)
  • Easily configurable settings (damage done, damage received, max health, etc.)
settings
{
    main
    {
        Description: "v2.2.0 | By TheNickm2#6969 on Discord (TheNickm2 on XBL)"
    }
    lobby
    {
        Allow Players Who Are In Queue: Yes
        Map Rotation: After A Game
        Max Team 1 Players: 6
        Max Team 2 Players: 6
        Max Spectators: 12
        Return To Lobby: Never
    }
    modes
    {
        General
        {
            Enemy Health Bars: Off
            Game Mode Start: Immediately
            Hero Limit: Off
            Respawn Time Scalar: 50%
            Allow Hero Switching: Off
        }
        TeamDeathmatch
        {
            Self Initiated Respawn: Off
            Score To Win: 100
            disabled maps
            {
                Workshop Chamber
                Workshop Expanse
                Workshop Island
                Workshop Expanse Night
                Workshop Island Night
            }
        }
    }
    heroes
    {
        General
        {
            Ana
            {
                Ammunition Clip Size Scalar: 140%
                Biotic Grenade: Off
                Sleep Dart Cooldown Time: 50%
                Ultimate Ability Nano Boost: Off
                Healing Dealt: 10%
                Healing Received: 10%
            }

            enabled heroes
            {
                Ana
            }
        }
    }
}

variables
{
    global:
        0: _extendedGlobalCollection
        1: _arrayBuilder
        2: StandardDmgDealt
        3: StanadardDmgReceived
        4: StandardMaxHealth
        5: StandardMoveSpeed
        6: StandardGravity
        7: ScoreToWin
        8: ScopeTimeLimit
        9: CurrentVersion
    player:
        0: _extendedPlayerCollection
        1: killStreak
        2: hudText
        3: nanoEffect
        4: i
        5: randInt
}

// Extended collection variables:
// global [0]: _arrayBuilderStore

rule("Change Settings Here")
{

    event
    {
        Ongoing - Global;
    }

    // Action count: 7
    actions
    {
        Set Global Variable(StandardDmgDealt, 35.174);
        Set Global Variable(StanadardDmgReceived, 3125);
        Set Global Variable(StandardMaxHealth, 12.5);
        Set Global Variable(StandardMoveSpeed, 100);
        Set Global Variable(StandardGravity, 100);
        Set Global Variable(ScopeTimeLimit, 1.25);
        Set Global Variable(ScoreToWin, 50);
    }
}

rule("Quick Start Game & Set Description")
{

    event
    {
        Ongoing - Global;
    }

    // Action count: 3
    actions
    {
        Set Match Time(0);
        Set Objective Description(All Players(Team(All)), Custom String("Eliminate Players On the Other Team", Null, Null, Null), String);
        Set Global Variable(CurrentVersion, Custom String("2.2.0", Null, Null, Null));
    }
}

rule("Set Time")
{

    event
    {
        Ongoing - Global;
    }

    conditions
    {
        Is Game In Progress == True;
    }

    // Action count: 1
    actions
    {
        Set Match Time(3600);
    }
}

rule("Set Up Player Dmg/Health/HUD Text")
{

    event
    {
        Ongoing - Each Player;
        All;
        All;
    }

    conditions
    {
        Is Game In Progress == True;
    }

    // Action count: 26
    actions
    {
        Set Damage Dealt(Event Player, Global Variable(StandardDmgDealt));
        Set Damage Received(Event Player, Global Variable(StanadardDmgReceived));
        Set Max Health(Event Player, Global Variable(StandardMaxHealth));
        Set Move Speed(Event Player, Global Variable(StandardMoveSpeed));
        Set Gravity(Event Player, Global Variable(StandardGravity));
        Create Hud Text(Event Player, Null, Null, Custom String("Current Elimination Streak: {0}", Player Variable(Event Player, killStreak), Null, Null), Top, 105, White, White, White, Visible To Sort Order and String, Default Visibility);
        Set Player Variable At Index(Event Player, hudText, 0, Last Text ID);
        Create Hud Text(Event Player, Null, Null, Custom String("Ana Paintball v{0} By TheNickm2", Global Variable(CurrentVersion), Null, Null), Left, 5, White, White, White, Visible To Sort Order and String, Default Visibility);
        Set Player Variable At Index(Event Player, hudText, 1, Last Text ID);
        Create Hud Text(Event Player, Null, Null, Custom String("Rules: 1) No Hard Scoping ({0} second limit)", Global Variable(ScopeTimeLimit), Null, Null), Left, 10, White, White, White, Visible To Sort Order and String, Default Visibility);
        Set Player Variable At Index(Event Player, hudText, 2, Last Text ID);
        Create Hud Text(Event Player, Null, Null, Custom String("2) No melee kills allowed (you can still melee railings)", Null, Null, Null), Left, 15, White, White, White, Visible To Sort Order and String, Default Visibility);
        Set Player Variable At Index(Event Player, hudText, 3, Last Text ID);
        Create Hud Text(Event Player, Null, Null, Custom String("3) First team to {0} eliminations wins", Global Variable(ScoreToWin), Null, Null), Left, 30, White, White, White, Visible To Sort Order and String, Default Visibility);
        Set Player Variable At Index(Event Player, hudText, 4, Last Text ID);
        Create Hud Text(Event Player, Null, Null, Custom String("Press Interact (F or (L) by default) to hide this info", Null, Null, Null), Left, 35, White, White, White, Visible To Sort Order and String, Default Visibility);
        Set Player Variable At Index(Event Player, hudText, 5, Last Text ID);
        If(Compare(Host Player, ==, Event Player));
        	Create Hud Text(Event Player, Null, Null, Custom String("Server Load: {0} | Average: {1} | Peak: {2}", Server Load, Server Load Average, Server Load Peak), Left, 0, White, White, White, Visible To Sort Order and String, Visible Never);
        	Create Hud Text(Event Player, Null, Null, Custom String("Thank you for hosting this game!", Null, Null, Null), Left, 1, White, White, White, Visible To Sort Order and String, Visible Never);
        	Set Player Variable At Index(Event Player, hudText, 6, Last Text ID);
        	Create Hud Text(Event Player, Null, Null, Custom String("Please keep the game updated and check for a newer version.", Null, Null, Null), Left, 2, White, White, White, Visible To Sort Order and String, Visible Never);
        	Set Player Variable At Index(Event Player, hudText, 7, Last Text ID);
        	Create Hud Text(Event Player, Null, Null, Custom String("https://cutt.ly/ana-paintball-team", Null, Null, Null), Left, 3, White, White, White, Visible To Sort Order and String, Visible Never);
        	Set Player Variable At Index(Event Player, hudText, 8, Last Text ID);
        End;
    }
}

rule("Hide Info Text On Interact")
{

    event
    {
        Ongoing - Each Player;
        All;
        All;
    }

    conditions
    {
        Is Game In Progress == True;
        Is Button Held(Event Player, Interact) == True;
    }

    // Action count: 5
    actions
    {
        Set Player Variable(Event Player, i, 1);
        While(Compare(Player Variable(Event Player, i), <, Count Of(Player Variable(Event Player, hudText))));
        	Destroy Hud Text(Value In Array(Player Variable(Event Player, hudText), Player Variable(Event Player, i)));
        	Modify Player Variable(Event Player, i, Add, 1);
        End;
    }
}

rule("Sleep Dart Instant Kill")
{

    event
    {
        Player took damage;
        All;
        All;
    }

    // Action count: 4
    actions
    {
        Wait(0.016, Ignore Condition);
        If(Has Status(Victim, Asleep));
        	Kill(Victim, Attacker);
        End;
    }
}

rule("Quick Scopes Only")
{

    event
    {
        Ongoing - Each Player;
        All;
        All;
    }

    conditions
    {
        Is Firing Secondary(Event Player) == True;
        Is Game In Progress == True;
    }

    // Action count: 3
    actions
    {
        Wait(Global Variable(ScopeTimeLimit), Abort When False);
        Set Status(Event Player, Null, Stunned, 0.5);
        Small Message(Event Player, Custom String("{0} No Hard Scoping", Icon String(Warning), Null, Null));
    }
}

rule("No Melee Kills")
{

    event
    {
        Ongoing - Each Player;
        All;
        All;
    }

    conditions
    {
        Distance Between(Event Player, Closest Player To(Event Player, Opposite Team Of(Team Of(Event Player)))) <= 4;
    }

    // Action count: 1
    actions
    {
        Set Melee Enabled(Event Player, False);
    }
}

rule("Re-Enable Melee")
{

    event
    {
        Ongoing - Each Player;
        All;
        All;
    }

    conditions
    {
        Distance Between(Event Player, Closest Player To(Event Player, Opposite Team Of(Team Of(Event Player)))) > 4;
    }

    // Action count: 1
    actions
    {
        Set Melee Enabled(Event Player, True);
    }
}

rule("Reset Kill Streak on Death")
{

    event
    {
        Player died;
        All;
        All;
    }

    // Action count: 1
    actions
    {
        Set Player Variable(Event Player, killStreak, 0);
    }
}

rule("Elimination Earned")
{

    event
    {
        Player dealt final blow;
        All;
        All;
    }

    // Action count: 9
    actions
    {
        Modify Player Variable(Attacker, killStreak, Add, 1);
        Set Player Variable(Event Player, randInt, Random Integer(0, 100));
        If(And(Compare(Player Variable(Event Player, randInt), >=, 0), Compare(Player Variable(Event Player, randInt), <=, 40)));
        	Communicate(Attacker, Hello);
        Else If(And(Compare(Player Variable(Event Player, randInt), >, 40), Compare(Player Variable(Event Player, randInt), <=, 75)));
        	Communicate(Attacker, Thanks);
        Else If(Compare(Player Variable(Event Player, randInt), >, 75));
        	Communicate(Attacker, Voice Line Up);
        End;
    }
}

rule("Paintball Effect Color")
{

    event
    {
        Ongoing - Each Player;
        All;
        All;
    }

    conditions
    {
        Team Of(Event Player) == Team(Team1);
        Is Firing Primary(Event Player) == True;
    }

    // Action count: 2
    actions
    {
        Play Effect(All Players(Team(All)), Ring Explosion, Team1, Ray Cast Hit Position(Eye Position(Event Player), Add(Eye Position(Event Player), Multiply(Facing Direction Of(Event Player), 200)), Null, Event Player, True), 2.25);
        Play Effect(All Players(Team(All)), Bad Explosion, Team1, Ray Cast Hit Position(Eye Position(Event Player), Add(Eye Position(Event Player), Multiply(Facing Direction Of(Event Player), 200)), Null, Event Player, True), 0.25);
    }
}

rule("Paintball Effect Color")
{

    event
    {
        Ongoing - Each Player;
        All;
        All;
    }

    conditions
    {
        Team Of(Event Player) == Team(Team2);
        Is Firing Primary(Event Player) == True;
    }

    // Action count: 2
    actions
    {
        Play Effect(All Players(Team(All)), Ring Explosion, Team2, Ray Cast Hit Position(Eye Position(Event Player), Add(Eye Position(Event Player), Multiply(Facing Direction Of(Event Player), 200)), Null, Event Player, True), 2.25);
        Play Effect(All Players(Team(All)), Bad Explosion, Team2, Ray Cast Hit Position(Eye Position(Event Player), Add(Eye Position(Event Player), Multiply(Facing Direction Of(Event Player), 200)), Null, Event Player, True), 0.25);
    }
}

Changelog

14 days ago 2.2.0

  • Updated for Overwatch patch 1.48

WK2GZ
click to copy
15 days ago 2.1.1

  • Removed Dummy Bots

WK2GZ
click to copy
15 days ago 2.1.0

  • Rewrote from scratch

YCK7M
click to copy
17 days ago 1.0.0

This revision contains no notes

76R1T
click to copy