System TrackMapSystem

Executor

I see you
Reaction score
57
Hm .. I'm sry for my rude attitude yesterday, I just don't like it when people try to disguise the method of their system. I mean you still generate trackables.

But now to sth. else:
Azlier, are you interested in transferring your idea into a system, because I'd like to do it, but you had the idea so you have the "copyright" ;).
 

Azlier

Old World Ghost
Reaction score
461
Nonsense, it was Vestras' idea :).

A system, eh? It would require some OE hacks... but it... could probably... be... done...

Sounds good!
 

Executor

I see you
Reaction score
57
Hmm OE hacks? :D

My problem atm is, that I want units to be still selectable.. but this won't work with this method. I was a little bit blinded by the Test Map.
 

Azlier

Old World Ghost
Reaction score
461
Yeah, units can't be selected with my method. Sorry.
 

Executor

I see you
Reaction score
57
You don't have to be apologizing for me don't analysing the system before I try to code it :D.

Any more feedback to my system? If not would this system be completed.
 

D.V.D

Make a wish
Reaction score
73
Cool system, I just don't understand some functions:

JASS:
function SetUpTrackMap takes rect area, player p, boolean veryprecise returns TrackMap

function SetUpTrackMapEx takes rect area, player p, real precision, boolean timed returns TrackMap

function TriggerRegisterAnyMouseEvent takes trigger t returns nothing
function TriggerRegisterAnyTrackEvent takes trigger t returns nothing
function TriggerRegisterMouseEvent takes trigger t, TrackMap tm returns nothing
function TriggerRegisterTrackEvent takes trigger t, TrackMap tm returns nothing


For SetUpTrackMap, what difference does the boolean make? For SetUpTrackMapEx, what does precison do? And lastly, What is AnyMouseEvent and AnyTrackEvent?
 

Executor

I see you
Reaction score
57
I added some documentation of the interface on the system main page. Hope this will help you.
 

D.V.D

Make a wish
Reaction score
73
One last question. When you get the MouseX and Y will it get the mouses x any y as if it was a unit or will it get its x and y one the screen?
 

Executor

I see you
Reaction score
57
All returned position values are assigned to the map coordinate system or in simple words: as if they would determine a unit's position.
 

Hatebreeder

So many apples
Reaction score
381
This is actually very awesome =O

Though, I have a question: How is this in multiplayer?
Does it cause laggs, if I create/destroy all the time?
Is it safe to use? (As in, is safe to have 10 trackables running and once for different players without having it malfunction of something?)
 

Executor

I see you
Reaction score
57
TY! :D

Multiplayer works without problems.
You can destroy the TrackMap, but not the Trackables, therefore cannot really destroy the map :rolleyes:
I had no malfunction cause of other players doing sth. till now.

There is a lag when you generate the TM dynamically ingame when timed = false.
 

Komaqtion

You can change this now in User CP.
Reaction score
469
Ok, I get some weird in-game JassHelper "errors" while using this actually...

I use this code to create some trackmap (Actually, I want to create 400 of them, each 20x20 in dimensions... Could this lag ? :S) and then there is a small debug code at the bottom...

JASS:
library Boxes initializer Init requires TrackMapSystem

    globals
        hashtable Boxes = InitHashtable()
    endglobals

    struct BoxData
        private rect rct
        private TrackMap track1
        private TrackMap track2
        private trigger t
        private real maxx
        private real minx
        private real maxy
        private real miny
        
        private player owner = null
        
        static method create takes rect r returns thistype
            local thistype this = thistype.allocate()
            local integer i = 0
            
            set this.rct = r
            set this.maxx = GetRectMaxX( r )
            set this.minx = GetRectMinX( r )
            set this.maxy = GetRectMaxY( r )
            set this.miny = GetRectMinY( r )
            set this.track1 = TrackMap.create( r, 0, 147.18, true )
            set this.track2 = TrackMap.create( r, 1, 147.18, false )
            set this.t = CreateTrigger()
            
            call TriggerAddCondition( this.t, Condition( function thistype.onClick ) )
            call this.track1.registerClick( this.t )
            call this.track2.registerClick( this.t )
            
            return this
        endmethod
        
        static method onClick takes nothing returns boolean
            call BJDebugMsg( "Tracked !" )
            
            return false
        endmethod
        
    endstruct
    
    static if DEBUG_MODE then
    
        private function Init takes nothing returns nothing
            call BoxData.create( gg_rct_TrackRect )
        endfunction
        
    endif

endlibrary


The errors I get with this are of type "Attempt to destroy a null struct of type:", and the types are:
DynamicTrackMapGenerator
TrackMapSystem___cache

Any ideas to why this is happening ? :S
 

Executor

I see you
Reaction score
57
Updated it. Your code is correct.

There were 2 problems:
First of all there were a zero instead the key var, crazy that it worked on my pc before :p.
And second, the JassHelper update seems not to handle initializations in the globals section anylonger ("private hashtable HT = InitHashtable()" didnt work anymore).

Both fixed.
 

Komaqtion

You can change this now in User CP.
Reaction score
469
Thanks :D

Also, do you think this will lag if I create 400 click-only registering trackmaps, of a total area of 8192 ? :S
 

Executor

I see you
Reaction score
57
There is no difference between click-only and click&track trackmaps.

Well I think this depends on the resolution you use (distance between each trackable) and the size of the rects. I guess it could lag :p, but test it!

By the way:

JASS:
    globals
        hashtable Boxes = InitHashtable()
    endglobals 

    // at the top of YOUR code


That caused the problem in my code, dunno if it works for you.
 

Xbing

New Member
Reaction score
0
i know this thread is 3/4 year old, but just asking, is this not compatible with the 1.24e world editor? the test map worked when i tested it but when i tried disabling and reenabling both the event and trackmapsys triggers because those in my map failed, and warcraft detects loads of problems with them and wouldnt let it be enbaled just like in my map. is there a way to solve this?

edit: ok my bad. didnt see that it was in vjass.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top