<interface_config> <root id="interface" x="0" y="0" w="800" h="600" active="true" /> <!-- some initialisations to do when the player trade window is opened --> <proc id="open_player_trade"> <!-- reset the price that the player proposes --> <action handler="set" params="dblink=%money_proposal|value=0"/> <!-- allow the user to validate the trade --> <action handler="set" params="dblink=%can_valid_player_trade|value=1"/> </proc> <!-- selection of the number of seeds that the player wants to give --> <proc id="sel_seed"> <action handler="editbox_number" params="value=@1|max_value=@2"/> <action handler="validate_seed_sel" params="quantity=@1"/> </proc> <!-- validation of trade by the player --> <proc id="valid_player_trade"> <action handler="set" params="dblink=%can_valid_player_trade|value=0"/> <action handler="accept_exchange" params="counter=@@%exchange_id"/> </proc> <!-- invalidation of trade by the player --> <proc id="invalidate_player_trade"> <action handler="set" params="dblink=%can_valid_player_trade|value=1"/> <action handler="invalidate_exchange" params="counter=@@%exchange_id"/> </proc> <!-- reset the quantity of money that the player wants to trade --> <proc id="reset_money_quantity"> <!-- copy the values that have been entered in the box --> <action handler="set" params="dblink=%money_proposal|value=0"/> <!-- send the new value to the server --> <!-- for now, these are 4 msg => should use only one --> <action handler="validate_seed_sel" params="quantity=0"/> </proc> <!-- popup to choose an item in the bag (the item must not be worn) --> <group type="modal" id="exchange_choose_in_bag" options="skin_modal" x="0" y="0" posref="BL TL" child_resize_h="true" child_resize_hmargin="4" child_resize_w="true" child_resize_wmargin="4" exit_click_b="true"> <group type="list_sheet_filter_exchangeable" id="list" posref="TL TL" value="%bag" wspace="2" hspace="2" array="false" x="0" y="0" child_resize_h="true" child_resize_w="true" child_resize_wmargin="4" child_resize_hmargin="4" display_empty_slot="true" squarify="true" onclick_l="put_bag_item_to_exchange" onclick_r="open_help_auto" lmargin="4" rmargin="4" tmargin="4" bmargin="4" column_max="16" auto_grayed="true" > </group> </group> <!-- Interface for trade between players --> <group id="player_trade" type="container" x="400" y="650" w="196" h="417" pop_max_h="438" title="uiTrade2Player" global_color="false" on_active="proc" on_active_params="open_player_trade" active="false" openable="false" opened="true" movable="true" resizer="false" header_color="UI:SAVE:WIN:COLORS:TRADE" escapable="true" on_escape="end_exchange" on_close_button="end_exchange" > <group id="header_opened" w="184" h="410" posref="TL TL"> <!-- 1/ TITLE & INTRO --> <!-- <view type="text" id="text" posref="TL TL" x="16" y="-8" color="255 255 255 255" fontsize="12" shadow="true" hardtext="uiTrade2Player" global_color="false" /> --> <!-- 2/ QUIT TRADE --> <!-- <ctrl type="button" id="close" button_type="push_button" posref="TR TR" x="-8" y="-10" tx_normal="W_close_1.tga" tx_pushed="W_close_1.tga" tx_over="W_button_12_over.tga" onclick_l="end_exchange" tooltip="uittClose" /> --> <!-- 3/ RECEIVING --> <instance template="box_widget" id="receive_back" posref="TM TM" w="184" h="176" x="0" y="-19"/> <view type="text" id="receive_text" posref="TL TL" posparent="receive_back" x="4" y="-4" color="255 255 255 255" fontsize="11" shadow="true" hardtext="uiOtherGive" global_color="true" /> <group id="receive" posref="TM TM" x="0" y="-18" posparent="receive_back" w="174" h="156" > <!-- Money received --> <view type="text" id="money_r" posref="TL TL" x="0" y="0" color="255 255 255 128" fontsize="10" shadow="true" hardtext="uiMoneyTitle" /> <instance template="argent" id="money_received" posref="TL TL" x="0" y="-12" value="%exchange_receive_money"/> <!-- <instance template="thunes" id="money_received" posref="TL TL" x="0" y="-12" value_1="%money_offer_from_other:SMALL_SEED" value_2="%money_offer_from_other:MEDIUM_SEED" value_3="%money_offer_from_other:BIG_SEED" value_4="%money_offer_from_other:VERY_BIG_SEED" /> --> <!-- Items received (inventories:exchange_proposition in the database) --> <group id="received_items" posref="BL TL" posparent="money_received" x="0" y="-16" h="86" w="174"> <!-- 8 sheets that can't be drag and dropped --> <ctrl type="sheet" id="slot0" value="%exchange_receive:0" posparent="parent" posref="TL TL" x="0" onclick_r="open_help_auto" /> <ctrl type="sheet" id="slot1" value="%exchange_receive:1" posparent="slot0" posref="TR TL" x="2" onclick_r="open_help_auto" /> <ctrl type="sheet" id="slot2" value="%exchange_receive:2" posparent="slot1" posref="TR TL" x="2" onclick_r="open_help_auto" /> <ctrl type="sheet" id="slot3" value="%exchange_receive:3" posparent="slot2" posref="TR TL" x="2" onclick_r="open_help_auto" /> <ctrl type="sheet" id="slot4" value="%exchange_receive:4" posparent="slot0" posref="BL TL" x="0" y="-2" onclick_r="open_help_auto" /> <ctrl type="sheet" id="slot5" value="%exchange_receive:5" posparent="slot4" posref="TR TL" x="2" onclick_r="open_help_auto" /> <ctrl type="sheet" id="slot6" value="%exchange_receive:6" posparent="slot5" posref="TR TL" x="2" onclick_r="open_help_auto" /> <ctrl type="sheet" id="slot7" value="%exchange_receive:7" posparent="slot6" posref="TR TL" x="2" onclick_r="open_help_auto" /> </group> <view type="text" id="items_r" posref="TL BL" posparent="received_items" x="0" y="0" color="255 255 255 128" fontsize="10" shadow="true" hardtext="uiItems" /> </group> <!-- 4/ YOU GIVE --> <instance template="box_widget" id="give_back" posref="BM TM" posparent="receive_back" w="184" h="176" x="0" y="-18"/> <view type="text" id="give_text" posref="TL TL" posparent="give_back" x="4" y="-4" color="255 255 255 255" fontsize="11" shadow="true" hardtext="uiPlayerGive" global_color="true" /> <group id="give" posref="TM TM" posparent="give_back" x="0" y="-18" w="174" h="156"> <!-- Money to give --> <view type="text" id="money_r" posref="TL TL" x="0" y="0" color="255 255 255 128" fontsize="10" shadow="true" hardtext="uiMoneyTitle" /> <instance template="argent" id="money_given" posref="TL TL" x="0" y="-12" value="%money_proposal"/> <!-- <instance template="thunes" id="money_given" posref="TL TL" x="0" y="-12" value_1="%money_proposal_1" value_2="%money_proposal_2" value_3="%money_proposal_3" value_4="%money_proposal_4" /> --> <!-- Set money --> <view type="bitmap" id="sep" posparent="money_given" posref="TR TL" x="2" y="-2" scale="true" h="36" w="2" texture="W_line_ver.tga" /> <!-- Set money --> <ctrl type="button" id="choose_money" button_type="push_button" posparent="sep" posref="BR BL" y="0" x="4" tx_normal="w_button_edit.tga" tx_pushed="w_button_edit.tga" tx_over="W_button_16_over.tga" onclick_l="enter_modal" params_l="group=ui:interface:money_choose_dialog" tooltip="uittSetMoney" /> <!-- Reset money --> <ctrl type="button" id="reset_money" button_type="push_button" posparent="choose_money" posref="TL BL" y="1" x="0" tx_normal="w_button_reset.tga" tx_pushed="w_button_reset.tga" tx_over="W_button_16_over.tga" onclick_l="proc" params_l="reset_money_quantity" tooltip="uittClearMoney" /> <!-- Items to give --> <group id="given_items" posref="BL TL" posparent="money_given" x="0" y="-32" h="86" w="174"> <!-- 8 sheets that can't be drag and dropped --> <ctrl type="sheet" id="slot0" onclick_r="open_help_auto" value="%exchange_give:0" oncandrop="can_drop_to_exchange" dragable="true" posparent="parent" ondrop="proc" params_drop="drop_item" oncannotdrop="put_exchange_item_to_bag" posref="TL TL" x="0" selection_group="inventory_selection" onclick_l="exchange_left_click_on_slot"/> <ctrl type="sheet" id="slot1" onclick_r="open_help_auto" value="%exchange_give:1" oncandrop="can_drop_to_exchange" dragable="true" posparent="slot0" ondrop="proc" params_drop="drop_item" oncannotdrop="put_exchange_item_to_bag" posref="TR TL" x="2" selection_group="inventory_selection" onclick_l="exchange_left_click_on_slot"/> <ctrl type="sheet" id="slot2" onclick_r="open_help_auto" value="%exchange_give:2" oncandrop="can_drop_to_exchange" dragable="true" posparent="slot1" ondrop="proc" params_drop="drop_item" oncannotdrop="put_exchange_item_to_bag" posref="TR TL" x="2" selection_group="inventory_selection" onclick_l="exchange_left_click_on_slot"/> <ctrl type="sheet" id="slot3" onclick_r="open_help_auto" value="%exchange_give:3" oncandrop="can_drop_to_exchange" dragable="true" posparent="slot2" ondrop="proc" params_drop="drop_item" oncannotdrop="put_exchange_item_to_bag" posref="TR TL" x="2" selection_group="inventory_selection" onclick_l="exchange_left_click_on_slot"/> <ctrl type="sheet" id="slot4" onclick_r="open_help_auto" value="%exchange_give:4" oncandrop="can_drop_to_exchange" dragable="true" posparent="slot0" ondrop="proc" params_drop="drop_item" oncannotdrop="put_exchange_item_to_bag" posref="BL TL" x="0" y="-2" selection_group="inventory_selection" onclick_l="exchange_left_click_on_slot"/> <ctrl type="sheet" id="slot5" onclick_r="open_help_auto" value="%exchange_give:5" oncandrop="can_drop_to_exchange" dragable="true" posparent="slot4" ondrop="proc" params_drop="drop_item" oncannotdrop="put_exchange_item_to_bag" posref="TR TL" x="2" selection_group="inventory_selection" onclick_l="exchange_left_click_on_slot"/> <ctrl type="sheet" id="slot6" onclick_r="open_help_auto" value="%exchange_give:6" oncandrop="can_drop_to_exchange" dragable="true" posparent="slot5" ondrop="proc" params_drop="drop_item" oncannotdrop="put_exchange_item_to_bag" posref="TR TL" x="2" selection_group="inventory_selection" onclick_l="exchange_left_click_on_slot"/> <ctrl type="sheet" id="slot7" onclick_r="open_help_auto" value="%exchange_give:7" oncandrop="can_drop_to_exchange" dragable="true" posparent="slot6" ondrop="proc" params_drop="drop_item" oncannotdrop="put_exchange_item_to_bag" posref="TR TL" x="2" selection_group="inventory_selection" onclick_l="exchange_left_click_on_slot"/> </group> <view type="text" id="items_r" posref="TL BL" posparent="given_items" x="0" y="0" color="255 255 255 128" fontsize="10" shadow="true" hardtext="uiItems" /> </group> <!-- 5/ VALIDATIONS --> <group id="validation" posparent="receive_back" w="40" h="20" posref="BM TM" x="0" y="1"> <view type="bitmap" id="not_ready" posref="TL TL" texture="W_trade_not_ready.tga"/> <!-- Player validation --> <group id="player_validation" posref="BR BR" x="0" y="0" w="12" h="14" > <!-- display 'ready' bitmap --> <view type="bitmap" id="player_ready" posref="TL TL" texture="W_trade_player_ready.tga" global_color="true" active="false"/> </group> <!-- links to display the right bitmap for player validation --> <!--<link expr="@%can_valid_player_trade" target="player_validation:player_not_ready:active"/>--> <link expr="not(@%can_valid_player_trade)" target="player_validation:player_ready:active"/> <!-- Other validation --> <group id="other_player_validation" posref="TL TL" x="0" y="0" w="12" h="14" > <!-- display 'ready' bitmap --> <view type="bitmap" id="other_ready" posref="TL TL" texture="W_trade_other_ready.tga" global_color="true" active="false"/> </group> <!-- links to display the right bitmap for other player validation --> <!--<link expr="not(@%other_player_accepted_trade)" target="other_player_validation:other_not_ready:active"/>--> <link expr="@%exchange_accepted" target="other_player_validation:other_ready:active"/> </group> <!-- group that allows the user to confirm the trade --> <group id="confirm_trade" posparent="give_back" posref="BR TR" x="-4" y="-4" child_resize_h="true" child_resize_w="true"> <ctrl style="text_button_16" id="confirm_button" posref="TR TR" x="0" y="0" onclick_l="proc" params_l="valid_player_trade" hardtext="uiAccept" /> </group> <!-- group that allows the user to invalidate the trade --> <group id="invalidate_trade" posparent="give_back" posref="BR TR" x="-4" y="-4" child_resize_h="true" child_resize_w="true" active="false"> <ctrl style="text_button_16" id="invalidate_button" posref="TR TR" x="0" y="0" onclick_l="proc" params_l="invalidate_player_trade" hardtext="uiRefuse" /> </group> <!-- connect the 'confirm_trade' group to the 'can_valid_player_trade' flag --> <link expr="@%can_valid_player_trade" target="confirm_trade:active"/> <link expr="not(@%can_valid_player_trade)" target="invalidate_trade:active"/> <!-- if money or item have been modified, should allow the player to validate again, so set the 'can_valid_player_trade' flag to 1 --> <link expr="depends(@%exchange_receive, @%exchange_give, @%money_proposal, @%exchange_receive_money, @SERVER:EXCHANGE:FORCE_REFUSE)" action="set" params="dblink=%can_valid_player_trade|value=1"/> </group> </group> <!-- link to connect the activation of this dialog to the database entry that given the signal to start --> <link expr="@%exchange_begun" action="player_trade_start" target="player_trade:active" /> <link expr="depends(@%exchange_text)" action="set_server_string" params="value=@%exchange_text|target=ui:interface:player_trade:uc_title" /> <!-- ************************************* --> <!-- * MONEY SELECTION FOR PLAYER TRADE * --> <!-- ************************************* --> <!-- define for variables that contains initial quantity --> <define id="choose_money" value="UI:VARIABLES:CHOOSE_MONEY" /> <!-- declare variables that contains initial quantity --> <variable entry="%choose_money" type="sint32" value="0"/> <!-- proc that is executed when the user has confirmed the new quantity of money --> <proc id="confirm_money_quantity"> <!-- copy the values that have been entered in the box --> <action handler="set" params="dblink=%money_proposal|value=@@%choose_money"/> <!-- send the new valu to the server --> <!-- for now, these are 4 msg => should use only one --> <action handler="validate_seed_sel" params="quantity=@@%money_proposal"/> <!-- leave the modal box --> <action handler="leave_modal" params=""/> </proc> <!-- proc that is executed when the modal box to choose money is opened --> <proc id="choose_money_opened"> <!-- copy the current money value in the temp variables --> <action handler="set" params="dblink=%choose_money|value=@@%money_proposal"/> <!-- copy the value as strings in the modal box --> <action handler="set" params="target_property=ui:interface:money_choose_dialog:box1:eb:input_string|value=@@%money_proposal"/> <!-- set the focus on the first selection box --> <action handler="set_keyboard_focus" params="select_all=true|target=ui:interface:money_choose_dialog:box1:eb"/> </proc> <!-- QUANTITY OF MONEY MODAL BOX --> <group type="modal" id="money_choose_dialog" exit_click_out="true" posref="MM MM" w="170" h="64" on_active="proc" on_active_params="choose_money_opened" options="skin_modal" > <!-- info text --> <view type="text" id="title" posref="TL TL" x="4" y="-4" color="255 255 255 255" fontsize="12" shadow="true" hardtext="uiSelMoney2Give" global_color="false" /> <!-- bitmap for the seeds --> <view type="bitmap" id="money" posref="BL TL" posparent="title" x="20" y="-4" texture="money_seve.tga" global_color="false" /> <!-- edit box for the seeds --> <instance template="edit_box_widget" id="box1" posparent="money" text_ref="TR TR" text_y="-1" posref="MR ML" w="92" h="16" fontsize="10" x="2" y="0" reset_focus_on_hide="true" max_historic="0" onchange="editbox_number" onchange_params="value=%choose_money|max_value=@%money|update_text=false" prompt="" enter_loose_focus="false" multi_line="false" max_num_chars="12" onenter="proc" color="135 243 28 255" params="confirm_money_quantity" entry_type="positive_integer" /> <!-- ok / cancel --> <instance template="button_ok_cancel" posref="BR BR" x="-4" y="4" onclick_ok="proc" onclick_ok_param="confirm_money_quantity" onclick_cancel="leave_modal" onclick_cancel_param="" /> </group> <!-- the player accept the invitation --> <proc id="player_accept_invitation"> <action handler="accept_exchange_invitation"/> <action handler="set" params="target_property=ui:interface:accept_trade_invitation:active|value=0"/> </proc> <!-- the player decline the invitation --> <proc id="player_decline_invitation"> <action handler="decline_exchange_invitation"/> <action handler="set" params="target_property=ui:interface:accept_trade_invitation:active|value=0"/> </proc> <!-- init the trade invitation modal box --> <proc id="init_invitation_box"> <!-- set the name of the player that propose the invitation --> <action handler="set_server_string" params="value=@@%other_player_name_id|target=other_player_name:uc_hardtext" /> </proc> <!-- INVITATION TO TRADE --> <!--<group type="modal" id="accept_trade_invitation" posref="MM MM" w="192" h="56" on_active="proc" on_active_params="init_invitation_box" mouse_pos="false" exit_click_out="false" on_enter="proc" on_enter_params="player_accept_invitation" >--> <!-- Title --> <!-- <view type="text" id="invite_phrase" posref="TL TL" x="4" y="-4" color="255 255 255 255" fontsize="12" shadow="true" hardtext="uiTradeWith" global_color="false" />--> <!-- name of the other user --> <!-- <view type="text" id="other_player_name" posref="MM MM" x="0" y="0" color="255 255 255 255" fontsize="12" shadow="true" hardtext="uiPlayerName" /> --> <!--<view type="text_id" id="invite_phrase" posref="TL TL" x="4" y="-4" color="255 255 255 255" fontsize="12" shadow="true" global_color="false" />--> <!-- ok / cancel buttons --> <!--<ctrl type="button" id="ok" button_type="push_button" posref="BR BR" x="-4" y="4" tx_normal="w_answer_16_valid.tga" tx_pushed="w_answer_16_valid.tga" tx_over="W_button_16_over.tga" onclick_l="proc" params_l="player_accept_invitation" global_color_normal="false" global_color_pushed="false" /> <ctrl type="button" id="cancel" button_type="push_button" posparent="ok" posref="TL TR" x="-4" tx_normal="w_answer_16_cancel.tga" tx_pushed="w_answer_16_cancel.tga" tx_over="W_button_16_over.tga" onclick_l="proc" params_l="player_decline_invitation" global_color_normal="false" global_color_pushed="false" /> </group>--> <group type="container" id="accept_trade_invitation" w="260" h="512" resizer="false" pop_max_h="512" active="false" savable="false" openable="false" opened="true" movable="true" on_close_button="proc" on_close_button_params="player_decline_invitation" title_opened="uiTradeInvitation" > <group id="content" child_resize_h="true" child_resize_hmargin="10" > <group id="inside" sizeref="w" posref="TL TL" y="-4" child_resize_h="true" child_resize_hmargin="6"> <view type="text_id" id="invite_phrase" posref="MM MM" x="0" y="0" color="255 255 255 255" fontsize="12" shadow="true" multi_line="true" multi_line_space="0" line_maxw="250" /> </group> <instance template="button_ok_cancel" posparent="inside" posref="BR TR" x="-4" y="-4" ok_text="uiAccept" cancel_text="uiDecline" onclick_ok="proc" onclick_ok_param="player_accept_invitation" onclick_cancel="proc" onclick_cancel_param="player_decline_invitation" /> </group> </group> <tree node="player_trade"> </tree> <tree node="accept_trade_invitation"> </tree> </interface_config>