Well the whole point of it is to hide doodads for a player in a region. The problem is getting the agent attached and removed for the hide messages to be sent. I was thinking that perhaps I should just create the agent for every doodad on the map and just send the hide message to it and not destroy it but that's basically doubling the number of doodad actors.
I know it's been awhile but I've been playing with this trying to get it to work on doodads. Right now I can send a message to doodads in a region with send actor message to game region with filters.
I only have to generate the one small 2 part image for the inventory as my bags move globally and not relative so I just turned the pickup item display into a 10 index array. As for the trait windows I think ill just create the 6 or 7 different configurations of buttons as separate windows and only show the player the one they need to see.
Yes, because the way it functions is exactly what I needed. Now I have to figure something else out ><.
Edit: I'll have to use multiple dialog items for each player. My inventories use move relative because it keeps all the dialog items connected so if i move the main "frame" dialog item the rest of them move with it. I would have to redo my entire inventory system to not do that same with trait window system.
Screw that, until blizz fixes the problem I'll generate a dialog item for each player.
edit2: At least I only have to create 10 pickup item dialogs because the rest of it works fine. I just have to figure out how to redo my trait window now. I guess I can make a set of buttons for each configuration that the tree can be displayed in and just use the tree that fits. Right now I have it reorganize all visible buttons which tbh is probably not the best way.
Well, I have a ventrilo server if you have it.
edit: wow its really late ill be back tomorrow after work ><
This is how it works basically, I removed the parts that dont matter.
[Input] Click Dialog Button
Events
Dialog - Any Dialog Item is used by Player Any Player with event type Clicked
Local Variables
Index = 0 <Integer>
Dialog = (Dialog containing (Used dialog item)) <Dialog>
Player = (Triggering player) <Integer>
Conditions
Actions
General - If (Conditions) then do (Actions)
If
Or
Conditions
Dialog == Bag Win[0].Screen
Dialog == Bag Win[1].Screen
Dialog == Bag Win[2].Screen
Dialog == Bag Win[3].Screen
Dialog == Bag Win[4].Screen
Dialog == Craft Win.Screen
Dialog == Status Win.Screen
Dialog == Storage Win.Screen
Then
-DST- Action: - (Inventory) Click Button(Player, Dialog)
(Inventory)ClickButtonOptions:Action,CreateThreadReturnType:(None)ParametersPlayer=0<Integer>Dialog=NoDialog<Dialog>GrammarText:(Inventory)ClickButton(Player,Dialog)HintText:(None)CustomScriptCodeLocalVariablesDialog=Dialog<Dialog>c=0<Integer>Player=Player<Integer>TempButton=0<Integer>TempWin<(Item)WindowLabel>UsedButton=999<Integer>UsedWin<(Item)WindowLabel>ActionsGeneral-If(Conditions)thendomultiple(Actions)IfThenElseGeneral-Elseif(Conditions)thendo(Actions)ElseIf-------PerformPickupifnothingispickedupPickItem[Player].Pickup Active == false
Used Button != 999
Then
-DST- Action: - (Inventory) Pickup(Player, Used Button)
edit: It really does seem like this is a problem with the move dialog item in grid relative function. I have been over it time and again and It should only pass it to the player in question, theres no way it could be doing the trigger multiple times.
Heres the click dialog button main trigger.
Script:
[Input] Click Dialog Button
Events
Dialog - Any Dialog Item is used by Player Any Player with event type Clicked
Local Variables
Index = 0 <Integer>
Dialog = (Dialog containing (Used dialog item)) <Dialog>
Player = (Triggering player) <Integer>
Conditions
Actions
General - If (Conditions) then do (Actions)
If
Or
Conditions
(Used dialog item) == (Death) Menu Dialog Item[1]
(Used dialog item) == (Death) Menu Dialog Item[2]
Then
-DST- Action: - (Death) Menu Select(Player)
General - Skip remaining actions
General - If (Conditions) then do (Actions)
If
Or
Conditions
Dialog == (Action Bars) Bar[0].Screen
Dialog == (Action Bars) Bar[1].Screen
Dialog == (Action Bars) Bar[2].Screen
Dialog == (Action Bars) Bar[3].Screen
Then
General - While (Conditions) are true, do (Actions)
Conditions
Index < 48ActionsGeneral-If(Conditions)thendo(Actions)If(Useddialogitem)==(ActionBars)DisplaySlot[Index].ButtonThen-DST-Unfinished:-(ActionBars)ActivateButton(Player,Index)General-SkipremainingactionsVariable-ModifyIndex:+1General-If(Conditions)thendo(Actions)IfDialog ==(Trait)Page.ScreenThenGeneral-If(Conditions)thendomultiple(Actions)IfThenElseGeneral-Elseif(Conditions)thendo(Actions)ElseIf(Useddialogitem)==(Trait)Page.CloseButtonThenDialog-Hide(Trait)Page.Screenfor(Playergroup(Player))General-SkipremainingactionsGeneral-Elseif(Conditions)thendo(Actions)ElseIfOrConditions(Useddialogitem)==(Trait)ClassTreeButtons[0].Button(Useddialogitem)==(Trait)ClassTreeButtons[1].Button(Useddialogitem)==(Trait)ClassTreeButtons[2].ButtonThen-DST-Action:-(Trait)ClickTierButton(Player,(Useddialogitem))General-Skipremainingactions-DST-Action:-(Trait)ClickButton(Player,(Useddialogitem))General-If(Conditions)thendo(Actions)IfOrConditionsDialog ==BagWin[0].ScreenDialog ==BagWin[1].ScreenDialog ==BagWin[2].ScreenDialog ==BagWin[3].ScreenDialog ==BagWin[4].ScreenDialog ==CraftWin.ScreenDialog ==StatusWin.ScreenDialog ==StorageWin.ScreenThen-DST-Action:-(Inventory)ClickButton(Player,Dialog)
which goes to the pickup option near the end in here:
This is for picking up an item in the inventory which moves a floating button over the inventory spot.
gv_p_sls.lv_b is the actual pickup dialog item that shows the item now hovering (i plan someday to make it follow the cursor)
gv_b_sls[lp_i].lv_b is the items icon in the bag dialog item.
When you pick up an item it moves the dialog item for the pickup over the inventory slot and changes it to look like the item while the in bag one grays out. When another player picks up an item your hovering item moves to the same spot as theirs. I cant show this because i dont have the guy i usually use to test this out with online.
It is a dialog item the dialog itself is a full screen hidden dialog since I know I cant move it on a player dependent basis.
The only possible thing I can think of is that I'm using move dialog item in grid relative to. In order to get the image to pop up over another image without having to determine its on screen position.
The one way to find out is if you have a print statement that prints whenever this function is called. if you find that it is printing multiple lines when it should be printing only one, then you should roughly be able to narrow down the source of your problem.
I do this with the function calling it.
One final thing is this also happens with my floating item image.
I have it set to move it for player to playergroup 1 but it still moves it for all players. :(
IE Convert player to playergroup player 1. I even tried debugging it listing who was in that player group, just me but when other people cause a dialog item to move it moves mine and vice verse.
Player = (Player group(Player)) <Player Group>
(Trait)RefreshIndexOptions:Action,CreateThreadReturnType:(None)ParametersPlayer=0<Integer>Index=0<Integer>GrammarText:(Trait)RefreshIndex(Player,Index)HintText:(None)CustomScriptCodeLocalVariablesPlayer=(Playergroup(Player))<PlayerGroup>Class=((Trait)ClassDisplayed(Player))<Integer>Positions=((Trait)GetButtonPositions(Class))<String>ButtonCount=(Integer((Word1ofPositions)))<Integer>ActionsGeneral-If(Conditions)thendo(Actions)elsedo(Actions)If-------Isthebuttonsupposedtobeshownforthistraittree?Index<=ButtonCountThenDialog-Show(Trait)Buttons[Index].Button for Player
Dialog - Show (Trait) Buttons[Index].Image for Player
Dialog - Set (Trait) Buttons[Index].Button tooltip to ((Trait) Build Button Tooltip(Player, Index)) for Player
Dialog - Set (Trait) Buttons[Index].Image image to (Trait Image: (((Trait) Player Trait Index to Trait ID(Player, Index)))) for Player
General - If (Conditions) then do (Actions) else do (Actions)
If
Index != 0
Then
Dialog - Set (Trait) Buttons[Index].Rank Display text to (Combine ("<sval="ModRightSize12">", (Text(((Trait) Get Info(Player, Index, Current)))), "/", (Text(((Trait) Get Info(Player, Index, Max)))), " (", (Text(((Trait) Get Info(Player, Index, Cost Per Rank)))), ")")) for (All players)
Else
Dialog - Set (Trait) Buttons[Index].Rank Display text to "" for (All players)
Dialog - Move (Trait) Buttons[Index].Button to ((Real((50 * (Integer((Word ((Index * 2) + 2) of Positions)))))), (Real((-50 * (Integer((Word ((Index * 2) + 3) of Positions))))))) in grid relative to Bottom Left of (Trait) Page.Frame for Player (from Bottom Left)
Else
------- Hide the button if it shouldnt be shown.
Dialog - Hide (Trait) Buttons[Index].Button for Player
Dialog - Disable (Trait) Buttons[Index].Button for Player
Dialog - Set (Trait) Buttons[Index].Image image to Blank for Player
Dialog - Move (Trait) Buttons[Index].Button to (0, 0) relative to Top Left of dialog for Player
Dialog - Set (Trait) Buttons[Index].Rank Display text to "" for (All players)
General - If (Conditions) then do (Actions) else do (Actions)
If
------- Should this one be enabled?
------- Is the person high enough level.
((Trait) Level Req(Class, Index)) <= Player Data[Player].(Player) Level
((Trait) Check Final Tier Index(Player, Index, Button Active?)) == true
Then
Dialog - Enable (Trait) Buttons[Index].Button for Player
Dialog - Enable (Trait) Buttons[Index].Image for Player
Else
Dialog - Disable (Trait) Buttons[Index].Button for Player
Dialog - Disable (Trait) Buttons[Index].Image for Player
So I have hit a snag, it would seem that if you move a dialog item for a player it moves that dialog item for all players. Anyone know of a way around this or do my mobile dialogs that move differently for each player have to be made as separate dialog items for each player?
I need to get the actor game link it seems. If I manually put it in I get the result I want but I cant get that game link from an actor. I can get the actor of a unit and all I need to do is bridge actor of unit with game link actor somehow.
0
This is a relatively simple trigger to determine if a unit is either behind another unit or facing another unit.
0
@Renee2islga: Go
Well the whole point of it is to hide doodads for a player in a region. The problem is getting the agent attached and removed for the hide messages to be sent. I was thinking that perhaps I should just create the agent for every doodad on the map and just send the hide message to it and not destroy it but that's basically doubling the number of doodad actors.
0
I know it's been awhile but I've been playing with this trying to get it to work on doodads. Right now I can send a message to doodads in a region with send actor message to game region with filters.
But I'm having a hard time sending the messages signal show signal hide and eventually destroy to the newly attached actors.
I can send a message to every doodad in the map to destroy via the region thing so I know the messages are reaching all the doodads.
0
@deleted_4934777: Go
I only have to generate the one small 2 part image for the inventory as my bags move globally and not relative so I just turned the pickup item display into a 10 index array. As for the trait windows I think ill just create the 6 or 7 different configurations of buttons as separate windows and only show the player the one they need to see.
0
@FuzzYD: Go
Yes, because the way it functions is exactly what I needed. Now I have to figure something else out ><.
Edit: I'll have to use multiple dialog items for each player. My inventories use move relative because it keeps all the dialog items connected so if i move the main "frame" dialog item the rest of them move with it. I would have to redo my entire inventory system to not do that same with trait window system.
Screw that, until blizz fixes the problem I'll generate a dialog item for each player.
edit2: At least I only have to create 10 pickup item dialogs because the rest of it works fine. I just have to figure out how to redo my trait window now. I guess I can make a set of buttons for each configuration that the tree can be displayed in and just use the tree that fits. Right now I have it reorganize all visible buttons which tbh is probably not the best way.
0
@FuzzYD: Go
Well, I have a ventrilo server if you have it. edit: wow its really late ill be back tomorrow after work ><
This is how it works basically, I removed the parts that dont matter.
0
@FuzzYD: Go
Post #7 has the actual pickup function.
edit: It really does seem like this is a problem with the move dialog item in grid relative function. I have been over it time and again and It should only pass it to the player in question, theres no way it could be doing the trigger multiple times.
Heres the click dialog button main trigger. Script:
GUI:
which goes to the pickup option near the end in here:
0
@FuzzYD: Go
The main Window is the trait window, each button is moved for the player in relation to the from which is itself a dialog item in a fullscreen dialog.
libCamp_gf_MoveDialogItemInGridRelative(gv_p_sls.lv_b, lv_p, c_anchorLeft, gv_b_sls[lp_i].lv_b, c_anchorCenter, 0.0, 0.0);
This is for picking up an item in the inventory which moves a floating button over the inventory spot.
gv_p_sls.lv_b is the actual pickup dialog item that shows the item now hovering (i plan someday to make it follow the cursor)
gv_b_sls[lp_i].lv_b is the items icon in the bag dialog item.
When you pick up an item it moves the dialog item for the pickup over the inventory slot and changes it to look like the item while the in bag one grays out. When another player picks up an item your hovering item moves to the same spot as theirs. I cant show this because i dont have the guy i usually use to test this out with online.
0
@FuzzYD: Go
It is a dialog item the dialog itself is a full screen hidden dialog since I know I cant move it on a player dependent basis.
The only possible thing I can think of is that I'm using move dialog item in grid relative to. In order to get the image to pop up over another image without having to determine its on screen position.
0
I do this with the function calling it.
One final thing is this also happens with my floating item image.
I have done all sorts of debug messaging telling me whose in the playegroup and when it fires and i cant get anything from it.
0
@FuzzYD: Go
Thats actually the default for an icon not being shown which hides it and moves it off screen.
is the player group of the player input
Thats the line that moves the dialog based on the position for the class. And as GUI
0
@FuzzYD: Go
I have it set to move it for player to playergroup 1 but it still moves it for all players. :(
IE Convert player to playergroup player 1. I even tried debugging it listing who was in that player group, just me but when other people cause a dialog item to move it moves mine and vice verse.
Player = (Player group(Player)) <Player Group>
Here it is in script.
0
So I have hit a snag, it would seem that if you move a dialog item for a player it moves that dialog item for all players. Anyone know of a way around this or do my mobile dialogs that move differently for each player have to be made as separate dialog items for each player?
0
@LinkD: Go
How on earth did you get the model of a unit for that? I've been at it for a day now and just cant get a conversion like that.
0
@Builder_Bob: Go
I need to get the actor game link it seems. If I manually put it in I get the result I want but I cant get that game link from an actor. I can get the actor of a unit and all I need to do is bridge actor of unit with game link actor somehow.