regner / albiondata-client

Distributed client for the Albion Data project.
https://albion-data.com/
MIT License
38 stars 17 forks source link

Find the contents of containers #119

Open regner opened 7 years ago

regner commented 7 years ago

A good start would be this operation:

Operation: ContainerOpen ID: 80

Ultraporing commented 7 years ago

ID: 80 does not get sent

These are the correct ones, you get 1 message per item in the box and get sent the box layout afterwards but be careful since you recieve randomly those item packets too:

time="2017-09-12T11:53:51+02:00" level=debug msg="Event: map[1:1104 4:1 252:23 0:405119 3:Majok 5:28000000 6:[] 7:[] 8:false 2:1]" time="2017-09-12T11:53:51+02:00" level=debug msg="Event: map[1:1095 2:1 3:Lyua 4:1 5:12000000 252:23 0:405120 7:[] 8:false 6:[]]" time="2017-09-12T11:53:51+02:00" level=debug msg="Event: map[5:false 6:21460000 252:26 0:405118 1:3068 2:1 3:Ultraporing 4:10000]" time="2017-09-12T11:53:51+02:00" level=debug msg="Event: map[0:4 1:[405119 405120 405118 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] 2:[-99 -70 -42 -107 -52 -91 -57 71 -73 103 -62 -85 73 107 74 40] 252:42]"

23 (Equipment Item): 0 = IDInsideBox (used in the containerOpening packet), 1 = ItemIndex, 2 = quantity, 3 = creator, 4 = quality, 5 = durability (multiplied by 10000), 6 = active spells, 7 = passive spells, 8 = unknown

24 (Stackable Item): 0 = IDInsideBox (used in the containerOpening packet), 1 = ItemIndex, 2 = quantity

25 (FurnitureItem): 0 = IDInsideBox (used in the containerOpening packet), 1 = ItemIndex, 2 = quantity, 3 = creator, 4 = durability (multiplied by 10000)

26 (JournalItem): 0 = IDInsideBox (used in the containerOpening packet), 1 = ItemIndex, 2 = probably quantity, 3 = creator, 6 = FameStored (multiplied by 10000)

42 (Bank Container Open): 0 = some kind of checksum used internally, 1 = Box Slots (Uses IDInsideBox), 2 = Container ID

75 (Generic Container Open): 0 = some kind of checksum used internally, 1 = Box Slots (Uses IDInsideBox), 2 = Container ID

I did some work in my branch, someone has to put it into the right format for nats sending. https://github.com/Ultraporing/albiondata-client/commit/26f0280ccc6f7a56ebfc93ae2bffb9e0e92c6295

current output:

time="2017-09-12T16:31:36+02:00" level=info msg="Sending container with 6 items of Ultraporing to ingest" time="2017-09-12T16:31:36+02:00" level=info msg="Container: " time="2017-09-12T16:31:36+02:00" level=info msg="&{Item:{ItemIndex:230 Quantity:2} ItemType:Stackable_Item}" time="2017-09-12T16:31:36+02:00" level=info msg="&{Item:{ItemIndex:1104 Quantity:1 Creator:Majok Quality:1 Durability:28000000} ItemType:Equipment_Item}" time="2017-09-12T16:31:36+02:00" level=info msg="&{Item:{ItemIndex:201 Quantity:4} ItemType:Stackable_Item}" time="2017-09-12T16:31:36+02:00" level=info msg="&{Item:{ItemIndex:1095 Quantity:1 Creator:Lyua Quality:1 Durability:12000000} ItemType:Equipment_Item}" time="2017-09-12T16:31:36+02:00" level=info msg="&{Item:{ItemIndex:3068 Quantity:1 Creator:Ultraporing FameStored:21490000} ItemType:Journal_Item}" time="2017-09-12T16:31:36+02:00" level=info msg="&{Item:{ItemIndex:1194 Quantity:1 Creator:Chudatta Durability:150000} ItemType:Furniture_Item}"

oxisto commented 7 years ago

The 2 parameter of event 42 looks like a character Id

oxisto commented 7 years ago

So we found out that eventType 42 seems to be "Bank Container Open" and eventType 75 is "Chest in your house open". They do have the same structure though

oxisto commented 7 years ago

Additional findings: For Containers:

For Banks its the same, just the IDs are different