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.
  • Monovertex Monovertex:
    How are you all? :D
    +1
  • Ghan Ghan:
    Howdy
  • Ghan Ghan:
    Still lurking
    +3
  • The Helper The Helper:
    I am great and it is fantastic to see you my friend!
    +1
  • The Helper The Helper:
    If you are new to the site please check out the Recipe and Food Forum https://www.thehelper.net/forums/recipes-and-food.220/
  • Monovertex Monovertex:
    How come you're so into recipes lately? Never saw this much interest in this topic in the old days of TH.net
  • Monovertex Monovertex:
    Hmm, how do I change my signature?
  • tom_mai78101 tom_mai78101:
    Signatures can be edit in your account profile. As for the old stuffs, I'm thinking it's because Blizzard is now under Microsoft, and because of Microsoft Xbox going the way it is, it's dreadful.
  • The Helper The Helper:
    I am not big on the recipes I am just promoting them - I use the site as a practice place promoting stuff
    +2
  • Monovertex Monovertex:
    @tom_mai78101 I must be blind. If I go on my profile I don't see any area to edit the signature; If I go to account details (settings) I don't see any signature area either.
  • The Helper The Helper:
    You can get there if you click the bell icon (alerts) and choose preferences from the bottom, signature will be in the menu on the left there https://www.thehelper.net/account/preferences
  • The Helper The Helper:
    I think I need to split the Sci/Tech news forum into 2 one for Science and one for Tech but I am hating all the moving of posts I would have to do
  • The Helper The Helper:
    What is up Old Mountain Shadow?
  • The Helper The Helper:
    Happy Thursday!
  • Varine Varine:
    Crazy how much 3d printing has come in the last few years. Sad that it's not as easily modifiable though
  • Varine Varine:
    I bought an Ender 3 during the pandemic and tinkered with it all the time. Just bought a Sovol, not as easy. I'm trying to make it use a different nozzle because I have a fuck ton of Volcanos, and they use what is basically a modified volcano that is just a smidge longer, and almost every part on this thing needs to be redone to make it work
  • Varine Varine:
    Luckily I have a 3d printer for that, I guess. But it's ridiculous. The regular volcanos are 21mm, these Sovol versions are about 23.5mm
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though

      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