Something tricky: If a player presses the left mouse down, 'something' should happen. However, if the click happens due to an targeted ability being executed, 'something' should not happen. I don't think there is a suitable condition for this, so I created a second trigger "unit uses ability at aproach stage". This trigger executes in the same game loop but unfortunately always after the "mouse clicked" event, so I cannot parse a variable over to my first trigger. I could set the action of this ability trigger to just reverse the action of the mouse trigger but that would be a hell of a lot of work.
So basically I'm looking for a way to influence the order in which trigger execute within one game loop or any other solution to my problem :)
you can get the mouse position on the screen with adding a new trigger.save the current position in variables. add a condition if it is in that area it won't trigger. it's single player?
He's trying to tell if the left mouse click was ordering an ability to a point (e.g. left clicked attack command, then left clicked ground), rather than just being clicked with no order (I think).
He's trying to tell if the left mouse click was ordering an ability to a point (e.g. left clicked attack command, then left clicked ground), rather than just being clicked with no order (I think).
correct!
Half a game loop? I used 0.0625 sec before but was looking for another way to not lose responsiveness. Didn't know there was something like half a loop.
Don't know what I should have done different. The left mouse click event is very much needed in my map (pick up ball, throw ball, compare zealot hockey) but there are also abilities which trigger this event which should not do so.
Just realised that when you are targeting an ability, the command card switches to another form and shows a label "CommandTargetName" et cetera...maybe you could use a visibility check on one of those elements to determine if the player is in targeting mode when the left mouse is clicked? Then you wouldn't have to use a wait at all.
Just a thought. Would be funny if there is actually a built in function to check if player is in targeting mode though that we don't know about.
Hmm yes that is a problem. :D I thought hooking the label up as a dialog item up might work, but apparently the properties of the hooked up dialog item are inaccessible unless you set them explicitly.
blurry stuff coming : actors are able to react to "targeting mode". if you could check if a certain actor is visible/created you just use some dummy actors for each target ability, but dunno if there exist triggers/condition/w/e for that
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
Something tricky: If a player presses the left mouse down, 'something' should happen. However, if the click happens due to an targeted ability being executed, 'something' should not happen. I don't think there is a suitable condition for this, so I created a second trigger "unit uses ability at aproach stage". This trigger executes in the same game loop but unfortunately always after the "mouse clicked" event, so I cannot parse a variable over to my first trigger. I could set the action of this ability trigger to just reverse the action of the mouse trigger but that would be a hell of a lot of work.
So basically I'm looking for a way to influence the order in which trigger execute within one game loop or any other solution to my problem :)
@Elmaex: Go
you can get the mouse position on the screen with adding a new trigger.save the current position in variables. add a condition if it is in that area it won't trigger. it's single player?
Sorry, I do not get what you are suggesting. It is multiplayer.
@Elmaex: Go
Never count on any two triggers executing in a specified order. If you find yourself doing that you went wrong somewhere.
I'm sure there's a better way to do what you want. What specifically are you trying to do?
He's trying to tell if the left mouse click was ordering an ability to a point (e.g. left clicked attack command, then left clicked ground), rather than just being clicked with no order (I think).
@FunkyUserName: Go
I don't think he is trying to tell if an ability button was clicked, because that already does not trigger a left mouse clicked event.
@Elmaex: Go
To wait half a game loop you can use "Wait 0.0 seconds"
But if you can find another way, that would be better because the 'something' would be executed sooner.
@DeltaV: Go
ah that could be the case. you could check how many instance of the ability appraoch trigger are running. should do the job if it's in the same loop.
correct!
Half a game loop? I used 0.0625 sec before but was looking for another way to not lose responsiveness. Didn't know there was something like half a loop.
@MasterWrath: Go
Don't know what I should have done different. The left mouse click event is very much needed in my map (pick up ball, throw ball, compare zealot hockey) but there are also abilities which trigger this event which should not do so.
@FunkyUserName: Go
Good idea, just tried it though and it always returns 0 (hence the ability trigger starts after the click event)
Just realised that when you are targeting an ability, the command card switches to another form and shows a label "CommandTargetName" et cetera...maybe you could use a visibility check on one of those elements to determine if the player is in targeting mode when the left mouse is clicked? Then you wouldn't have to use a wait at all.
Just a thought. Would be funny if there is actually a built in function to check if player is in targeting mode though that we don't know about.
@DeltaV: Go
Yeah, that'd be great. I think this all belongs to the command panel and we can only check for visibility of the panel, though.
Hmm yes that is a problem. :D I thought hooking the label up as a dialog item up might work, but apparently the properties of the hooked up dialog item are inaccessible unless you set them explicitly.
@DeltaV: Go
blurry stuff coming : actors are able to react to "targeting mode". if you could check if a certain actor is visible/created you just use some dummy actors for each target ability, but dunno if there exist triggers/condition/w/e for that