Radial Menu (Sequence)
From SWGANH Wiki
- On clicking on an item the client sends a Packet to the server, which responds with specifics to the radial menu which is then shown by the client.
- If the client does not receive a response to his numbered request, the standard radial menu for the item will be shown and the request will be resend until an answer is received.
- In the CU and NGE Packets I have seen the server response always included the standard radial choices. If the standard choices in the server response are not send, the Client will show the standard choices nevertheless, but the choice count in the radial menu will begin for the added options with 1 again.
- eg 1) unequip 2) examine 3)destroy 1)attack 2)invite to group 3) open in new window
Client Packet for opening radial menu
[UINT16] 00 09 Data Channel A [UINT16] [UINT16] Server Sequence Opcode 1 [UINT32] 46 5e ce 80 Opcode [UINT32] 23 00 00 00 Int 1 [UINT32] 46 01 00 00 Int 2 -> Radial [UINT64] Player ID 00 00 00 00 unknown 3e dc 1f ab 11 00 00 00 Item ID 95 5c 2b 03 18 00 00 00 Again Player ID 03 00 00 00 Counter for the options of the Radial Menu 01 00 14 01 00 00 00 00 Options for Radial Menu Item 1 [UINT8] 01 Nr - this is radial Menu item [UINT8] 00 If a submenu, this lists the parent Menu Item. [UINT8] 14 the menu item to be displayed [UINT8] 01 Type of some sort - 1 is a standard Radial menu type from the item list If edited the server sends a 3 at this place 3 is a textually specified item [UINT32]length Length of text following an option 3 (0 for option 1) [UNICODE STRING] For an option of type 3, will be a uincode string detailing the stringtable where the text to be displayed is referencedn (i.e. @ui_radial:item_use) where @ stands for string/en/ 02 00 07 01 00 00 00 00 options for radial menu item 2 03 00 0e 01 00 00 00 00 ...... 01 counter of radial Packets send, so the client is able to match the response accordingly 6b 9d CRC
Server Response Packet for opening Radial Menu
09 00 Opcode 1 - Data Channel A ab cd Server Packet Count 46 5E CE 80 Opcode 2 0B 00 00 00 Int 1 47 01 00 00 Int 2 F5 E5 C8 91 0D 00 00 00 Player ID 00 00 00 00 4 bytes unknown CA 5B 90 19 17 00 00 00 Item ID F5 E5 C8 91 0D 00 00 00 again Player ID [UINT32 counter for the radial items to be displayed description for radial item [UINT8] Counter - thats radial item Nr 1..2..3..4 [UINT8] If this is a submenu here is the itemnumber of the parent [UINT8] thats the Nr of the item to be displayed - [UINT8] If modified by the server this is 3, else 1 [UINT32] Count Length of the UNICODE String, 0 if no string [STRING] Unicode Optional, if used points to the Stringtable, See above (further items) [UINT8] Radial Sequence of the corresponding client Pack
Radial Menu Items
This table comes from the client files. Specifically: datatables/player/radial_menu.iff
Type | Caption | Range | Command | useRadialTarget |
0 | UNKNOWN | 0 | 1 | |
1 | COMBAT_TARGET | 128 | 1 | |
2 | COMBAT_UNTARGET | 128 | 1 | |
3 | COMBAT_ATTACK | 128 | attack | 1 |
4 | COMBAT_PEACE | 128 | peace | 1 |
5 | COMBAT_DUEL | 128 | duel | 1 |
6 | COMBAT_DEATH_BLOW | 4 | deathBlow | 1 |
7 | EXAMINE | 128 | examine | 1 |
8 | TRADE_START | 8 | trade | 1 |
9 | TRADE_ACCEPT | 8 | tradeAccept | 1 |
10 | ITEM_PICKUP | 6 | pickup | 1 |
11 | ITEM_EQUIP | 6 | equip | 1 |
12 | ITEM_UNEQUIP | |||
13 | ITEM_DROP | |||
14 | ITEM_DESTROY | |||
15 | ITEM_TOKEN | |||
16 | ITEM_OPEN | |||
17 | ITEM_OPEN_NEW_WINDOW | |||
18 | ITEM_ACTIVATE | |||
19 | ITEM_DEACTIVATE | |||
20 | ITEM_USE | |||
21 | ITEM_USE_SELF | |||
22 | ITEM_USE_OTHER | |||
23 | ITEM_SIT | |||
24 | ITEM_MAIL | |||
25 | CONVERSE_START | |||
26 | CONVERSE_RESPOND | |||
27 | CONVERSE_RESPONSE | |||
28 | CONVERSE_STOP | |||
29 | CRAFT_OPTIONS | |||
30 | CRAFT_START | |||
31 | CRAFT_HOPPER_INPUT | |||
32 | CRAFT_HOPPER_OUTPUT | |||
33 | MISSION_TERMINAL_LIST | |||
34 | MISSION_DETAILS | |||
35 | LOOT | |||
36 | LOOT_ALL | |||
37 | GROUP_INVITE | |||
38 | GROUP_JOIN | |||
39 | GROUP_LEAVE | |||
40 | GROUP_KICK | |||
41 | GROUP_DISBAND | |||
42 | GROUP_DECLINE | |||
43 | EXTRACT_OBJECT | |||
44 | PET_CALL | |||
45 | TERMINAL_AUCTION_USE | |||
46 | CREATURE_FOLLOW | |||
47 | CREATURE_STOP_FOLLOW | |||
48 | SPLIT | |||
49 | IMAGEDESIGN | |||
50 | SET_NAME | |||
51 | ITEM_ROTATE | |||
52 | ITEM_ROTATE_RIGHT | |||
53 | ITEM_ROTATE_LEFT | |||
54 | ITEM_MOVE | |||
55 | ITEM_MOVE_FORWARD | |||
56 | ITEM_MOVE_BACK | |||
57 | ITEM_MOVE_UP | |||
58 | ITEM_MOVE_DOWN | |||
59 | PET_STORE | |||
60 | VEHICLE_GENERATE | |||
61 | VEHICLE_STORE | |||
62 | MISSION_ABORT | |||
63 | MISSION_END_DUTY | |||
64 | SHIP_MANAGE_COMPONENTS | |||
65 | WAYPOINT_AUTOPILOT | |||
66 | PROGRAM_DROID | |||
67 | SERVER_DIVIDER | |||
68 | SERVER_MENU1 | |||
69 | SERVER_MENU2 | |||
70 | SERVER_MENU3 | |||
71 | SERVER_MENU4 | |||
72 | SERVER_MENU5 | |||
73 | SERVER_MENU6 | |||
74 | SERVER_MENU7 | |||
75 | SERVER_MENU8 | |||
76 | SERVER_MENU9 | |||
77 | SERVER_MENU10 | |||
78 | SERVER_HARVESTER_MANAGE | |||
79 | SERVER_HOUSE_MANAGE | |||
80 | SERVER_FACTION_HALL_MANAGE | |||
81 | SERVER_HUE | |||
82 | SERVER_OBSERVE | |||
83 | SERVER_STOP_OBSERVING | |||
84 | SERVER_TRAVEL_OPTIONS | |||
85 | SERVER_BAZAAR_OPTIONS | |||
86 | SERVER_SHIPPING_OPTIONS | |||
87 | SERVER_HEAL_WOUND | |||
88 | SERVER_HEAL_WOUND_HEALTH | |||
89 | SERVER_HEAL_WOUND_ACTION | |||
90 | SERVER_HEAL_WOUND_STRENGTH | |||
91 | SERVER_HEAL_WOUND_CONSTITUTION | |||
92 | SERVER_HEAL_WOUND_QUICKNESS | |||
93 | SERVER_HEAL_WOUND_STAMINA | |||
94 | SERVER_HEAL_DAMAGE | |||
95 | SERVER_HEAL_STATE | |||
96 | SERVER_HEAL_STATE_STUNNED | |||
97 | SERVER_HEAL_STATE_BLINDED | |||
98 | SERVER_HEAL_STATE_DIZZY | |||
99 | SERVER_HEAL_STATE_INTIMIDATED | |||
100 | SERVER_HEAL_ENHANCE | |||
101 | SERVER_HEAL_ENHANCE_HEALTH | |||
102 | SERVER_HEAL_ENHANCE_ACTION | |||
103 | SERVER_HEAL_ENHANCE_STRENGTH | |||
104 | SERVER_HEAL_ENHANCE_CONSTITUTION | |||
105 | SERVER_HEAL_ENHANCE_QUICKNESS | |||
106 | SERVER_HEAL_ENHANCE_STAMINA | |||
107 | SERVER_HEAL_FIRSTAID | |||
108 | SERVER_HEAL_CURE_POISON | |||
109 | SERVER_HEAL_CURE_DISEASE | |||
110 | SERVER_HEAL_APPLY_POISON | |||
111 | SERVER_HEAL_APPLY_DISEASE | |||
112 | SERVER_HARVEST_CORPSE | |||
113 | SERVER_PERFORMANCE_LISTEN | |||
114 | SERVER_PERFORMANCE_WATCH | |||
115 | SERVER_PERFORMANCE_LISTEN_STOP | |||
116 | SERVER_PERFORMANCE_WATCH_STOP | |||
117 | SERVER_TERMINAL_PERMISSIONS | |||
118 | SERVER_TERMINAL_MANAGEMENT | |||
119 | SERVER_TERMINAL_PERMISSIONS_ENTER | |||
120 | SERVER_TERMINAL_PERMISSIONS_BANNED | |||
121 | SERVER_TERMINAL_PERMISSIONS_ADMIN | |||
122 | SERVER_TERMINAL_PERMISSIONS_VENDOR | |||
123 | SERVER_TERMINAL_PERMISSIONS_HOPPER | |||
124 | SERVER_TERMINAL_MANAGEMENT_STATUS | |||
125 | SERVER_TERMINAL_MANAGEMENT_PRIVACY | |||
126 | SERVER_TERMINAL_MANAGEMENT_TRANSFER | |||
127 | SERVER_TERMINAL_MANAGEMENT_RESIDENCE | |||
128 | SERVER_TERMINAL_MANAGEMENT_DESTROY | |||
129 | SERVER_TERMINAL_MANAGEMENT_PAY | |||
130 | SERVER_TERMINAL_CREATE_VENDOR | |||
131 | SERVER_GIVE_VENDOR_MAINTENANCE | |||
132 | SERVER_ITEM_OPTIONS | |||
133 | SERVER_SURVEY_TOOL_RANGE | |||
134 | SERVER_SURVEY_TOOL_RESOLUTION | |||
135 | SERVER_SURVEY_TOOL_CLASS | |||
136 | SERVER_PROBE_DROID_TRACK_TARGET | |||
137 | SERVER_PROBE_DROID_FIND_TARGET | |||
138 | SERVER_PROBE_DROID_ACTIVATE | |||
139 | SERVER_PROBE_DROID_BUY | |||
140 | SERVER_TEACH | |||
141 | PET_COMMAND | |||
142 | PET_FOLLOW | |||
143 | PET_STAY | |||
144 | PET_GUARD | |||
145 | PET_FRIEND | |||
146 | PET_ATTACK | |||
147 | PET_PATROL | |||
148 | PET_GET_PATROL_POINT | |||
149 | PET_CLEAR_PATROL_POINTS | |||
150 | PET_ASSUME_FORMATION_1 | |||
151 | PET_ASSUME_FORMATION_2 | |||
152 | PET_TRANSFER | |||
153 | PET_RELEASE | |||
154 | PET_TRICK_1 | |||
155 | PET_TRICK_2 | |||
156 | PET_TRICK_3 | |||
157 | PET_TRICK_4 | |||
158 | PET_GROUP | |||
159 | PET_TAME | |||
160 | PET_FEED | |||
161 | PET_SPECIAL_ATTACK_ONE | |||
162 | PET_SPECIAL_ATTACK_TWO | |||
163 | PET_RANGED_ATTACK | |||
164 | DICE_ROLL | |||
165 | DICE_TWO_FACE | |||
166 | DICE_THREE_FACE | |||
167 | DICE_FOUR_FACE | |||
168 | DICE_FIVE_FACE | |||
169 | DICE_SIX_FACE | |||
170 | DICE_SEVEN_FACE | |||
171 | DICE_EIGHT_FACE | |||
172 | DICE_COUNT_ONE | |||
173 | DICE_COUNT_TWO | |||
174 | DICE_COUNT_THREE | |||
175 | DICE_COUNT_FOUR | |||
176 | CREATE_BALLOT | |||
177 | VOTE | |||
178 | BOMBING_RUN | |||
179 | SELF_DESTRUCT | |||
180 | THIRTY_SEC | |||
181 | FIFTEEN_SEC | |||
182 | SERVER_CAMP_DISBAND | |||
183 | SERVER_CAMP_ASSUME_OWNERSHIP | |||
184 | SERVER_PROBE_DROID_PROGRAM | |||
185 | SERVER_GUILD_CREATE | |||
186 | SERVER_GUILD_INFO | |||
187 | SERVER_GUILD_MEMBERS | |||
188 | SERVER_GUILD_SPONSORED | |||
189 | SERVER_GUILD_ENEMIES | |||
190 | SERVER_GUILD_SPONSOR | |||
191 | SERVER_GUILD_DISBAND | |||
192 | SERVER_GUILD_NAMECHANGE | |||
193 | SERVER_GUILD_GUILD_MANAGEMENT | |||
194 | SERVER_GUILD_MEMBER_MANAGEMENT | |||
195 | SERVER_MANF_HOPPER_INPUT | |||
196 | SERVER_MANF_HOPPER_OUTPUT | |||
197 | SERVER_MANF_STATION_SCHEMATIC | |||
198 | ELEVATOR_UP | |||
199 | ELEVATOR_DOWN | |||
200 | SERVER_PET_OPEN | |||
201 | SERVER_PET_DPAD | |||
202 | SERVER_MED_TOOL_DIAGNOSE | |||
203 | SERVER_MED_TOOL_TENDWOUND | |||
204 | SERVER_MED_TOOL_TENDDAMAGE | |||
205 | SERVER_PET_MOUNT | |||
206 | SERVER_PET_DISMOUNT | |||
207 | SERVER_PET_TRAIN_MOUNT | |||
208 | SERVER_VEHICLE_ENTER | |||
209 | SERVER_VEHICLE_EXIT | |||
210 | OPEN_NAVICOMP_DPAD | |||
211 | INIT_NAVICOMP_DPAD | |||
212 | CITY_STATUS | |||
213 | CITY_CITIZENS | |||
214 | CITY_STRUCTURES | |||
215 | CITY_TREASURY | |||
216 | CITY_MANAGEMENT | |||
217 | CITY_NAME | |||
218 | CITY_MILITIA | |||
219 | CITY_TAXES | |||
220 | CITY_TREASURY_DEPOSIT | |||
221 | CITY_TREASURY_WITHDRAW | |||
222 | CITY_REGISTER | |||
223 | CITY_RANK | |||
224 | CITY_ADMIN_1 | |||
225 | CITY_ADMIN_2 | |||
226 | CITY_ADMIN_3 | |||
227 | CITY_ADMIN_4 | |||
228 | CITY_ADMIN_5 | |||
229 | CITY_ADMIN_6 | |||
230 | MEMORY_CHIP_PROGRAM | |||
231 | MEMORY_CHIP_TRANSFER | |||
232 | MEMORY_CHIP_ANALYZE | |||
233 | EQUIP_DROID_ON_SHIP |