Global Terrain formattor Only works half

X.Terror.X

New Member
Reaction score
10
Hello i got trouble with my looping trigger for my map.

While Looping trough every tile it simplies checks if the terrain value is some type and if yes it makes it to the new one that is given.

I have tried search other global transformers and i only found 1 in jass. which was unchange able for osm e reason and if i tried the save the map it whould make the trigger unuseable.

So i have tried the make the trigger my self since i tought it whouldnt be hard.


But now i got the result that it only does 25% of the map.
It does fill all the Y squares, but doesnt even come more then a quarter on the X Side


Now the values are right since they both Calculate X 51 and Y 51 (somewhere near map playable bounds)
These values are both looped trough but only X comes at like 15 - 20 squares



Code:
Config
    Events
        Map initialization
    Conditions
    Actions
        Set TakesTerrain[1] = Lordaeron Summer - Dirt
        Set ReturnsTerrain[1] = Dungeon - Dirt
        Set TakesTerrain[2] = Lordaeron Summer - Rough Dirt
        Set ReturnsTerrain[2] = Dungeon - Brick
        Set TakesTerrain[3] = Lordaeron Summer - Grassy Dirt
        Set ReturnsTerrain[3] = Dungeon - Grey Stones
        Set TakesTerrain[4] = Lordaeron Summer - Rock
        Set ReturnsTerrain[4] = Dungeon - Square Tiles
        Set TakesTerrain[5] = Lordaeron Summer - Grass
        Set ReturnsTerrain[5] = Underground - Dark Rocks
        Set TakesTerrain[6] = Lordaeron Summer - Dark Grass
        Set ReturnsTerrain[6] = Underground - Lava
        Set TerrainCount = 6


Code:
Form Norm to Fire
    Events
        Player - Player 1 (Red) types a chat message containing -Fire as A substring
    Conditions
    Actions
        Set SquareXY = 128
        Set MaX = (Max X of (Playable map area))
        Set MaY = (Max Y of (Playable map area))
        Set MiX = (Min X of (Playable map area))
        Set MiY = (Min Y of (Playable map area))
        Set RegX = ((Integer((MaX - MiX))) / SquareXY) 
        Set RegY = ((Integer((MaY - MiY))) / SquareXY) 
        Set CornerPoint = (Point(MiX, MaY))
        For each (Integer A) from 1 to RegX, do (Actions)
            Loop - Actions
                For each (Integer B) from 1 to RegY, do (Actions)
                    Loop - Actions
                        For each (Integer C) from 1 to TerrainCount, do (Actions)
                            Loop - Actions
                                Set TempPoint = (CornerPoint offset by (((Real((Integer A))) x (Real(SquareXY))), ((Real((Integer B))) x (0.00 - (Real(SquareXY))))))
                                If ((Terrain type at TempPoint) Equal to TakesTerrain[C]) then do (Environment - Change terrain type at TempPoint to ReturnsTerrain[C] using variation -1 in an area of size 1 and shape Circle) else do (Do nothing)

Things that DO work and have been tested on their results.
SquareXY = Integer 128 (Equal to the width and hight of 1 square in X and Y)
RegX results 51
RegY results 51
CornerPoint starts in left top corner


I like to know why X (integer A) Stops at something like 15-20 square column's filled
the loop is to big perhaps? (51 x 51 x 6 = 15606 loops)

I dont see anything wrong but my with the editor experiance may tell me i can be still wrong. Or Editor is to weak for these loops?

Also i care less about little leaks or anti glitch bug whatever. just want to know why the global transformer does not work 100%
 

X.Terror.X

New Member
Reaction score
10
Bumb

Edit#

Correction i think i solved the problem.
I found out that wc3 cannot have more then 5758 loops per milisecond
So i added a waiter instead and it loops the trigger now. It takes about half a second to change the map.

Tough i seen jass codes do it instant.


SOLVED
 
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