Sliding Ice Trigger Help!

Gummi_Bears

New Member
Reaction score
5
Im trying to make some code for sliding, but the one ive created so far has many gaps. The code works fine for sliding, except sometimes i can still turn without 'target issuing a point' triggers, meaning theres slight gaps in the loop.. How can i improve this code/change it/fix it??

Code:
Settings
    Events
        Map initialization
    Conditions
    Actions
        Game - Set the time of day to 12.00
        Game - Turn the day/night cycle Off
        Set S_Hero[1] = Demon Hunter 0005 <gen>
        Set S_Hero[2] = Demon Hunter 0000 <gen>
        Set S_Hero[3] = Demon Hunter 0007 <gen>
        Set S_Hero[4] = Demon Hunter 0006 <gen>
        Set S_Hero[5] = Demon Hunter 0008 <gen>
        Set S_Hero[6] = Demon Hunter 0009 <gen>
        Set S_Hero[7] = Demon Hunter 0010 <gen>
        Set S_Hero[8] = Demon Hunter 0011 <gen>
        Set S_Hero[9] = Demon Hunter 0012 <gen>
        Set S_Hero[10] = Demon Hunter 0013 <gen>
        Set S_Hero[11] = Demon Hunter 0014 <gen>
        Set S_Terrain[1] = Northrend - Snow
        Set S_Terrain[2] = Northrend - Ice
        Set S_Terrain[3] = Icecrown Glacier - Dark Ice
        Set S_Terrain[4] = Icecrown Glacier - Ice


Code:
Sliding
    Events
        Time - Every 0.03 seconds of game time
    Conditions
    Actions
        For each (Integer A) from 1 to 11, do (Actions)
            Loop - Actions
                Set S_Pos[(Integer A)] = (Position of S_Hero[(Integer A)])
                If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    If - Conditions
                        (Terrain type at S_Pos[(Integer A)]) Equal to S_Terrain[1]
                        (S_Hero[(Integer A)] is alive) Equal to True
                    Then - Actions
                        Unit - Kill S_Hero[(Integer A)]
                        Custom script:   call RemoveLocation( udg_S_Pos[GetForLoopIndexA()] )
                    Else - Actions
                        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            If - Conditions
                                (S_Hero[(Integer A)] is alive) Equal to True
                                Or - Any (Conditions) are true
                                    Conditions
                                        (Terrain type at S_Pos[(Integer A)]) Equal to S_Terrain[2]
                                        (Terrain type at S_Pos[(Integer A)]) Equal to S_Terrain[3]
                                        (Terrain type at S_Pos[(Integer A)]) Equal to S_Terrain[4]
                            Then - Actions
                                Set S_Pos[(Integer A)] = (Position of S_Hero[(Integer A)])
                                Set S_Point[(Integer A)] = (S_Pos[(Integer A)] offset by 10.00 towards (Facing of S_Hero[(Integer A)]) degrees)
                                Unit - Move S_Hero[(Integer A)] instantly to S_Point[(Integer A)]
                                Custom script:   call RemoveLocation( udg_S_Point[GetForLoopIndexA()] ) 
                            Else - Actions
                                Custom script:   call RemoveLocation( udg_S_Pos[GetForLoopIndexA()] )

help much appreciated
 

Seprest

New Member
Reaction score
15
"i can still turn without 'target issuing a point' triggers"

What do you mean by this? you don't want to be able to turn just by right clicking a point? If you want to disable all movement except what you allow in your slide trigger, you can set movement speed of the hero to 0.


If you want to have a realistic slide like in "run kitty run", you need to lower the turn rate of the units when they enter the ice, that way when you try to turn you do a slight arc, from my experience it's not very hard to turn with default unit turn rate.


hope I understood what you were asking...
 

Gummi_Bears

New Member
Reaction score
5
No...I meant dpending on different terrain, ice, dark ice, etc I control if you click you go into that direction. So on a different type of ice, you cannot turn. one type of ice you can turn, etc. like this similiarly:

Code:
Slide Turn Normal
    Events
        Unit - A unit Is issued an order targeting a point
    Conditions
        (Terrain type at (Position of (Triggering unit))) Equal to S_Terrain[2]
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Owner of (Triggering unit)) Equal to Player 1 (Red)
            Then - Actions
                Set S_Point[1] = (S_Pos[1] offset by 0.00 towards (Facing of S_Hero[1]) degrees)
                Unit - Move S_Hero[1] instantly to S_Point[1], facing (Target point of issued order)
            Else - Actions

^ its not finished ^

So in theory I shouldnt be able to move from sliding unless I enable the above trigger,, but when i spam click sometimes i can turn on the ice a tiny bit when the trigger is disabled. so im asking how to fix the sliding code on the first post to make it more smooth and reduce the 'gaps'.
 

Seprest

New Member
Reaction score
15
I'm sorry, but I don't quite get what you want with your map... are you going to be sliding on ice that has multiple types of terrian, or is there going to be long stretches of the same ice? You can always use regions to detect if a unit is entering the area too.

If you are going to fire a trigger based on a unit targeting a point, then simply cancel the issued order if it is on the ice you don't want it to turn on. That WILL work. You have all the tools you need set up for you, just check the terrain the unit is on in if/then/else statements, and fire another trigger that decides what to do when on that type of terrain.

"So in theory I shouldnt be able to move from sliding unless I enable the above trigger"
The trigger you posted instantly turns your character in the direction you targeted, a bit odd if you're on ice imo. And your unit WILL turn even if you don't issue this order, your unit will turn slightly inbetween your slide trigger. Make a graduated turn if your unit is trying to move. The first trigger you posted does not appraise what terrain you are on, you give 3 terrains your unit can be on, and tie the same action to all of them...


Trigger:
  • Set S_Point[(Integer A)] = (S_Pos[(Integer A)] offset by 10.00 towards (Facing of S_Hero[(Integer A)]) degrees)
    • Unit - Move S_Hero[(Integer A)] instantly to S_Point[(Integer A)]

If the unit automatically cancels a order when you instantly move it... then you can make a graduated turn by offsetting the facing of the hero towards the point of an order

Trigger:
  • Events
    • Unit - A unit Is issued an order targeting a point
    • Conditions
      • (Terrain type at (Position of (Triggering unit))) Equal to S_Terrain[the ice you want to be able to turn on]
    • Actions
      • Set TurnPoint[# of triggering player] = Target point of issued order


Trigger:
  • Events
    • Time - Every 0.03 seconds of game time
    • Conditions
    • Actions
    • For each (Integer A) from 1 to 11, do (Actions)
      • Loop - Actions
        • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
          • If - Conditions
            • (S_Hero[(Integer A)] is alive) Equal to True &amp;&amp; (Terrain type at (Position of (S_Hero[A]))) Equal to S_Terrain[the ice you want to be able to turn on] &amp;&amp; ((Facing of S_Hero[A] = (facing target point)) is False)
          • Then - Actions
            • Set TurnRate[A] = ((relative angle to TurnPoint[A]) / 40)
          • Else - Actions
            • Set TurnRate[A] = 0


Trigger:
  • Set S_Point[(Integer A)] = (S_Pos[(Integer A)] offset by 10.00 towards (Facing of S_Hero[(Integer A)]) degrees


In your first trigger should change to

Trigger:
  • Set S_Point[(Integer A)] = (S_Pos[(Integer A)] offset by 10.00 towards (Facing of S_Hero[(Integer A)] + TurnRate[A]) degrees)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top