• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Ultime Sliding System [v1.8]

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
  • Like
Reactions: Aspard
This is my version of the Ice Slide/Skate functions that have become so popular. I call this one the Ultimate because of a few key improvements over any others I've seen:

-Simple to use, little to no JASS knowledge required
-No leaks, and lag free
-It uses only natives
-Allows for either both region-check sliding or terrain-check sliding (explained in the readme)
-Terrain check uses offsets for better paths
-Support for multiple "slide tiles"
-Highly customizable
-RoC compatible

v1.0 - Initial Release

v1.1 - Addition of arrays/Collision and Off-path-death triggers.

v1.2 - Cleaned up some code/Minor bug fixes

v1.3 - Added testing functions

v1.4 - Added patrollers and other maze-like features.

v1.5 - Bug fix (thanks Aspard)/Rearranged the triggers/Clarified some triggers and functions.

v1.6 - Bug fixes, updated some code for aesthetics and effeciency
v.a - Documented a known bug, changed a testing trigger to avoid clicking an in-game hotkey.

v1.7 - Improved readability. Added TerrainCheck with changeable offset. Made changing the periodic timer in the Slide trigger easier.

v1.8 - Updated documentation. Changed tileset. Added support for multiple tile checks. Added more support for slower/faster sliding.


JASS:
//***************************************************************************************************
//                                                                                                  *
//                           ##### /    ##        #######         #######                           *
//                        ######  /  #####      /       ###     /       ###                         *
//                       /#   /  /     #####   /         ##    /         ##                         *
//                      /    /  ##     # ##    ##        #     ##        #                          *
//                          /  ###     #        ###             ###                                 *
//                         ##   ##     #       ## ###          ## ###                               *
//                         ##   ##     #        ### ###         ### ###                             *
//                         ##   ##     #          ### ###         ### ###                           *
//                         ##   ##     #            ### /##         ### /##                         *
//                         ##   ##     #              #/ /##          #/ /##                        *
//                          ##  ##     #               #/ ##           #/ ##                        *
//                           ## #      #                # /             # /                         *
//                            ###      /       ##        /     ##        /                          *
//                             #######/         ########/       ########/                           *
//                               ####             #####           #####                             *
//                                                                                                  *
//                                         Created By N[o]obleT                                     *
//                                                                                                  *
//__________________________________________________________________________________________________*
//__________________________________________________________________________________________________*
//                                                                                                  *
// It should be first noted that there are two ways this system can be used.                        *
//                                                                                                  *
// The first and easiest way is through a terrain check (found under the TerrainCheck               *
//  folder). This will check if any of the units are on your designated sliding terrain.            *
//  If a unit is, it will make them slideable. It's simple, but a major downside is                 *
//  that there little control over the area a unit can actually slide, and the path becomes very    *
//  strict (or "tight").                                                                            *
//                                                                                                  *
// The other way to slide a unit in this system is through region checks. This is more time-        *
//  consuming, but in the long run it is better due to the high customizability.                    *
//                                                                                                  *
//                                   IMPORTING:                                                     *
// When you import this system, it's recommended that you copy every folder except for "Misc" into  *
//  your map. Make sure you do not rearrange the orders of the triggers or folders, doing this may  *
//  cause an error when saving the map. Once you've copied the folders over to your map, save your  *
//  map. There shouldn't be any errors when you save, but if there are you should contact me.       *
//                                                                                                  *
//                                  HOW TO USE:                                                     *
//                                                                                                  *
// How to use the REGION CHECK way:                                                                 *
//  1.)If you'd like to use region checks, first disable every trigger under TerrainCheck.          *
//  2.)Next make sure all the triggers in the RegionCheck folder are enabled.                       *
//  3.)Make note of the regions I used (and where i put them) in the map:                           *
//      a. At any terrain touching ice, I made a region named SlideRect<#>. If a unit leaves these  *
//          regions, he will be able to slide.                                                      *
//                                                                                                  *
//      b. At any place where the safe path goes from touching snow and ice to ONLY touching snow,  *
//          I created a region named SlideFalse<#>. This is because if a unit leaves a SlideRect,   *
//          he will slide, but what if he leaves the region going away from the ice, like down a    *
//          grass path? Then these regions will catch him before he slides on grass, which would be *
//          f'd up. Make sure that when you create these regions that they are not touching (leave  *
//          a slight gap).                                                                          *
//                                                                                                  *
//  4.)Update all of the CheckLeave/CheckFalse/CheckEnter triggers with the new regions you added.  *
//                                                                                                  *
// How to use the TERRAIN CHECK way:                                                                *
//  1.)Disable every trigger under RegionCheck. Enable every trigger under TerrainCheck.            *
//  2.)Make sure the terrain type in TerrainSetup is the same terrain you're using to slide on.     *
//  3.)Also change the terrain type (it says 'Nsnw') in TerrainCheck to the terrain you're using    *
//      for the opposite terrain of the path. Read ALL the comments, they are there for a reason.   *
//                                                                                                  *
//                          I HOPE YOU ENJOY IT!                                                    *
//__________________________________________________________________________________________________*


Credits to Koga73 for the original idea of ice sliding, and Limiter for the idea of ice skating.

Keywords:
ice skate, ice skating, skate, skating, slide, sliding, ice, ice sliding, ice slide, sliding system, skating system, maze, escape
Contents

The Ultimate Sliding System [v1.8] (Map)

Reviews
4 November 2015 Bribe: Rejecting due to the status of this resource being "needs fix" for years. Ultime Sliding System v1.8 | Reviewed by Maker | 28th Feb 2013 Needs Fix Required changes Make it MUI Constantly ordering stop is not a good...

Moderator

M

Moderator

4 November 2015
Bribe: Rejecting due to the status of this resource being "needs fix" for years.


Ultime Sliding System v1.8 | Reviewed by Maker | 28th Feb 2013
Needs Fix

Required changes
  • Make it MUI
  • Constantly ordering stop is not a good solution.
    If it is commented out lie you recommend, the unit moves really
    fast when sliding and it starts circling around the point it is ordered
    to move to, never reaching it
  • There should be a way to pause the timer
  • Do not use a loop that loops 360 times per function call
  • 0.405 is the limit of life an death, not 0
Suggested changes
  • Even ice should have friction. Add support for that
  • Stop sliding when hitting obstacles
  • Your indentng doesn't follow the standard
  • You do not need the == true part in booean comparisons,
    udg_onIce[ i ] == true -> udg_onIce[ i ]
  • You could use bj_DEGTORAD and bj_RADTODEG
    for the angle conversions
[td]
[/td]


21:04, 21st Sep 2009
hvo-busterkomo: Rejected for not working as intended.

The_Reborn_Devil:
It looks good now and it works too.
The indenting could still be better, but I can't reject it because of that ^^
Approved.
I give this system the rating Useful.

 
Level 11
Joined
Jul 2, 2008
Messages
601
What the hell? After starting the slide and clicking on the ice again the hero turns into RANDOM direction, travel to the nearest snow tile and die. And never revive. Do you think that's funny for me to restart the game each twenty seconds? I think - no. Also looks like copying an idea of this guy: http://www.hiveworkshop.com/forums/...leljrk-and-hell-gate-143902/?prev=r=20&page=2 I know, that "Slide on Ice" isn't such an innovation, but posting it after the one version has just released... well, I dunno. This strange deathes makes your variation look worse than his.
 
Level 9
Joined
Aug 27, 2009
Messages
473
1. Units dies if they enter region.. Not simple to edit.
Rules:
Submissions must be easy to configure (change their stats) and implement into a map. Documentation should be provided if the spell is not implemented with a simple copy and paste.


2. The Slide System dont work?.. You can slide, yes, but you cant control it.
- No Respawn!
Submissions must be bugless, leakless, lagless on a computer that runs Warcraft III smoothly, and fully multiinstanceable. Spells using non-recycling "indexing systems" will not be accepted.


4. And as Aspard sayd, my works, and is new. Why submit this?
Submissions should be at least somewhat unique, except in cases where they greatly improve on an existing spell in terms of performance, cleanliness (of code), visuals, or otherwise.


And else, the Description about.. everything is bad.
Rules
Submissions must have a title relevant to their function, an ingame screenshot, and a description which adequately describes them.
There is much more i have to say, but i think this is enought..
 
Level 2
Joined
Jun 26, 2007
Messages
14
After starting the slide and clicking on the ice again the hero turns into RANDOM direction, travel to the nearest snow tile and die.
Thanks for reporting this bug. I had too many decimals for the number to convert Degrees to Radians. Try redownloading, it is now fixed.

as for the rest of the complaints:

@ Aspard and eleljrk

Please read the README file inside the map.

This system provides two methods for checking if a unit is on ice. The first is by regions, the second by terrain checks.

If you would've taken the time to read you would have realised that, because in the readme file I clearly state that:
The first and easiest way is through a terrain check (found under the TerrainCheck folder). This will check if any of the units are on your designated sliding terrain. If a unit is, it will make them slideable. It's simple, but a major downside is that there is no control over the area a unit can actually slide, and the path becomes very strict.
and
The other way to slide a unit in this system is through region checks. This is more time-consuming, but in the long run it is better due to the high customization ability.


4. And as Aspard sayd, my works, and is new. Why submit this?
I don't want to be rude, but, my code is faster, more customizable, and is RoC compatible. I don't see why it's wrong to have two similar systems here. It gives the hive members more variety in their choices, and harbors competition between the system makers.


However, I realise I did not give enough detail on some parts. So I updated it with a lot more commentary to make the intentions of the functions and triggers in this system more clear. Thank you.
 
Last edited:
Level 13
Joined
Mar 6, 2008
Messages
525
My review is:
-Dead by region and not terrain type 1/5
-Non-turning works bad (if you click more times, it will change facing) 1/5
-By writing "-" more times if the hero is alive it goes crazy (works slowly) 1/5
-Collision don't need trigger but a simply ability which works with locust too 2/5
-No leaks in the normal sliding 5/5

(1+1+1+2+5):5=2/5
 
Level 2
Joined
Jun 26, 2007
Messages
14
>-Dead by region and not terrain type
If you enable the Terrain method, it does kill by terrain check.

>Non-turning works bad (if you click more times, it will change facing)
The only way to fix this is to increase the repeating timer inside the Slide trigger to around 0.01, but this may cause lag on some PC's. I'll add a note about this bug and how to fix it.

>-By writing "-" more times if the hero is alive it goes crazy (works slowly) 1/5
This isn't my map, you must've clicked "-" without having the chat box open, because "-" is the hotkey to lower the game-speed. I changed the revive system to prevent this from happening.


As always thanks for the critique, as all are welcome.


P.s., I'd like to reiterate that this is a Sliding System, not a collection of maze triggers. I added the collision,region death, and the other misc triggers just to give the game a better testing environment.
 
Last edited:
Level 2
Joined
Jun 26, 2007
Messages
14
The map is w3m not w3x so it is RoC compatible. Also is jass. But it is completely worthless. Understood? or should i make it clearer to you?

Maybe you could elaborate on the worthless part. There's no point in posting your opinions when your not helping, are you just trying to get your post count up? You might not have a use for it, but I see over 100 downloads for this one and nearly 200 on the other system like this one(by eleljrk) that you said "sux".

Btw, I'm working on a new update that'll bring support for multiple tiles with different set speeds, I just need to make sure the code is easily understandable and such..


Anyways.. this could use some work, 3/5 Nice effort...?
And work I will do :) thanks
 
Level 6
Joined
Oct 31, 2008
Messages
229
Maybe you could elaborate on the worthless part. There's no point in posting your opinions when your not helping, are you just trying to get your post count up? You might not have a use for it, but I see over 100 downloads for this one and nearly 200 on the other system like this one(by eleljrk) that you said "sux".

Btw, I'm working on a new update that'll bring support for multiple tiles with different set speeds, I just need to make sure the code is easily understandable and such..



And work I will do :) thanks

Do what? fix your code? sry if you want that aproved, isnt it logical that you will fix all bugs you find? play your map 2-3 times to see whats wrong?
 
Level 17
Joined
Mar 17, 2009
Messages
1,349
Start stopping using question marks after every sentece? Cause that can be really annoying? And mislead people? I'm serious?

And hey, be NICE to others:
Arnadath said:
But it is completely worthless. Understood? or should i make it clearer to you?
Understood? or should I make it clearer to you?

I just hate seeing people act as if they're above others... pfff :p

Also, I see this is already approved... so whats the matter?
 
Level 17
Joined
Jul 17, 2011
Messages
1,864
no library -5
no clearly defined functions to call -5
code looks weird -100
usable but have to figure which functions to call first
global variables are not defined in any trigger - 200
global variables do not have any prefix -5000
code is obviously converted gui

i dunno how this got approved much less reccomended

-33/5
 
Last edited:
Top