• 0

    posted a message on Trigger - Unit Behind/Facing Unit

    This is a relatively simple trigger to determine if a unit is either behind another unit or facing another unit.

    (General) Unit is Facing/Behind Unit
        Options: Function
        Return Type: Boolean
        Parameters
            Source = No Unit <Unit>
            Target = No Unit <Unit>
            Range = 90 <Integer>
            Option = Behind <(General) Facing/Behind Option>
        Grammar Text: (General) Unit is Facing/Behind Unit(Source, Target, Range, Option)
        Hint Text: (None)
        Custom Script Code
        Local Variables
            Angle = (Integer((Angle from (Position of Target) to (Position of Source)))) <Integer>
            Face = (Integer((Facing of Target))) <Integer>
        Actions
            General - If (Conditions) then do (Actions)
                If
                    Option == Facing
                Then
                    Variable - Set Face = (Integer((Facing of Source)))
            General - If (Conditions) then do (Actions)
                If
                    Or
                        Conditions
                            ------- begin
                            And
                                Conditions
                                    Face < (0 - Range)
                                    ((180 + Face) - Range) <= Angle <= ((180 + Face) + Range)
                            ------- middle
                            And
                                Conditions
                                    (0 - Range) <= Face <= Range
                                    Or
                                        Conditions
                                            Angle >= ((180 + Face) - Range)
                                            Angle <= ((-180 + Face) + Range)
                            ------- end
                            And
                                Conditions
                                    Face > Range
                                    ((-180 + Face) - Range) <= Angle <= ((-180 + Face) + Range)
                Then
                    General - Return true
            General - Return false
    
    Posted in: Triggers
  • 0

    posted a message on [Tutorial, Trigger, Data]Show/Hide/Destroy Any Given Actor For Specified Players Only

    @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.

    Posted in: Tutorials
  • 0

    posted a message on [Tutorial, Trigger, Data]Show/Hide/Destroy Any Given Actor For Specified Players Only

    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.

            SendActorMessageToGameRegionWithFilters(r, c_actorIntersectAgainstRadiusContact, "Create SH_AA", "Doodad", "")
            SendActorMessageToGameRegionWithFilters(r, c_actorIntersectAgainstRadiusContact, "AliasAdd _TriggerTarget", "Doodad", "")
    
            Actor - Send actor message "Create SH_AA" to all actors that intersect game region Region with their Contact Radius that belong to class "Doodad" and match terms ""
            Actor - Send actor message "AliasAdd _TriggerTarget" to all actors that intersect game region Region with their Contact Radius that belong to class "Doodad" and match terms ""
    

    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.

    Posted in: Tutorials
  • 0

    posted a message on Moving a dialog/dialog item for a player and ONLY that player.

    @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.

    Posted in: Triggers
  • 0

    posted a message on Moving a dialog/dialog item for a player and ONLY that player.

    @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.

    Posted in: Triggers
  • 0

    posted a message on Moving a dialog/dialog item for a player and ONLY that player.

    @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.

    [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) Click Button
        Options: Action, Create Thread
        Return Type: (None)
        Parameters
            Player = 0 <Integer>
            Dialog = No Dialog <Dialog>
        Grammar Text: (Inventory) Click Button(Player, Dialog)
        Hint Text: (None)
        Custom Script Code
        Local Variables
            Dialog = Dialog <Dialog>
            c = 0 <Integer>
            Player = Player <Integer>
            Temp Button = 0 <Integer>
            Temp Win <(Item) Window Label>
            Used Button = 999 <Integer>
            Used Win <(Item) Window Label>
        Actions
            General - If (Conditions) then do multiple (Actions)
                If Then Else
                    General - Else if (Conditions) then do (Actions)
                        Else If
                            ------- Perform Pickup if nothing is picked up
                            Pick Item[Player].Pickup Active == false
                            Used Button != 999
                        Then
                            -DST- Action:  - (Inventory) Pickup(Player, Used Button)
    
    Posted in: Triggers
  • 0

    posted a message on Moving a dialog/dialog item for a player and ONLY that player.

    @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:

    //--------------------------------------------------------------------------------------------------
    // Trigger: [Input] Click Dialog Button
    //--------------------------------------------------------------------------------------------------
    bool gt_in_cd_Func (bool testConds, bool runActions) {
        // Variable Declarations
        int lv_i;
        int lv_dlg;
        int lv_player;
    
        // Variable Initialization
        lv_i = 0;
        lv_dlg = DialogControlGetDialog(EventDialogControl());
        lv_player = EventPlayer();
    
        // Actions
        if (!runActions) {
            return true;
        }
    
        if (((EventDialogControl() == gv_dt_mdi[1]) || (EventDialogControl() == gv_dt_mdi[2]))) {
            gf_dt_ms(lv_player);
            return true;
        }
        if (((lv_dlg == gv_ac_br[0].lv_scr) || (lv_dlg == gv_ac_br[1].lv_scr) || (lv_dlg == gv_ac_br[2].lv_scr) || (lv_dlg == gv_ac_br[3].lv_scr))) {
            while ((lv_i < 48)) {
                if ((EventDialogControl() == gv_ac_ds[lv_i].lv_btn)) {
                    gf_ac_ab(lv_player, lv_i);
                    return true;
                }
                lv_i=lv_i + 1;
            }
        }
        if ((lv_dlg == gv_tr_pg.lv_s)) {
            if ((EventDialogControl() == gv_tr_pg.lv_c)) {
                DialogSetVisible(gv_tr_pg.lv_s, PlayerGroupSingle(lv_player), false);
                return true;
            }
            else if (((EventDialogControl() == gv_tr_ctrbt[0].lv_b) || (EventDialogControl() == gv_tr_ctrbt[1].lv_b) || (EventDialogControl() == gv_tr_ctrbt[2].lv_b))) {
                gf_tr_cktrbt(lv_player, EventDialogControl());
                return true;
            }
            gf_tr_ckb(lv_player, EventDialogControl());
        }
        if (((lv_dlg == gv_b_win[0].lv_s) || (lv_dlg == gv_b_win[1].lv_s) || (lv_dlg == gv_b_win[2].lv_s) || (lv_dlg == gv_b_win[3].lv_s) || (lv_dlg == gv_b_win[4].lv_s) || (lv_dlg == gv_c_win.lv_s) || (lv_dlg == gv_e_win.lv_s) || (lv_dlg == gv_s_win.lv_s))) {
            gf_in_clkbtn(lv_player, lv_dlg);
        }
        return true;
    }
    
    //--------------------------------------------------------------------------------------------------
    void gt_in_cd_Init () {
        gt_in_cd = TriggerCreate("gt_in_cd_Func");
        TriggerAddEventDialogControl(gt_in_cd, c_playerAny, c_invalidDialogControlId, c_triggerControlEventTypeClick);
    }
    

    GUI:

    [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 < 48
                        Actions
                            General - If (Conditions) then do (Actions)
                                If
                                    (Used dialog item) == (Action Bars) Display Slot[Index].Button
                                Then
                                    -DST- Unfinished:  - (Action Bars) Activate Button(Player, Index)
                                    General - Skip remaining actions
                            Variable - Modify Index: + 1
            General - If (Conditions) then do (Actions)
                If
                    Dialog == (Trait) Page.Screen
                Then
                    General - If (Conditions) then do multiple (Actions)
                        If Then Else
                            General - Else if (Conditions) then do (Actions)
                                Else If
                                    (Used dialog item) == (Trait) Page.Close Button
                                Then
                                    Dialog - Hide (Trait) Page.Screen for (Player group(Player))
                                    General - Skip remaining actions
                            General - Else if (Conditions) then do (Actions)
                                Else If
                                    Or
                                        Conditions
                                            (Used dialog item) == (Trait) Class Tree Buttons[0].Button
                                            (Used dialog item) == (Trait) Class Tree Buttons[1].Button
                                            (Used dialog item) == (Trait) Class Tree Buttons[2].Button
                                Then
                                    -DST- Action:  - (Trait) Click Tier Button(Player, (Used dialog item))
                                    General - Skip remaining actions
                    -DST- Action:  - (Trait) Click Button(Player, (Used dialog item))
            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)
    

    which goes to the pickup option near the end in here:

    (Inventory) Click Button
        Options: Action, Create Thread
        Return Type: (None)
        Parameters
            Player = 0 <Integer>
            Dialog = No Dialog <Dialog>
        Grammar Text: (Inventory) Click Button(Player, Dialog)
        Hint Text: (None)
        Custom Script Code
        Local Variables
            Dialog = Dialog <Dialog>
            c = 0 <Integer>
            Player = Player <Integer>
            Temp Button = 0 <Integer>
            Temp Win <(Item) Window Label>
            Used Button = 999 <Integer>
            Used Win <(Item) Window Label>
        Actions
            General - If (Conditions) then do (Actions)
                If
                    (Used dialog item) == Storage Win.Close Button
                Then
                    Dialog - Hide Storage Win.Screen for (Player group(Player))
                    General - Skip remaining actions
            General - If (Conditions) then do (Actions)
                If
                    (Used dialog item) == Cmb/Brk Win.Close Button
                Then
                    Dialog - Hide Cmb/Brk Win.Screen for (Player group(Player))
                    General - Skip remaining actions
            General - If (Conditions) then do (Actions)
                If
                    (Used dialog item) == Status Win.Close Button
                Then
                    Dialog - Hide Status Win.Screen for (Player group(Player))
                    General - Skip remaining actions
            General - While (Conditions) are true, do (Actions)
                Conditions
                    c < 5
                Actions
                    General - If (Conditions) then do (Actions)
                        If
                            (Used dialog item) == Bag Win[c].Close Button
                        Then
                            Dialog - Hide Bag Win[c].Screen for (Player group(Player))
                            -DST- Action:  - Sort Bags(Player)
                            General - Skip remaining actions
                    Variable - Modify c: + 1
            General - If (Conditions) then do multiple (Actions)
                If Then Else
                    General - Else if (Conditions) then do (Actions)
                        Else 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 == Storage Win.Screen
                                    Dialog == Status Win.Screen
                        Then
                            General - While (Conditions) are true, do (Actions)
                                Conditions
                                    Temp Button <= 239
                                    Used Button == 999
                                Actions
                                    General - If (Conditions) then do (Actions)
                                        If
                                            (Used dialog item) == +++++Item Slots[Temp Button].Button
                                        Then
                                            Variable - Set Used Button = Temp Button
                                            General - Break
                                    Variable - Modify Temp Button: + 1
            General - If (Conditions) then do multiple (Actions)
                If Then Else
                    General - Else if (Conditions) then do (Actions)
                        Else If
                            (Used dialog item) == Pick Slot.Button
                        Then
                            -DST- Action:  - (Inventory) Refresh Slot(false, Player, Used Button)
                            -DST- Action:  - (Inventory) Clear Pickup(Player)
                            General - Skip remaining actions
                    General - Else if (Conditions) then do (Actions)
                        Else If
                            ------- Perform Pickup if nothing is picked up
                            Pick Item[Player].Pickup Active == false
                            Used Button != 999
                        Then
                            -DST- Action:  - (Inventory) Pickup(Player, Used Button)
                    General - Else if (Conditions) then do (Actions)
                        Else If
                            ------- Drop Switch if pickup fails
                            Pick Item[Player].Pickup Active == true
                            Used Button != 999
                        Then
                            -DST- Action:  - (Inventory) Drop/Switch(Player, Used Button)
    
    Posted in: Triggers
  • 0

    posted a message on Moving a dialog/dialog item for a player and ONLY that player.

    @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.

    Posted in: Triggers
  • 0

    posted a message on Moving a dialog/dialog item for a player and ONLY that player.

    @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.

    Posted in: Triggers
  • 0

    posted a message on Moving a dialog/dialog item for a player and ONLY that player.
    Quote from FuzzYD: Go

    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.

    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);
    
    void gf_in_pk (int lp_p, int lp_i) {
        // Variable Declarations
        playergroup lv_p;
    
        // Variable Initialization
        lv_p = PlayerGroupSingle(lp_p);
    
        // Implementation
        if ((gv_it_dt[lp_p][lp_i].lv_i != 0)) {
            DialogSetVisible(gv_p_scr, PlayerGroupSingle(lp_p), true);
            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);
            libNtve_gf_SetDialogItemTooltip(gv_p_sls.lv_b, gv_it_dt[lp_p][lp_i].lv_tpc, lv_p);
            libNtve_gf_SetDialogItemColor(gv_p_sls.lv_b, gf_ItemQualityColorColor(lp_p, lp_i), lv_p);
            libNtve_gf_SetDialogItemImage(gv_p_sls.lv_i, gf_gn_id2im(gv_it_dt[lp_p][lp_i].lv_i, "item"), lv_p);
            gf_in_rfb(true, lp_p, lp_i);
            gv_p_itm[lp_p].lv_pa = true;
            gv_p_itm[lp_p].lv_o_idx = lp_i;
        }
    }
    

    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.

    Posted in: Triggers
  • 0

    posted a message on Moving a dialog/dialog item for a player and ONLY that player.

    @FuzzYD: Go

    Thats actually the default for an icon not being shown which hides it and moves it off screen.

    lv_p = PlayerGroupSingle(lp_p);
    

    is the player group of the player input

    libCamp_gf_MoveDialogItemInGridRelative(gv_tr_bt[lp_i].lv_b, lv_p, c_anchorBottomLeft, gv_tr_pg.lv_f, c_anchorBottomLeft, IntToFixed((50 * StringToInt(StringWord(lv_ps, ((lp_i * 2) + 2))))), IntToFixed((-50 * StringToInt(StringWord(lv_ps, ((lp_i * 2) + 3))))));
    

    Thats the line that moves the dialog based on the position for the class. And as GUI

    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)
    
    Posted in: Triggers
  • 0

    posted a message on Moving a dialog/dialog item for a player and ONLY that player.

    @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>

    (Trait) Refresh Index
        Options: Action, Create Thread
        Return Type: (None)
        Parameters
            Player = 0 <Integer>
            Index = 0 <Integer>
        Grammar Text: (Trait) Refresh Index(Player, Index)
        Hint Text: (None)
        Custom Script Code
        Local Variables
            Player = (Player group(Player)) <Player Group>
            Class = ((Trait) Class Displayed(Player)) <Integer>
            Positions = ((Trait) Get Button Positions(Class)) <String>
            Button Count = (Integer((Word 1 of Positions))) <Integer>
        Actions
            General - If (Conditions) then do (Actions) else do (Actions)
                If
                    ------- Is the button supposed to be shown for this trait tree?
                    Index <= Button Count
                Then
                    Dialog - 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 ("<s val="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
    

    Here it is in script.

    bool auto_gf_tr_rfix_TriggerFunc (bool testConds, bool runActions) {
        int lp_p = auto_gf_tr_rfix_lp_p;
        int lp_i = auto_gf_tr_rfix_lp_i;
    
        // Variable Declarations
        playergroup lv_p;
        int lv_c;
        string lv_ps;
        int lv_n;
    
        // Variable Initialization
        lv_p = PlayerGroupSingle(lp_p);
        lv_c = (gv_pl_dat[lp_p].lv_pcl[(gv_pl_dat[lp_p].lv_ta + 1)]);
        lv_ps = gf_tr_gbp(lv_c);
        lv_n = StringToInt(StringWord(lv_ps, 1));
    
        // Implementation
        if ((lp_i <= lv_n)) {
            DialogControlSetVisible(gv_tr_bt[lp_i].lv_b, lv_p, true);
            DialogControlSetVisible(gv_tr_bt[lp_i].lv_i, lv_p, true);
            libNtve_gf_SetDialogItemTooltip(gv_tr_bt[lp_i].lv_b, gf_tr_btp(lp_p, lp_i), lv_p);
            libNtve_gf_SetDialogItemImage(gv_tr_bt[lp_i].lv_i, gf_gn_id2im(gf_tr_ix2id(lp_p, lp_i), "trait"), lv_p);
            if ((lp_i != 0)) {
                libNtve_gf_SetDialogItemText(gv_tr_bt[lp_i].lv_k, (StringExternal("Param/Value/55F285EA") + IntToText(gf_tr_nfo(lp_p, lp_i, 0)) + StringExternal("Param/Value/54FB3CD8") + IntToText(gf_tr_nfo(lp_p, lp_i, 1)) + StringExternal("Param/Value/37AF2B93") + IntToText(gf_tr_nfo(lp_p, lp_i, 2)) + StringExternal("Param/Value/A8C47F0C")), PlayerGroupAll());
            }
            else {
                libNtve_gf_SetDialogItemText(gv_tr_bt[lp_i].lv_k, StringExternal("Param/Value/3F51D5CC"), PlayerGroupAll());
            }
            libCamp_gf_MoveDialogItemInGridRelative(gv_tr_bt[lp_i].lv_b, lv_p, c_anchorBottomLeft, gv_tr_pg.lv_f, c_anchorBottomLeft, IntToFixed((50 * StringToInt(StringWord(lv_ps, ((lp_i * 2) + 2))))), IntToFixed((-50 * StringToInt(StringWord(lv_ps, ((lp_i * 2) + 3))))));
        }
        else {
            DialogControlSetVisible(gv_tr_bt[lp_i].lv_b, lv_p, false);
            DialogControlSetEnabled(gv_tr_bt[lp_i].lv_b, lv_p, false);
            libNtve_gf_SetDialogItemImage(gv_tr_bt[lp_i].lv_i, gv_blank, lv_p);
            DialogControlSetPosition(gv_tr_bt[lp_i].lv_b, lv_p, c_anchorTopLeft, 0, 0);
            libNtve_gf_SetDialogItemText(gv_tr_bt[lp_i].lv_k, StringExternal("Param/Value/4133E97E"), PlayerGroupAll());
        }
        if ((gf_tr_lq(lv_c, lp_i) <= gv_pl_dat[lp_p].lv_pl) && (gf_tr_ul(lp_p, lp_i, 0) == true)) {
            DialogControlSetEnabled(gv_tr_bt[lp_i].lv_b, lv_p, true);
            DialogControlSetEnabled(gv_tr_bt[lp_i].lv_i, lv_p, true);
        }
        else {
            DialogControlSetEnabled(gv_tr_bt[lp_i].lv_b, lv_p, false);
            DialogControlSetEnabled(gv_tr_bt[lp_i].lv_i, lv_p, false);
        }
        return true;
    }
    
    Posted in: Triggers
  • 0

    posted a message on Moving a dialog/dialog item for a player and ONLY that 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?

    Posted in: Triggers
  • 0

    posted a message on Epidemic ORPG

    @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.

    Posted in: Project Workplace
  • 0

    posted a message on I need to get the model of a unit.

    @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.

    Posted in: Triggers
  • To post a comment, please or register a new account.