Content: Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Background: Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Pattern: Blank Waves Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Welcome to Xbox Chaos: Modding Evolved

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

Sign in to follow this  
Followers 0
shanez1215

Retail
Implementing Bro Traits Into Other Gametypes

15 posts in this topic

Sup guys! In this tutorial, I'll be showing everyone how to implement Bro, or "Proximity" traits into other gametypes.

 

Bro Traits were first seen in Halo 3's VIP mode, which featured an option that gave allies traits if they were near the VIP. They were not featured in Reach as VIP was "removed" (A leaked and broken version exists today). Kornman brought them to Halo 4 and MegaloScript (They weren't even in the leaked Reach gametype) in his Halomods CTF gametype, and they are also in Hostage Rescue as well for allies that are escorting the Hostage.

 

So how do we add them in? It's actually pretty easy. I decided to show the complete process. We need...

 

-Strings

-A Bro Radius option

-The actual coding for bro traits

-A new traitset to be applied to bros

-Some visual indicator that you have them

 

To start off, here's the strings...

    <---Name of UserDefinedOption--->      <String name="Bro Radius">        <String>Bro Radius</String>      </String>    <---Description for UserDefinedOption--->      <String name="Radius around objective player at which Bro Traits apply">        <String>Radius around objective player at which Bro Traits apply</String>      </String>    <---values for UserDefinedOption. They are translated into other languages as well and numbered, so if your gametype has the numbers, change them--->      <String name="String71">        <English>Disabled</English>        <Japanese>オフ</Japanese>        <German>Deaktiviert</German>        <French>Désactivé(e)</French>        <Spanish>Desact.</Spanish>        <Mexican>Desact.</Mexican>        <Italian>No</Italian>        <Korean>끄기</Korean>        <ChineseTrad>停用</ChineseTrad>        <ChineseSimp>Disabled</ChineseSimp>        <Portuguese>Desat.</Portuguese>        <Polish>Wyłączone</Polish>        <Russian>Откл.</Russian>        <Danish>Deaktiveret</Danish>        <Finnish>Pois käytöstä</Finnish>        <Dutch>Uitgeschakeld</Dutch>        <Norwegian>Deaktivert</Norwegian>      </String>      <String name="String85">        <English>3 Units</English>        <Japanese>3号機</Japanese>        <German>3 Stück</German>        <French>3 unités</French>        <Spanish>3 Unidades</Spanish>        <Mexican>3 Unidades</Mexican>        <Italian>3 Unità</Italian>        <Korean>3 대</Korean>        <ChineseTrad>3單位</ChineseTrad>        <ChineseSimp>3单位</ChineseSimp>        <Portuguese>3 unidades</Portuguese>        <Polish>3 Jednostki</Polish>        <Russian>3 единицы</Russian>        <Danish>3 enheder</Danish>        <Finnish>3 Kpl</Finnish>        <Dutch>3 Eenheden</Dutch>        <Norwegian>3 stk</Norwegian>      </String>      <String name="String86">        <English>5 Units</English>        <Japanese>5号機</Japanese>        <German>5 Stück</German>        <French>5 unités</French>        <Spanish>5 Unidades</Spanish>        <Mexican>5 Unidades</Mexican>        <Italian>5 Unità</Italian>        <Korean>5 대</Korean>        <ChineseTrad>5單位</ChineseTrad>        <ChineseSimp>5单位</ChineseSimp>        <Portuguese>5 unidades</Portuguese>        <Polish>5 Jednostki</Polish>        <Russian>5 единицы</Russian>        <Danish>5 enheder</Danish>        <Finnish>5 Kpl</Finnish>        <Dutch>5 Eenheden</Dutch>        <Norwegian>5 stk</Norwegian>      </String>      <String name="String87">        <English>8 Units</English>        <Japanese>8号機</Japanese>        <German>8 Stück</German>        <French>8 unités</French>        <Spanish>8 Unidades</Spanish>        <Mexican>8 Unidades</Mexican>        <Italian>8 Unità</Italian>        <Korean>8 대</Korean>        <ChineseTrad>8單位</ChineseTrad>        <ChineseSimp>8单位</ChineseSimp>        <Portuguese>8 unidades</Portuguese>        <Polish>8 Jednostki</Polish>        <Russian>8 единицы</Russian>        <Danish>8 enheder</Danish>        <Finnish>8 Kpl</Finnish>        <Dutch>8 Eenheden</Dutch>        <Norwegian>8 stk</Norwegian>      </String>      <String name="String88">        <English>10 Units</English>        <Japanese>10号機</Japanese>        <German>10 Stück</German>        <French>10 unités</French>        <Spanish>10 Unidades</Spanish>        <Mexican>10 Unidades</Mexican>        <Italian>10 Unità</Italian>        <Korean>10 대</Korean>        <ChineseTrad>10單位</ChineseTrad>        <ChineseSimp>10单位</ChineseSimp>        <Portuguese>10 unidades</Portuguese>        <Polish>10 Jednostki</Polish>        <Russian>10 единицы</Russian>        <Danish>10 enheder</Danish>        <Finnish>10 Kpl</Finnish>        <Dutch>10 Eenheden</Dutch>        <Norwegian>10 stk</Norwegian>      </String>      <String name="String89">        <English>15 Units</English>        <Japanese>15号機</Japanese>        <German>15 Stück</German>        <French>15 unités</French>        <Spanish>15 Unidades</Spanish>        <Mexican>15 Unidades</Mexican>        <Italian>15 Unità</Italian>        <Korean>15 대</Korean>        <ChineseTrad>15單位</ChineseTrad>        <ChineseSimp>15单位</ChineseSimp>        <Portuguese>15 unidades</Portuguese>        <Polish>15 Jednostki</Polish>        <Russian>15 единицы</Russian>        <Danish>15 enheder</Danish>        <Finnish>15 Kpl</Finnish>        <Dutch>15 Eenheden</Dutch>        <Norwegian>15 stk</Norwegian>      </String>      <String name="String90">        <English>20 Units</English>        <Japanese>20号機</Japanese>        <German>20 Stück</German>        <French>20 unités</French>        <Spanish>20 Unidades</Spanish>        <Mexican>20 Unidades</Mexican>        <Italian>20 Unità</Italian>        <Korean>20 대</Korean>        <ChineseTrad>20單位</ChineseTrad>        <ChineseSimp>20单位</ChineseSimp>        <Portuguese>20 unidades</Portuguese>        <Polish>20 Jednostki</Polish>        <Russian>20 единицы</Russian>        <Danish>20 enheder</Danish>        <Finnish>20 Kpl</Finnish>        <Dutch>20 Eenheden</Dutch>        <Norwegian>20 stk</Norwegian>      </String>      <String name="String91">        <English>25 Units</English>        <Japanese>25号機</Japanese>        <German>25 Stück</German>        <French>25 unités</French>        <Spanish>25 Unidades</Spanish>        <Mexican>25 Unidades</Mexican>        <Italian>25 Unità</Italian>        <Korean>25 대</Korean>        <ChineseTrad>25單位</ChineseTrad>        <ChineseSimp>25单位</ChineseSimp>        <Portuguese>25 unidades</Portuguese>        <Polish>25 Jednostki</Polish>        <Russian>25 единицы</Russian>        <Danish>25 enheder</Danish>        <Finnish>25 Kpl</Finnish>        <Dutch>25 Eenheden</Dutch>        <Norwegian>25 stk</Norwegian>      </String>      <String name="String92">        <English>30 Units</English>        <Japanese>30号機</Japanese>        <German>30 Stück</German>        <French>30 unités</French>        <Spanish>30 Unidades</Spanish>        <Mexican>30 Unidades</Mexican>        <Italian>30 Unità</Italian>        <Korean>30 대</Korean>        <ChineseTrad>30單位</ChineseTrad>        <ChineseSimp>30单位</ChineseSimp>        <Portuguese>30 unidades</Portuguese>        <Polish>30 Jednostki</Polish>        <Russian>30 единицы</Russian>        <Danish>30 enheder</Danish>        <Finnish>30 Kpl</Finnish>        <Dutch>30 Eenheden</Dutch>        <Norwegian>30 stk</Norwegian>      </String>      <String name="String93">        <English>40 Units</English>        <Japanese>40号機</Japanese>        <German>40 Stück</German>        <French>40 unités</French>        <Spanish>40 Unidades</Spanish>        <Mexican>40 Unidades</Mexican>        <Italian>40 Unità</Italian>        <Korean>40 대</Korean>        <ChineseTrad>40單位</ChineseTrad>        <ChineseSimp>40单位</ChineseSimp>        <Portuguese>40 unidades</Portuguese>        <Polish>40 Jednostki</Polish>        <Russian>40 единицы</Russian>        <Danish>40 enheder</Danish>        <Finnish>40 Kpl</Finnish>        <Dutch>40 Eenheden</Dutch>        <Norwegian>40 stk</Norwegian>      </String>      <String name="String94">        <English>55 Units</English>        <Japanese>55号機</Japanese>        <German>55 Stück</German>        <French>55 unités</French>        <Spanish>55 Unidades</Spanish>        <Mexican>55 Unidades</Mexican>        <Italian>55 Unità</Italian>        <Korean>55 대</Korean>        <ChineseTrad>55單位</ChineseTrad>        <ChineseSimp>55单位</ChineseSimp>        <Portuguese>55 unidades</Portuguese>        <Polish>55 Jednostki</Polish>        <Russian>55 единицы</Russian>        <Danish>55 enheder</Danish>        <Finnish>55 Kpl</Finnish>        <Dutch>55 Eenheden</Dutch>        <Norwegian>55 stk</Norwegian>      </String>      <String name="String95">        <English>70 Units</English>        <Japanese>70号機</Japanese>        <German>70 Stück</German>        <French>70 unités</French>        <Spanish>70 Unidades</Spanish>        <Mexican>70 Unidades</Mexican>        <Italian>70 Unità</Italian>        <Korean>70 대</Korean>        <ChineseTrad>70單位</ChineseTrad>        <ChineseSimp>70单位</ChineseSimp>        <Portuguese>70 unidades</Portuguese>        <Polish>70 Jednostki</Polish>        <Russian>70 единицы</Russian>        <Danish>70 enheder</Danish>        <Finnish>70 Kpl</Finnish>        <Dutch>70 Eenheden</Dutch>        <Norwegian>70 stk</Norwegian>      </String>      <String name="String96">        <English>100 Units</English>        <Japanese>100号機</Japanese>        <German>100 Stück</German>        <French>100 unités</French>        <Spanish>100 Unidades</Spanish>        <Mexican>100 Unidades</Mexican>        <Italian>100 Unità</Italian>        <Korean>100 대</Korean>        <ChineseTrad>100單位</ChineseTrad>        <ChineseSimp>100单位</ChineseSimp>        <Portuguese>100 unidades</Portuguese>        <Polish>100 Jednostki</Polish>        <Russian>100 единицы</Russian>        <Danish>100 enheder</Danish>        <Finnish>100 Kpl</Finnish>        <Dutch>100 Eenheden</Dutch>        <Norwegian>100 stk</Norwegian>      </String>      <String name="String97">        <English>150 Units</English>        <Japanese>150号機</Japanese>        <German>150 Stück</German>        <French>150 unités</French>        <Spanish>150 Unidades</Spanish>        <Mexican>150 Unidades</Mexican>        <Italian>150 Unità</Italian>        <Korean>150 대</Korean>        <ChineseTrad>150單位</ChineseTrad>        <ChineseSimp>150单位</ChineseSimp>        <Portuguese>150 unidades</Portuguese>        <Polish>150 Jednostki</Polish>        <Russian>150 единицы</Russian>        <Danish>150 enheder</Danish>        <Finnish>150 Kpl</Finnish>        <Dutch>150 Eenheden</Dutch>        <Norwegian>150 stk</Norwegian>      </String>    <---Name of Traitset--->      <String name="Bro Traits">        <String>Bro Traits</String>      </String>    <---Description of Traitset--->      <String name="Traits applied to bros of the objective player within the bro radius.">        <String>Traits applied to bros of the objective player within the bro radius.</String>      </String>

Now for the UserDefinedOption

   <---All these are numbered to specific strings, so if your gametype has those numbers, change them--->      <entry nameIndex="Bro Radius" descIndex="Radius around objective player at which Bro Traits apply" name="Bro Radius" valueIndex="4">        <Values defaultIndex="3">          <entry nameIndex="String71" descIndex="String15" value="0" />          <entry nameIndex="String85" descIndex="String15" value="3" />          <entry nameIndex="String86" descIndex="String15" value="5" />          <entry nameIndex="String87" descIndex="String15" value="8" />          <entry nameIndex="String88" descIndex="String15" value="10" />          <entry nameIndex="String89" descIndex="String15" value="15" />          <entry nameIndex="String90" descIndex="String15" value="20" />          <entry nameIndex="String91" descIndex="String15" value="25" />          <entry nameIndex="String92" descIndex="String15" value="30" />          <entry nameIndex="String93" descIndex="String15" value="40" />          <entry nameIndex="String94" descIndex="String15" value="55" />          <entry nameIndex="String95" descIndex="String15" value="70" />          <entry nameIndex="String96" descIndex="String15" value="100" />          <entry nameIndex="String97" descIndex="String15" value="150" />        </Values>      </entry>

And the traitset to be applied

      <entry nameIndex="Bro Traits" descIndex="Traits applied to bros of the objective player within the bro radius." name="Bro Traits" />

Finally, the meat of it all! The scripting!

 

Add a boundary to the objective player (I found searching for the HUD banner to be an easy way to know it's placement). Change "Iterator.Player" to whoever the HUD banner is applied to if it is someone else To apply the HUD banner, the Bro Boundary, and other Objective Carrier Traits, gametypes apply the traits to all players BUT will check if the player has met certain conditions. So Iterator.Player should ALWAYS work.

                  <E type="Action" name="ObjectSetBoundary">                    <Param type="ObjectReference" varRefType="Player.SlaveObject" dataType="Iterator.Player" />                    <Param type="Shape" shapeType="Sphere">                      <Radius varRefType="UserDefinedOption">Bro Radius</Radius>                    </Param>                  </E>

Now we add the part that applies the bro traits. This is assuming that the Objective Carrier was already set to PlayerScratch0 in the same Trigger.

                <E type="Action" name="ActivateTrigger">                  <Param type="TriggerReference">                    <T type="Trigger" trigType="Subroutine" execMode="OnEachPlayer">                      <Elements>                <---If a player is on the same team as the objective player--->                        <E type="Condition" name="Comparison">                          <Param type="VarReference" varRefKind="Team" varRefType="Player.OwnerTeam" dataType="Iterator.Player" />                          <Param type="VarReference" varRefKind="Team" varRefType="Player.OwnerTeam" dataType="PlayerScratch0" />                          <Param type="ComparisonType">Equal</Param>                        </E>                 <---AND he is not an Objective Player--->                        <E type="Condition" name="Comparison">                          <Param type="VarReference" varRefKind="Player" varRefType="ExplicitPlayerType" dataType="Iterator.Player" />                          <Param type="VarReference" varRefKind="Player" varRefType="ExplicitPlayerType" dataType="PlayerScratch0" />                          <Param type="ComparisonType">NotEqual</Param>                        </E>                  <---AND he is in the boundary we made earlier (Check if that matches up)--->                        <E type="Condition" name="ObjectIsInBoundary">                          <Param type="ObjectReference" varRefType="Player.SlaveObject" dataType="Iterator.Player" />                          <Param type="ObjectReference" varRefType="Player.SlaveObject" dataType="PlayerScratch0" />                        </E>                   <---Apply these traits--->                        <E type="Action" name="ApplyPlayerTraits">                          <Param type="PlayerReference" varRefType="ExplicitPlayerType" dataType="Iterator.Player" />                          <Param type="PlayerTraitsReference">Bro Traits</Param>                        </E>                      </Elements>                    </T>                  </Param>                </E>

Are done yet? Technically, but it is highly recommended to add some kind of notification telling the player that they're a bro. You can either use a small text widget or a larger one (experimental)

 

Small

 

1. Add all strings as we did above

 

2. Add this to the HUDWidgets database. If you have a widget with the same number, change the number of this one

      <Widget position="10" name="Widget2" />

3. Now we need to make sure this widget is always invisible unless turned visible. There should be a separate trigger that has commands that look similar to this already.

          <E type="Action" name="WidgetSetPlayerVisibility">            <Param type="Widget">Widget2</Param>            <Param type="PlayerReference" varRefType="ExplicitPlayerType" dataType="Iterator.Player" />            <Param type="Bool">False</Param>          </E>

4. Display the HUD Widget and set the text. Add this to the end of the code above where we applied the traits (we used "applyplayertraits")

                        <E type="Action" name="WidgetSetText">                          <Param type="Widget">Widget2</Param>                          <Param type="Tokens2" stringIndex="You are a bro!" />                        </E>                        <E type="Action" name="WidgetSetPlayerVisibility">                          <Param type="Widget">Widget2</Param>                          <Param type="PlayerReference" varRefType="ExplicitPlayerType" dataType="Iterator.Player" />                          <Param type="Bool">True</Param>                        </E>

Larger Text

 

This one's a bit odd to set up, as it's actually a 2D Navpoint, but when set up correctly, functions as a larger text widget. To use it, follow these steps

 

-Add all strings as we did earlier

-Get a reference to the skybox

-Set the navpoint to the skybox

-Make it visible

 

1. This is basically the name we're using to store the skybox in so it can be referenced later. Add this to the database for Global Objects. If you don't have one, make one under the objectfilters database. Here is what the completed thing looks like.

    <GlobalVariables>      <Objects>        <Var networkState="HighPriority" name="GlobalObject1" />      </Objects>    </GlobalVariables>

2. To get a reference to the skybox, add this as the very first trigger (Sorry for bad spacing)

<Trigger execMode="OnEachObject" name="GetAnObjectForTheHUDTrigger"><Elements><!--Find the first object (usually the skybox)--><E type="Condition" name="Comparison" unionGroupID="-2"><Param name="Result" type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="GlobalObject0" /><Param name="OperationVar" type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="NONE" /><Param type="ComparisonType">Equal</Param></E><!--use this as our HUD marker--><E type="Action" name="VariableOperation"><Param name="Result" type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="GlobalObject0" /><Param name="OperationVar" type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="Iterator.Object" /><Param name="Operation" type="OperationType">Set</Param></E><!--Find the first object (usually the skybox)--><E type="Condition" name="Comparison" unionGroupID="-2"><Param name="Result" type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="GlobalObject1" /><Param name="OperationVar" type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="NONE" /><Param type="ComparisonType">Equal</Param></E><!--use this as our HUD marker--><E type="Action" name="VariableOperation"><Param name="Result" type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="GlobalObject1" /><Param name="OperationVar" type="VarReference" varRefKind="Object" varRefType="ExplicitObjectType" dataType="Iterator.Object" /><Param name="Operation" type="OperationType">Set</Param></E></Elements></Trigger>

3. Now to display the navpoint. Add this under the "applyplayertraits" command we added earlier

<E type="Action" name="ObjectSetNavpoint"><Param name="ObjectVar" type="ObjectReference" varRefType="ExplicitObjectType" dataType="GlobalObject1" /><Param name="NavPointName" type="NameIndex">navpoint_megalo_message_hostile</Param></E><E type="Action" name="ObjectSetNavpointVisibility"><Param name="ObjectVar" type="ObjectReference" varRefType="ExplicitObjectType" dataType="GlobalObject1" /><Param name="Param1" type="EntityFilter" filterType="Any" /></E><E type="Action" name="ObjectSetPriority"><Param name="ObjectVar" type="ObjectReference" varRefType="ExplicitObjectType" dataType="GlobalObject1" /><Param name="Priority" type="NetworkPriority">High</Param></E><E type="Action" name="ObjectSetBountyText"><Param type="ObjectReference" varRefType="ExplicitObjectType" dataType="GlobalObject1" /><Param type="Tokens1" stringIndex="You are a bro!" /></E>

Now we're done. And this is why I shouldn't make tutorials, I probably just confused you all.

Edited by shanez1215

Share this post


Link to post
Share on other sites

Makes sense to me, but that's because I wrote hostage rescue which already has them :).

 

Here's some example wumboscript from hostage rescue which demonstrates applying escort radius traits to allies as well as applying traits when you have no bros.  This also increments a timer for the allies as to how long you escorted.

        for each current_player0 in players do            object_set_boundary(global.player0.biped, shapes.sphere(options.escort_radius))            hud_widget_set_visible(0, current_player0, false)            if current_player0.team = global.player0.team and object_is_in_boundary(current_player0.biped, global.player0.biped) and current_player0 != global.player0 then                temp_integer1 = 1                timer_set_rate(current_player0.timer0, 5)                player_set_traits(current_player0, traits.escort_proximity_traits)                hud_widget_set_visible(0, current_player0, true)                hud_widget_set_visible(1, global.player0, true)                if timer_is_zero(current_player0.timer0) then                    current_player0.stats.escort_time += 1                    timer_reset(current_player0.timer0)                end            end        end        if temp_integer1 = 0 then            player_set_traits(global.player0, traits.no_escort_traits)        end

Share this post


Link to post
Share on other sites

OK...I've tried this method in many ways I can, and I just can't seem to get it right.

I only need to know how work the scripting. I tried to follow your directions the best I could, placed the coding provided above into designated Trigger locations, while still changing the necessary text to apply for specific players, BUT it just doesn't let me!

 

In short, I'm trying to figure out how to put Bro Traits on the King in Regicide. That way, any ally who is within the Bro Radius is applied set traits...but it's not happening for me.

 

May I please have someone to help me with the scripting portion?

-------------------------------------------------------------------------------------

Here is what I have...can someone just help me show me what to do exaclty, and WHY? Please take notice if something is needed to be added, small code changes, who is the objective player is...please explain everything in detail, that way I have a full understanding of how and why, hoping that I don't have to ask this question a million times.

 

http://pastebin.com/RvVDcEW3

Edited by ZaTaisho

Share this post


Link to post
Share on other sites

OK...I've tried this method in many ways I can, and I just can't seem to get it right.

I only need to know how work the scripting. I tried to follow your directions the best I could, placed the coding provided above into designated Trigger locations, while still changing the necessary text to apply for specific players, BUT it just doesn't let me!

 

In short, I'm trying to figure out how to put Bro Traits on the King in Regicide. That way, any ally who is within the Bro Radius is applied set traits...but it's not happening for me.

 

May I please have someone to help me with the scripting portion?

-------------------------------------------------------------------------------------

Here is what I have...can someone just help me show me what to do exaclty, and WHY? Please take notice if something is needed to be added, small code changes, who is the objective player is...please explain everything in detail, that way I have a full understanding of how and why, hoping that I don't have to ask this question a million times.

 

http://pastebin.com/RvVDcEW3

 

Are you able to load the gametype? It's not corrupt or anything, right?

Share this post


Link to post
Share on other sites

Are you able to load the gametype? It's not corrupt or anything, right?

Correct. The gametype works fine, it's just activating the traits and widget text I entered won't apply.

 

Just to let you know, the pastebin link I provided isn't complete. It just has everything but the scripting portion of the tutorial.

I just want someone to take the code I provided, and finish it, so that they can show me what they did, so that I can understand why (notes in the file will suffice)

 

NOTE: Just to let those know, I was also trying to use "Custom CTF" & "Hostage Rescue" as a guide...but it didn't work out as well as I hoped it would be.

Edited by ZaTaisho

Share this post


Link to post
Share on other sites

Correct. The gametype works fine, it's just activating the traits and widget text I entered won't apply.

 

Just to let you know, the pastebin link I provided isn't complete. It just has everything but the scripting portion of the tutorial.

I just want someone to take the code I provided, and finish it, so that they can show me what they did, so that I can understand why (notes in the file will suffice)

 

NOTE: Just to let those know, I was also trying to use "Custom CTF" & "Hostage Rescue" as a guide...but it didn't work out as well as I hoped it would be.

http://pastebin.com/x8JakamM

 

I added in the scripting and it works perfectly in-game

 

Download the file. Every change I made has the word "yolo" in front of it, so it'll be easy to find.

Share this post


Link to post
Share on other sites

http://pastebin.com/x8JakamM

 

I added in the scripting and it works perfectly in-game

 

Download the file. Every change I made has the word "yolo" in front of it, so it'll be easy to find.

It works, but when I tested it with teams, it didn't work at 100%.

Here is what happened:

 

Red Player got first strike, thus becoming king. When Red teammate is nearby King, Proximity Traits are active...that's great.

However, after Red Team has a king, and Blue Team then gets a king, Proximity Traits do not apply when nearby Blue teammates. Pretty much, whichever team gets a King first, gets the Proximity Traits, and the rest don't.

 

PS: Thank you very much for adding small notes, for they have helped me understand a little more.

Edited by ZaTaisho

Share this post


Link to post
Share on other sites

@shanez1215

 

Ok...I fixed the problem. I had to move "ObjectSetBoundary" into the trigger where "King Traits" were activated. It just made more sense that way, and it just so happened to fix my issue.

 

Thanks again for your help, hope you make more tutorials in the near future.

 

EDIT: Uh...nevermind then. I got it to work once, but I don't know why it won't work anymore.

I'll have to find a way to fix that...again.

Edited by ZaTaisho

Share this post


Link to post
Share on other sites

@shanez1215

Ok...I fixed the problem. I had to move "ObjectSetBoundary" into the trigger where "King Traits" were activated. It just made more sense that way, and it just so happened to fix my issue.

Thanks again for your help, hope you make more tutorials in the near future.

EDIT: Uh...nevermind then. I got it to work once, but I don't know why it won't work anymore.

I'll have to find a way to fix that...again.

That's odd. You didn't change the coding after you found it worked right?

I thought I always had objectsetboundary where you moved it. Maybe I messed up.

Share this post


Link to post
Share on other sites

That's odd. You didn't change the coding after you found it worked right?

I thought I always had objectsetboundary where you moved it. Maybe I messed up.

All I did was move "ObjectSetBoundary"...that was it.

For some reason it works for Red Team. but not Blue Team.

Maybe there has to be another Comparison trigger for each team (Team0 & Team1)?

I saw something similiar in the VIP(drm) gametype.

 

VIP(drm): http://pastebin.com/TG7b5jpP

Edited by ZaTaisho

Share this post


Link to post
Share on other sites

All I did was move "ObjectSetBoundary"...that was it.

For some reason it works for Red Team. but not Blue Team.

Maybe there has to be another Comparison trigger for each team (Team0 & Team1)?

I saw something similiar in the VIP(drm) gametype.

 

VIP(drm): http://pastebin.com/TG7b5jpP

Maybe. I haven't looked too much into Regicide's code yet, but I might, since I don't think it is nearly as complicated as CTF, although that team option doe :3

Edited by shanez1215

Share this post


Link to post
Share on other sites

If anyone's interested, I've converted the proximity trait radius units to meters. Feel free to add this into gametypes using bro traits.

 

Apply these strings (or make your own)...

Spoiler
<String name="Bro Radius">
  <String>Bro Radius</String>
</String>
<String name="Sets the radius of the Bro Traits boundary (in meters).">
  <String>Sets the radius of the Bro Traits boundary (in meters).</String>
</String>
<String name="Disabled">
  <String>Disabled</String>
</String>
<String name="10 Meters">
  <String>10 Meters</String>
</String>
<String name="15 Meters">
  <String>15 Meters</String>
</String>
<String name="20 Meters">
  <String>20 Meters</String>
</String>
<String name="25 Meters">
  <String>25 Meters</String>
</String>
<String name="30 Meters">
  <String>30 Meters</String>
</String>
<String name="40 Meters">
  <String>40 Meters</String>
</String>
<String name="75 Meters">
  <String>75 Meters</String>
</String>
<String name="150 Meters">
  <String>150 Meters</String>
</String>

 

 

and for the user defined options...

Spoiler
    <UserDefinedOptions>
      <entry nameIndex="Bro Radius" descIndex="Sets the radius of the Bro Traits boundary (in meters)." name="Bro Radius" valueIndex="2">
        <Values defaultIndex="2">
          <entry nameIndex="Disabled" descIndex="String6" value="0" />
          <entry nameIndex="10 Meters" descIndex="String6" value="32" />
          <entry nameIndex="15 Meters" descIndex="String6" value="49" />
          <entry nameIndex="20 Meters" descIndex="String6" value="65" />
          <entry nameIndex="25 Meters" descIndex="String6" value="81" />
          <entry nameIndex="30 Meters" descIndex="String6" value="97" />
          <entry nameIndex="40 Meters" descIndex="String6" value="130" />
          <entry nameIndex="75 Meters" descIndex="String6" value="243" />
          <entry nameIndex="150 Meters" descIndex="String6" value="486" />
        </Values>
      </entry>
    </UserDefinedOptions>

 

.

Edited by Pfeuff
AbandonedCashew and Thunder like this

Share this post


Link to post
Share on other sites

What does the 2d navpoint set in the skybox look like?

Looks just like a normal widget except for a Play Station controller Dpad looking icon in front of the text.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0