AkadenTK / superwarp

Addon for Windower 4 for FFXI that allows text commands to utilize homepoint, waypoint and survival guide teleport npcs
41 stars 31 forks source link

Suggestion: Add entry for Sortie bosses #37

Closed bsamsom closed 1 week ago

bsamsom commented 1 year ago

Great addon, it would be amazing if you could add an entry into the Sortie bosses/teleports

ie warps for using:

blackfiveo commented 1 year ago

Yes please!!! //dg //dd //db for Sortie!!!!

eaglejs commented 1 year ago

I know that I have been looking into this for a bit. I wrote an addon that logs all of the menu interactions, and I believe I have captured all variables that are necessary. I believe Sortie, and Odyssey follow very similar structures to Escha for example.

it should be something like //sortie enter for each Diaphanous Gadget or Bitzer it should be something like //sortie A to warp to #A from any Diaphanous Device

Here is the path I take which I recorded these warp interactions, and it does have all of the variables necessary. I have started working on this. Eventually I will be working on Odyssey. Hopefully I will make progress on this since packets are still a scary thing for me.

[INCOMING] = Incoming Packet [OUTGOING] = Outgoing Packet

# Enter Ghatjot
[INCOMING] NPC_NAME: Diaphanous Gadget #A | MENU_ID: 1005 | ZONE_ID: 133 | Menu Parameters: | POS: { x = -900.02185058594, y = 418.99710083008, z = -200.25}, 
[OUTGOING] | Target: 21001013 | Option Index: 100 | Target Index: 821 | Menu ID: 1005 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target:  | Option Index:  | Target Index: 821 | Menu ID: 1005 | Zone ID: 133 | _unknown1: 1 | _unknown2: 1 | _unknown3:  | hex: 5C106F0400001C440100C84200001BC435734001010000008500ED0335030100 |Warp Point POS: { x = 624, y = -620, z = 100.00000762939}, 
[OUTGOING] | Target: 21001013 | Option Index: 1 | Target Index: 821 | Menu ID: 1005 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 

# Exiting Ghatjot
[INCOMING] NPC_NAME: Diaphanous Gadget | MENU_ID: 1009 | ZONE_ID: 133 | Menu Parameters:  | POS: { x = 619.05493164062, y = -618.87915039062, z = 99.75}, 
[OUTGOING] | Target: 21001017 | Option Index: 100 | Target Index: 825 | Menu ID: 1009 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target:  | Option Index:  | Target Index: 825 | Menu ID: 1009 | Zone ID: 133 | _unknown1: 1 | _unknown2: 1 | _unknown3:  | hex: 5C103E06010061C4010048C30100D04339734001010000008500F1033903013F |Warp Point POS: { x = -900.00006103516, y = 416.00003051758, z = -200.00001525879}, 
[OUTGOING] | Target: 21001017 | Option Index: 1 | Target Index: 825 | Menu ID: 1009 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 

# Enter Basement to #F
[INCOMING] NPC_NAME: Diaphanous Bitzer #B | MENU_ID: 1011 | ZONE_ID: 133 | Menu Parameters:  | POS: { x = -406.83178710938, y = -20.407138824463, z = -139.90058898926}, 
[OUTGOING] | Target: 21001025 | Option Index: 100 | Target Index: 833 | Menu ID: 1011 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target:  | Option Index:  | Target Index: 833 | Menu ID: 1011 | Zone ID: 133 | _unknown1: 2 | _unknown2: 1 | _unknown3:  | hex: 5C10DF0C00E01D440100C8420000A0C141734001020000008500F30341030100 |Warp Point POS: { x = 631.5, y = -20, z = 100.00000762939}, 
[OUTGOING] | Target: 21001025 | Option Index: 2 | Target Index: 833 | Menu ID: 1011 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 

# Grabing Chest from #F Area
[INCOMING] NPC_NAME: Diaphanous Bitzer | MENU_ID: 1015 | ZONE_ID: 133 | Menu Parameters:  | POS: { x = 544.91534423828, y = 278.93807983398, z = 69.75}, 
[OUTGOING] | Target: 21001029 | Option Index: 0 | Target Index: 837 | Menu ID: 1015 | Zone ID: 133 | _unknown1: 16384 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 

# Exiting Basement to #B
[INCOMING] NPC_NAME: Diaphanous Bitzer | MENU_ID: 1015 | ZONE_ID: 133 | Menu Parameters:  | POS: { x = 544.76904296875, y = 279.8928527832, z = 69.75}, 
[OUTGOING] | Target: 21001029 | Option Index: 100 | Target Index: 837 | Menu ID: 1015 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target:  | Option Index:  | Target Index: 837 | Menu ID: 1015 | Zone ID: 133 | _unknown1: 6 | _unknown2: 1 | _unknown3:  | hex: 5C10FF100140CAC300000CC30000A0C145734001060000008500F70345030100 |Warp Point POS: { x = -404.50003051758, y = -20, z = -140}, 
[OUTGOING] | Target: 21001029 | Option Index: 6 | Target Index: 837 | Menu ID: 1015 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 

# Enter Skamora
[INCOMING] NPC_NAME: Diaphanous Gadget #C | MENU_ID: 1007 | ZONE_ID: 133 | Menu Parameters:  | POS: { x = -20.185121536255, y = -458.36709594727, z = -200.25}, 
[OUTGOING] | Target: 21001015 | Option Index: 100 | Target Index: 823 | Menu ID: 1007 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target: 21001015 | Option Index: 100 | Target Index: 823 | Menu ID: 1007 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target:  | Option Index:  | Target Index: 823 | Menu ID: 1007 | Zone ID: 133 | _unknown1: 1 | _unknown2: 1 | _unknown3:  | hex: 5C106C1700001C440100C84200001BC437734001010000008500EF0337030100 |Warp Point POS: { x = 624, y = -620, z = 100.00000762939}, 
[OUTGOING] | Target: 21001015 | Option Index: 1 | Target Index: 823 | Menu ID: 1007 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 

# Exiting Skamora
[INCOMING] NPC_NAME: Diaphanous Gadget | MENU_ID: 1009 | ZONE_ID: 133 | Menu Parameters:  | POS: { x = 619.42297363281, y = -620.15112304688, z = 99.75}, 
[OUTGOING] | Target: 21001017 | Option Index: 100 | Target Index: 825 | Menu ID: 1009 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target:  | Option Index:  | Target Index: 825 | Menu ID: 1009 | Zone ID: 133 | _unknown1: 3 | _unknown2: 1 | _unknown3:  | hex: 5C10071A0000A0C1010048C30100E4C339734001030000008500F103390301BF |Warp Point POS: { x = -20, y = -456.00003051758, z = -200.00001525879}, 
[OUTGOING] | Target: 21001017 | Option Index: 3 | Target Index: 825 | Menu ID: 1009 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 

# Enter Basement to #G
[INCOMING] NPC_NAME: Diaphanous Bitzer #C | MENU_ID: 1012 | ZONE_ID: 133 | Menu Parameters:  | POS: { x = -460.08901977539, y = -72.501281738281, z = -139.90058898926}, 
[OUTGOING] | Target: 21001026 | Option Index: 100 | Target Index: 834 | Menu ID: 1012 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target:  | Option Index:  | Target Index: 834 | Menu ID: 1012 | Zone ID: 133 | _unknown1: 3 | _unknown2: 1 | _unknown3:  | hex: 5C10931B000011440100C84200008FC242734001030000008500F4034203013F |Warp Point POS: { x = 580, y = -71.5, z = 100.00000762939}, 
[OUTGOING] | Target: 21001026 | Option Index: 3 | Target Index: 834 | Menu ID: 1012 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 

# Exit Basement to #C
[INCOMING] NPC_NAME: Diaphanous Bitzer | MENU_ID: 1016 | ZONE_ID: 133 | Menu Parameters:  | POS: { x = 895.89251708984, y = -230.56930541992, z = 80}, 
[OUTGOING] | Target: 21001030 | Option Index: 100 | Target Index: 838 | Menu ID: 1016 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target:  | Option Index:  | Target Index: 838 | Menu ID: 1016 | Zone ID: 133 | _unknown1: 7 | _unknown2: 1 | _unknown3:  | hex: 5C10E81D0100E6C300000CC3000097C246734001070000008500F8034603013F |Warp Point POS: { x = -460.00003051758, y = -75.5, z = -140}, 
[OUTGOING] | Target: 21001030 | Option Index: 7 | Target Index: 838 | Menu ID: 1016 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 

# Travel to #C to #A
[INCOMING] NPC_NAME: Diaphanous Device #C | MENU_ID: 1003 | ZONE_ID: 133 | Menu Parameters:  | POS: { x = -460.28268432617, y = -138.44062805176, z = -150.25}, 
[OUTGOING] | Target: 21001011 | Option Index: 100 | Target Index: 819 | Menu ID: 1003 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target:  | Option Index:  | Target Index: 819 | Menu ID: 1003 | Zone ID: 133 | _unknown1: 2 | _unknown2: 1 | _unknown3:  | hex: 5C10401E0100E6C3000016C30100C04233734001020000008500EB033303013F |Warp Point POS: { x = -460.00003051758, y = 96.000007629395, z = -150}, 
[OUTGOING] | Target: 21001011 | Option Index: 2 | Target Index: 819 | Menu ID: 1003 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 

# Travel from #A to #B
[INCOMING] NPC_NAME: Diaphanous Device #A | MENU_ID: 1001 | ZONE_ID: 133 | Menu Parameters:  | POS: { x = -460.03219604492, y = 97.207092285156, z = -150.25}, 
[OUTGOING] | Target: 21001009 | Option Index: 100 | Target Index: 817 | Menu ID: 1001 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target:  | Option Index:  | Target Index: 817 | Menu ID: 1001 | Zone ID: 133 | _unknown1: 3 | _unknown2: 1 | _unknown3:  | hex: 5C10611E0100ACC3000016C30000A0C131734001030000008500E9033103017F |Warp Point POS: { x = -344.00003051758, y = -20, z = -150}, 
[OUTGOING] | Target: 21001009 | Option Index: 3 | Target Index: 817 | Menu ID: 1001 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 

# Travel from #B to #D
[INCOMING] NPC_NAME: Diaphanous Device #B | MENU_ID: 1002 | ZONE_ID: 133 | Menu Parameters:  | POS: { x = -342.23318481445, y = -20.590301513672, z = -150.25}, 
[OUTGOING] | Target: 21001010 | Option Index: 100 | Target Index: 818 | Menu ID: 1002 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target:  | Option Index:  | Target Index: 818 | Menu ID: 1002 | Zone ID: 133 | _unknown1: 5 | _unknown2: 1 | _unknown3:  | hex: 5C10851E000010C4000016C30000A0C132734001050000008500EA0332030100 |Warp Point POS: { x = -576, y = -20, z = -150}, 
[OUTGOING] | Target: 21001010 | Option Index: 5 | Target Index: 818 | Menu ID: 1002 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 

# Travel from #D back to Main Entrance
[INCOMING] NPC_NAME: Diaphanous Device #D | MENU_ID: 1004 | ZONE_ID: 133 | Menu Parameters:  | POS: { x = -578.35705566406, y = -20.115079879761, z = -150.25}, 
[OUTGOING] | Target: 21001012 | Option Index: 100 | Target Index: 820 | Menu ID: 1004 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target:  | Option Index:  | Target Index: 820 | Menu ID: 1004 | Zone ID: 133 | _unknown1: 1 | _unknown2: 1 | _unknown3:  | hex: 5C10C91E010051C4010032C30000A0C134734001010000008500EC0334030100 |Warp Point POS: { x = -836.00006103516, y = -20, z = -178.00001525879}, 
[OUTGOING] | Target: 21001012 | Option Index: 1 | Target Index: 820 | Menu ID: 1004 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 

# Travel from Main Entrance to #C
[INCOMING] NPC_NAME: Diaphanous Device | MENU_ID: 1000 | ZONE_ID: 133 | Menu Parameters:  | POS: { x = -838.11755371094, y = -19.999969482422, z = -178}, 
[OUTGOING] | Target: 21001008 | Option Index: 100 | Target Index: 816 | Menu ID: 1000 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target:  | Option Index:  | Target Index: 816 | Menu ID: 1000 | Zone ID: 133 | _unknown1: 4 | _unknown2: 1 | _unknown3:  | hex: 5C10E91E0100E6C3000016C3000008C330734001040000008500E803300301BF |Warp Point POS: { x = -460.00003051758, y = -136, z = -150}, 
[OUTGOING] | Target: 21001008 | Option Index: 4 | Target Index: 816 | Menu ID: 1000 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 

# Travel from #C to #D
[INCOMING] NPC_NAME: Diaphanous Device #C | MENU_ID: 1003 | ZONE_ID: 133 | Menu Parameters:  | POS: { x = -460.06781005859, y = -138.72415161133, z = -150.25}, 
[OUTGOING] | Target: 21001011 | Option Index: 100 | Target Index: 819 | Menu ID: 1003 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target:  | Option Index:  | Target Index: 819 | Menu ID: 1003 | Zone ID: 133 | _unknown1: 5 | _unknown2: 1 | _unknown3:  | hex: 5C10091F000010C4000016C30000A0C133734001050000008500EB0333030100 |Warp Point POS: { x = -576, y = -20, z = -150}, 
[OUTGOING] | Target: 21001011 | Option Index: 5 | Target Index: 819 | Menu ID: 1003 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 

# Enter Basement to #H 
[INCOMING] NPC_NAME: Diaphanous Bitzer #D | MENU_ID: 1013 | ZONE_ID: 133 | Menu Parameters:  | POS: { x = -512.57507324219, y = -19.973934173584, z = -139.90058898926}, 
[OUTGOING] | Target: 21001027 | Option Index: 100 | Target Index: 835 | Menu ID: 1013 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target:  | Option Index:  | Target Index: 835 | Menu ID: 1013 | Zone ID: 133 | _unknown1: 4 | _unknown2: 1 | _unknown3:  | hex: 5C10621F002004440100C8420000A0C143734001040000008500F5034303017F |Warp Point POS: { x = 528.5, y = -20, z = 100.00000762939}, 
[OUTGOING] | Target: 21001027 | Option Index: 4 | Target Index: 835 | Menu ID: 1013 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 

# Exit Basement to #D
[INCOMING] NPC_NAME: Diaphanous Bitzer | MENU_ID: 1017 | ZONE_ID: 133 | Menu Parameters:  | POS: { x = 461.13729858398, y = -270.39254760742, z = 90}, 
[OUTGOING] | Target: 21001031 | Option Index: 100 | Target Index: 839 | Menu ID: 1017 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target:  | Option Index:  | Target Index: 839 | Menu ID: 1017 | Zone ID: 133 | _unknown1: 8 | _unknown2: 1 | _unknown3:  | hex: 5C10762000E000C400000CC30000A0C147734001080000008500F9034703017F |Warp Point POS: { x = -515.5, y = -20, z = -140}, 
[OUTGOING] | Target: 21001031 | Option Index: 8 | Target Index: 839 | Menu ID: 1017 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 

# Enter Basement to #H
[INCOMING] NPC_NAME: Diaphanous Bitzer #D | MENU_ID: 1013 | ZONE_ID: 133 | Menu Parameters:  | POS: { x = -512.86254882812, y = -20.269004821777, z = -139.90058898926}, 
[OUTGOING] | Target: 21001027 | Option Index: 100 | Target Index: 835 | Menu ID: 1013 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target:  | Option Index:  | Target Index: 835 | Menu ID: 1013 | Zone ID: 133 | _unknown1: 4 | _unknown2: 1 | _unknown3:  | hex: 5C10A620002004440100C8420000A0C143734001040000008500F5034303017F |Warp Point POS: { x = 528.5, y = -20, z = 100.00000762939}, 
[OUTGOING] | Target: 21001027 | Option Index: 4 | Target Index: 835 | Menu ID: 1013 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
[OUTGOING] | Target: 21001027 | Option Index: 4 | Target Index: 835 | Menu ID: 1013 | Zone ID: 133 | _unknown1: 0 | _unknown2: 0 | _unknown3:  | hex:  |Warp Point POS: { x = nil, y = nil, z = nil}, 
eaglejs commented 1 year ago

Updated my comment above with very important info. Related to this feature.

blackfiveo commented 1 year ago

I wonder if this are the same for all 3 zones: {id=275,en="Outer Ra'Kaznar [U1]" {id=133,en="Outer Ra'Kaznar [U2]" {id=189,en="Outer Ra'Kaznar [U3]

I see you have listed Zone 133

eaglejs commented 1 year ago

That's a good point, I think multiple tests might be in order.

I am predicting we will need a structure like this.

warpdata = T{
        ['Outer Ra\'Kaznar [U1]'] = T{
            ['1'] = { index = 1, zone = 275, npc = 816, offset = 1, x = -838.11755371094, y = -19.999969482422, z = -178, h = 0, unknown1 = 1}, -- Diaphanous Device
            ['A'] = { index = 2, zone = 275, npc = 817, offset = 2, x = -460.03219604492, y = 97.207092285156, z = -150.25, h = 63, unknown1 = 2}, -- Diaphanous Device #A
            ['B'] = { index = 3, zone = 275, npc = 818, offset = 3, x = -342.23318481445, y = -20.590301513672, z = -150.25, h = 127, unknown1 = 3}, -- Diaphanous Device #B
            ['C'] = { index = 4, zone = 275, npc = 819, offset = 4, x = -460.28268432617, y = -138.44062805176, z = -150.25, h = 191, unknown1 = 4}, -- Diaphanous Device #C
            ['D'] = { index = 5, zone = 275, npc = 820, offset = 5, x = -578.35705566406, y = -20.115079879761, z = -150.25, h = 0, unknown1 = 5}, -- Diaphanous Device #D
            -- ['6'] = { index = 100, zone = 275, npc = 821, offset = 100, -900.02185058594, y = 418.99710083008, z = -200.25, h = 0, unknown1 = 1}, -- Diaphanous Gadget #A
        },
        ['Outer Ra\'Kaznar [U2]'] = T{
            ['1'] = { index = 1, zone = 133, npc = 816, offset = 1, x = -838.11755371094, y = -19.999969482422, z = -178, h = 0, unknown1 = 1}, -- Diaphanous Device
            ['A'] = { index = 2, zone = 133, npc = 817, offset = 2, x = -460.03219604492, y = 97.207092285156, z = -150.25, h = 63, unknown1 = 2}, -- Diaphanous Device #A
            ['B'] = { index = 3, zone = 133, npc = 818, offset = 3, x = -342.23318481445, y = -20.590301513672, z = -150.25, h = 127, unknown1 = 3}, -- Diaphanous Device #B
            ['C'] = { index = 4, zone = 133, npc = 819, offset = 4, x = -460.28268432617, y = -138.44062805176, z = -150.25, h = 191, unknown1 = 4}, -- Diaphanous Device #C
            ['D'] = { index = 5, zone = 133, npc = 820, offset = 5, x = -578.35705566406, y = -20.115079879761, z = -150.25, h = 0, unknown1 = 5}, -- Diaphanous Device #D
            -- ['6'] = { index = 100, zone = 133, npc = 821, offset = 100, -900.02185058594, y = 418.99710083008, z = -200.25, h = 0, unknown1 = 1}, -- Diaphanous Gadget #A
        },
        ['Outer Ra\'Kaznar [U3]'] = T{
            ['1'] = { index = 1, zone = 189, npc = 816, offset = 1, x = -838.11755371094, y = -19.999969482422, z = -178, h = 0, unknown1 = 1}, -- Diaphanous Device
            ['A'] = { index = 2, zone = 189, npc = 817, offset = 2, x = -460.03219604492, y = 97.207092285156, z = -150.25, h = 63, unknown1 = 2}, -- Diaphanous Device #A
            ['B'] = { index = 3, zone = 189, npc = 818, offset = 3, x = -342.23318481445, y = -20.590301513672, z = -150.25, h = 127, unknown1 = 3}, -- Diaphanous Device #B
            ['C'] = { index = 4, zone = 189, npc = 819, offset = 4, x = -460.28268432617, y = -138.44062805176, z = -150.25, h = 191, unknown1 = 4}, -- Diaphanous Device #C
            ['D'] = { index = 5, zone = 189, npc = 820, offset = 5, x = -578.35705566406, y = -20.115079879761, z = -150.25, h = 0, unknown1 = 5}, -- Diaphanous Device #D
            -- ['6'] = { index = 100, zone = 189, npc = 821, offset = 100, -900.02185058594, y = 418.99710083008, z = -200.25, h = 0, unknown1 = 1}, -- Diaphanous Gadget #A
        }
    },
blackfiveo commented 1 year ago

yes agreed, I would confirm, all 3 zone's information, maybe frustrating because you dont get to pick which zone it puts you into!

eaglejs commented 1 year ago

If you have multiple characters, one might be able to force it. 🗡️

eaglejs commented 1 year ago

It looks like I still might be missing the uknown_1 value. I am testing in Escha right now, and seeing if I can grab that value from the portals there, and I'm not successful. Still looking into it.

-- Actually, never mind, it is grabbing it correctly. Just cleaning up this log so it is easier to read... It's a bit tedious finding the correct values, and that opens me up to mistakes.

Screenshot 2023-08-17 at 8 39 59 PM
blackfiveo commented 1 year ago

It looks like I still might be missing the uknown_1 value. I am testing in Escha right now, and seeing if I can grab that value from the portals there, and I'm not successful. Still looking into it.

-- Actually, never mind, it is grabbing it correctly. Just cleaning up this log so it is easier to read... It's a bit tedious finding the correct values, and that opens me up to mistakes.

Screenshot 2023-08-17 at 8 39 59 PM

Any verification if zone U1/U2/U3 are yeilding different reseults?

eaglejs commented 1 year ago

So far I have only been in 133. But I keep recording and I have friends running the script as well. We are working to solve this one. There are a few issues to be concerned about. We want to make sure one can't just warp to someone else's instance. For example, in Odyssey, you can see other people in your zone, if you are in Sheol A, you might be able to warp to B. We don't want that to happen. :)

AkadenTK commented 1 year ago

Just here to say I'm proud of you guys and I'm excited to see the full data set :)

I wish I had time to explore like you guys these days. I'll try to find some time to mock up a teleport system so you guys can put the data in and test.

My main concern about adding it to superwarp is simply the KI checking business. Don't want to anger SE with a system that lets you bypass their access checking.

eaglejs commented 1 year ago

Agreed! These two areas are definitely a bit different than the rest of the warp-able areas.I've been basing some of my work off of what you have done in Escha, since they are the closest I think. But multiple instances in one zone where everyone is in seems a bit sketch to work with. So more data is needed I think. :)

eaglejs commented 1 year ago

I going to push this up here. I need some help. I am on one of the least populated servers, and after several days, I still can't seem to get to a different instance... Maybe someone in here can have better luck. :)

This addon I made is called MenuLogs... It takes most of the things that SuperWarp debugger has in it, and writes to a log file while you have it loaded. You only need to run it on one character, and it will create a log based on your username.

Be careful, I do have it clear out the logs after every reload or load of the addon, blowing away any progress you have made. It's quick and dirty, but it should suffice for what we are trying to achieve. I would say, once you are in the instance, load menulogs, and interact with as many warp nodes as possible., it will create a log, that has all of the variables (that I know of) that is needed for what we are trying to achieve. Once you are done, you can copy it out into another log files if you want and unload the addon.

_addon.name = 'MenuLogs'
_addon.author = 'eaglejs'
_addon.version = "1.2023.8.21"
_addon.commands = {'menulogs', 'mlogs'}

require('logger')
require('chat')
local packets = require('packets')

local MenuLogs = {}
local player = windower.ffxi.get_player()
local filePath = windower.addon_path .. "logs/" .. player.name .. ".log"

function MenuLogs.takeSnapshotIncomingMenuParameters(pkg)
    local pl = windower.ffxi.get_player()
    player = windower.ffxi.get_mob_by_index(pl.index)
    local str =
        ('[INCOMING] NPC_NAME: %s | MENU_ID: %s | ZONE_ID: %s | NPC: %s | NPC INDEX: %s | _unk1: %s '):format(
            pkg.npcName or '',
            pkg.Menu_ID or '',
            pkg.Zone_ID or '',
            pkg.npc or '',
            pkg.npcIndex or '',
            pkg._unknown1 or '')
    MenuLogs.flog("logs/" .. player.name .. ".log", str)
end

function MenuLogs.takeSnapshotIncomingMenuData(pkg)
    local pl = windower.ffxi.get_player()
    player = windower.ffxi.get_mob_by_index(pl.index)
    local str = ('[INCOMING] NPC_NAME: %s | MENU_ID: %s | ZONE_ID: %s'):format(
        pkg.npcName or '',
        pkg.Menu_ID or '',
        pkg.Zone_ID or '') .. (' | POS: { x = %s, y = %s, z = %s }'):format(tostring(player.x), tostring(player.y), tostring(player.z))
    MenuLogs.flog("logs/" .. player.name .. ".log", str)
end

function MenuLogs.takeSnapshotOutgoingMenuData(pkg)
    local pl = windower.ffxi.get_player()
    player = windower.ffxi.get_mob_by_index(pl.index)
    local str = ('[OUTGOING] Target idx: %s | zone_id: %s | _unk1: %s | _unk2: %s | _unk3: %s | hex: %s | '):format(
        pkg.targetIndex,
        pkg.Zone_ID,
        pkg.unknown1,
        pkg.unknown2,
        pkg.unknown3,
        pkg.hex_dump) .. ('Warp Point POS: { x = %s, y = %s, z = %s }'):format(tostring(pkg.x), tostring(pkg.y), tostring(pkg.z))
    MenuLogs.flog("logs/" .. player.name .. ".log", str)
end

windower.register_event('load', function()
    local file = io.open(filePath, "w+")
    io.output(file)
    coroutine.yield()
    io.close(file)
end)

windower.register_event('incoming chunk', function(id, packet, data, modified, is_injected, is_blocked)
    if id == 0x033 then -- String NPC Interaction Type 2
        local npcInteraction = packets.parse('incoming', data)
        local package = {
            npc = npcInteraction['NPC'],
            npcIndex = npcInteraction['NPC Index'],
            Zone_ID = npcInteraction['Zone'],
            Menu_ID = npcInteraction['Menu ID'],
            _unknown1 = npcInteraction['unknown1'],
            npcName = npcInteraction['NPC Name'],
            menuParameters = npcInteraction['Menu Parameters']
        }
        MenuLogs.takeSnapshotIncomingMenuParameters(package)
    elseif id == 0x034 then -- String NPC Interaction
        local npcInteraction = packets.parse('incoming', data)
        local package = {
            npcName = windower.ffxi.get_mob_by_id(npcInteraction["NPC"]).name,
            Menu_ID = npcInteraction['Menu ID'],
            Zone_ID = npcInteraction['Zone'],
            menuParameters = npcInteraction['Menu Parameters']
        }
        MenuLogs.takeSnapshotIncomingMenuData(package)
    end
end)
windower.register_event('outgoing chunk', function(id,data,modified,injected,blocked)
    if id == 0x05B or id == 0x05C then
        local package = {
            Menu_ID = 0,
            Zone_ID = 0,
            optionIndex = 0,
            target = 0,
            targetIndex = 0,
            unknown1 = 0,
            unknown2 = 0,
            unknown3 = 0,
            x = 0,
            y = 0,
            z = 0,
            hex_dump = 0
        }
        if id == 0x05C then
            local menuOptions = packets.parse('outgoing', data)
            local t = windower.ffxi.get_mob_by_index(menuOptions['Target Index'])
            if t then
                package.Menu_ID = menuOptions['Menu ID'] or 0
                package.Zone_ID = menuOptions['Zone'] or 0
                package.optionIndex = menuOptions['Option Index'] or 0
                package.targetIndex = menuOptions['Target Index'] or 0
                package.unknown1 = menuOptions['_unknown1'] or 0
                package.unknown2 = menuOptions['_unknown2'] or 0
                package.unknown3 = menuOptions['_unknown3'] or 0
                package.x = menuOptions['X'] or 0
                package.y = menuOptions['Y'] or 0
                package.z = menuOptions['Z'] or 0

                if not injected then
                    package.hex_dump = data:hex() or 0
                end
            end
        elseif id == 0x05B then
            -- print(data:unpack('b7b4b3b7b8', 9))
            local menuOptions = packets.parse('outgoing', data)
            local t = windower.ffxi.get_mob_by_index(menuOptions['Target Index'])
            if t then
                package.Menu_ID = menuOptions['Menu ID'] or 0
                package.Zone_ID = menuOptions['Zone'] or 0
                package.automatedMessage = menuOptions['Automated Message'] or false
                package.optionIndex = menuOptions['Option Index'] or 0
                package.target = menuOptions['Target'] or 0
                package.targetIndex = menuOptions['Target Index'] or 0
                package.unknown1 = menuOptions['_unknown1'] or 0
                package.unknown2 = menuOptions['_unknown2'] or 0
            end
        end
        MenuLogs.takeSnapshotOutgoingMenuData(package)
    end
end)

function MenuLogs.flog(filename, value)
    filename = filename or logger.settings.defaultfile

    local fh, err = io.open(windower.addon_path .. filename, 'a')
    if fh == nil then
        if err ~= nil then
            error('File error:', 0)
        else
            error('File error:', 0)
        end
    else
        fh:write(value .. ', \n')
        fh:close()
    end
end
eaglejs commented 1 year ago

Good news everyone! I was able to get into all three instances of Sortie, U1, U2, and U3. All ID's and values are the same, except for the zone ID's, and possibly POS locations. I did notice that another group was in the same zone as one of my characters in U2 as well. I have a hunch that POS locations might be different per area.

Here is a small sample from each zone.

Outer Ra'Kaznar [U1]

[INCOMING] NPC_NAME: Diaphanous Transposer | MENU_ID: 68 | ZONE_ID: 267 | POS: { x = -249.66738891602, y = 362.95602416992, z = 3.232266664505 }, 
[OUTGOING] Target idx: 411 | Option idx: 1 | zone_id: 267 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 411 | Option idx: 1 | zone_id: 267 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[INCOMING] NPC_NAME: Diaphanous Device | MENU_ID: 1000 | ZONE_ID: 275 | POS: { x = -841.57415771484, y = -20.108432769775, z = -178 }, 
[OUTGOING] Target idx: 816 | Option idx: 100 | zone_id: 275 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 816 | Option idx: 0 | zone_id: 275 | _unk1: 2 | _unk2: 1 | _unk3: 0 | hex: 5C1028010100E6C3000016C30100C04230634001020000001301E8033003013F | Warp Point POS: { x = -460.00003051758, y = 96.000007629395, z = -150 }, 
[OUTGOING] Target idx: 816 | Option idx: 2 | zone_id: 275 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[INCOMING] NPC_NAME: Diaphanous Device #A | MENU_ID: 1001 | ZONE_ID: 275 | POS: { x = -460.05804443359, y = 98.186569213867, z = -150.25 }, 
[OUTGOING] Target idx: 817 | Option idx: 100 | zone_id: 275 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 817 | Option idx: 0 | zone_id: 275 | _unk1: 3 | _unk2: 1 | _unk3: 0 | hex: 5C1053010100ACC3000016C30000A0C131634001030000001301E9033103017F | Warp Point POS: { x = -344.00003051758, y = -20, z = -150 }, 
[OUTGOING] Target idx: 817 | Option idx: 0 | zone_id: 275 | _unk1: 3 | _unk2: 1 | _unk3: 0 | hex: 5C1053010100ACC3000016C30000A0C131634001030000001301E9033103017F | Warp Point POS: { x = -344.00003051758, y = -20, z = -150 }, 
[OUTGOING] Target idx: 817 | Option idx: 3 | zone_id: 275 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[INCOMING] NPC_NAME: Diaphanous Device #B | MENU_ID: 1002 | ZONE_ID: 275 | POS: { x = -342.79974365234, y = -19.972204208374, z = -150.25 }, 
[OUTGOING] Target idx: 818 | Option idx: 100 | zone_id: 275 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 818 | Option idx: 0 | zone_id: 275 | _unk1: 4 | _unk2: 1 | _unk3: 0 | hex: 5C1070010100E6C3000016C3000008C332634001040000001301EA03320301BF | Warp Point POS: { x = -460.00003051758, y = -136, z = -150 }, 
[OUTGOING] Target idx: 818 | Option idx: 0 | zone_id: 275 | _unk1: 4 | _unk2: 1 | _unk3: 0 | hex: 5C1070010100E6C3000016C3000008C332634001040000001301EA03320301BF | Warp Point POS: { x = -460.00003051758, y = -136, z = -150 }, 
[OUTGOING] Target idx: 818 | Option idx: 4 | zone_id: 275 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[INCOMING] NPC_NAME: Diaphanous Device #C | MENU_ID: 1003 | ZONE_ID: 275 | POS: { x = -459.95309448242, y = -137.77955627441, z = -150.25 }, 
[OUTGOING] Target idx: 819 | Option idx: 100 | zone_id: 275 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 819 | Option idx: 0 | zone_id: 275 | _unk1: 5 | _unk2: 1 | _unk3: 0 | hex: 5C109801000010C4000016C30000A0C133634001050000001301EB0333030100 | Warp Point POS: { x = -576, y = -20, z = -150 }, 
[OUTGOING] Target idx: 819 | Option idx: 5 | zone_id: 275 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[INCOMING] NPC_NAME: Diaphanous Device #D | MENU_ID: 1004 | ZONE_ID: 275 | POS: { x = -578.91284179688, y = -19.490182876587, z = -150.25 }, 
[OUTGOING] Target idx: 820 | Option idx: 100 | zone_id: 275 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 820 | Option idx: 100 | zone_id: 275 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 820 | Option idx: 0 | zone_id: 275 | _unk1: 1 | _unk2: 1 | _unk3: 0 | hex: 5C10EC01010051C4010032C30000A0C134634001010000001301EC0334030100 | Warp Point POS: { x = -836.00006103516, y = -20, z = -178.00001525879 }, 
[OUTGOING] Target idx: 820 | Option idx: 1 | zone_id: 275 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 

Outer Ra'Kaznar [U2]

[INCOMING] NPC_NAME: Diaphanous Transposer | MENU_ID: 72 | ZONE_ID: 267 | POS: { x = -246.99052429199, y = 361.09994506836, z = 3 }, 
[OUTGOING] Target idx: 411 | Option idx: 1 | zone_id: 267 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 411 | Option idx: 2 | zone_id: 267 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[INCOMING] NPC_NAME: Diaphanous Device | MENU_ID: 1000 | ZONE_ID: 133 | POS: { x = -841.30383300781, y = -20.196050643921, z = -178 }, 
[OUTGOING] Target idx: 816 | Option idx: 100 | zone_id: 133 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 816 | Option idx: 0 | zone_id: 133 | _unk1: 2 | _unk2: 1 | _unk3: 0 | hex: 5C10EE000100E6C3000016C30100C04230734001020000008500E8033003013F | Warp Point POS: { x = -460.00003051758, y = 96.000007629395, z = -150 }, 
[OUTGOING] Target idx: 816 | Option idx: 2 | zone_id: 133 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[INCOMING] NPC_NAME: Diaphanous Device #A | MENU_ID: 1001 | ZONE_ID: 133 | POS: { x = -459.04724121094, y = 98.030860900879, z = -150.25 }, 
[OUTGOING] Target idx: 817 | Option idx: 100 | zone_id: 133 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 817 | Option idx: 0 | zone_id: 133 | _unk1: 3 | _unk2: 1 | _unk3: 0 | hex: 5C102F010100ACC3000016C30000A0C131734001030000008500E9033103017F | Warp Point POS: { x = -344.00003051758, y = -20, z = -150 }, 
[OUTGOING] Target idx: 817 | Option idx: 3 | zone_id: 133 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[INCOMING] NPC_NAME: Diaphanous Device #B | MENU_ID: 1002 | ZONE_ID: 133 | POS: { x = -343.04779052734, y = -19.978137969971, z = -150.25 }, 
[OUTGOING] Target idx: 818 | Option idx: 100 | zone_id: 133 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 818 | Option idx: 0 | zone_id: 133 | _unk1: 4 | _unk2: 1 | _unk3: 0 | hex: 5C1065010100E6C3000016C3000008C332734001040000008500EA03320301BF | Warp Point POS: { x = -460.00003051758, y = -136, z = -150 }, 
[OUTGOING] Target idx: 818 | Option idx: 4 | zone_id: 133 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[INCOMING] NPC_NAME: Diaphanous Device #C | MENU_ID: 1003 | ZONE_ID: 133 | POS: { x = -459.95333862305, y = -137.7865447998, z = -150.25 }, 
[OUTGOING] Target idx: 819 | Option idx: 100 | zone_id: 133 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 819 | Option idx: 0 | zone_id: 133 | _unk1: 5 | _unk2: 1 | _unk3: 0 | hex: 5C109901000010C4000016C30000A0C133734001050000008500EB0333030100 | Warp Point POS: { x = -576, y = -20, z = -150 }, 
[OUTGOING] Target idx: 819 | Option idx: 0 | zone_id: 133 | _unk1: 5 | _unk2: 1 | _unk3: 0 | hex: 5C109901000010C4000016C30000A0C133734001050000008500EB0333030100 | Warp Point POS: { x = -576, y = -20, z = -150 }, 
[OUTGOING] Target idx: 819 | Option idx: 5 | zone_id: 133 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[INCOMING] NPC_NAME: Diaphanous Device #D | MENU_ID: 1004 | ZONE_ID: 133 | POS: { x = -578.96148681641, y = -20.199287414551, z = -150.25 }, 
[OUTGOING] Target idx: 820 | Option idx: 100 | zone_id: 133 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 820 | Option idx: 0 | zone_id: 133 | _unk1: 1 | _unk2: 1 | _unk3: 0 | hex: 5C106002010051C4010032C30000A0C134734001010000008500EC0334030100 | Warp Point POS: { x = -836.00006103516, y = -20, z = -178.00001525879 }, 
[OUTGOING] Target idx: 820 | Option idx: 1 | zone_id: 133 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 

Outer Ra'Kaznar [U3]

[INCOMING] NPC_NAME: Diaphanous Transposer | MENU_ID: 68 | ZONE_ID: 267 | POS: { x = -247.18981933594, y = 364.50582885742, z = 2.9703421592712 }, 
[OUTGOING] Target idx: 411 | Option idx: 1 | zone_id: 267 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 411 | Option idx: 1 | zone_id: 267 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[INCOMING] NPC_NAME: Diaphanous Device | MENU_ID: 1000 | ZONE_ID: 189 | POS: { x = -842.51385498047, y = -19.767826080322, z = -178 }, 
[OUTGOING] Target idx: 816 | Option idx: 100 | zone_id: 189 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 816 | Option idx: 0 | zone_id: 189 | _unk1: 2 | _unk2: 1 | _unk3: 0 | hex: 5C103F010100E6C3000016C30100C0423083400102000000BD00E8033003013F | Warp Point POS: { x = -460.00003051758, y = 96.000007629395, z = -150 }, 
[OUTGOING] Target idx: 816 | Option idx: 2 | zone_id: 189 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[INCOMING] NPC_NAME: Diaphanous Device #A | MENU_ID: 1001 | ZONE_ID: 189 | POS: { x = -460.02429199219, y = 96.925979614258, z = -150.25 }, 
[OUTGOING] Target idx: 817 | Option idx: 100 | zone_id: 189 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 817 | Option idx: 0 | zone_id: 189 | _unk1: 3 | _unk2: 1 | _unk3: 0 | hex: 5C106C010100ACC3000016C30000A0C13183400103000000BD00E9033103017F | Warp Point POS: { x = -344.00003051758, y = -20, z = -150 }, 
[OUTGOING] Target idx: 817 | Option idx: 3 | zone_id: 189 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[INCOMING] NPC_NAME: Diaphanous Device #B | MENU_ID: 1002 | ZONE_ID: 189 | POS: { x = -342.96780395508, y = -19.97631072998, z = -150.25 }, 
[OUTGOING] Target idx: 818 | Option idx: 100 | zone_id: 189 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 818 | Option idx: 0 | zone_id: 189 | _unk1: 4 | _unk2: 1 | _unk3: 0 | hex: 5C1096010100E6C3000016C3000008C33283400104000000BD00EA03320301BF | Warp Point POS: { x = -460.00003051758, y = -136, z = -150 }, 
[OUTGOING] Target idx: 818 | Option idx: 4 | zone_id: 189 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[INCOMING] NPC_NAME: Diaphanous Device #C | MENU_ID: 1003 | ZONE_ID: 189 | POS: { x = -459.95065307617, y = -137.95227050781, z = -150.25 }, 
[OUTGOING] Target idx: 819 | Option idx: 100 | zone_id: 189 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 819 | Option idx: 0 | zone_id: 189 | _unk1: 5 | _unk2: 1 | _unk3: 0 | hex: 5C10C301000010C4000016C30000A0C13383400105000000BD00EB0333030100 | Warp Point POS: { x = -576, y = -20, z = -150 }, 
[OUTGOING] Target idx: 819 | Option idx: 0 | zone_id: 189 | _unk1: 5 | _unk2: 1 | _unk3: 0 | hex: 5C10C301000010C4000016C30000A0C13383400105000000BD00EB0333030100 | Warp Point POS: { x = -576, y = -20, z = -150 }, 
[OUTGOING] Target idx: 819 | Option idx: 5 | zone_id: 189 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[INCOMING] NPC_NAME: Diaphanous Device #D | MENU_ID: 1004 | ZONE_ID: 189 | POS: { x = -578.04418945312, y = -19.912975311279, z = -150.25 }, 
[OUTGOING] Target idx: 820 | Option idx: 100 | zone_id: 189 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
[OUTGOING] Target idx: 820 | Option idx: 0 | zone_id: 189 | _unk1: 1 | _unk2: 1 | _unk3: 0 | hex: 5C105102010051C4010032C30000A0C13483400101000000BD00EC0334030100 | Warp Point POS: { x = -836.00006103516, y = -20, z = -178.00001525879 }, 
[OUTGOING] Target idx: 820 | Option idx: 1 | zone_id: 189 | _unk1: 0 | _unk2: 0 | _unk3: 0 | hex: 0 | Warp Point POS: { x = 0, y = 0, z = 0 }, 
Imoq commented 1 year ago

I was thinking about doing some efforts to get a Sortie zone addition to this fantastic addon and then I found out you are basically done! Please let me know if I can help on testing anything needed. Thank you for your hard work!

staticvoid0 commented 3 months ago

I am just seeing this, I am returning to the game after a 2-year hiatus; It would be absolutely phenomenal if we could get this working, It would help out tremendously with multiboxing. i noticed the work seemed to stop. Where did we make it to ?

staticvoid0 commented 2 months ago

I went ahead and got to work on making this and i'm gettin rdy to test it, I'm kinda feeling a little timid about moving into the testing phase because now I keep thinking " Why have none of these people finished it; Why have they all just stopped talking about it after a point." At this point I kinda wish I had a throw away account to finish developing this thing.

Imoq commented 2 months ago

Yeah, it's kinda risky to test, I understand. I really wish we could have a reliable way of testing it, would really improve the game QOL in Sortie... thanks for your efforts!

eaglejs commented 3 weeks ago

Sorry, it has been a while. I did stop working on this because of what I pointed out earlier. It is a risky thing to test, and I haven't tried it yet. Not banned. :)

staticvoid0 commented 2 weeks ago

Well, all done now. ;D I have had Odyssey done for a couple days, I'm just going through rigorous testing to ensure everything is 100% perfect and no unforeseen outcomes are possible. Looking at releasing this weekend.

Imoq commented 2 weeks ago

Amazing news, thank you! Looking forward to try it!

Imoq commented 1 week ago

Just to report a bug and to request a small feature :)

Bug is: didn't use it to get INTO Aminon fight (since you need to choose between"forward" and "to the deepest darks"). Tried to use it at the exit after the fight but it froze my char. Was still able to type in /p and everything but couldn't move, no enter/esc key combinations would work. Ended up having to //terminate

Feature request: can we please have alias for "1, 2, 3, 4" as "A, B, C, D"? Not so sure for "0" (maybe "E" as in "Entrance"?). I kept making the mistake of using letters instead of numbers and always ended up in A.

Amazing job, thank you so much!

AkadenTK commented 1 week ago

Thanks @staticvoid0 for implementing the PR for this feature. Glad to have it in finally :)

The latest version also includes s/#a/#b/#c/#d as options for warping around. Unfortunately "a" is already a reserved shortcut to work with the "@all" modifier.

eaglejs commented 1 week ago

Just to report a bug and to request a small feature :)

Bug is: didn't use it to get INTO Aminon fight (since you need to choose between"forward" and "to the deepest darks"). Tried to use it at the exit after the fight but it froze my char. Was still able to type in /p and everything but couldn't move, no enter/esc key combinations would work. Ended up having to //terminate

Feature request: can we please have alias for "1, 2, 3, 4" as "A, B, C, D"? Not so sure for "0" (maybe "E" as in "Entrance"?). I kept making the mistake of using letters instead of numbers and always ended up in A.

Amazing job, thank you so much!

Helpful note, turn off all auto healing, buffs, etc. before you enter, that is what causes the player being locked up. I made a script that turns off healbot/autogeo/autocor/singer. and another that simply turns it all back on.