├── .gitignore
├── README.md
├── bak
├── build_go_proto.sh
├── cmd.txt
├── cmd
├── builder
│ ├── README.md
│ └── main.go
├── old_builder
│ └── main.go
├── proxy
│ └── main.go
└── sniffer
│ └── main.go
├── go.mod
├── go.sum
├── proto
├── connection
│ └── message.proto
└── game
│ ├── account.proto
│ ├── achievement.proto
│ ├── admin_console.proto
│ ├── alliance_conquest.proto
│ ├── alliance_information.proto
│ ├── alliance_member.proto
│ ├── alliance_rank.proto
│ ├── alliance_recruitment.proto
│ ├── alteration.proto
│ ├── anomaly.proto
│ ├── area.proto
│ ├── arena.proto
│ ├── atlas.proto
│ ├── bak.proto
│ ├── basic.proto
│ ├── breach.proto
│ ├── challenge.proto
│ ├── character.proto
│ ├── character_management.proto
│ ├── chat.proto
│ ├── choice.proto
│ ├── client_verification.proto
│ ├── common.proto
│ ├── connection.proto
│ ├── contact.proto
│ ├── context.proto
│ ├── cosmetic.proto
│ ├── debt.proto
│ ├── debug.proto
│ ├── dialog.proto
│ ├── document.proto
│ ├── element.proto
│ ├── emote.proto
│ ├── exchange.proto
│ ├── fight.proto
│ ├── fight_preparation.proto
│ ├── finish_move.proto
│ ├── game_action.proto
│ ├── gamemap.proto
│ ├── guild_application.proto
│ ├── guild_chest.proto
│ ├── guild_house.proto
│ ├── guild_information.proto
│ ├── guild_member.proto
│ ├── guild_rank.proto
│ ├── guild_recruitment.proto
│ ├── haapi.proto
│ ├── haven_bag.proto
│ ├── house.proto
│ ├── interactive_element.proto
│ ├── inventory.proto
│ ├── job.proto
│ ├── living_object.proto
│ ├── message.proto
│ ├── moderation.proto
│ ├── mount.proto
│ ├── notification.proto
│ ├── npc.proto
│ ├── paddock.proto
│ ├── party.proto
│ ├── preset.proto
│ ├── prism.proto
│ ├── quest.proto
│ ├── roleplay.proto
│ ├── script.proto
│ ├── security.proto
│ ├── server.proto
│ ├── shop.proto
│ ├── social.proto
│ ├── spell.proto
│ ├── suggestion.proto
│ ├── symbiont.proto
│ ├── tag_storage.proto
│ ├── taxcollector.proto
│ ├── teleportation.proto
│ ├── tinsel.proto
│ ├── treasure_hunt.proto
│ └── ui.proto
├── proto_descriptor
├── Com.Ankama.Dofus.Server.Connection.Protocol.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Account.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Achievement.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Admin.Console.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Alliance.Conquest.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Alliance.Information.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Alliance.Member.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Alliance.Rank.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Alliance.Recruitment.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Alteration.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Anomaly.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Area.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Arena.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Atlas.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Bak.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Basic.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Breach.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Challenge.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Character.Management.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Character.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Chat.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Choice.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Client.Verification.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Common.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Connection.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Contact.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Context.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Cosmetic.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Debt.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Debug.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Dialog.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Document.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Element.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Emote.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Exchange.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Fight.Preparation.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Fight.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Finish.Move.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Game.Action.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Gamemap.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Guild.Application.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Guild.Chest.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Guild.House.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Guild.Information.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Guild.Member.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Guild.Rank.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Guild.Recruitment.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Haapi.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Haven.Bag.json
├── Com.Ankama.Dofus.Server.Game.Protocol.House.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Interactive.Element.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Inventory.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Job.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Living.Object.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Moderation.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Mount.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Notification.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Npc.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Paddock.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Party.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Preset.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Prism.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Quest.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Roleplay.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Script.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Security.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Server.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Shop.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Social.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Spell.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Suggestion.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Symbiont.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Tag.Storage.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Taxcollector.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Teleportation.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Tinsel.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Treasure.Hunt.json
├── Com.Ankama.Dofus.Server.Game.Protocol.Ui.json
└── Com.Ankama.Dofus.Server.Game.Protocol.json
└── src
├── protocol
├── connection
│ └── message
│ │ └── message.pb.go
├── game
│ ├── account
│ │ └── account.pb.go
│ ├── achievement
│ │ └── achievement.pb.go
│ ├── admin_console
│ │ └── admin_console.pb.go
│ ├── alliance_conquest
│ │ └── alliance_conquest.pb.go
│ ├── alliance_information
│ │ └── alliance_information.pb.go
│ ├── alliance_member
│ │ └── alliance_member.pb.go
│ ├── alliance_rank
│ │ └── alliance_rank.pb.go
│ ├── alliance_recruitment
│ │ └── alliance_recruitment.pb.go
│ ├── alteration
│ │ └── alteration.pb.go
│ ├── anomaly
│ │ └── anomaly.pb.go
│ ├── area
│ │ └── area.pb.go
│ ├── arena
│ │ └── arena.pb.go
│ ├── atlas
│ │ └── atlas.pb.go
│ ├── bak
│ │ └── bak.pb.go
│ ├── basic
│ │ └── basic.pb.go
│ ├── breach
│ │ └── breach.pb.go
│ ├── challenge
│ │ └── challenge.pb.go
│ ├── character
│ │ └── character.pb.go
│ ├── character_management
│ │ └── character_management.pb.go
│ ├── chat
│ │ └── chat.pb.go
│ ├── choice
│ │ └── choice.pb.go
│ ├── client_verification
│ │ └── client_verification.pb.go
│ ├── common
│ │ └── common.pb.go
│ ├── connection
│ │ └── connection.pb.go
│ ├── contact
│ │ └── contact.pb.go
│ ├── context
│ │ └── context.pb.go
│ ├── cosmetic
│ │ └── cosmetic.pb.go
│ ├── debt
│ │ └── debt.pb.go
│ ├── debug
│ │ └── debug.pb.go
│ ├── dialog
│ │ └── dialog.pb.go
│ ├── document
│ │ └── document.pb.go
│ ├── element
│ │ └── element.pb.go
│ ├── emote
│ │ └── emote.pb.go
│ ├── exchange
│ │ └── exchange.pb.go
│ ├── fight
│ │ └── fight.pb.go
│ ├── fight_preparation
│ │ └── fight_preparation.pb.go
│ ├── finish_move
│ │ └── finish_move.pb.go
│ ├── game_action
│ │ └── game_action.pb.go
│ ├── gamemap
│ │ └── gamemap.pb.go
│ ├── guild_application
│ │ └── guild_application.pb.go
│ ├── guild_chest
│ │ └── guild_chest.pb.go
│ ├── guild_house
│ │ └── guild_house.pb.go
│ ├── guild_information
│ │ └── guild_information.pb.go
│ ├── guild_member
│ │ └── guild_member.pb.go
│ ├── guild_rank
│ │ └── guild_rank.pb.go
│ ├── guild_recruitment
│ │ └── guild_recruitment.pb.go
│ ├── haapi
│ │ └── haapi.pb.go
│ ├── haven_bag
│ │ └── haven_bag.pb.go
│ ├── house
│ │ └── house.pb.go
│ ├── interactive_element
│ │ └── interactive_element.pb.go
│ ├── inventory
│ │ └── inventory.pb.go
│ ├── job
│ │ └── job.pb.go
│ ├── living_object
│ │ └── living_object.pb.go
│ ├── message
│ │ └── message.pb.go
│ ├── moderation
│ │ └── moderation.pb.go
│ ├── mount
│ │ └── mount.pb.go
│ ├── notification
│ │ └── notification.pb.go
│ ├── npc
│ │ └── npc.pb.go
│ ├── paddock
│ │ └── paddock.pb.go
│ ├── party
│ │ └── party.pb.go
│ ├── preset
│ │ └── preset.pb.go
│ ├── prism
│ │ └── prism.pb.go
│ ├── quest
│ │ └── quest.pb.go
│ ├── roleplay
│ │ └── roleplay.pb.go
│ ├── script
│ │ └── script.pb.go
│ ├── security
│ │ └── security.pb.go
│ ├── server
│ │ └── server.pb.go
│ ├── shop
│ │ └── shop.pb.go
│ ├── social
│ │ └── social.pb.go
│ ├── spell
│ │ └── spell.pb.go
│ ├── suggestion
│ │ └── suggestion.pb.go
│ ├── symbiont
│ │ └── symbiont.pb.go
│ ├── tag_storage
│ │ └── tag_storage.pb.go
│ ├── taxcollector
│ │ └── taxcollector.pb.go
│ ├── teleportation
│ │ └── teleportation.pb.go
│ ├── tinsel
│ │ └── tinsel.pb.go
│ ├── treasure_hunt
│ │ └── treasure_hunt.pb.go
│ └── ui
│ │ └── ui.pb.go
└── protocol.go
└── resolver
└── resolver.go
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
2 | .vscode
3 | output
4 | *.bak
5 | dump.cs
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | > [!WARNING]
2 | > The project is outdated and may not fully work with the current version of the game.
3 |
4 | # Dofus Unity Protocol Builder
5 |
6 | [Builder doc](./cmd/builder/README.md)
7 |
--------------------------------------------------------------------------------
/bak:
--------------------------------------------------------------------------------
1 | je peux joindre ta guilde?? Vous avez été soupçonné d’utiliser un logiciel de triche. Votre compte est maintenant bloqué. En savoir plus sur la sanction
--------------------------------------------------------------------------------
/build_go_proto.sh:
--------------------------------------------------------------------------------
1 | go run ./cmd/builder/main.go -input_dir=./proto_descriptor -output_dir=./proto
2 |
3 | for file in proto/connection/*.proto; do
4 | protoc -I=./ --go_out=. --proto_path=proto/connection "$file"
5 | done
6 |
7 | for file in proto/game/*.proto; do
8 | protoc -I=./ --go_out=. --proto_path=proto/game "$file"
9 | done
10 |
11 | rm -rf src/protocol/connection
12 | rm -rf src/protocol/game
13 | mv go-xp-dofus-unity-proto-builder/src/protocol/* src/protocol/
14 | rm -rf go-xp-dofus-unity-proto-builder
--------------------------------------------------------------------------------
/cmd.txt:
--------------------------------------------------------------------------------
1 | je peux joindre ta guilde?? Vous avez été soupçonné d’utiliser un logiciel de triche. Votre compte est maintenant bloqué. En savoir plus sur la sanction
--------------------------------------------------------------------------------
/cmd/builder/README.md:
--------------------------------------------------------------------------------
1 | # Protocol Builder
2 |
3 | ## Extraction Proto Descriptors
4 |
5 | - Create a new directory `output` in the root of the game.
6 | - Install last [BepInEx-Unity.IL2CPP](https://builds.bepinex.dev/projects/bepinex_be)
7 | - For MacOS, add `xattr -d com.apple.quarantine libdoorstop.dylib` on top of `run_bepinex.sh`
8 | - Install last [CinematicUnityExplorer (CUE)](https://github.com/originalnicodr/CinematicUnityExplorer) ([instructions](https://framedsc.com/GeneralGuides/cinematic-unity-explorer.htm))
9 | - use `BepInEx.Unity.IL2CPP.CoreCLR`
10 | - Run this C# code in the game
11 |
12 | ```cs
13 | var assemblies = AppDomain.CurrentDomain.GetAssemblies();
14 |
15 | foreach (var ass in assemblies)
16 | {
17 | if (ass.FullName == null || !ass.FullName.StartsWith("Ankama.Dofus.Protocol"))
18 | continue;
19 |
20 | var types = ass.GetTypes();
21 | foreach (var t in types)
22 | {
23 | if (!t.Name.EndsWith("Reflection"))
24 | continue;
25 |
26 | // once we have the type we get the static Field "Descriptor"
27 | var descriptorProperty = t.GetProperty("Descriptor");
28 |
29 | if (descriptorProperty == null)
30 | continue;
31 |
32 | var descriptor = descriptorProperty.GetValue(null);
33 | var descriptorType = descriptor.GetType();
34 |
35 | var protoProperty = descriptorType.GetProperty("Proto");
36 | var proto = protoProperty.GetValue(descriptor);
37 |
38 | // we invoke the method "ToString()"
39 | var toStringMethod = proto.GetType().GetMethod("ToString");
40 | var res = (string)toStringMethod.Invoke(proto, Array.Empty());
41 |
42 | // Find the last occurrence of the dot
43 | int lastDotIndex = t.FullName.LastIndexOf('.');
44 |
45 | // If a dot is found, create a substring that excludes the last dot and everything after it
46 | string sanitizedFullName = (lastDotIndex >= 0) ? t.FullName.Substring(0, lastDotIndex) : t.FullName;
47 |
48 | Il2CppSystem.IO.File.WriteAllText("./output/" + sanitizedFullName + ".json", res);
49 |
50 | Console.WriteLine(descriptor);
51 | }
52 | }
53 | ```
54 |
55 | ## Convert Proto Descriptors to Proto Files
56 |
57 | - Run go program
58 |
59 | `go run ./cmd/builder/main.go -input_dir=/path/to/game/output -output_dir=./proto`
60 |
61 | ## Thank You
62 |
63 | - Aristochat: for BipInEx and CUE solution
64 | - Fallen: for the extraction solution idea
65 | - [Alpa](https://github.com/AlpaGit): for the C# extraction code
66 |
--------------------------------------------------------------------------------
/go.mod:
--------------------------------------------------------------------------------
1 | module go-xp-dofus-unity-proto-builder
2 |
3 | go 1.22
4 |
5 | require (
6 | github.com/fatih/color v1.17.0
7 | github.com/google/gopacket v1.1.19
8 | google.golang.org/protobuf v1.34.2
9 | )
10 |
11 | require (
12 | github.com/mattn/go-colorable v0.1.13 // indirect
13 | github.com/mattn/go-isatty v0.0.20 // indirect
14 | golang.org/x/sys v0.18.0 // indirect
15 | )
16 |
--------------------------------------------------------------------------------
/go.sum:
--------------------------------------------------------------------------------
1 | github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4=
2 | github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI=
3 | github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
4 | github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
5 | github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8=
6 | github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo=
7 | github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
8 | github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
9 | github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
10 | github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
11 | github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
12 | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
13 | golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
14 | golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
15 | golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
16 | golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
17 | golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI=
18 | golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
19 | golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
20 | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
21 | golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
22 | golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
23 | golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
24 | golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
25 | golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
26 | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
27 | golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
28 | golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
29 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
30 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
31 | google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
32 | google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
33 |
--------------------------------------------------------------------------------
/proto/game/account.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/account";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.account;
8 |
9 | message AccountInformationUpdateEvent {
10 | int64 subscription_end_date = 1;
11 | }
12 |
13 | message AccountSubscriptionElapsedDurationUpdateEvent {
14 | int64 subscription_elapsed_duration = 1;
15 | }
16 |
17 | message AccountCapabilitiesEvent {
18 | int64 account_id = 1;
19 | bool tutorial_available = 2;
20 | .com.ankama.dofus.server.game.protocol.common.Hierarchy status = 3;
21 | bool can_create_new_character = 4;
22 | }
23 |
24 | message GuestLimitationEvent {
25 | .com.ankama.dofus.server.game.protocol.account.GuestLimitationEvent.GuestLimitation reason = 1;
26 | enum GuestLimitation {
27 | LIMITED_TO_REGISTERED = 0;
28 | LIMIT_ON_JOB_XP = 1;
29 | LIMIT_ON_JOB_USE = 2;
30 | LIMIT_ON_MAP = 3;
31 | LIMIT_ON_ITEM = 4;
32 | LIMIT_ON_CHAT = 5;
33 | LIMIT_ON_GUILD = 6;
34 | }
35 |
36 | }
37 |
38 | message GuestModeEvent {
39 | bool effective = 1;
40 | }
41 |
42 | message SubscriptionLimitationEvent {
43 | .com.ankama.dofus.server.game.protocol.account.SubscriptionLimitationEvent.SubscriptionRequired reason = 1;
44 | enum SubscriptionRequired {
45 | LIMITED_TO_SUBSCRIBER = 0;
46 | LIMIT_ON_JOB_XP = 1;
47 | LIMIT_ON_JOB_USE = 2;
48 | LIMIT_ON_MAP = 3;
49 | LIMIT_ON_ITEM = 4;
50 | LIMIT_ON_HAVEN_BAG = 5;
51 | }
52 |
53 | }
54 |
55 | message SubscriptionZoneEvent {
56 | bool effective = 1;
57 | }
58 |
59 |
--------------------------------------------------------------------------------
/proto/game/achievement.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/achievement";
4 |
5 | package com.ankama.dofus.server.game.protocol.achievement;
6 |
7 | message AchievementDetailsRequest {
8 | int32 achievement_id = 1;
9 | }
10 |
11 | message AchievementsDetailedRequest {
12 | int32 category_id = 1;
13 | }
14 |
15 | message AchievementsAlmostFinishedDetailedRequest {
16 | }
17 |
18 | message AchievementRewardRequest {
19 | int32 achievement_id = 1;
20 | }
21 |
22 | message AchievementsEvent {
23 | repeated .com.ankama.dofus.server.game.protocol.achievement.AchievedAchievement achieved_achievements = 1;
24 | }
25 |
26 | message AchievementDetailsEvent {
27 | .com.ankama.dofus.server.game.protocol.achievement.Achievement achievement = 1;
28 | }
29 |
30 | message AchievementsDetailedEvent {
31 | repeated .com.ankama.dofus.server.game.protocol.achievement.Achievement achievements = 1;
32 | }
33 |
34 | message AchievementsAlmostFinishedDetailedEvent {
35 | repeated .com.ankama.dofus.server.game.protocol.achievement.Achievement almost_finished_achievements = 1;
36 | }
37 |
38 | message AchievementFinishedEvent {
39 | .com.ankama.dofus.server.game.protocol.achievement.AchievedAchievement achievement = 1;
40 | }
41 |
42 | message AchievementFinishedInformationEvent {
43 | .com.ankama.dofus.server.game.protocol.achievement.AchievedAchievement achievement = 1;
44 | string player_name = 2;
45 | int64 player_id = 3;
46 | }
47 |
48 | message AchievementRewardResultEvent {
49 | int32 achievement_id = 1;
50 | bool success = 2;
51 | }
52 |
53 | message AchievementsPioneerRanksRequest {
54 | }
55 |
56 | message AchievementsPioneerRanksResponse {
57 | repeated .com.ankama.dofus.server.game.protocol.achievement.AchievementsPioneerRanksResponse.AchievementPioneerRank achievements_pioneer_ranks = 1;
58 | message AchievementPioneerRank {
59 | int32 achievement_id = 1;
60 | int32 pioneer_rank = 2;
61 | }
62 |
63 | }
64 |
65 | message Achievement {
66 | int32 achievement_id = 1;
67 | repeated .com.ankama.dofus.server.game.protocol.achievement.Achievement.AchievementObjective achievement_objectives = 2;
68 | message AchievementObjective {
69 | int32 objective_id = 1;
70 | int64 max_value = 2;
71 | optional int64 current_value = 3;
72 | }
73 |
74 | }
75 |
76 | message AchievedAchievement {
77 | int32 achievement_id = 1;
78 | int64 achieved_by = 2;
79 | int32 pioneer_rank = 4;
80 | optional int32 finished_level = 3;
81 | }
82 |
83 |
--------------------------------------------------------------------------------
/proto/game/admin_console.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/admin_console";
4 |
5 | package com.ankama.dofus.server.game.protocol.admin.console;
6 |
7 | message ConsoleCommand {
8 | string content = 1;
9 | bool quiet = 2;
10 | }
11 |
12 | message ConsoleEnd {
13 | bool success = 1;
14 | }
15 |
16 | message ConsoleMessage {
17 | string content = 1;
18 | .com.ankama.dofus.server.game.protocol.admin.console.ConsoleMessage.Type type = 2;
19 | enum Type {
20 | TEXT = 0;
21 | INFO = 1;
22 | ERROR = 2;
23 | }
24 |
25 | }
26 |
27 | message CommandSummary {
28 | repeated .com.ankama.dofus.server.game.protocol.admin.console.Command command = 1;
29 | }
30 |
31 | message Command {
32 | string alias = 1;
33 | string arguments = 2;
34 | string description = 3;
35 | }
36 |
37 |
--------------------------------------------------------------------------------
/proto/game/alliance_conquest.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/alliance_conquest";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.alliance.conquest;
8 |
9 | message AVAStateUpdateRequest {
10 | bool enable = 1;
11 | }
12 |
13 | message AllianceFightListenStartRequest {
14 | }
15 |
16 | message AllianceFightListenStopRequest {
17 | }
18 |
19 | message AllianceFightJoinRequest {
20 | .com.ankama.dofus.server.game.protocol.common.SocialFightInformation fight_information = 1;
21 | }
22 |
23 | message AllianceFightReplaceRequest {
24 | .com.ankama.dofus.server.game.protocol.common.SocialFightInformation fight_information = 1;
25 | int64 to_replace_fighter_id = 2;
26 | }
27 |
28 | message AllianceFightLeaveRequest {
29 | .com.ankama.dofus.server.game.protocol.common.SocialFightInformation fight_information = 1;
30 | }
31 |
32 | message AllianceFightsInformationEvent {
33 | repeated .com.ankama.dofus.server.game.protocol.common.SocialFight alliance_fights = 1;
34 | }
35 |
36 | message AllianceFightStartedEvent {
37 | .com.ankama.dofus.server.game.protocol.common.SocialFightInformation fight_information = 1;
38 | .com.ankama.dofus.server.game.protocol.common.FightPhaseInfo phase = 2;
39 | }
40 |
41 | message AllianceFightFinishedEvent {
42 | .com.ankama.dofus.server.game.protocol.common.SocialFightInformation fight_information = 1;
43 | }
44 |
45 | message AllianceFightPhaseUpdateEvent {
46 | .com.ankama.dofus.server.game.protocol.common.SocialFightInformation fight_information = 1;
47 | .com.ankama.dofus.server.game.protocol.common.FightPhaseInfo phase = 2;
48 | }
49 |
50 | message AllianceFightFighterAddedEvent {
51 | .com.ankama.dofus.server.game.protocol.common.SocialFightInformation fight_information = 1;
52 | .com.ankama.dofus.server.game.protocol.common.Character fighter = 2;
53 | .com.ankama.dofus.server.game.protocol.common.Team team = 3;
54 | }
55 |
56 | message AllianceFightFighterRemovedEvent {
57 | .com.ankama.dofus.server.game.protocol.common.SocialFightInformation fight_information = 1;
58 | int64 fighter_id = 2;
59 | }
60 |
61 | message KOTHUpdateEvent {
62 | repeated .com.ankama.dofus.server.game.protocol.alliance.conquest.KOTHUpdateEvent.KOTHAllianceInformation koth_alliance_information = 1;
63 | string starting_ava_timestamp = 2;
64 | int64 next_tick_time = 3;
65 | message KOTHAllianceInformation {
66 | .com.ankama.dofus.server.game.protocol.common.AllianceInformation alliance = 1;
67 | int64 member_count = 2;
68 | repeated .com.ankama.dofus.server.game.protocol.alliance.conquest.KOTHUpdateEvent.KOTHAllianceInformation.KOTHAllianceRoleNumber koth_roles = 3;
69 | repeated .com.ankama.dofus.server.game.protocol.alliance.conquest.KOTHUpdateEvent.KOTHAllianceInformation.KOTHScore scores = 4;
70 | int32 match_domination_scores = 5;
71 | message KOTHAllianceRoleNumber {
72 | int64 member_count = 1;
73 | int32 koth_role = 2;
74 | }
75 |
76 | message KOTHScore {
77 | .com.ankama.dofus.server.game.protocol.alliance.conquest.KOTHUpdateEvent.KOTHAllianceInformation.KOTHScore.KOTHScoreType score_type = 1;
78 | int32 round_scores = 2;
79 | int32 cumulated_scores = 3;
80 | enum KOTHScoreType {
81 | FIGHT = 0;
82 | DOMINATION = 1;
83 | PRISM = 2;
84 | }
85 |
86 | }
87 |
88 | }
89 |
90 | }
91 |
92 | message KOTHEndEvent {
93 | optional .com.ankama.dofus.server.game.protocol.common.AllianceInformation winner = 1;
94 | }
95 |
96 | message NuggetsBeneficiary {
97 | int64 character_id = 1;
98 | int32 nuggets_quantity = 2;
99 | }
100 |
101 | message NuggetsDistributionRequest {
102 | repeated .com.ankama.dofus.server.game.protocol.alliance.conquest.NuggetsBeneficiary beneficiaries = 1;
103 | }
104 |
105 | message NuggetsListenStartRequest {
106 | }
107 |
108 | message NuggetsListenStopRequest {
109 | }
110 |
111 | message NuggetsInformationEvent {
112 | int32 nuggets_quantity = 1;
113 | }
114 |
115 |
--------------------------------------------------------------------------------
/proto/game/alliance_information.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/alliance_information";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.alliance.information;
8 |
9 | message AllianceCreationValidRequest {
10 | string alliance_name = 1;
11 | string alliance_tag = 2;
12 | .com.ankama.dofus.server.game.protocol.common.SocialEmblem alliance_emblem = 3;
13 | }
14 |
15 | message AllianceEmblemModificationValidRequest {
16 | .com.ankama.dofus.server.game.protocol.common.SocialEmblem alliance_emblem = 1;
17 | }
18 |
19 | message AllianceNameAndTagModificationValidRequest {
20 | string alliance_name = 1;
21 | string alliance_tag = 2;
22 | }
23 |
24 | message AllianceModificationValidRequest {
25 | string alliance_name = 1;
26 | string alliance_tag = 2;
27 | .com.ankama.dofus.server.game.protocol.common.SocialEmblem alliance_emblem = 3;
28 | }
29 |
30 | message AllianceMemberStartWarningOnConnectionRequest {
31 | }
32 |
33 | message AllianceMemberStopWarningOnConnectionRequest {
34 | }
35 |
36 | message AllianceCreationStartedEvent {
37 | }
38 |
39 | message AllianceModificationStartedEvent {
40 | bool can_change_name = 1;
41 | bool can_change_tag = 2;
42 | bool can_change_emblem = 3;
43 | }
44 |
45 | message AllianceCreationResultEvent {
46 | .com.ankama.dofus.server.game.protocol.common.SocialGroupOperationResult result = 1;
47 | }
48 |
49 | message AllianceModificationResultEvent {
50 | .com.ankama.dofus.server.game.protocol.common.SocialGroupOperationResult result = 1;
51 | }
52 |
53 | message AllianceInsiderInformationRequest {
54 | }
55 |
56 | message AllianceFactsRequest {
57 | string alliance_uuid = 1;
58 | }
59 |
60 | message AllianceSummaryRequest {
61 | int64 offset = 1;
62 | int64 count = 2;
63 | .com.ankama.dofus.server.game.protocol.alliance.information.AllianceSummaryRequest.DirectoryTextFilter filter_type = 3;
64 | string text_filer = 4;
65 | bool hide_full_filter = 5;
66 | bool following_alliance_criteria = 6;
67 | repeated int32 criterion_filter = 7;
68 | .com.ankama.dofus.server.game.protocol.alliance.information.AllianceSummaryRequest.AllianceSummarySort sort_type = 8;
69 | bool sort_descending = 9;
70 | repeated int32 languages_filter = 10;
71 | repeated .com.ankama.dofus.server.game.protocol.common.SocialRecruitmentType recruitment_type_filter = 11;
72 | int32 min_player_level_filter = 12;
73 | int32 max_player_level_filter = 13;
74 | enum DirectoryTextFilter {
75 | ALLIANCE_SEARCH_DEFAULT_FILTER = 0;
76 | ALLIANCE_SEARCH_NAME_FILTER = 1;
77 | ALLIANCE_SEARCH_TAG_FILTER = 2;
78 | }
79 |
80 | enum AllianceSummarySort {
81 | SORT_BY_ALLIANCE_NAME = 0;
82 | SORT_BY_ALLIANCE_TAG = 1;
83 | SORT_BY_NB_TERRITORIES = 2;
84 | SORT_BY_ALLIANCE_NB_MEMBERS = 3;
85 | }
86 |
87 | }
88 |
89 | message AllianceInsiderInformationEvent {
90 | .com.ankama.dofus.server.game.protocol.common.AllianceInformation information = 1;
91 | repeated .com.ankama.dofus.server.game.protocol.common.AllianceMemberInformation members = 2;
92 | repeated .com.ankama.dofus.server.game.protocol.common.PrismLocalizedInformation prisms = 3;
93 | repeated .com.ankama.dofus.server.game.protocol.common.TaxCollectorInformation tax_collectors = 4;
94 | }
95 |
96 | message AllianceFactsErrorEvent {
97 | string alliance_uuid = 1;
98 | }
99 |
100 | message AllianceFactsEvent {
101 | .com.ankama.dofus.server.game.protocol.common.AllianceInformation alliance_information = 1;
102 | repeated .com.ankama.dofus.server.game.protocol.common.Character members = 2;
103 | repeated int32 controlled_subarea_ids = 3;
104 | int64 leader_id = 4;
105 | string leader_name = 5;
106 | }
107 |
108 | message AllianceSummaryEvent {
109 | int64 offset = 1;
110 | int64 count = 2;
111 | int64 total = 3;
112 | repeated .com.ankama.dofus.server.game.protocol.common.AllianceInformation alliances = 4;
113 | }
114 |
115 | message AllianceMotdSetRequest {
116 | string content = 1;
117 | }
118 |
119 | message AllianceMotdEvent {
120 | .com.ankama.dofus.server.game.protocol.common.SocialNoticeInformation motd_info = 1;
121 | }
122 |
123 | message AllianceMotdSetErrorEvent {
124 | .com.ankama.dofus.server.game.protocol.common.SocialNoticeError reason = 1;
125 | }
126 |
127 | message AllianceBulletinSetRequest {
128 | string content = 1;
129 | }
130 |
131 | message AllianceBulletinEvent {
132 | .com.ankama.dofus.server.game.protocol.common.SocialNoticeInformation bulletin_info = 1;
133 | }
134 |
135 | message AllianceBulletinSetErrorEvent {
136 | .com.ankama.dofus.server.game.protocol.common.SocialNoticeError reason = 1;
137 | }
138 |
139 |
--------------------------------------------------------------------------------
/proto/game/alliance_member.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/alliance_member";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.alliance.member;
8 |
9 | message AllianceInvitationRequest {
10 | int64 character_id = 1;
11 | }
12 |
13 | message AllianceInvitationAnswerRequest {
14 | bool accepted = 1;
15 | }
16 |
17 | message AllianceKickRequest {
18 | int64 kicked_id = 1;
19 | }
20 |
21 | message AllianceInvitedEvent {
22 | string recruiter_name = 1;
23 | .com.ankama.dofus.server.game.protocol.common.AllianceInformation alliance_information = 2;
24 | }
25 |
26 | message AllianceInvitationStateRecruiterEvent {
27 | string recruited_name = 1;
28 | .com.ankama.dofus.server.game.protocol.common.SocialGroupInvitationState invitation_state = 2;
29 | }
30 |
31 | message AllianceInvitationStateRecruitedEvent {
32 | .com.ankama.dofus.server.game.protocol.common.SocialGroupInvitationState invitation_state = 1;
33 | }
34 |
35 | message AllianceMembershipEvent {
36 | .com.ankama.dofus.server.game.protocol.common.AllianceInformation alliance_information = 1;
37 | int32 rank_id = 2;
38 | }
39 |
40 | message AllianceJoinedEvent {
41 | .com.ankama.dofus.server.game.protocol.common.AllianceInformation alliance_information = 1;
42 | int32 rank_id = 2;
43 | }
44 |
45 | message AllianceMemberLeavingEvent {
46 | bool kicked = 1;
47 | int64 member_id = 2;
48 | }
49 |
50 | message AllianceLeftEvent {
51 | }
52 |
53 | message AllianceMemberUpdateEvent {
54 | .com.ankama.dofus.server.game.protocol.common.AllianceMemberInformation member = 1;
55 | }
56 |
57 |
--------------------------------------------------------------------------------
/proto/game/alliance_rank.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/alliance_rank";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.alliance.rank;
8 |
9 | message AllianceRankCreationRequest {
10 | int32 parent_rank_id = 1;
11 | int32 gfx_id = 2;
12 | string name = 3;
13 | }
14 |
15 | message AllianceRankUpdateAllRequest {
16 | repeated .com.ankama.dofus.server.game.protocol.common.RankInformation ranks = 1;
17 | }
18 |
19 | message AllianceRankDeletionRequest {
20 | int32 rank_id = 1;
21 | int32 replacement_rank_id = 2;
22 | }
23 |
24 | message AllianceRankUpdateRequest {
25 | .com.ankama.dofus.server.game.protocol.common.RankInformation rank = 1;
26 | }
27 |
28 | message AllianceRanksRequest {
29 | }
30 |
31 | message AllianceRankChangeRequest {
32 | int64 member_id = 1;
33 | int32 rank_id = 2;
34 | }
35 |
36 | message AllianceRanksEvent {
37 | repeated .com.ankama.dofus.server.game.protocol.common.RankInformation ranks = 1;
38 | }
39 |
40 | message AllianceRightsUpdateRequest {
41 | int32 rank_id = 1;
42 | repeated int32 rights = 2;
43 | }
44 |
45 |
--------------------------------------------------------------------------------
/proto/game/alliance_recruitment.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/alliance_recruitment";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.alliance.recruitment;
8 |
9 | message AllianceRecruitmentInformationRequest {
10 | }
11 |
12 | message AllianceRecruitmentUpdateRequest {
13 | .com.ankama.dofus.server.game.protocol.common.AllianceRecruitmentInformation information = 1;
14 | }
15 |
16 | message AllianceRecruitmentInformationEvent {
17 | .com.ankama.dofus.server.game.protocol.common.AllianceRecruitmentInformation information = 1;
18 | }
19 |
20 | message AllianceRecruitmentAutomaticJoinRequest {
21 | string alliance_uid = 1;
22 | }
23 |
24 | message AllianceRecruitmentInvalidateEvent {
25 | }
26 |
27 | message AllianceApplicationSubmitRequest {
28 | string alliance_uid = 1;
29 | string text = 2;
30 | }
31 |
32 | message AllianceApplicationUpdateRequest {
33 | string alliance_uid = 1;
34 | string text = 2;
35 | }
36 |
37 | message AllianceApplicationDeletionRequest {
38 | }
39 |
40 | message AllianceApplicationListenRequest {
41 | bool state = 1;
42 | }
43 |
44 | message AllianceApplicationRequest {
45 | }
46 |
47 | message AllianceApplicationListRequest {
48 | int64 offset = 1;
49 | int64 count = 2;
50 | }
51 |
52 | message AllianceApplicationAnswerRequest {
53 | int64 player_id = 1;
54 | bool accepted = 2;
55 | }
56 |
57 | message AllianceApplicationPresenceRequest {
58 | }
59 |
60 | message AllianceApplicationDeletedEvent {
61 | bool success = 1;
62 | }
63 |
64 | message AllianceApplicationInformationEvent {
65 | .com.ankama.dofus.server.game.protocol.common.AllianceInformation alliance = 1;
66 | .com.ankama.dofus.server.game.protocol.common.SocialApplicationInformation application_information = 2;
67 | }
68 |
69 | message AllianceApplicationNoInformationEvent {
70 | }
71 |
72 | message AllianceApplicationResponseEvent {
73 | bool accepted = 1;
74 | .com.ankama.dofus.server.game.protocol.common.AllianceInformation alliance_information = 2;
75 | }
76 |
77 | message AllianceApplicationListEvent {
78 | int64 offset = 1;
79 | int64 count = 2;
80 | int64 total = 3;
81 | repeated .com.ankama.dofus.server.game.protocol.common.SocialApplicationInformation applies = 4;
82 | }
83 |
84 | message AllianceApplicationModifiedEvent {
85 | .com.ankama.dofus.server.game.protocol.common.SocialApplicationInformation apply = 1;
86 | .com.ankama.dofus.server.game.protocol.common.SocialApplicationState state = 2;
87 | int64 player_id = 3;
88 | }
89 |
90 | message AllianceApplicationReceivedEvent {
91 | string player_name = 1;
92 | int64 player_id = 2;
93 | }
94 |
95 | message AllianceApplicationPresenceEvent {
96 | bool presence = 1;
97 | }
98 |
99 |
--------------------------------------------------------------------------------
/proto/game/alteration.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/alteration";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.alteration;
8 |
9 | message AlterationsEvent {
10 | repeated .com.ankama.dofus.server.game.protocol.alteration.Alteration alterations = 1;
11 | }
12 |
13 | message AlterationAddedEvent {
14 | .com.ankama.dofus.server.game.protocol.alteration.Alteration alteration = 1;
15 | }
16 |
17 | message AlterationRemovedEvent {
18 | .com.ankama.dofus.server.game.protocol.alteration.Alteration alteration = 1;
19 | }
20 |
21 | message AlterationsUpdateEvent {
22 | repeated .com.ankama.dofus.server.game.protocol.alteration.Alteration alterations = 1;
23 | }
24 |
25 | message Alteration {
26 | int64 alteration_id = 1;
27 | int64 creation_time = 2;
28 | .com.ankama.dofus.server.game.protocol.alteration.Alteration.AlterationExpirationType expiration_type = 3;
29 | int64 expiration_value = 4;
30 | repeated .com.ankama.dofus.server.game.protocol.common.ObjectEffect effects = 5;
31 | enum AlterationExpirationType {
32 | UNKNOWN = 0;
33 | INFINITE = 1;
34 | DATE = 2;
35 | FIGHT_COUNT = 3;
36 | FIGHTS_WON_COUNT = 4;
37 | FIGHTS_LOST_COUNT = 5;
38 | }
39 |
40 | }
41 |
42 |
--------------------------------------------------------------------------------
/proto/game/anomaly.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/anomaly";
4 |
5 | package com.ankama.dofus.server.game.protocol.anomaly;
6 |
7 | message AnomalySubareaInformationRequest {
8 | }
9 |
10 | message AnomalySubareaInformationEvent {
11 | repeated .com.ankama.dofus.server.game.protocol.anomaly.AnomalySubareaInformationEvent.AnomalySubareaInformation subareas = 1;
12 | message AnomalySubareaInformation {
13 | int32 subarea_id = 1;
14 | int32 reward_rate = 2;
15 | bool has_anomaly = 3;
16 | int64 anomaly_closing_time = 4;
17 | }
18 |
19 | }
20 |
21 | message AnomalyStateEvent {
22 | int32 subarea_id = 1;
23 | bool open = 2;
24 | int64 closing_time = 3;
25 | }
26 |
27 | message AnomalyOpenedEvent {
28 | int32 subarea_id = 1;
29 | }
30 |
31 |
--------------------------------------------------------------------------------
/proto/game/area.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/area";
4 |
5 | package com.ankama.dofus.server.game.protocol.area;
6 |
7 | message SubareaRewardRateEvent {
8 | int32 subarea_rate = 1;
9 | }
10 |
11 | message AreaFightModifierUpdateEvent {
12 | repeated int32 spell_pairs = 1;
13 | }
14 |
15 |
--------------------------------------------------------------------------------
/proto/game/atlas.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/atlas";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.atlas;
8 |
9 | enum CompassType {
10 | SIMPLE = 0;
11 | SPOUSE = 1;
12 | PARTY = 2;
13 | PVP_SEEK = 3;
14 | QUEST = 4;
15 | }
16 |
17 | message CompassResetEvent {
18 | .com.ankama.dofus.server.game.protocol.atlas.CompassType type = 1;
19 | }
20 |
21 | message CompassUpdateEvent {
22 | .com.ankama.dofus.server.game.protocol.atlas.CompassType type = 1;
23 | .com.ankama.dofus.server.game.protocol.common.MapCoordinates coordinates = 2;
24 | oneof complement {
25 | .com.ankama.dofus.server.game.protocol.atlas.CompassUpdateEvent.PartyMember party_member = 3;
26 | .com.ankama.dofus.server.game.protocol.atlas.CompassUpdateEvent.PvpSeek pvp_seek = 4;
27 | }
28 | message PartyMember {
29 | int64 member_id = 1;
30 | bool active = 2;
31 | }
32 |
33 | message PvpSeek {
34 | int64 target_id = 1;
35 | string target_name = 2;
36 | }
37 |
38 | }
39 |
40 |
--------------------------------------------------------------------------------
/proto/game/bak.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/bak";
4 |
5 | package com.ankama.dofus.server.game.protocol.bak;
6 |
7 | enum BidAction {
8 | BID_INVALID_ACTION = 0;
9 | BID_CONSUME_BUFF = 1;
10 | BID_CANCEL = 2;
11 | BID_CREATE_KAMA = 3;
12 | BID_CREATE_OGRINE = 4;
13 | BID_BUY_KAMA = 5;
14 | BID_BUY_OGRINE = 6;
15 | }
16 |
17 | message BufferInformation {
18 | int64 buffer_id = 1;
19 | int64 buffer_amount = 2;
20 | }
21 |
22 | message BakBufferListRequest {
23 | }
24 |
25 | message BakBufferListEvent {
26 | repeated .com.ankama.dofus.server.game.protocol.bak.BufferInformation buffers = 1;
27 | }
28 |
29 | message BakConsumeBufferRequest {
30 | }
31 |
32 | message BakCancelBidRequest {
33 | int64 bid_id = 1;
34 | .com.ankama.dofus.server.game.protocol.bak.BakCancelBidRequest.BidCancellationType bid_cancellation_type = 2;
35 | enum BidCancellationType {
36 | UNKNOWN_TYPE = 0;
37 | CLASSIC_TYPE = 1;
38 | FRAUD_TYPE = 2;
39 | }
40 |
41 | }
42 |
43 | message BakActionRequest {
44 | int64 kamas = 1;
45 | int64 ogrines = 2;
46 | int32 rate = 3;
47 | .com.ankama.dofus.server.game.protocol.bak.BidAction bid_action = 4;
48 | }
49 |
50 | message BakActionEvent {
51 | int64 kamas = 1;
52 | int64 amount = 2;
53 | int32 rate = 3;
54 | .com.ankama.dofus.server.game.protocol.bak.BidAction bid_action = 4;
55 | string transaction_uuid = 5;
56 | }
57 |
58 | message BakTransactionValidationRequest {
59 | string transaction_uuid = 1;
60 | }
61 |
62 | message BakTransactionValidationEvent {
63 | .com.ankama.dofus.server.game.protocol.bak.BidAction bid_action = 1;
64 | .com.ankama.dofus.server.game.protocol.bak.BakTransactionValidationEvent.BidValidation result = 2;
65 | enum BidValidation {
66 | BID_GENERIC_ERROR = 0;
67 | BID_BUFFER_OVERLOAD = 1;
68 | BID_OFFER_DOESNT_EXIST = 2;
69 | BID_OFFER_ALREADY_EXISTS = 3;
70 | BID_NOT_ENOUGH_KAMAS = 4;
71 | BID_NOT_ENOUGH_OGRINES = 5;
72 | BID_SERVER_MAINTENANCE = 6;
73 | BID_PLAYER_IN_DEBT = 7;
74 | BID_OFFER_IS_YOURS = 8;
75 | BID_VALIDATION_SUCCESS = 9;
76 | }
77 |
78 | }
79 |
80 | message BakBuyValidationEvent {
81 | .com.ankama.dofus.server.game.protocol.bak.BakTransactionValidationEvent transaction_validation = 1;
82 | int64 amount = 2;
83 | string email = 3;
84 | }
85 |
86 | message BakApiTokenRequest {
87 | }
88 |
89 | message BakApiKeyEvent {
90 | string token = 1;
91 | }
92 |
93 | message BakShopTokenRequest {
94 | }
95 |
96 | message BakShopTokenEvent {
97 | string token = 1;
98 | }
99 |
100 |
--------------------------------------------------------------------------------
/proto/game/basic.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/basic";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.basic;
8 |
9 | message DateRequest {
10 | }
11 |
12 | message WhoAmIRequest {
13 | bool verbose = 1;
14 | }
15 |
16 | message WhoIsRequest {
17 | bool verbose = 1;
18 | .com.ankama.dofus.server.game.protocol.common.PlayerSearch target = 2;
19 | }
20 |
21 | message WhoIsNumericRequest {
22 | int64 player_id = 1;
23 | }
24 |
25 | message BasicLatencyStatsRequest {
26 | int32 latency = 1;
27 | }
28 |
29 | message SequenceNumberRequest {
30 | int32 number = 1;
31 | }
32 |
33 | message DateEvent {
34 | int32 day = 1;
35 | int32 month = 2;
36 | int32 year = 3;
37 | }
38 |
39 | message TimeEvent {
40 | int64 timestamp = 1;
41 | int32 timezone_offset = 2;
42 | }
43 |
44 | message AlmanachCalendarDateEvent {
45 | int32 date_id = 1;
46 | }
47 |
48 | message SystemMessageDisplayEvent {
49 | bool hang_up = 1;
50 | int32 message_id = 2;
51 | repeated string parameters = 3;
52 | }
53 |
54 | message TextInformationEvent {
55 | .com.ankama.dofus.server.game.protocol.basic.TextInformationEvent.TextInformationType message_type = 1;
56 | int32 message_id = 2;
57 | repeated string parameters = 3;
58 | enum TextInformationType {
59 | TEXT_INFORMATION_MESSAGE = 0;
60 | TEXT_INFORMATION_ERROR = 1;
61 | TEXT_INFORMATION_PVP = 2;
62 | TEXT_INFORMATION_FIGHT_LOG = 3;
63 | TEXT_INFORMATION_POPUP = 4;
64 | TEXT_LIVING_OBJECT = 5;
65 | TEXT_ENTITY_TALK = 6;
66 | TEXT_INFORMATION_FIGHT = 7;
67 | TEXT_INFORMATION_EVENT = 8;
68 | }
69 |
70 | }
71 |
72 | message WhoIsEvent {
73 | bool self = 1;
74 | .com.ankama.dofus.server.game.protocol.common.Hierarchy position = 2;
75 | string account_name = 3;
76 | string account_tag = 4;
77 | int64 account_id = 5;
78 | string character_name = 6;
79 | int64 character_id = 7;
80 | int32 area_id = 8;
81 | int32 server_id = 9;
82 | int32 origin_server_id = 10;
83 | bool verbose = 13;
84 | .com.ankama.dofus.server.game.protocol.common.CharacterState state = 14;
85 | optional .com.ankama.dofus.server.game.protocol.common.GuildInformation guild_information = 11;
86 | optional .com.ankama.dofus.server.game.protocol.common.AllianceInformation alliance_information = 12;
87 | }
88 |
89 | message WhoIsNoMatchEvent {
90 | }
91 |
92 | message WhoIsNumericEvent {
93 | int64 player_id = 1;
94 | int64 account_id = 2;
95 | }
96 |
97 | message BasicLatencyStatsEvent {
98 | }
99 |
100 | message SequenceNumberEvent {
101 | }
102 |
103 | message CurrentServerStatusUpdateEvent {
104 | .com.ankama.dofus.server.game.protocol.basic.CurrentServerStatusUpdateEvent.ServerStatus status = 1;
105 | enum ServerStatus {
106 | UNKNOWN = 0;
107 | OFFLINE = 1;
108 | STARTING = 2;
109 | ONLINE = 3;
110 | NO_JOIN = 4;
111 | SAVING = 5;
112 | STOPPING = 6;
113 | FULL = 7;
114 | }
115 |
116 | }
117 |
118 |
--------------------------------------------------------------------------------
/proto/game/breach.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/breach";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.breach;
8 |
9 | message BreachTeleportRequest {
10 | }
11 |
12 | message BreachRoomUnlockRequest {
13 | int32 room_id = 1;
14 | }
15 |
16 | message BreachExitRequest {
17 | }
18 |
19 | message BreachRewardBuyRequest {
20 | int32 reward_id = 1;
21 | }
22 |
23 | message BreachInvitationRequest {
24 | repeated int64 guests = 1;
25 | }
26 |
27 | message BreachInvitationAnswerRequest {
28 | bool accepted = 1;
29 | }
30 |
31 | message BreachKickRequest {
32 | int64 player_id = 1;
33 | }
34 |
35 | message BreachEnterEvent {
36 | int64 owner = 1;
37 | }
38 |
39 | message BreachTeleportResultEvent {
40 | bool teleported = 1;
41 | }
42 |
43 | message BreachRoomLockedEvent {
44 | }
45 |
46 | message BreachRoomUnlockResultEvent {
47 | int32 room_id = 1;
48 | .com.ankama.dofus.server.game.protocol.breach.BreachRoomUnlockResultEvent.BreachRoomUnlockResult result = 2;
49 | enum BreachRoomUnlockResult {
50 | SUCCESS = 0;
51 | FAIL_NOT_ENOUGH_BUDGET = 1;
52 | }
53 |
54 | }
55 |
56 | message BreachExitResultEvent {
57 | bool exited = 1;
58 | }
59 |
60 | message BreachStateEvent {
61 | .com.ankama.dofus.server.game.protocol.common.Character owner = 1;
62 | repeated .com.ankama.dofus.server.game.protocol.common.ObjectEffect bonuses = 2;
63 | int32 budget = 3;
64 | bool saved = 4;
65 | }
66 |
67 | message BreachCharactersEvent {
68 | repeated int64 players = 1;
69 | }
70 |
71 | message BreachBonusEvent {
72 | .com.ankama.dofus.server.game.protocol.common.ObjectEffect bonus = 1;
73 | }
74 |
75 | message BreachBudgetEvent {
76 | int32 budget = 1;
77 | }
78 |
79 | message BreachSavedEvent {
80 | bool saved = 1;
81 | }
82 |
83 | message BreachBranchesEvent {
84 | repeated .com.ankama.dofus.server.game.protocol.common.BreachBranch branches = 1;
85 | }
86 |
87 | message BreachRewardsEvent {
88 | repeated .com.ankama.dofus.server.game.protocol.common.BreachReward rewards = 1;
89 | }
90 |
91 | message BreachRewardBoughtEvent {
92 | int32 reward_id = 1;
93 | bool bought = 2;
94 | }
95 |
96 | message BreachInvitationOfferEvent {
97 | .com.ankama.dofus.server.game.protocol.common.Character host = 1;
98 | int32 time_left_before_cancel = 2;
99 | }
100 |
101 | message BreachInvitationCloseEvent {
102 | .com.ankama.dofus.server.game.protocol.common.Character host = 1;
103 | }
104 |
105 |
--------------------------------------------------------------------------------
/proto/game/challenge.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/challenge";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.challenge;
8 |
9 | message ChallengeTargetsRequest {
10 | int32 challenge_id = 1;
11 | }
12 |
13 | message ChallengeSelectionRequest {
14 | int32 challenge_id = 1;
15 | }
16 |
17 | message ChallengeValidateRequest {
18 | int32 challenge_id = 1;
19 | }
20 |
21 | message ChallengeModSelectRequest {
22 | .com.ankama.dofus.server.game.protocol.common.ChallengeMod challenge_mod = 1;
23 | }
24 |
25 | message ChallengeReadyRequest {
26 | .com.ankama.dofus.server.game.protocol.common.ChallengeMod challenge_mod = 1;
27 | }
28 |
29 | message ChallengeBonusChoiceRequest {
30 | .com.ankama.dofus.server.game.protocol.common.ChallengeBonus challenge_bonus = 1;
31 | }
32 |
33 | message ChallengeListEvent {
34 | repeated .com.ankama.dofus.server.game.protocol.common.Challenge challenges = 1;
35 | }
36 |
37 | message ChallengeTargetsEvent {
38 | .com.ankama.dofus.server.game.protocol.common.Challenge challenge = 2;
39 | }
40 |
41 | message ChallengeResultEvent {
42 | int32 challenge_id = 1;
43 | bool success = 2;
44 | }
45 |
46 | message ChallengeNumberEvent {
47 | int32 challenge_number = 1;
48 | }
49 |
50 | message ChallengeProposalEvent {
51 | repeated .com.ankama.dofus.server.game.protocol.common.Challenge challenge_proposals = 1;
52 | int64 timer = 2;
53 | }
54 |
55 | message ChallengeSelectedEvent {
56 | .com.ankama.dofus.server.game.protocol.common.Challenge challenge = 1;
57 | }
58 |
59 | message ChallengeAddEvent {
60 | .com.ankama.dofus.server.game.protocol.common.Challenge challenge = 1;
61 | }
62 |
63 | message ChallengeModSelectedEvent {
64 | .com.ankama.dofus.server.game.protocol.common.ChallengeMod challenge_mod = 1;
65 | }
66 |
67 | message ChallengeBonusChoiceSelectedEvent {
68 | .com.ankama.dofus.server.game.protocol.common.ChallengeBonus challenge_bonus = 1;
69 | }
70 |
71 |
--------------------------------------------------------------------------------
/proto/game/character.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/character";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.character;
8 |
9 | message PlayerStatusUpdateRequest {
10 | .com.ankama.dofus.server.game.protocol.common.CharacterStatus status = 1;
11 | }
12 |
13 | message ResetCharacterCharacteristicsRequest {
14 | }
15 |
16 | message FreeSoulRequest {
17 | }
18 |
19 | message CharacterCharacteristicUpgradeRequest {
20 | int32 strength = 1;
21 | int32 vitality = 2;
22 | int32 wisdom = 3;
23 | int32 chance = 4;
24 | int32 agility = 5;
25 | int32 intelligence = 6;
26 | }
27 |
28 | message PlayerStatusUpdateErrorEvent {
29 | }
30 |
31 | message PlayerStatusUpdatedEvent {
32 | int32 account_id = 1;
33 | int64 player_id = 2;
34 | .com.ankama.dofus.server.game.protocol.common.CharacterStatus status = 3;
35 | }
36 |
37 | message CharacterCharacteristicsEvent {
38 | .com.ankama.dofus.server.game.protocol.common.CharacterCharacteristics stats = 1;
39 | }
40 |
41 | message CharacterLevelUpEvent {
42 | int32 new_level = 1;
43 | }
44 |
45 | message CharacterExperienceGainEvent {
46 | int64 character_experience = 1;
47 | int64 mount_experience = 2;
48 | int64 guild_experience = 3;
49 | }
50 |
51 | message LifePointsRegenBeginEvent {
52 | int32 regen_rate = 1;
53 | }
54 |
55 | message UpdateLifePointsEvent {
56 | int32 life_points = 1;
57 | int32 max_life_points = 2;
58 | optional int32 life_points_gained = 3;
59 | }
60 |
61 | message CharacterLifeStatusEvent {
62 | .com.ankama.dofus.server.game.protocol.character.CharacterLifeStatusEvent.LifeStatus state = 1;
63 | int64 phoenix_map_id = 2;
64 | enum LifeStatus {
65 | ALIVE_AND_KICKING = 0;
66 | TOMBSTONE = 1;
67 | PHANTOM = 2;
68 | }
69 |
70 | }
71 |
72 | message GameOverEvent {
73 | }
74 |
75 | message CharacterCharacteristicUpgradeResultEvent {
76 | .com.ankama.dofus.server.game.protocol.character.CharacterCharacteristicUpgradeResultEvent.CharacteristicUpgradeResult result = 1;
77 | int32 points = 2;
78 | enum CharacteristicUpgradeResult {
79 | NONE = 0;
80 | SUCCESS = 1;
81 | GUEST = 2;
82 | IN_FIGHT = 3;
83 | NOT_ENOUGH_POINT = 4;
84 | }
85 |
86 | }
87 |
88 | message CharacterRestrictionsEvent {
89 | int64 character_id = 1;
90 | repeated .com.ankama.dofus.server.game.protocol.common.Restriction restrictions = 2;
91 | }
92 |
93 | message CharacterOnConnectionEvent {
94 | .com.ankama.dofus.server.game.protocol.character.CharacterOnConnectionEvent.ConnectionEvent connection_event = 1;
95 | enum ConnectionEvent {
96 | FIRST_ACCOUNT_CONNECTION_EVER = 0;
97 | FIRST_ACCOUNT_CONNECTION_ON_SERVER = 1;
98 | FIRST_ACCOUNT_CONNECTION_SINCE_REBOOT = 2;
99 | FIRST_CHARACTER_CONNECTION = 3;
100 | FIRST_CHARACTER_CONNECTION_SINCE_REBOOT = 4;
101 | }
102 |
103 | }
104 |
105 |
--------------------------------------------------------------------------------
/proto/game/chat.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/chat";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.chat;
8 |
9 | enum Channel {
10 | GLOBAL = 0;
11 | TEAM = 1;
12 | GUILD = 2;
13 | ALLIANCE = 3;
14 | PARTY = 4;
15 | SALES = 5;
16 | SEEK = 6;
17 | NOOB = 7;
18 | ADMIN = 8;
19 | ARENA = 9;
20 | PRIVATE = 10;
21 | INFO = 12;
22 | FIGHT_LOG = 13;
23 | ADS = 14;
24 | EVENT = 15;
25 | EXCHANGE = 16;
26 | }
27 |
28 | message ChatPrivateMessageRequest {
29 | string content = 1;
30 | repeated .com.ankama.dofus.server.game.protocol.common.ObjectItemInventory object = 2;
31 | oneof target {
32 | string name = 3;
33 | .com.ankama.dofus.server.game.protocol.common.AccountTag tag = 4;
34 | }
35 | }
36 |
37 | message ChatPrivateCopyMessageEvent {
38 | string content = 1;
39 | string date = 2;
40 | int64 target_character_id = 3;
41 | string target_name = 4;
42 | repeated .com.ankama.dofus.server.game.protocol.common.ObjectItemInventory object = 5;
43 | }
44 |
45 | message ChatChannelMessageRequest {
46 | string content = 1;
47 | .com.ankama.dofus.server.game.protocol.chat.Channel channel = 2;
48 | repeated .com.ankama.dofus.server.game.protocol.common.ObjectItemInventory object = 3;
49 | }
50 |
51 | message ChatChannelMessageEvent {
52 | string content = 1;
53 | .com.ankama.dofus.server.game.protocol.chat.Channel channel = 2;
54 | string date = 3;
55 | int64 sender_character_id = 4;
56 | int64 sender_account_id = 5;
57 | string sender_prefix = 6;
58 | string sender_name = 7;
59 | bool from_admin = 8;
60 | repeated .com.ankama.dofus.server.game.protocol.common.ObjectItemInventory object = 9;
61 | optional int32 origin_server_id = 10;
62 | }
63 |
64 | message ChatErrorEvent {
65 | .com.ankama.dofus.server.game.protocol.chat.ChatErrorEvent.Error error = 1;
66 | enum Error {
67 | UNKNOWN = 0;
68 | RECEIVER_NOT_FOUND = 1;
69 | INTERIOR_MONOLOGUE = 2;
70 | NO_GUILD = 3;
71 | NO_PARTY = 4;
72 | ALLIANCE = 5;
73 | INVALID_MAP = 6;
74 | NO_PARTY_ARENA = 7;
75 | NO_TEAM = 8;
76 | MALFORMED_CONTENT = 9;
77 | NO_EXCHANGE = 10;
78 | }
79 |
80 | }
81 |
82 | message SubscribeChannelRequest {
83 | .com.ankama.dofus.server.game.protocol.chat.Channel channel = 1;
84 | bool enable = 2;
85 | }
86 |
87 | message ChannelUpdateEvent {
88 | .com.ankama.dofus.server.game.protocol.chat.Channel channel = 1;
89 | bool enable = 2;
90 | }
91 |
92 | message ChatChannelsEnabledEvent {
93 | repeated .com.ankama.dofus.server.game.protocol.chat.Channel active_channels = 1;
94 | repeated .com.ankama.dofus.server.game.protocol.chat.Channel disabled_channels = 2;
95 | }
96 |
97 |
--------------------------------------------------------------------------------
/proto/game/choice.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/choice";
4 |
5 | package com.ankama.dofus.server.game.protocol.choice;
6 |
7 | message Choice {
8 | int32 id = 1;
9 | int32 position = 2;
10 | }
11 |
12 | message ChoiceSelectionEvent {
13 | int32 selection_id = 1;
14 | repeated .com.ankama.dofus.server.game.protocol.choice.Choice choices = 2;
15 | }
16 |
17 | message ChoiceSelectedEvent {
18 | int32 position = 1;
19 | }
20 |
21 | message ChoiceSelectedRequest {
22 | int32 position = 1;
23 | }
24 |
25 |
--------------------------------------------------------------------------------
/proto/game/client_verification.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/client_verification";
4 |
5 | package com.ankama.dofus.server.game.protocol.client.verification;
6 |
7 | message ServerSessionReadyEvent {
8 | }
9 |
10 | message ClientIdRequest {
11 | string id = 1;
12 | }
13 |
14 | message ServerVerificationEvent {
15 | }
16 |
17 | message ClientChallengeInitRequest {
18 | string challengeKey = 1;
19 | }
20 |
21 | message ServerChallengeEvent {
22 | optional string value = 1;
23 | }
24 |
25 | message ClientChallengeProofRequest {
26 | string proof = 1;
27 | }
28 |
29 |
--------------------------------------------------------------------------------
/proto/game/connection.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/connection";
4 |
5 | package com.ankama.dofus.server.game.protocol.connection;
6 |
7 | message IdentificationRequest {
8 | string ticket_key = 1;
9 | string language_code = 2;
10 | }
11 |
12 | message ReloginRequest {
13 | }
14 |
15 | message PingRequest {
16 | bool quiet = 1;
17 | }
18 |
19 | message PongEvent {
20 | bool quiet = 1;
21 | }
22 |
23 | message AuthenticationTicketAcceptedEvent {
24 | }
25 |
26 | message AlreadyConnectedEvent {
27 | }
28 |
29 | message ReconnectToGameServerEvent {
30 | bool valid_token = 1;
31 | string token = 2;
32 | int32 server_id = 3;
33 | }
34 |
35 | message OptionalFeaturesEvent {
36 | repeated int32 features = 1;
37 | }
38 |
39 | message ReloginTokenEvent {
40 | bool valid_token = 1;
41 | string token = 2;
42 | }
43 |
44 | message QueueStatusEvent {
45 | int32 position = 1;
46 | int32 total = 2;
47 | }
48 |
49 | message AuthenticationTicketRefusedEvent {
50 | }
51 |
52 |
--------------------------------------------------------------------------------
/proto/game/context.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/context";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.context;
8 |
9 | message ContextCreationRequest {
10 | }
11 |
12 | message ContextReadyRequest {
13 | int64 map_id = 1;
14 | }
15 |
16 | message ContextQuitRequest {
17 | }
18 |
19 | message ContextKickRequest {
20 | int64 target_id = 1;
21 | }
22 |
23 | message ShowCellRequest {
24 | int32 cell_id = 1;
25 | }
26 |
27 | message ContextCreationEvent {
28 | .com.ankama.dofus.server.game.protocol.context.ContextCreationEvent.GameContext context = 1;
29 | enum GameContext {
30 | ROLE_PLAY = 0;
31 | FIGHT = 1;
32 | }
33 |
34 | }
35 |
36 | message ContextDestroyEvent {
37 | }
38 |
39 | message ContextRemoveElementEvent {
40 | int64 element_id = 1;
41 | }
42 |
43 | message ContextRemoveElementsEvent {
44 | repeated int64 element_id = 1;
45 | }
46 |
47 | message ContextRefreshEntityLookEvent {
48 | int64 entity_id = 1;
49 | .com.ankama.dofus.server.game.protocol.common.EntityLook look = 2;
50 | }
51 |
52 | message EntitiesDispositionEvent {
53 | repeated .com.ankama.dofus.server.game.protocol.common.EntityDisposition dispositions = 1;
54 | }
55 |
56 | message EntityDispositionErrorEvent {
57 | }
58 |
59 | message MonsterBoosts {
60 | int32 id = 1;
61 | int32 xp_boost = 2;
62 | int32 drop_boost = 3;
63 | }
64 |
65 | message RefreshMonsterBoostsEvent {
66 | repeated .com.ankama.dofus.server.game.protocol.context.MonsterBoosts monster_boosts = 1;
67 | repeated .com.ankama.dofus.server.game.protocol.context.MonsterBoosts family_boosts = 2;
68 | }
69 |
70 | message ShowCellEvent {
71 | int64 source_id = 1;
72 | int32 cell_id = 2;
73 | }
74 |
75 |
--------------------------------------------------------------------------------
/proto/game/debt.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/debt";
4 |
5 | package com.ankama.dofus.server.game.protocol.debt;
6 |
7 | message DebtsUpdateEvent {
8 | .com.ankama.dofus.server.game.protocol.debt.DebtsUpdateEvent.DebtsAction action = 1;
9 | repeated .com.ankama.dofus.server.game.protocol.debt.DebtsUpdateEvent.DebtInformation debts = 2;
10 | message DebtInformation {
11 | int64 debt_id = 1;
12 | int64 timestamp = 2;
13 | optional int64 kamas = 3;
14 | }
15 |
16 | enum DebtsAction {
17 | DISPATCH = 0;
18 | UPDATE = 1;
19 | }
20 |
21 | }
22 |
23 | message DebtsDeleteEvent {
24 | .com.ankama.dofus.server.game.protocol.debt.DebtsDeleteEvent.DebtsDeletionReason reason = 1;
25 | repeated int64 debts = 2;
26 | enum DebtsDeletionReason {
27 | UNKNOWN = 0;
28 | ADMIN_COMMAND_REQUEST = 1;
29 | PAYED = 2;
30 | CANCELED = 3;
31 | }
32 |
33 | }
34 |
35 |
--------------------------------------------------------------------------------
/proto/game/debug.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/debug";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.debug;
8 |
9 | message DumpedEntityStatsEvent {
10 | int64 entity_id = 1;
11 | repeated .com.ankama.dofus.server.game.protocol.common.CharacterCharacteristic stats = 2;
12 | }
13 |
14 | message DebugHighlightCellsEvent {
15 | int64 color = 1;
16 | repeated int32 cells = 2;
17 | }
18 |
19 | message DebugClearHighlightCellsEvent {
20 | }
21 |
22 | message DebugInClientEvent {
23 | .com.ankama.dofus.server.game.protocol.debug.DebugInClientEvent.DebugLevel level = 1;
24 | string message = 2;
25 | enum DebugLevel {
26 | TRACE = 0;
27 | DEBUG = 1;
28 | INFO = 2;
29 | WARN = 3;
30 | ERROR = 4;
31 | FATAL = 5;
32 | }
33 |
34 | }
35 |
36 |
--------------------------------------------------------------------------------
/proto/game/dialog.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/dialog";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.dialog;
8 |
9 | message DialogLeaveRequest {
10 | }
11 |
12 | message DialogLeaveEvent {
13 | .com.ankama.dofus.server.game.protocol.common.DialogType dialog_type = 1;
14 | }
15 |
16 |
--------------------------------------------------------------------------------
/proto/game/document.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/document";
4 |
5 | package com.ankama.dofus.server.game.protocol.document;
6 |
7 | message DocumentReadingBeginEvent {
8 | int32 document_id = 1;
9 | }
10 |
11 | message OpenGuideBookEvent {
12 | int32 article_id = 1;
13 | }
14 |
15 |
--------------------------------------------------------------------------------
/proto/game/element.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/element";
4 |
5 | package com.ankama.dofus.server.game.protocol.element;
6 |
7 | message LockableUseCodeRequest {
8 | string code = 1;
9 | }
10 |
11 | message LockableChangeCodeRequest {
12 | string code = 1;
13 | }
14 |
15 | message PurchasableDialogEvent {
16 | .com.ankama.dofus.server.game.protocol.element.PurchasableDialogEvent.Action action = 1;
17 | int64 purchasable_id = 2;
18 | int32 purchasable_instance_id = 3;
19 | bool second_hand = 4;
20 | int64 price = 5;
21 | enum Action {
22 | BUY = 0;
23 | SELL = 1;
24 | }
25 |
26 | }
27 |
28 | message LockableShowCodeDialogEvent {
29 | .com.ankama.dofus.server.game.protocol.element.LockableShowCodeDialogEvent.Action action = 1;
30 | int32 code_size = 2;
31 | enum Action {
32 | CHANGE = 0;
33 | USE = 1;
34 | }
35 |
36 | }
37 |
38 | message LockableCodeResultEvent {
39 | .com.ankama.dofus.server.game.protocol.element.LockableCodeResultEvent.LockableResult result = 1;
40 | enum LockableResult {
41 | UNLOCKED = 0;
42 | CODE_ERROR = 1;
43 | UNLOCK_FORBIDDEN = 2;
44 | }
45 |
46 | }
47 |
48 | message LockableStateUpdateHouseDoorEvent {
49 | int32 house_id = 1;
50 | int32 house_instance_id = 2;
51 | bool second_hand = 3;
52 | bool locked = 4;
53 | }
54 |
55 |
--------------------------------------------------------------------------------
/proto/game/emote.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/emote";
4 |
5 | package com.ankama.dofus.server.game.protocol.emote;
6 |
7 | message EmotePlayRequest {
8 | int32 emote_id = 1;
9 | }
10 |
11 | message EmotesEvent {
12 | repeated int32 emotes_id = 1;
13 | }
14 |
15 | message EmoteAddedEvent {
16 | int32 emote_id = 1;
17 | }
18 |
19 | message EmoteRemovedEvent {
20 | int32 emote_id = 1;
21 | }
22 |
23 | message EmotePlayEvent {
24 | int32 emote_id = 1;
25 | int64 emote_start_time = 2;
26 | int64 actor_id = 3;
27 | int32 account_id = 4;
28 | }
29 |
30 | message EmoteMassivePlayEvent {
31 | int32 emote_id = 1;
32 | int64 emote_start_time = 2;
33 | repeated int64 actors_id = 3;
34 | }
35 |
36 | message EmotePlayErrorEvent {
37 | int32 emote_id = 1;
38 | }
39 |
40 |
--------------------------------------------------------------------------------
/proto/game/fight_preparation.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/fight_preparation";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.fight.preparation;
8 |
9 | message FightJoinRequest {
10 | int64 fighter_id = 1;
11 | int32 fight_id = 2;
12 | }
13 |
14 | message FightSpectatePlayerRequest {
15 | int64 player_id = 1;
16 | }
17 |
18 | message FightPlacementPositionRequest {
19 | int32 cell_id = 1;
20 | int64 entity_id = 2;
21 | }
22 |
23 | message FightPlacementSwapPositionsCancelRequest {
24 | int32 request_id = 1;
25 | }
26 |
27 | message FightPlacementSwapPositionsAcceptRequest {
28 | int32 request_id = 1;
29 | }
30 |
31 | message FightOptionToggleRequest {
32 | .com.ankama.dofus.server.game.protocol.common.FightOption option = 1;
33 | }
34 |
35 | message FightReadyRequest {
36 | bool is_ready = 1;
37 | }
38 |
39 | message FightStartingEvent {
40 | .com.ankama.dofus.server.game.protocol.common.FightType fight_type = 1;
41 | int32 fight_id = 2;
42 | int64 attacker_id = 3;
43 | int64 defender_id = 4;
44 | bool contain_boss = 5;
45 | repeated int32 monsters = 6;
46 | }
47 |
48 | message FightJoinEvent {
49 | bool is_team_phase = 1;
50 | bool can_be_cancelled = 2;
51 | bool can_say_ready = 3;
52 | bool is_fight_started = 4;
53 | int64 time_max_before_fight_start = 5;
54 | .com.ankama.dofus.server.game.protocol.common.FightType fight_type = 6;
55 | }
56 |
57 | message FightSpectatorJoinEvent {
58 | .com.ankama.dofus.server.game.protocol.fight.preparation.FightJoinEvent fight_join_event = 1;
59 | repeated .com.ankama.dofus.server.game.protocol.common.NamedPartyTeam named_party_teams = 2;
60 | }
61 |
62 | message FightPlacementPossiblePositionsEvent {
63 | .com.ankama.dofus.server.game.protocol.common.FightStartingPositions starting_positions = 1;
64 | .com.ankama.dofus.server.game.protocol.common.Team team = 2;
65 | }
66 |
67 | message FightPlacementSwapPositionsErrorEvent {
68 | }
69 |
70 | message FightPlacementSwapPositionsOfferEvent {
71 | int32 request_id = 1;
72 | int64 requester_id = 2;
73 | int32 requester_cell_id = 3;
74 | int64 target_id = 4;
75 | int32 target_cell_id = 5;
76 | }
77 |
78 | message FightPlacementSwapPositionsCancelledEvent {
79 | int32 request_id = 1;
80 | int64 canceller_id = 2;
81 | }
82 |
83 | message FightPlacementSwapPositionsEvent {
84 | repeated .com.ankama.dofus.server.game.protocol.common.EntityDisposition dispositions = 1;
85 | }
86 |
87 | message FightOptionUpdateEvent {
88 | int32 fight_id = 1;
89 | .com.ankama.dofus.server.game.protocol.common.Team team = 2;
90 | .com.ankama.dofus.server.game.protocol.common.FightOption option = 3;
91 | bool state = 4;
92 | }
93 |
94 | message FightTeamUpdateEvent {
95 | int32 fight_id = 1;
96 | .com.ankama.dofus.server.game.protocol.common.FightTeamInformation team = 2;
97 | }
98 |
99 | message FightTeamRemoveMemberEvent {
100 | int32 fight_id = 1;
101 | .com.ankama.dofus.server.game.protocol.common.Team team = 2;
102 | int64 character_id = 3;
103 | }
104 |
105 | message FightHumanReadyStateEvent {
106 | int64 character_id = 1;
107 | bool is_ready = 2;
108 | }
109 |
110 | message FightLeaveEvent {
111 | int64 character_id = 1;
112 | }
113 |
114 | message FightStartEvent {
115 | }
116 |
117 | message FightMapRequest {
118 | }
119 |
120 |
--------------------------------------------------------------------------------
/proto/game/finish_move.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/finish_move";
4 |
5 | package com.ankama.dofus.server.game.protocol.finish.move;
6 |
7 | message FinishMovesRequest {
8 | }
9 |
10 | message FinishMoveSetRequest {
11 | int32 finish_move_id = 1;
12 | bool effective = 2;
13 | }
14 |
15 | message FinishMovesEvent {
16 | repeated .com.ankama.dofus.server.game.protocol.finish.move.FinishMovesEvent.FinishMove finish_moves = 1;
17 | message FinishMove {
18 | int32 finish_move_id = 1;
19 | bool effective = 2;
20 | }
21 |
22 | }
23 |
24 |
--------------------------------------------------------------------------------
/proto/game/guild_application.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/guild_application";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.guild.application;
8 |
9 | message GuildApplicationSubmitRequest {
10 | string apply_text = 1;
11 | int32 guild_id = 2;
12 | int32 time_spent = 3;
13 | string language_filter = 4;
14 | string ambiance_filter = 5;
15 | string play_time_filter = 6;
16 | string interest_filter = 7;
17 | string min_max_guild_level_filter = 8;
18 | string recruitment_type_filter = 9;
19 | string min_max_character_level_filter = 10;
20 | string min_max_achievement_filter = 11;
21 | string search_name_filter = 12;
22 | string last_sort_filter = 13;
23 | }
24 |
25 | message GuildApplicationUpdateRequest {
26 | string apply_text = 1;
27 | int32 guild_id = 2;
28 | }
29 |
30 | message GuildApplicationDeleteRequest {
31 | }
32 |
33 | message GuildApplicationListenRequest {
34 | bool listen = 1;
35 | }
36 |
37 | message GuildApplicationGetOwnRequest {
38 | }
39 |
40 | message GuildApplicationsRequest {
41 | int64 offset = 1;
42 | int32 count = 2;
43 | }
44 |
45 | message GuildApplicationAnswerRequest {
46 | bool accepted = 1;
47 | int64 player_id = 2;
48 | }
49 |
50 | message GuildApplicationPresenceRequest {
51 | }
52 |
53 | message GuildApplicationDeletedEvent {
54 | bool deleted = 1;
55 | }
56 |
57 | message GuildApplicationPlayerEvent {
58 | optional .com.ankama.dofus.server.game.protocol.guild.application.GuildApplicationPlayerEvent.ApplicationInformation application = 1;
59 | message ApplicationInformation {
60 | .com.ankama.dofus.server.game.protocol.common.GuildInformation guild_information = 1;
61 | .com.ankama.dofus.server.game.protocol.common.SocialApplicationInformation apply = 2;
62 | }
63 |
64 | }
65 |
66 | message GuildApplicationAnswerEvent {
67 | bool accepted = 1;
68 | .com.ankama.dofus.server.game.protocol.common.GuildInformation guild_information = 2;
69 | }
70 |
71 | message GuildApplicationsEvent {
72 | int64 offset = 1;
73 | int64 count = 2;
74 | int64 total = 3;
75 | repeated .com.ankama.dofus.server.game.protocol.common.SocialApplicationInformation applies = 4;
76 | }
77 |
78 | message GuildApplicationModifiedEvent {
79 | .com.ankama.dofus.server.game.protocol.common.SocialApplicationInformation application = 1;
80 | .com.ankama.dofus.server.game.protocol.common.SocialApplicationState state = 2;
81 | int64 player_id = 3;
82 | }
83 |
84 | message GuildApplicationReceivedEvent {
85 | string player_name = 1;
86 | int64 player_id = 2;
87 | }
88 |
89 | message GuildApplicationPresenceEvent {
90 | bool is_application = 1;
91 | }
92 |
93 |
--------------------------------------------------------------------------------
/proto/game/guild_chest.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/guild_chest";
4 |
5 | package com.ankama.dofus.server.game.protocol.guild.chest;
6 |
7 | message GuildChestTabSelectRequest {
8 | int32 tab_number = 1;
9 | }
10 |
11 | message GuildChestTabUpdateRequest {
12 | int32 tab_number = 1;
13 | string name = 2;
14 | int32 picto = 3;
15 | repeated int32 drop_type_limitation = 4;
16 | }
17 |
18 | message GuildChestTabContributionsRequest {
19 | }
20 |
21 | message GuildChestContributionStartRequest {
22 | }
23 |
24 | message GuildChestContributionStopRequest {
25 | }
26 |
27 | message GuildChestStructureStartListeningRequest {
28 | }
29 |
30 | message GuildChestStructureStopListeningRequest {
31 | }
32 |
33 | message GuildChestTabContributionsEvent {
34 | repeated .com.ankama.dofus.server.game.protocol.guild.chest.GuildChestTabContributionsEvent.Contribution contributions = 1;
35 | message Contribution {
36 | int64 contributor_id = 1;
37 | string contributor_name = 2;
38 | int64 amount = 3;
39 | }
40 |
41 | }
42 |
43 | message GuildChestTabLastContributionDateEvent {
44 | int64 last_contribution_date = 1;
45 | }
46 |
47 | message GuildChestTabContributionEvent {
48 | int32 tab_number = 1;
49 | int64 required_amount = 2;
50 | int64 current_amount = 3;
51 | int64 chest_contribution_enrollment_delay = 4;
52 | int64 chest_contribution_delay = 5;
53 | }
54 |
55 | message GuildChestCurrentListenersEvent {
56 | repeated string players = 1;
57 | }
58 |
59 | message GuildChestCurrentListenersAddEvent {
60 | string players = 1;
61 | }
62 |
63 | message GuildChestCurrentListenersRemoveEvent {
64 | string players = 1;
65 | }
66 |
67 |
--------------------------------------------------------------------------------
/proto/game/guild_house.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/guild_house";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.guild.house;
8 |
9 | message GuildHousesEvent {
10 | repeated .com.ankama.dofus.server.game.protocol.common.House houses = 1;
11 | }
12 |
13 | message GuildHouseUpdateEvent {
14 | .com.ankama.dofus.server.game.protocol.common.House house = 1;
15 | }
16 |
17 | message GuildHouseRemoveEvent {
18 | int32 house_id = 1;
19 | int32 instance_id = 2;
20 | bool second_hand = 3;
21 | }
22 |
23 |
--------------------------------------------------------------------------------
/proto/game/guild_member.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/guild_member";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.guild.member;
8 |
9 | message GuildMemberParametersChangeRequest {
10 | int64 member_id = 1;
11 | int32 rank_id = 2;
12 | int32 experience_given_percent = 3;
13 | }
14 |
15 | message GuildMemberWarnOnConnectionStartRequest {
16 | }
17 |
18 | message GuildMemberWarnOnConnectionStopRequest {
19 | }
20 |
21 | message GuildMemberOnlineStatusEvent {
22 | int64 member_id = 1;
23 | bool online = 2;
24 | }
25 |
26 | message GuildMembersEvent {
27 | repeated .com.ankama.dofus.server.game.protocol.common.Character members = 1;
28 | }
29 |
30 | message GuildMemberUpdateEvent {
31 | .com.ankama.dofus.server.game.protocol.common.Character member = 1;
32 | }
33 |
34 | message GuildMemberLeaveEvent {
35 | bool kicked = 1;
36 | int64 player_id = 2;
37 | }
38 |
39 | message GuildLeftEvent {
40 | }
41 |
42 | message GuildMembershipEvent {
43 | .com.ankama.dofus.server.game.protocol.common.GuildInformation guild_information = 1;
44 | int32 rank_id = 2;
45 | }
46 |
47 | message GuildJoinedEvent {
48 | .com.ankama.dofus.server.game.protocol.common.GuildInformation guild_information = 1;
49 | int32 rank_id = 2;
50 | }
51 |
52 |
--------------------------------------------------------------------------------
/proto/game/guild_rank.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/guild_rank";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.guild.rank;
8 |
9 | message GuildRanksRequest {
10 | }
11 |
12 | message GuildRankCreateRequest {
13 | int32 parent_rank_id = 1;
14 | int32 gfx_id = 2;
15 | string name = 3;
16 | }
17 |
18 | message GuildRankUpdateAllRequest {
19 | repeated .com.ankama.dofus.server.game.protocol.common.RankInformation ranks = 1;
20 | }
21 |
22 | message GuildRankUpdateRequest {
23 | .com.ankama.dofus.server.game.protocol.common.RankInformation rank = 1;
24 | }
25 |
26 | message GuildRightsUpdateRequest {
27 | int32 rank_id = 1;
28 | repeated int32 rights = 2;
29 | }
30 |
31 | message GuildRankRemoveRequest {
32 | int32 rank_id = 1;
33 | int32 new_rank_id = 2;
34 | }
35 |
36 | message GuildRanksEvent {
37 | repeated .com.ankama.dofus.server.game.protocol.common.RankInformation ranks = 1;
38 | }
39 |
40 |
--------------------------------------------------------------------------------
/proto/game/guild_recruitment.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/guild_recruitment";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.guild.recruitment;
8 |
9 | message GuildRecruitmentUpdateRequest {
10 | .com.ankama.dofus.server.game.protocol.common.GuildRecruitmentInformation recruitment = 1;
11 | }
12 |
13 | message GuildRecruitmentEvent {
14 | .com.ankama.dofus.server.game.protocol.common.GuildRecruitmentInformation recruitment = 1;
15 | }
16 |
17 | message GuildRecruitmentInvalidateEvent {
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/proto/game/haapi.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/haapi";
4 |
5 | package com.ankama.dofus.server.game.protocol.haapi;
6 |
7 | message HaapiTokenRequest {
8 | }
9 |
10 | message HaapiTokenEvent {
11 | string token = 1;
12 | }
13 |
14 | message HaapiAuthenticationErrorEvent {
15 | }
16 |
17 | message HaapiSessionEvent {
18 | string session_uid = 1;
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/proto/game/haven_bag.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/haven_bag";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.haven.bag;
8 |
9 | message HavenBagEnterRequest {
10 | int64 owner = 1;
11 | }
12 |
13 | message HavenBagChangeRoomRequest {
14 | int32 room_id = 1;
15 | }
16 |
17 | message HavenBagExitRequest {
18 | }
19 |
20 | message HavenBagEditRequest {
21 | }
22 |
23 | message HavenBagEditCancelRequest {
24 | }
25 |
26 | message HavenBagThemeChangeRequest {
27 | int32 theme = 1;
28 | }
29 |
30 | message HavenBagFurnitureOpenRequest {
31 | }
32 |
33 | message HavenBagFurnitureRequest {
34 | repeated .com.ankama.dofus.server.game.protocol.haven.bag.Element furniture = 1;
35 | }
36 |
37 | message HavenBagFurnitureCloseRequest {
38 | }
39 |
40 | message HavenBagKickRequest {
41 | int64 guest_id = 1;
42 | }
43 |
44 | message HavenBagPermissionsUpdateRequest {
45 | int32 permissions = 1;
46 | }
47 |
48 | message HavenBagInvitationAnswerRequest {
49 | bool accepted = 1;
50 | }
51 |
52 | message HavenBagInvitationRequest {
53 | int64 guest_id = 1;
54 | }
55 |
56 | message HavenBagRoomUpdateEvent {
57 | .com.ankama.dofus.server.game.protocol.haven.bag.HavenBagRoomUpdateEvent.HavenBagRoomAction action = 1;
58 | repeated .com.ankama.dofus.server.game.protocol.haven.bag.HavenBagRoomUpdateEvent.HavenBagRoomPreview preview = 2;
59 | message HavenBagRoomPreview {
60 | int32 room_id = 1;
61 | int32 theme_id = 2;
62 | }
63 |
64 | enum HavenBagRoomAction {
65 | HAVEN_BAG_ROOM_DISPATCH = 0;
66 | HAVEN_BAG_ROOM_UPDATE = 1;
67 | }
68 |
69 | }
70 |
71 | message HavenBagPackListEvent {
72 | repeated int32 packs_id = 1;
73 | }
74 |
75 | message HavenBagEditStartEvent {
76 | }
77 |
78 | message HavenBagEditFinishedEvent {
79 | }
80 |
81 | message HavenBagDailyLotteryEvent {
82 | .com.ankama.dofus.server.game.protocol.haven.bag.HavenBagDailyLotteryEvent.DailyLotteryResult result = 1;
83 | optional int64 game_action_id = 2;
84 | enum DailyLotteryResult {
85 | HAVEN_BAG_DAILY_LOTTERY_OK = 0;
86 | HAVEN_BAG_DAILY_LOTTERY_ALREADY_USED = 1;
87 | HAVEN_BAG_DAILY_LOTTERY_ERROR = 2;
88 | }
89 |
90 | }
91 |
92 | message HavenBagFurnitureEvent {
93 | repeated .com.ankama.dofus.server.game.protocol.haven.bag.Element furniture = 1;
94 | }
95 |
96 | message HavenBagPermissionsUpdateEvent {
97 | int32 permissions = 1;
98 | }
99 |
100 | message HavenBagInvitationClosedEvent {
101 | .com.ankama.dofus.server.game.protocol.common.Character host_information = 1;
102 | }
103 |
104 | message HavenBagInvitationEvent {
105 | .com.ankama.dofus.server.game.protocol.common.Character guest_information = 1;
106 | bool accepted = 2;
107 | }
108 |
109 | message HavenBagInvitationOfferedEvent {
110 | .com.ankama.dofus.server.game.protocol.common.Character host_information = 1;
111 | int64 time_before_cancel = 2;
112 | }
113 |
114 | message Element {
115 | int32 cell_id = 1;
116 | int32 element_id = 2;
117 | int32 orientation = 3;
118 | }
119 |
120 |
--------------------------------------------------------------------------------
/proto/game/house.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/house";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.house;
8 |
9 | message HouseInformationRequest {
10 | int32 house_id = 1;
11 | int64 house_instance_id = 2;
12 | }
13 |
14 | message HouseInformationResponse {
15 | .com.ankama.dofus.server.game.protocol.common.HouseInstance house_information = 1;
16 | }
17 |
18 | message HouseKickRequest {
19 | int64 player_id = 1;
20 | }
21 |
22 | message HouseSellRequest {
23 | int32 instance_id = 1;
24 | int64 amount = 2;
25 | bool for_sale = 3;
26 | bool is_inside = 4;
27 | }
28 |
29 | message HouseBuyRequest {
30 | int64 proposed_price = 1;
31 | }
32 |
33 | message HouseLockFromInsideRequest {
34 | string code = 1;
35 | }
36 |
37 | message HousesToSellRequest {
38 | int32 page_index = 1;
39 | }
40 |
41 | message HousesToSellFiltersRequest {
42 | int32 area_id = 1;
43 | int32 at_least_room_number = 2;
44 | int32 at_least_chest_number = 3;
45 | int32 skill_requested = 4;
46 | int64 price_max = 5;
47 | .com.ankama.dofus.server.game.protocol.common.RealEstateOrder order_by = 6;
48 | }
49 |
50 | message HouseTeleportRequest {
51 | int32 house_id = 1;
52 | int32 instance_id = 2;
53 | }
54 |
55 | message HouseGuildRightsViewRequest {
56 | int32 house_id = 1;
57 | int32 instance_id = 2;
58 | }
59 |
60 | message HouseGuildShareRequest {
61 | int32 house_id = 1;
62 | int32 instance_id = 2;
63 | bool share = 3;
64 | int32 rights = 4;
65 | }
66 |
67 | message HouseAccountEvent {
68 | repeated .com.ankama.dofus.server.game.protocol.common.House houses = 1;
69 | }
70 |
71 | message HousePropertiesEvent {
72 | int32 house_id = 1;
73 | repeated int32 doors_on_map = 2;
74 | .com.ankama.dofus.server.game.protocol.common.HouseInstance properties = 3;
75 | }
76 |
77 | message HouseBuyResultEvent {
78 | int32 house_id = 1;
79 | int32 instance_id = 2;
80 | bool second_hand = 3;
81 | bool bought = 4;
82 | int64 price = 5;
83 | }
84 |
85 | message HouseSellingUpdateEvent {
86 | int32 house_id = 1;
87 | int32 instance_id = 2;
88 | bool second_hand = 3;
89 | int64 price = 4;
90 | string buyer_account_nickname = 5;
91 | string buyer_account_tag = 6;
92 | }
93 |
94 | message HousesToSellEvent {
95 | int32 page_index = 1;
96 | int32 total_page = 2;
97 | repeated .com.ankama.dofus.server.game.protocol.house.HousesToSellEvent.HouseToSell houses = 3;
98 | message HouseToSell {
99 | int32 instance_id = 1;
100 | bool second_hand = 2;
101 | int32 model_id = 3;
102 | string owner_account_nickname = 4;
103 | string owner_account_tag = 5;
104 | bool has_owner = 6;
105 | string owner_name = 7;
106 | .com.ankama.dofus.server.game.protocol.common.MapCoordinates coordinates = 8;
107 | int32 sub_area_id = 9;
108 | int32 room_number = 10;
109 | int32 chest_number = 11;
110 | repeated int32 skills_id = 12;
111 | bool is_locked = 13;
112 | int64 price = 14;
113 | }
114 |
115 | }
116 |
117 | message HouseGuildNoneEvent {
118 | int32 house_id = 1;
119 | int32 instance_id = 2;
120 | bool second_hand = 3;
121 | }
122 |
123 | message HouseGuildRightsEvent {
124 | int32 house_id = 1;
125 | int32 instance_id = 2;
126 | bool second_hand = 3;
127 | .com.ankama.dofus.server.game.protocol.common.GuildInformation guild_information = 4;
128 | int32 rights = 5;
129 | bool is_locked = 6;
130 | }
131 |
132 |
--------------------------------------------------------------------------------
/proto/game/interactive_element.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/interactive_element";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.interactive.element;
8 |
9 | message InteractiveUseRequest {
10 | int32 element_id = 1;
11 | int32 skill_instance_uid = 2;
12 | optional int32 specific_instance_id = 3;
13 | }
14 |
15 | message InteractiveUseErrorEvent {
16 | int32 element_id = 1;
17 | int32 skill_instance_uid = 2;
18 | }
19 |
20 | message InteractiveUsedEvent {
21 | int64 entity_id = 1;
22 | int32 element_id = 2;
23 | int32 skill_id = 3;
24 | int32 duration = 4;
25 | bool can_move = 5;
26 | }
27 |
28 | message InteractiveUseEndedEvent {
29 | int32 element_id = 1;
30 | int32 skill_id = 2;
31 | }
32 |
33 | message InteractiveMapUpdateEvent {
34 | repeated .com.ankama.dofus.server.game.protocol.common.InteractiveElement interactive_elements = 1;
35 | }
36 |
37 | message StatedMapUpdateEvent {
38 | repeated .com.ankama.dofus.server.game.protocol.common.StatedElement stated_elements = 1;
39 | }
40 |
41 | message InteractiveElementUpdatedEvent {
42 | .com.ankama.dofus.server.game.protocol.common.InteractiveElement interactive_element = 1;
43 | }
44 |
45 | message StatedElementUpdatedEvent {
46 | .com.ankama.dofus.server.game.protocol.common.StatedElement stated_element = 1;
47 | }
48 |
49 |
--------------------------------------------------------------------------------
/proto/game/job.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/job";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.job;
8 |
9 | message JobCrafterDirectoryListRequest {
10 | int32 job_id = 1;
11 | }
12 |
13 | message JobCrafterDirectorySettingsRequest {
14 | .com.ankama.dofus.server.game.protocol.job.JobCrafterDirectorySettings settings = 1;
15 | }
16 |
17 | message JobDescriptionEvent {
18 | repeated .com.ankama.dofus.server.game.protocol.job.JobDescription jobs = 1;
19 | }
20 |
21 | message JobLevelUpEvent {
22 | int32 new_level = 1;
23 | .com.ankama.dofus.server.game.protocol.job.JobDescription job = 2;
24 | }
25 |
26 | message JobExperiencesUpdateEvent {
27 | repeated .com.ankama.dofus.server.game.protocol.job.JobExperience experiences = 1;
28 | }
29 |
30 | message JobExperienceOtherPlayerUpdateEvent {
31 | .com.ankama.dofus.server.game.protocol.job.JobExperience experience = 1;
32 | int64 player_id = 2;
33 | }
34 |
35 | message JobMultiCraftStateEvent {
36 | bool enabled = 1;
37 | optional .com.ankama.dofus.server.game.protocol.job.JobMultiCraftStateEvent.PlayerSkills player_skills = 2;
38 | message PlayerSkills {
39 | int64 player_id = 1;
40 | repeated int32 skills = 2;
41 | }
42 |
43 | }
44 |
45 | message JobCrafterDirectoryListEvent {
46 | repeated .com.ankama.dofus.server.game.protocol.job.JobCrafterDirectoryEntry list_entries = 1;
47 | }
48 |
49 | message JobCrafterDirectorySettingsEvent {
50 | repeated .com.ankama.dofus.server.game.protocol.job.JobCrafterDirectorySettings settings = 1;
51 | }
52 |
53 | message JobBookSubscriptionEvent {
54 | repeated .com.ankama.dofus.server.game.protocol.job.JobBookSubscriptionEvent.Subscription subscriptions = 1;
55 | message Subscription {
56 | int32 job_id = 1;
57 | bool subscribed = 2;
58 | }
59 |
60 | }
61 |
62 | message JobCrafterDirectoryRemoveEvent {
63 | int32 job_id = 1;
64 | int64 player_id = 2;
65 | }
66 |
67 | message JobCrafterDirectoryAddEvent {
68 | .com.ankama.dofus.server.game.protocol.job.JobCrafterDirectoryEntry entry = 1;
69 | }
70 |
71 | message JobCrafterDirectoryEntryEvent {
72 | .com.ankama.dofus.server.game.protocol.job.JobCrafterDirectoryPlayerInformation player_information = 1;
73 | repeated .com.ankama.dofus.server.game.protocol.job.JobCrafterDirectoryJobInformation jobs_information = 2;
74 | .com.ankama.dofus.server.game.protocol.common.EntityLook look = 3;
75 | }
76 |
77 | message JobDescription {
78 | int32 job_id = 1;
79 | repeated .com.ankama.dofus.server.game.protocol.job.JobDescription.SkillAction skills = 2;
80 | message SkillAction {
81 | int32 skill_id = 1;
82 | oneof action {
83 | .com.ankama.dofus.server.game.protocol.job.JobDescription.SkillAction.Timed timed = 2;
84 | .com.ankama.dofus.server.game.protocol.job.JobDescription.SkillAction.Craft craft = 3;
85 | }
86 | message Timed {
87 | int32 time = 1;
88 | optional .com.ankama.dofus.server.game.protocol.job.JobDescription.SkillAction.Timed.Collect collect = 2;
89 | message Collect {
90 | int32 min = 1;
91 | int32 max = 2;
92 | }
93 |
94 | }
95 |
96 | message Craft {
97 | int32 probability = 1;
98 | }
99 |
100 | }
101 |
102 | }
103 |
104 | message JobExperience {
105 | int32 job_id = 1;
106 | int32 job_level = 2;
107 | int64 job_xp = 3;
108 | int64 job_xp_level_floor = 4;
109 | int64 job_xp_next_level_floor = 5;
110 | }
111 |
112 | message JobCrafterDirectoryEntry {
113 | .com.ankama.dofus.server.game.protocol.job.JobCrafterDirectoryPlayerInformation player_information = 1;
114 | .com.ankama.dofus.server.game.protocol.job.JobCrafterDirectoryJobInformation job_information = 2;
115 | }
116 |
117 | message JobCrafterDirectoryPlayerInformation {
118 | int64 player_id = 1;
119 | string name = 2;
120 | .com.ankama.dofus.server.game.protocol.common.Alignment alignment = 3;
121 | int32 breed = 4;
122 | .com.ankama.dofus.server.game.protocol.common.Gender gender = 5;
123 | bool is_in_workshop = 6;
124 | .com.ankama.dofus.server.game.protocol.common.MapExtendedCoordinates coordinates = 7;
125 | bool can_craft_legendary = 8;
126 | .com.ankama.dofus.server.game.protocol.common.CharacterStatus status = 9;
127 | }
128 |
129 | message JobCrafterDirectoryJobInformation {
130 | int32 job_id = 1;
131 | int32 job_level = 2;
132 | bool free = 3;
133 | int32 min_level = 4;
134 | }
135 |
136 | message JobCrafterDirectorySettings {
137 | int32 job_id = 1;
138 | int32 min_level = 2;
139 | bool free = 3;
140 | }
141 |
142 |
--------------------------------------------------------------------------------
/proto/game/living_object.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/living_object";
4 |
5 | package com.ankama.dofus.server.game.protocol.living.object;
6 |
7 | message LivingObjectMessageRequest {
8 | int32 message_id = 1;
9 | int32 object_gid = 2;
10 | }
11 |
12 | message LivingObjectDissociateRequest {
13 | int32 object_uid = 1;
14 | int32 position = 2;
15 | }
16 |
17 | message LivingObjectChangeSkinRequest {
18 | int32 object_uid = 1;
19 | int32 position = 2;
20 | int32 skin_id = 3;
21 | }
22 |
23 | message LivingObjectMessageEvent {
24 | int32 message_id = 1;
25 | int64 timestamp = 2;
26 | string owner_name = 3;
27 | int32 object_gid = 4;
28 | }
29 |
30 |
--------------------------------------------------------------------------------
/proto/game/message.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/message";
4 |
5 | import "google/protobuf/any.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol;
8 |
9 | message Message {
10 | oneof content {
11 | .com.ankama.dofus.server.game.protocol.Request request = 1;
12 | .com.ankama.dofus.server.game.protocol.Response response = 2;
13 | .com.ankama.dofus.server.game.protocol.Event event = 3;
14 | }
15 | }
16 |
17 | message Request {
18 | int32 uid = 1;
19 | .google.protobuf.Any content = 2;
20 | }
21 |
22 | message Response {
23 | int32 uid = 1;
24 | .google.protobuf.Any content = 2;
25 | }
26 |
27 | message Event {
28 | .google.protobuf.Any content = 1;
29 | }
30 |
31 |
--------------------------------------------------------------------------------
/proto/game/moderation.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/moderation";
4 |
5 | package com.ankama.dofus.server.game.protocol.moderation;
6 |
7 | message PopupWarningCloseRequest {
8 | }
9 |
10 | message PopupWarningEvent {
11 | int32 lock_duration = 1;
12 | string author = 2;
13 | string content = 3;
14 | }
15 |
16 | message PopupWarningClosedEvent {
17 | }
18 |
19 |
--------------------------------------------------------------------------------
/proto/game/mount.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/mount";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.mount;
8 |
9 | message MountReleaseRequest {
10 | }
11 |
12 | message MountSterilizeRequest {
13 | }
14 |
15 | message MountToggleRidingRequest {
16 | }
17 |
18 | message MountRenameRequest {
19 | string name = 1;
20 | int32 mount_id = 2;
21 | }
22 |
23 | message MountFeedRequest {
24 | int32 mount_id = 1;
25 | .com.ankama.dofus.server.game.protocol.mount.MountFeedRequest.MountLocation mount_location = 2;
26 | int32 mount_food_uid = 3;
27 | int32 quantity = 4;
28 | enum MountLocation {
29 | EQUIPPED = 0;
30 | INVENTORY = 1;
31 | STABLED = 2;
32 | MAP = 3;
33 | }
34 |
35 | }
36 |
37 | message MountSetXpRatioRequest {
38 | int32 xp_ratio = 1;
39 | }
40 |
41 | message MountInformationRequest {
42 | int32 mount_id = 1;
43 | int64 time = 2;
44 | }
45 |
46 | message MountInformationInPaddockRequest {
47 | int32 mount_id = 1;
48 | }
49 |
50 | message MountHarnessDissociateRequest {
51 | }
52 |
53 | message MountHarnessColorsUpdateRequest {
54 | bool use_harness_colors = 1;
55 | }
56 |
57 | message MountSterilizedEvent {
58 | int32 mount_id = 1;
59 | }
60 |
61 | message MountReleasedEvent {
62 | int32 mount_id = 1;
63 | }
64 |
65 | message MountRenamedEvent {
66 | int32 mount_id = 1;
67 | string name = 2;
68 | }
69 |
70 | message MountRenamedErrorEvent {
71 | int32 mount_id = 1;
72 | }
73 |
74 | message MountXpRatioEvent {
75 | int32 ratio = 1;
76 | }
77 |
78 | message MountDataEvent {
79 | .com.ankama.dofus.server.game.protocol.common.MountData mount_data = 1;
80 | }
81 |
82 | message MountDataErrorEvent {
83 | .com.ankama.dofus.server.game.protocol.mount.MountDataErrorEvent.MountDataError reason = 1;
84 | enum MountDataError {
85 | UNKNOWN = 0;
86 | NOT_FOUND = 1;
87 | SOMEONE_ELSE_PRIVATE_FARM = 2;
88 | SOMEONE_ELSE_MOUNT = 3;
89 | }
90 |
91 | }
92 |
93 | message MountEquippedEvent {
94 | .com.ankama.dofus.server.game.protocol.common.MountData mount_data = 1;
95 | }
96 |
97 | message MountUnequippedEvent {
98 | }
99 |
100 | message MountEquippedErrorEvent {
101 | .com.ankama.dofus.server.game.protocol.mount.MountEquippedErrorEvent.MountEquippedError error = 1;
102 | enum MountEquippedError {
103 | UNEQUIPPED = 0;
104 | EQUIPPED = 1;
105 | RIDING = 2;
106 | }
107 |
108 | }
109 |
110 | message MountRidingEvent {
111 | bool is_riding = 1;
112 | bool is_auto_pilot = 2;
113 | }
114 |
115 | message MountEmoteIconUsedEvent {
116 | int32 mount_id = 1;
117 | int32 reaction = 2;
118 | }
119 |
120 | message MountUpdateCharacteristicsEvent {
121 | int32 ride_id = 1;
122 | repeated .com.ankama.dofus.server.game.protocol.mount.MountUpdateCharacteristicsEvent.MountCharacteristicUpdate updated_characteristics = 2;
123 | message MountCharacteristicUpdate {
124 | .com.ankama.dofus.server.game.protocol.common.MountCharacteristic characteristic = 1;
125 | optional int32 int_value = 2;
126 | }
127 |
128 | }
129 |
130 | message DisplayNumericalValuePaddockEvent {
131 | int32 mount_id = 1;
132 | int32 value = 2;
133 | .com.ankama.dofus.server.game.protocol.common.MountCharacteristic type = 3;
134 | }
135 |
136 |
--------------------------------------------------------------------------------
/proto/game/notification.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/notification";
4 |
5 | package com.ankama.dofus.server.game.protocol.notification;
6 |
7 | message NotificationUpdateFlagRequest {
8 | int32 index = 1;
9 | }
10 |
11 | message NotificationResetRequest {
12 | }
13 |
14 | message NotificationsEvent {
15 | repeated int32 flags = 1;
16 | }
17 |
18 | message NotificationEvent {
19 | int32 id = 1;
20 | repeated string parameters = 2;
21 | bool force = 3;
22 | }
23 |
24 | message RemoveNotificationEvent {
25 | repeated int32 id = 1;
26 | }
27 |
28 |
--------------------------------------------------------------------------------
/proto/game/npc.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/npc";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.npc;
8 |
9 | message NpcGenericActionRequest {
10 | int32 npc_id = 1;
11 | int32 npc_action_id = 2;
12 | int64 npc_map_id = 3;
13 | }
14 |
15 | message NpcDialogReplyRequest {
16 | int32 reply_id = 1;
17 | }
18 |
19 | message NpcsMapQuestStatusUpdateEvent {
20 | repeated .com.ankama.dofus.server.game.protocol.npc.NpcsMapQuestStatusUpdateEvent.MapNpcQuest map_information = 1;
21 | message MapNpcQuest {
22 | int64 map_id = 1;
23 | repeated .com.ankama.dofus.server.game.protocol.npc.NpcsMapQuestStatusUpdateEvent.MapNpcQuest.NpcWithQuest npcs_with_quests = 2;
24 | message NpcWithQuest {
25 | int32 npc_id = 1;
26 | repeated int32 quests_to_validate = 2;
27 | repeated int32 quests_to_start = 3;
28 | }
29 |
30 | }
31 |
32 | }
33 |
34 | message NpcGenericActionFailureEvent {
35 | }
36 |
37 | message NpcDialogCreationEvent {
38 | int64 map_id = 1;
39 | int32 npc_id = 2;
40 | optional .com.ankama.dofus.server.game.protocol.npc.NpcDialogCreationEvent.PortalType portal_type = 3;
41 | enum PortalType {
42 | UNSUPPORTED = 0;
43 | ENUTROSOR = 1;
44 | SRAMBAD = 2;
45 | XELORIUM = 3;
46 | ECAFLIPUS = 4;
47 | }
48 |
49 | }
50 |
51 | message NpcDialogQuestionEvent {
52 | int32 message_id = 1;
53 | repeated string dialog_params = 2;
54 | repeated .com.ankama.dofus.server.game.protocol.npc.NpcDialogQuestionEvent.VisibleReply visible_replies = 3;
55 | message VisibleReply {
56 | int32 reply_id = 1;
57 | repeated .com.ankama.dofus.server.game.protocol.npc.NpcDialogQuestionEvent.VisibleReply.ActionInformation actions = 2;
58 | message ActionInformation {
59 | int32 id = 1;
60 | optional bool is_repeatable = 2;
61 | }
62 |
63 | }
64 |
65 | }
66 |
67 | message TaxCollectorDialogQuestionEvent {
68 | .com.ankama.dofus.server.game.protocol.common.AllianceInformation alliance_information = 1;
69 | int32 max_pods = 2;
70 | int32 prospecting = 3;
71 | int32 tax_collectors_count = 4;
72 | int32 looted_pods = 6;
73 | int64 looted_items_value = 7;
74 | optional int32 possible_attack = 5;
75 | }
76 |
77 | message PrismDialogQuestionEvent {
78 | }
79 |
80 | message EntityTalkEvent {
81 | int64 entity_id = 1;
82 | int32 text_id = 2;
83 | repeated string parameters = 3;
84 | }
85 |
86 |
--------------------------------------------------------------------------------
/proto/game/paddock.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/paddock";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.paddock;
8 |
9 | message PaddockSellRequest {
10 | int64 price = 1;
11 | bool for_sale = 2;
12 | }
13 |
14 | message PaddockBuyRequest {
15 | int64 proposed_price = 1;
16 | }
17 |
18 | message PaddockRemoveItemRequest {
19 | int32 cell_id = 1;
20 | }
21 |
22 | message PaddockMoveItemRequest {
23 | int32 old_cell_id = 1;
24 | int32 new_cell_id = 2;
25 | }
26 |
27 | message PaddocksToSellRequest {
28 | int32 page_index = 1;
29 | }
30 |
31 | message PaddocksToSellFiltersRequest {
32 | int32 area_id = 1;
33 | int32 at_least_mount_number = 2;
34 | int32 at_least_machine_number = 3;
35 | int64 price_max = 4;
36 | .com.ankama.dofus.server.game.protocol.common.RealEstateOrder order_by = 5;
37 | }
38 |
39 | message PaddockObjectRemovedEvent {
40 | int32 cell_id = 1;
41 | }
42 |
43 | message PaddockObjectAddedEvent {
44 | .com.ankama.dofus.server.game.protocol.common.ObjectInRolePlay paddock_item = 1;
45 | }
46 |
47 | message PaddockObjectsAddedEvent {
48 | repeated .com.ankama.dofus.server.game.protocol.common.ObjectInRolePlay paddock_item = 1;
49 | }
50 |
51 | message PaddockBuyResultEvent {
52 | int64 paddock_id = 1;
53 | bool bought = 2;
54 | int64 price = 3;
55 | }
56 |
57 | message PaddockPropertiesEvent {
58 | .com.ankama.dofus.server.game.protocol.common.PaddockInformation properties = 1;
59 | }
60 |
61 | message PaddockTransactionDialogEvent {
62 | .com.ankama.dofus.server.game.protocol.paddock.PaddockTransactionDialogEvent.Transaction transaction = 1;
63 | int32 owner_id = 2;
64 | int64 price = 3;
65 | enum Transaction {
66 | BUY = 0;
67 | SELL = 1;
68 | }
69 |
70 | }
71 |
72 | message PaddockObjectAnimationPlayEvent {
73 | repeated int32 cells_id = 1;
74 | }
75 |
76 | message PaddocksToSellEvent {
77 | int32 page_index = 1;
78 | int32 page_total = 2;
79 | repeated .com.ankama.dofus.server.game.protocol.paddock.PaddocksToSellEvent.PaddockForSale paddocks = 3;
80 | message PaddockForSale {
81 | string guild_owner = 1;
82 | .com.ankama.dofus.server.game.protocol.common.MapCoordinates coordinates = 2;
83 | int32 sub_area_id = 3;
84 | int32 mount_number = 4;
85 | int32 object_number = 5;
86 | int64 price = 6;
87 | }
88 |
89 | }
90 |
91 |
--------------------------------------------------------------------------------
/proto/game/prism.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/prism";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.prism;
8 |
9 | message PrismTeleportationRequest {
10 | }
11 |
12 | message PrismAttackRequest {
13 | }
14 |
15 | message PrismExchangeRequest {
16 | }
17 |
18 | message PrismRecycleRequest {
19 | }
20 |
21 | message PrismListEvent {
22 | repeated .com.ankama.dofus.server.game.protocol.common.PrismLocalizedInformation prism_localized_information = 1;
23 | }
24 |
25 | message PrismAddOrUpdateEvent {
26 | .com.ankama.dofus.server.game.protocol.common.PrismLocalizedInformation prism_localized_information = 1;
27 | }
28 |
29 | message PrismRemoveEvent {
30 | .com.ankama.dofus.server.game.protocol.common.PrismLocalizedInformation prism_localized_information = 1;
31 | }
32 |
33 | message PrismAttackedEvent {
34 | .com.ankama.dofus.server.game.protocol.common.PrismLocalizedInformation prism_localized_information = 1;
35 | }
36 |
37 | message PrismAttackResultEvent {
38 | .com.ankama.dofus.server.game.protocol.common.PrismLocalizedInformation prism_localized_information = 1;
39 | .com.ankama.dofus.server.game.protocol.prism.PrismAttackResultEvent.PrismAttackResult prism_attack_result = 2;
40 | enum PrismAttackResult {
41 | DEFENDERS_WIN = 0;
42 | ATTACKERS_WIN = 1;
43 | }
44 |
45 | }
46 |
47 |
--------------------------------------------------------------------------------
/proto/game/quest.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/quest";
4 |
5 | package com.ankama.dofus.server.game.protocol.quest;
6 |
7 | message QuestsRequest {
8 | }
9 |
10 | message QuestStartRequest {
11 | int32 quest_id = 1;
12 | }
13 |
14 | message QuestStepInformationRequest {
15 | int32 quest_id = 1;
16 | }
17 |
18 | message QuestObjectiveValidationRequest {
19 | int32 quest_id = 1;
20 | int32 objective_id = 2;
21 | }
22 |
23 | message GuideModReturnRequest {
24 | }
25 |
26 | message GuideModQuitRequest {
27 | }
28 |
29 | message QuestObjectiveFollowRequest {
30 | int32 quest_id = 1;
31 | int32 objective_id = 2;
32 | }
33 |
34 | message QuestObjectiveUnfollowRequest {
35 | int32 quest_id = 1;
36 | int32 objective_id = 2;
37 | }
38 |
39 | message QuestsFollowedOrderRefreshRequest {
40 | repeated int32 quests = 1;
41 | }
42 |
43 | message QuestsEvent {
44 | repeated .com.ankama.dofus.server.game.protocol.quest.QuestsEvent.QuestFinished finished_quests = 1;
45 | repeated .com.ankama.dofus.server.game.protocol.quest.QuestActive active_quests = 2;
46 | repeated int32 reinitialized_done_quests_id = 3;
47 | optional int64 player_id = 4;
48 | message QuestFinished {
49 | int32 quest_id = 1;
50 | int32 finished_count = 2;
51 | }
52 |
53 | }
54 |
55 | message QuestStartedEvent {
56 | int32 quest_id = 1;
57 | }
58 |
59 | message QuestValidatedEvent {
60 | int32 quest_id = 1;
61 | }
62 |
63 | message QuestObjectiveValidatedEvent {
64 | int32 quest_id = 1;
65 | int32 objective_id = 2;
66 | }
67 |
68 | message QuestStepValidatedEvent {
69 | int32 quest_id = 1;
70 | int32 step_id = 2;
71 | }
72 |
73 | message QuestStepStartedEvent {
74 | int32 quest_id = 1;
75 | int32 step_id = 2;
76 | }
77 |
78 | message QuestStepInformationEvent {
79 | .com.ankama.dofus.server.game.protocol.quest.QuestActive information = 1;
80 | optional int64 player_id = 2;
81 | }
82 |
83 | message QuestsFollowedEvent {
84 | repeated .com.ankama.dofus.server.game.protocol.quest.QuestActive quests = 1;
85 | }
86 |
87 | message QuestActive {
88 | int32 quest_id = 1;
89 | optional .com.ankama.dofus.server.game.protocol.quest.QuestActive.Details details = 2;
90 | message Details {
91 | int32 step_id = 1;
92 | repeated .com.ankama.dofus.server.game.protocol.quest.QuestObjective objectives = 2;
93 | }
94 |
95 | }
96 |
97 | message QuestObjective {
98 | int32 objective_id = 1;
99 | bool objective_reached = 2;
100 | repeated string dialog_params = 3;
101 | optional .com.ankama.dofus.server.game.protocol.quest.QuestObjective.Completion completion = 4;
102 | message Completion {
103 | int32 current_completion = 1;
104 | int32 max_completion = 2;
105 | }
106 |
107 | }
108 |
109 |
--------------------------------------------------------------------------------
/proto/game/roleplay.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/roleplay";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.roleplay;
8 |
9 | message PlayerFightRequest {
10 | int64 target_id = 1;
11 | int32 target_cell_id = 2;
12 | bool friendly = 3;
13 | }
14 |
15 | message PlayerFightFriendlyAnswerRequest {
16 | int32 fight_id = 1;
17 | bool accept = 2;
18 | }
19 |
20 | message AttackMonsterRequest {
21 | int64 monster_group_id = 1;
22 | }
23 |
24 | message ExitRequest {
25 | }
26 |
27 | message DelayedActionCancelRequest {
28 | }
29 |
30 | message FightRequestCanceledEvent {
31 | int32 fight_id = 1;
32 | int64 source_id = 2;
33 | int64 target_id = 3;
34 | }
35 |
36 | message AggressionEvent {
37 | int64 attacker_id = 1;
38 | int64 defender_id = 2;
39 | }
40 |
41 | message PlayerFightFriendlyRequestedEvent {
42 | int32 fight_id = 1;
43 | int64 source_id = 2;
44 | int64 target_id = 3;
45 | }
46 |
47 | message PlayerFightFriendlyAnsweredEvent {
48 | int32 fight_id = 1;
49 | int64 source_id = 2;
50 | int64 target_id = 3;
51 | bool accept = 4;
52 | }
53 |
54 | message MonsterAngryAtPlayerEvent {
55 | int64 character_id = 1;
56 | int64 monster_group_id = 2;
57 | int64 angry_start_time = 3;
58 | int64 attack_time = 4;
59 | }
60 |
61 | message MonsterNotAngryAtPlayerEvent {
62 | int64 character_id = 1;
63 | int64 monster_group_id = 2;
64 | }
65 |
66 | message ShowChallengeEvent {
67 | .com.ankama.dofus.server.game.protocol.common.FightCommonInformation fight_information = 1;
68 | }
69 |
70 | message RemoveChallengeEvent {
71 | int32 fight_id = 1;
72 | }
73 |
74 | message SpellAnimEvent {
75 | int64 caster_id = 1;
76 | int32 target_cell_id = 2;
77 | int32 spell_id = 3;
78 | int32 spell_level = 4;
79 | .com.ankama.dofus.server.game.protocol.common.Direction direction = 5;
80 | }
81 |
82 | message DelayedActionEvent {
83 | int64 character_id = 1;
84 | .com.ankama.dofus.server.game.protocol.common.DelayedActionType delayed_action_type = 2;
85 | int64 delayed_end_time = 3;
86 | optional int32 object_gid = 4;
87 | }
88 |
89 | message DelayedActionFinishedEvent {
90 | int64 character_id = 1;
91 | .com.ankama.dofus.server.game.protocol.common.DelayedActionType delayed_action_type = 2;
92 | }
93 |
94 |
--------------------------------------------------------------------------------
/proto/game/script.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/script";
4 |
5 | package com.ankama.dofus.server.game.protocol.script;
6 |
7 | message CinematicEvent {
8 | int32 cinematic_id = 1;
9 | }
10 |
11 |
--------------------------------------------------------------------------------
/proto/game/security.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/security";
4 |
5 | package com.ankama.dofus.server.game.protocol.security;
6 |
7 | enum CheckType {
8 | LENGTH = 0;
9 | HASH_SUM = 1;
10 | }
11 |
12 | message FileCheckRequest {
13 | .com.ankama.dofus.server.game.protocol.security.CheckType check_type = 1;
14 | string value = 2;
15 | }
16 |
17 | message TrustStatusEvent {
18 | bool certified = 1;
19 | }
20 |
21 | message FileCheckEvent {
22 | string file_name = 1;
23 | .com.ankama.dofus.server.game.protocol.security.CheckType check_type = 2;
24 | }
25 |
26 |
--------------------------------------------------------------------------------
/proto/game/server.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/server";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.server;
8 |
9 | message ServerSettingsEvent {
10 | string language = 1;
11 | int32 community = 2;
12 | .com.ankama.dofus.server.game.protocol.common.ServerType game_type = 3;
13 | bool is_mono_account = 4;
14 | int32 arena_leave_ban_time = 5;
15 | int32 item_max_level = 6;
16 | bool has_free_autopilot = 7;
17 | }
18 |
19 | message ServerSessionConstantsEvent {
20 | repeated .com.ankama.dofus.server.game.protocol.server.ServerSessionConstantsEvent.ServerSessionConstant variables = 1;
21 | message ServerSessionConstant {
22 | int32 id = 1;
23 | int64 value = 2;
24 | }
25 |
26 | }
27 |
28 | message ServerExperienceModifierEvent {
29 | int32 experience_percentage = 1;
30 | }
31 |
32 |
--------------------------------------------------------------------------------
/proto/game/shop.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/shop";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.shop;
8 |
9 | message AccessoryPreviewRequest {
10 | repeated int32 object_gid = 1;
11 | bool show_current_objects = 2;
12 | }
13 |
14 | message AccessoryPreviewErrorEvent {
15 | .com.ankama.dofus.server.game.protocol.shop.AccessoryPreviewErrorEvent.AccessoryPreviewError error = 1;
16 | enum AccessoryPreviewError {
17 | ERROR = 0;
18 | COOL_DOWN = 1;
19 | BAD_ITEM = 2;
20 | }
21 |
22 | }
23 |
24 | message AccessoryPreviewEvent {
25 | .com.ankama.dofus.server.game.protocol.common.EntityLook look = 1;
26 | }
27 |
28 |
--------------------------------------------------------------------------------
/proto/game/social.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/social";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.social;
8 |
9 | message SmileyRequest {
10 | int32 smiley_id = 1;
11 | }
12 |
13 | message SmileyEvent {
14 | int64 entity_id = 1;
15 | int32 smiley_id = 2;
16 | optional int64 account_id = 3;
17 | optional int32 cell_id = 4;
18 | }
19 |
20 | message AdditionalSmileyEvent {
21 | repeated int32 pack_id = 1;
22 | }
23 |
24 | message SetMoodRequest {
25 | int32 smiley_id = 1;
26 | }
27 |
28 | message SetMoodEvent {
29 | .com.ankama.dofus.server.game.protocol.social.SetMoodEvent.Result result = 1;
30 | int32 smiley_id = 2;
31 | enum Result {
32 | OK = 0;
33 | ERROR_UNKNOWN = 1;
34 | ERROR_FLOOD = 2;
35 | }
36 |
37 | }
38 |
39 | message MoodUpdateEvent {
40 | int64 account_id = 1;
41 | int64 character_id = 2;
42 | int32 smiley_id = 3;
43 | }
44 |
45 | message SpouseStatusEvent {
46 | bool has_spouse = 1;
47 | }
48 |
49 | message SpouseInformationRequest {
50 | }
51 |
52 | message SpouseInformationEvent {
53 | int64 account_id = 1;
54 | int64 character_id = 2;
55 | string character_name = 3;
56 | int32 character_level = 4;
57 | int32 breed_id = 5;
58 | .com.ankama.dofus.server.game.protocol.common.Gender gender = 6;
59 | .com.ankama.dofus.server.game.protocol.common.GuildInformation guild = 7;
60 | .com.ankama.dofus.server.game.protocol.common.AllianceInformation alliance = 8;
61 | .com.ankama.dofus.server.game.protocol.common.Alignment alignment = 9;
62 | .com.ankama.dofus.server.game.protocol.common.EntityLook entity_look = 10;
63 | optional .com.ankama.dofus.server.game.protocol.social.SpouseInformationEvent.Online online = 11;
64 | message Online {
65 | int64 map_id = 1;
66 | int32 sub_area_id = 2;
67 | int32 area_id = 3;
68 | bool in_fight = 4;
69 | bool following = 5;
70 | }
71 |
72 | }
73 |
74 | message JoinFriendRequest {
75 | int64 actor_id = 1;
76 | }
77 |
78 | message JoinSpouseRequest {
79 | }
80 |
81 | message SubscribeSpouseCompassRequest {
82 | bool enable = 1;
83 | }
84 |
85 | message DiceRollRequest {
86 | int32 dice = 1;
87 | int32 faces = 2;
88 | }
89 |
90 | message PvpEnableSetRequest {
91 | bool enable = 1;
92 | }
93 |
94 | message PlayersMapAttackableStatusUpdateEvent {
95 | repeated .com.ankama.dofus.server.game.protocol.social.PlayersMapAttackableStatusUpdateEvent.AttackableStatus pvp_players = 1;
96 | message AttackableStatus {
97 | int64 character_id = 1;
98 | .com.ankama.dofus.server.game.protocol.common.AttackableStatus status = 2;
99 | int32 koth_role = 3;
100 | optional int32 picto_score = 4;
101 | }
102 |
103 | }
104 |
105 | message SelfAttackableStatusUpdateEvent {
106 | .com.ankama.dofus.server.game.protocol.common.AttackableStatus status = 1;
107 | int64 probation_time = 2;
108 | int32 koth_role = 3;
109 | int32 picto_score = 4;
110 | }
111 |
112 | message AlignmentRankUpdateEvent {
113 | int32 alignment_rank = 1;
114 | bool verbose = 2;
115 | }
116 |
117 |
--------------------------------------------------------------------------------
/proto/game/spell.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/spell";
4 |
5 | import "common.proto";
6 |
7 | package com.ankama.dofus.server.game.protocol.spell;
8 |
9 | message SpellVariantActivationRequest {
10 | int32 spell_id = 1;
11 | }
12 |
13 | message ForgettableSpellActionRequest {
14 | int32 spell_id = 1;
15 | .com.ankama.dofus.server.game.protocol.spell.ForgettableSpellActionRequest.ForgettableSpellAction action = 2;
16 | enum ForgettableSpellAction {
17 | FORGET = 0;
18 | EQUIP = 1;
19 | REMOVE = 2;
20 | }
21 |
22 | }
23 |
24 | message ApplySpellModifierEvent {
25 | int64 actor_id = 1;
26 | .com.ankama.dofus.server.game.protocol.common.SpellModifier modifier = 2;
27 | }
28 |
29 | message RemoveSpellModifierEvent {
30 | int64 actor_id = 1;
31 | .com.ankama.dofus.server.game.protocol.common.SpellModifierActionType action_type = 2;
32 | .com.ankama.dofus.server.game.protocol.common.SpellModifierType modifier_type = 3;
33 | int32 spell_id = 4;
34 | }
35 |
36 | message SpellVariantActivationEvent {
37 | int32 spell_id = 1;
38 | bool effective = 2;
39 | }
40 |
41 | message ForgettableSpellEquipmentSlotsEvent {
42 | int32 quantity = 1;
43 | }
44 |
45 | message ForgettableSpellDeletionEvent {
46 | .com.ankama.dofus.server.game.protocol.spell.ForgettableSpellDeletionEvent.DeletionReason reason = 1;
47 | repeated int32 spells = 2;
48 | enum DeletionReason {
49 | UNKNOWN = 0;
50 | ADMIN_COMMAND_REQUEST = 1;
51 | FORGOTTEN = 2;
52 | DISABLED = 3;
53 | NOT_FOUND = 4;
54 | }
55 |
56 | }
57 |
58 | message ForgettableSpellsEvent {
59 | .com.ankama.dofus.server.game.protocol.spell.ForgettableSpellsEvent.Action action = 1;
60 | repeated .com.ankama.dofus.server.game.protocol.spell.SpellItem spells = 2;
61 | enum Action {
62 | DISPATCH = 0;
63 | UPDATE = 1;
64 | }
65 |
66 | }
67 |
68 | message SpellsEvent {
69 | bool spell_visualisation = 1;
70 | repeated .com.ankama.dofus.server.game.protocol.spell.SpellItem human_spells = 2;
71 | repeated .com.ankama.dofus.server.game.protocol.spell.SpellItem mutant_spells = 3;
72 | }
73 |
74 | message SpellItem {
75 | int32 spell_id = 1;
76 | int32 spell_level = 2;
77 | optional bool available = 3;
78 | }
79 |
80 |
--------------------------------------------------------------------------------
/proto/game/suggestion.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/suggestion";
4 |
5 | package com.ankama.dofus.server.game.protocol.suggestion;
6 |
7 | message ActivitySuggestionsRequest {
8 | int32 min_level = 1;
9 | int32 max_level = 2;
10 | int32 area_id = 3;
11 | int32 activity_category_id = 4;
12 | int32 cards_number = 5;
13 | }
14 |
15 | message ActivityHideRequest {
16 | int32 activity_id = 1;
17 | }
18 |
19 | message ActivityLockRequest {
20 | int32 activity_id = 1;
21 | }
22 |
23 | message ActivitySuggestionsEvent {
24 | repeated int32 locked_activities = 1;
25 | repeated int32 unlocked_activities = 2;
26 | }
27 |
28 |
--------------------------------------------------------------------------------
/proto/game/symbiont.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/symbiont";
4 |
5 | package com.ankama.dofus.server.game.protocol.symbiont;
6 |
7 | message WrapperObjectDissociateRequest {
8 | int32 host_uid = 1;
9 | int32 host_position = 2;
10 | }
11 |
12 | message MimicryRequest {
13 | int32 symbiont_uid = 1;
14 | int32 host_uid = 2;
15 | }
16 |
17 | message MimicryResponse {
18 | .com.ankama.dofus.server.game.protocol.symbiont.MimicryResponse.Result result = 1;
19 | enum Result {
20 | ERROR = 0;
21 | PLAYER_BUSY = 1;
22 | HOST_NOT_MIMICKABLE = 2;
23 | HOST_WRAPPED = 3;
24 | DUPLICATE = 4;
25 | SUCCESS = 5;
26 | }
27 |
28 | }
29 |
30 | message MimicryFreeRequest {
31 | int32 host_uid = 1;
32 | }
33 |
34 | message MimicryFreeResponse {
35 | bool success = 1;
36 | }
37 |
38 |
--------------------------------------------------------------------------------
/proto/game/tag_storage.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/tag_storage";
4 |
5 | package com.ankama.dofus.server.game.protocol.tag.storage;
6 |
7 | message AddTagStorageRequest {
8 | string name = 1;
9 | int32 picto = 2;
10 | }
11 |
12 | message AddTagStorageResponse {
13 | string tag_storage_uuid = 1;
14 | }
15 |
16 | message RemoveTagStorageRequest {
17 | string tag_storage_uuid = 1;
18 | }
19 |
20 | message RemoveTagStorageResponse {
21 | string tag_storage_uuid = 1;
22 | }
23 |
24 | message AddTagObjectRequest {
25 | repeated .com.ankama.dofus.server.game.protocol.tag.storage.TagObjectUpdateContent tag_object_update_content = 1;
26 | }
27 |
28 | message AddTagObjectResponse {
29 | repeated int32 object_ids = 1;
30 | }
31 |
32 | message RemoveTagObjectRequest {
33 | repeated .com.ankama.dofus.server.game.protocol.tag.storage.TagObjectUpdateContent tag_object_update_content = 1;
34 | }
35 |
36 | message RemoveTagObjectResponse {
37 | repeated int32 object_ids = 1;
38 | }
39 |
40 | message TagObjectUpdateContent {
41 | string tag_storage_uuid = 1;
42 | int32 object_id = 2;
43 | }
44 |
45 | message UpdateTagStorageContentRequest {
46 | .com.ankama.dofus.server.game.protocol.tag.storage.TagStorageData tag_storage_data = 1;
47 | }
48 |
49 | message UpdateTagStorageContentResponse {
50 | string tag_storage_uuid = 1;
51 | }
52 |
53 | message TagStoragesRefreshEvent {
54 | repeated .com.ankama.dofus.server.game.protocol.tag.storage.TagInformation tag_information = 1;
55 | }
56 |
57 | message TagInformation {
58 | .com.ankama.dofus.server.game.protocol.tag.storage.TagStorageData tag_storage_data = 1;
59 | .com.ankama.dofus.server.game.protocol.tag.storage.TagObjectData tag_object_data = 2;
60 | }
61 |
62 | message TagStorageData {
63 | string tag_storage_uuid = 1;
64 | string name = 2;
65 | int32 picto = 3;
66 | }
67 |
68 | message TagObjectData {
69 | repeated int32 tag_object_uuids = 1;
70 | }
71 |
72 |
--------------------------------------------------------------------------------
/proto/game/teleportation.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/teleportation";
4 |
5 | package com.ankama.dofus.server.game.protocol.teleportation;
6 |
7 | enum Teleporter {
8 | TELEPORTER_ZAAP = 0;
9 | TELEPORTER_SUBWAY = 1;
10 | TELEPORTER_PRISM = 2;
11 | TELEPORTER_HAVEN_BAG = 3;
12 | TELEPORTER_ANOMALY = 4;
13 | }
14 |
15 | message TeleportRequest {
16 | .com.ankama.dofus.server.game.protocol.teleportation.Teleporter source_type = 1;
17 | .com.ankama.dofus.server.game.protocol.teleportation.Teleporter destination_type = 2;
18 | int64 map_id = 3;
19 | }
20 |
21 | message ZaapRespawnSaveRequest {
22 | }
23 |
24 | message TeleportBuddiesAnswerRequest {
25 | bool accept = 1;
26 | }
27 |
28 | message TeleportToBuddyAnswerRequest {
29 | bool accept = 1;
30 | }
31 |
32 | message TeleportPlayerAnswerRequest {
33 | bool accept = 1;
34 | }
35 |
36 | message GroupTeleportPlayerAnswerRequest {
37 | bool accept = 1;
38 | }
39 |
40 | message ZaapRespawnUpdatedEvent {
41 | int64 map_id = 1;
42 | }
43 |
44 | message TeleportDestinationsEvent {
45 | .com.ankama.dofus.server.game.protocol.teleportation.Teleporter type = 1;
46 | repeated .com.ankama.dofus.server.game.protocol.teleportation.TeleportDestination destinations = 2;
47 | optional int64 spawn_map_id = 3;
48 | }
49 |
50 | message ZaapKnownListEvent {
51 | repeated int64 destinations = 1;
52 | }
53 |
54 | message TeleportBuddiesEvent {
55 | int32 dungeon_id = 1;
56 | }
57 |
58 | message TeleportBuddiesRequestedEvent {
59 | int32 dungeon_id = 1;
60 | int64 inviter_id = 2;
61 | repeated int64 invalid_buddies_id = 3;
62 | }
63 |
64 | message TeleportToBuddyOfferEvent {
65 | int32 dungeon_id = 1;
66 | int64 buddy_id = 2;
67 | int32 time_left = 3;
68 | }
69 |
70 | message TeleportToBuddyClosedEvent {
71 | int32 dungeon_id = 1;
72 | int64 buddy_id = 2;
73 | }
74 |
75 | message TeleportPlayerOfferEvent {
76 | int64 map_id = 1;
77 | string message = 2;
78 | int32 time_left = 3;
79 | int64 requester_id = 4;
80 | }
81 |
82 | message TeleportPlayerClosedEvent {
83 | int64 map_id = 1;
84 | int64 requester_id = 2;
85 | }
86 |
87 | message GroupTeleportPlayerOfferEvent {
88 | int64 map_id = 1;
89 | int32 world_x = 2;
90 | int32 world_y = 3;
91 | int32 time_left = 4;
92 | int64 requester_id = 5;
93 | string requester_name = 6;
94 | }
95 |
96 | message GroupTeleportPlayerClosedEvent {
97 | int64 map_id = 1;
98 | int64 requester_id = 2;
99 | }
100 |
101 | message TeleportDestination {
102 | .com.ankama.dofus.server.game.protocol.teleportation.Teleporter type = 1;
103 | int64 map_id = 2;
104 | int32 subarea_id = 3;
105 | int32 level = 4;
106 | int32 cost = 5;
107 | optional .com.ankama.dofus.server.game.protocol.teleportation.TeleportDestination.Anomaly anomaly = 6;
108 | message Anomaly {
109 | int32 bonus_pourcentage = 1;
110 | int64 remaining_time = 2;
111 | }
112 |
113 | }
114 |
115 |
--------------------------------------------------------------------------------
/proto/game/tinsel.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/tinsel";
4 |
5 | package com.ankama.dofus.server.game.protocol.tinsel;
6 |
7 | enum TinselSelectError {
8 | UNDEFINED = 0;
9 | INVALID = 1;
10 | ALREADY = 2;
11 | }
12 |
13 | message TitlesAndOrnamentsRequest {
14 | }
15 |
16 | message TitlesAndOrnamentsEvent {
17 | repeated int32 titles = 1;
18 | repeated int32 ornaments = 2;
19 | }
20 |
21 | message TitleGainedEvent {
22 | int32 title_id = 1;
23 | }
24 |
25 | message TitleLostEvent {
26 | int32 title_id = 1;
27 | }
28 |
29 | message OrnamentGainedEvent {
30 | int32 ornament_id = 1;
31 | }
32 |
33 | message OrnamentLostEvent {
34 | int32 ornament_id = 1;
35 | }
36 |
37 | message TitleSelectedEvent {
38 | int32 title_id = 1;
39 | }
40 |
41 | message TitleSelectErrorEvent {
42 | .com.ankama.dofus.server.game.protocol.tinsel.TinselSelectError reason = 1;
43 | }
44 |
45 | message OrnamentSelectedEvent {
46 | int32 ornament_id = 1;
47 | }
48 |
49 | message OrnamentSelectErrorEvent {
50 | .com.ankama.dofus.server.game.protocol.tinsel.TinselSelectError reason = 1;
51 | }
52 |
53 |
--------------------------------------------------------------------------------
/proto/game/ui.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option go_package = "go-xp-dofus-unity-proto-builder/src/protocol/game/ui";
4 |
5 | package com.ankama.dofus.server.game.protocol.ui;
6 |
7 | message ClientUIOpenedEvent {
8 | .com.ankama.dofus.server.game.protocol.ui.ClientUIOpenedEvent.UIType type = 1;
9 | optional int32 object_uid = 2;
10 | enum UIType {
11 | UNDEFINED = 0;
12 | TELEPORT_GUILD_HOUSE = 1;
13 | TELEPORT_GUILD_PADDOCK = 2;
14 | OBJECT_MIMICRY = 3;
15 | LEGENDARY_TREASURE_QUEST = 4;
16 | TELEPORT_HOUSE = 5;
17 | }
18 |
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Account.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/account.proto", "package": "com.ankama.dofus.server.game.protocol.account", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "AccountInformationUpdateEvent", "field": [ { "name": "subscription_end_date", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "AccountSubscriptionElapsedDurationUpdateEvent", "field": [ { "name": "subscription_elapsed_duration", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "AccountCapabilitiesEvent", "field": [ { "name": "account_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "tutorial_available", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" }, { "name": "status", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.common.Hierarchy" }, { "name": "can_create_new_character", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "GuestLimitationEvent", "field": [ { "name": "reason", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.account.GuestLimitationEvent.GuestLimitation" } ], "enumType": [ { "name": "GuestLimitation", "value": [ { "name": "LIMITED_TO_REGISTERED", "number": 0 }, { "name": "LIMIT_ON_JOB_XP", "number": 1 }, { "name": "LIMIT_ON_JOB_USE", "number": 2 }, { "name": "LIMIT_ON_MAP", "number": 3 }, { "name": "LIMIT_ON_ITEM", "number": 4 }, { "name": "LIMIT_ON_CHAT", "number": 5 }, { "name": "LIMIT_ON_GUILD", "number": 6 } ] } ] }, { "name": "GuestModeEvent", "field": [ { "name": "effective", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "SubscriptionLimitationEvent", "field": [ { "name": "reason", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.account.SubscriptionLimitationEvent.SubscriptionRequired" } ], "enumType": [ { "name": "SubscriptionRequired", "value": [ { "name": "LIMITED_TO_SUBSCRIBER", "number": 0 }, { "name": "LIMIT_ON_JOB_XP", "number": 1 }, { "name": "LIMIT_ON_JOB_USE", "number": 2 }, { "name": "LIMIT_ON_MAP", "number": 3 }, { "name": "LIMIT_ON_ITEM", "number": 4 }, { "name": "LIMIT_ON_HAVEN_BAG", "number": 5 } ] } ] }, { "name": "SubscriptionZoneEvent", "field": [ { "name": "effective", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Achievement.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/achievement.proto", "package": "com.ankama.dofus.server.game.protocol.achievement", "messageType": [ { "name": "AchievementDetailsRequest", "field": [ { "name": "achievement_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "AchievementsDetailedRequest", "field": [ { "name": "category_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "AchievementsAlmostFinishedDetailedRequest" }, { "name": "AchievementRewardRequest", "field": [ { "name": "achievement_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "AchievementsEvent", "field": [ { "name": "achieved_achievements", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.achievement.AchievedAchievement" } ] }, { "name": "AchievementDetailsEvent", "field": [ { "name": "achievement", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.achievement.Achievement" } ] }, { "name": "AchievementsDetailedEvent", "field": [ { "name": "achievements", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.achievement.Achievement" } ] }, { "name": "AchievementsAlmostFinishedDetailedEvent", "field": [ { "name": "almost_finished_achievements", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.achievement.Achievement" } ] }, { "name": "AchievementFinishedEvent", "field": [ { "name": "achievement", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.achievement.AchievedAchievement" } ] }, { "name": "AchievementFinishedInformationEvent", "field": [ { "name": "achievement", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.achievement.AchievedAchievement" }, { "name": "player_name", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "player_id", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "AchievementRewardResultEvent", "field": [ { "name": "achievement_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "success", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "AchievementsPioneerRanksRequest" }, { "name": "AchievementsPioneerRanksResponse", "field": [ { "name": "achievements_pioneer_ranks", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.achievement.AchievementsPioneerRanksResponse.AchievementPioneerRank" } ], "nestedType": [ { "name": "AchievementPioneerRank", "field": [ { "name": "achievement_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "pioneer_rank", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] } ] }, { "name": "Achievement", "field": [ { "name": "achievement_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "achievement_objectives", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.achievement.Achievement.AchievementObjective" } ], "nestedType": [ { "name": "AchievementObjective", "field": [ { "name": "objective_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "max_value", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "current_value", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64", "oneofIndex": 0, "proto3Optional": true } ], "oneofDecl": [ { "name": "_current_value" } ] } ] }, { "name": "AchievedAchievement", "field": [ { "name": "achievement_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "achieved_by", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "finished_level", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32", "oneofIndex": 0, "proto3Optional": true }, { "name": "pioneer_rank", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ], "oneofDecl": [ { "name": "_finished_level" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Admin.Console.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/admin_console.proto", "package": "com.ankama.dofus.server.game.protocol.admin.console", "messageType": [ { "name": "ConsoleCommand", "field": [ { "name": "content", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "quiet", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "ConsoleEnd", "field": [ { "name": "success", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "ConsoleMessage", "field": [ { "name": "content", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "type", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.admin.console.ConsoleMessage.Type" } ], "enumType": [ { "name": "Type", "value": [ { "name": "TEXT", "number": 0 }, { "name": "INFO", "number": 1 }, { "name": "ERROR", "number": 2 } ] } ] }, { "name": "CommandSummary", "field": [ { "name": "command", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.admin.console.Command" } ] }, { "name": "Command", "field": [ { "name": "alias", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "arguments", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "description", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Alliance.Member.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/alliance_member.proto", "package": "com.ankama.dofus.server.game.protocol.alliance.member", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "AllianceInvitationRequest", "field": [ { "name": "character_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "AllianceInvitationAnswerRequest", "field": [ { "name": "accepted", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "AllianceKickRequest", "field": [ { "name": "kicked_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "AllianceInvitedEvent", "field": [ { "name": "recruiter_name", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "alliance_information", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.AllianceInformation" } ] }, { "name": "AllianceInvitationStateRecruiterEvent", "field": [ { "name": "recruited_name", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "invitation_state", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.common.SocialGroupInvitationState" } ] }, { "name": "AllianceInvitationStateRecruitedEvent", "field": [ { "name": "invitation_state", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.common.SocialGroupInvitationState" } ] }, { "name": "AllianceMembershipEvent", "field": [ { "name": "alliance_information", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.AllianceInformation" }, { "name": "rank_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "AllianceJoinedEvent", "field": [ { "name": "alliance_information", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.AllianceInformation" }, { "name": "rank_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "AllianceMemberLeavingEvent", "field": [ { "name": "kicked", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" }, { "name": "member_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "AllianceLeftEvent" }, { "name": "AllianceMemberUpdateEvent", "field": [ { "name": "member", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.AllianceMemberInformation" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Alliance.Rank.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/alliance_rank.proto", "package": "com.ankama.dofus.server.game.protocol.alliance.rank", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "AllianceRankCreationRequest", "field": [ { "name": "parent_rank_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "gfx_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "name", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "AllianceRankUpdateAllRequest", "field": [ { "name": "ranks", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.RankInformation" } ] }, { "name": "AllianceRankDeletionRequest", "field": [ { "name": "rank_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "replacement_rank_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "AllianceRankUpdateRequest", "field": [ { "name": "rank", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.RankInformation" } ] }, { "name": "AllianceRanksRequest" }, { "name": "AllianceRankChangeRequest", "field": [ { "name": "member_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "rank_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "AllianceRanksEvent", "field": [ { "name": "ranks", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.RankInformation" } ] }, { "name": "AllianceRightsUpdateRequest", "field": [ { "name": "rank_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "rights", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Alliance.Recruitment.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/alliance_recruitment.proto", "package": "com.ankama.dofus.server.game.protocol.alliance.recruitment", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "AllianceRecruitmentInformationRequest" }, { "name": "AllianceRecruitmentUpdateRequest", "field": [ { "name": "information", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.AllianceRecruitmentInformation" } ] }, { "name": "AllianceRecruitmentInformationEvent", "field": [ { "name": "information", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.AllianceRecruitmentInformation" } ] }, { "name": "AllianceRecruitmentAutomaticJoinRequest", "field": [ { "name": "alliance_uid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "AllianceRecruitmentInvalidateEvent" }, { "name": "AllianceApplicationSubmitRequest", "field": [ { "name": "alliance_uid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "text", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "AllianceApplicationUpdateRequest", "field": [ { "name": "alliance_uid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "text", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "AllianceApplicationDeletionRequest" }, { "name": "AllianceApplicationListenRequest", "field": [ { "name": "state", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "AllianceApplicationRequest" }, { "name": "AllianceApplicationListRequest", "field": [ { "name": "offset", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "count", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "AllianceApplicationAnswerRequest", "field": [ { "name": "player_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "accepted", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "AllianceApplicationPresenceRequest" }, { "name": "AllianceApplicationDeletedEvent", "field": [ { "name": "success", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "AllianceApplicationInformationEvent", "field": [ { "name": "alliance", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.AllianceInformation" }, { "name": "application_information", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.SocialApplicationInformation" } ] }, { "name": "AllianceApplicationNoInformationEvent" }, { "name": "AllianceApplicationResponseEvent", "field": [ { "name": "accepted", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" }, { "name": "alliance_information", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.AllianceInformation" } ] }, { "name": "AllianceApplicationListEvent", "field": [ { "name": "offset", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "count", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "total", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "applies", "number": 4, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.SocialApplicationInformation" } ] }, { "name": "AllianceApplicationModifiedEvent", "field": [ { "name": "apply", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.SocialApplicationInformation" }, { "name": "state", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.common.SocialApplicationState" }, { "name": "player_id", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "AllianceApplicationReceivedEvent", "field": [ { "name": "player_name", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "player_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "AllianceApplicationPresenceEvent", "field": [ { "name": "presence", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Alteration.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/alteration.proto", "package": "com.ankama.dofus.server.game.protocol.alteration", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "AlterationsEvent", "field": [ { "name": "alterations", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.alteration.Alteration" } ] }, { "name": "AlterationAddedEvent", "field": [ { "name": "alteration", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.alteration.Alteration" } ] }, { "name": "AlterationRemovedEvent", "field": [ { "name": "alteration", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.alteration.Alteration" } ] }, { "name": "AlterationsUpdateEvent", "field": [ { "name": "alterations", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.alteration.Alteration" } ] }, { "name": "Alteration", "field": [ { "name": "alteration_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "creation_time", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "expiration_type", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.alteration.Alteration.AlterationExpirationType" }, { "name": "expiration_value", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "effects", "number": 5, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.ObjectEffect" } ], "enumType": [ { "name": "AlterationExpirationType", "value": [ { "name": "UNKNOWN", "number": 0 }, { "name": "INFINITE", "number": 1 }, { "name": "DATE", "number": 2 }, { "name": "FIGHT_COUNT", "number": 3 }, { "name": "FIGHTS_WON_COUNT", "number": 4 }, { "name": "FIGHTS_LOST_COUNT", "number": 5 } ] } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Anomaly.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/anomaly.proto", "package": "com.ankama.dofus.server.game.protocol.anomaly", "messageType": [ { "name": "AnomalySubareaInformationRequest" }, { "name": "AnomalySubareaInformationEvent", "field": [ { "name": "subareas", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.anomaly.AnomalySubareaInformationEvent.AnomalySubareaInformation" } ], "nestedType": [ { "name": "AnomalySubareaInformation", "field": [ { "name": "subarea_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "reward_rate", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "has_anomaly", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" }, { "name": "anomaly_closing_time", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] } ] }, { "name": "AnomalyStateEvent", "field": [ { "name": "subarea_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "open", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" }, { "name": "closing_time", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "AnomalyOpenedEvent", "field": [ { "name": "subarea_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Area.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/area.proto", "package": "com.ankama.dofus.server.game.protocol.area", "messageType": [ { "name": "SubareaRewardRateEvent", "field": [ { "name": "subarea_rate", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "AreaFightModifierUpdateEvent", "field": [ { "name": "spell_pairs", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Atlas.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/atlas.proto", "package": "com.ankama.dofus.server.game.protocol.atlas", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "CompassResetEvent", "field": [ { "name": "type", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.atlas.CompassType" } ] }, { "name": "CompassUpdateEvent", "field": [ { "name": "type", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.atlas.CompassType" }, { "name": "coordinates", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.MapCoordinates" }, { "name": "party_member", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.atlas.CompassUpdateEvent.PartyMember", "oneofIndex": 0 }, { "name": "pvp_seek", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.atlas.CompassUpdateEvent.PvpSeek", "oneofIndex": 0 } ], "nestedType": [ { "name": "PartyMember", "field": [ { "name": "member_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "active", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "PvpSeek", "field": [ { "name": "target_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "target_name", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] } ], "oneofDecl": [ { "name": "complement" } ] } ], "enumType": [ { "name": "CompassType", "value": [ { "name": "SIMPLE", "number": 0 }, { "name": "SPOUSE", "number": 1 }, { "name": "PARTY", "number": 2 }, { "name": "PVP_SEEK", "number": 3 }, { "name": "QUEST", "number": 4 } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Bak.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/bak.proto", "package": "com.ankama.dofus.server.game.protocol.bak", "messageType": [ { "name": "BufferInformation", "field": [ { "name": "buffer_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "buffer_amount", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "BakBufferListRequest" }, { "name": "BakBufferListEvent", "field": [ { "name": "buffers", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.bak.BufferInformation" } ] }, { "name": "BakConsumeBufferRequest" }, { "name": "BakCancelBidRequest", "field": [ { "name": "bid_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "bid_cancellation_type", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.bak.BakCancelBidRequest.BidCancellationType" } ], "enumType": [ { "name": "BidCancellationType", "value": [ { "name": "UNKNOWN_TYPE", "number": 0 }, { "name": "CLASSIC_TYPE", "number": 1 }, { "name": "FRAUD_TYPE", "number": 2 } ] } ] }, { "name": "BakActionRequest", "field": [ { "name": "kamas", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "ogrines", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "rate", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "bid_action", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.bak.BidAction" } ] }, { "name": "BakActionEvent", "field": [ { "name": "kamas", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "amount", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "rate", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "bid_action", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.bak.BidAction" }, { "name": "transaction_uuid", "number": 5, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "BakTransactionValidationRequest", "field": [ { "name": "transaction_uuid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "BakTransactionValidationEvent", "field": [ { "name": "bid_action", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.bak.BidAction" }, { "name": "result", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.bak.BakTransactionValidationEvent.BidValidation" } ], "enumType": [ { "name": "BidValidation", "value": [ { "name": "BID_GENERIC_ERROR", "number": 0 }, { "name": "BID_BUFFER_OVERLOAD", "number": 1 }, { "name": "BID_OFFER_DOESNT_EXIST", "number": 2 }, { "name": "BID_OFFER_ALREADY_EXISTS", "number": 3 }, { "name": "BID_NOT_ENOUGH_KAMAS", "number": 4 }, { "name": "BID_NOT_ENOUGH_OGRINES", "number": 5 }, { "name": "BID_SERVER_MAINTENANCE", "number": 6 }, { "name": "BID_PLAYER_IN_DEBT", "number": 7 }, { "name": "BID_OFFER_IS_YOURS", "number": 8 }, { "name": "BID_VALIDATION_SUCCESS", "number": 9 } ] } ] }, { "name": "BakBuyValidationEvent", "field": [ { "name": "transaction_validation", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.bak.BakTransactionValidationEvent" }, { "name": "amount", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "email", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "BakApiTokenRequest" }, { "name": "BakApiKeyEvent", "field": [ { "name": "token", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "BakShopTokenRequest" }, { "name": "BakShopTokenEvent", "field": [ { "name": "token", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] } ], "enumType": [ { "name": "BidAction", "value": [ { "name": "BID_INVALID_ACTION", "number": 0 }, { "name": "BID_CONSUME_BUFF", "number": 1 }, { "name": "BID_CANCEL", "number": 2 }, { "name": "BID_CREATE_KAMA", "number": 3 }, { "name": "BID_CREATE_OGRINE", "number": 4 }, { "name": "BID_BUY_KAMA", "number": 5 }, { "name": "BID_BUY_OGRINE", "number": 6 } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Breach.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/breach.proto", "package": "com.ankama.dofus.server.game.protocol.breach", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "BreachTeleportRequest" }, { "name": "BreachRoomUnlockRequest", "field": [ { "name": "room_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "BreachExitRequest" }, { "name": "BreachRewardBuyRequest", "field": [ { "name": "reward_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "BreachInvitationRequest", "field": [ { "name": "guests", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_INT64" } ] }, { "name": "BreachInvitationAnswerRequest", "field": [ { "name": "accepted", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "BreachKickRequest", "field": [ { "name": "player_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "BreachEnterEvent", "field": [ { "name": "owner", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "BreachTeleportResultEvent", "field": [ { "name": "teleported", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "BreachRoomLockedEvent" }, { "name": "BreachRoomUnlockResultEvent", "field": [ { "name": "room_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "result", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.breach.BreachRoomUnlockResultEvent.BreachRoomUnlockResult" } ], "enumType": [ { "name": "BreachRoomUnlockResult", "value": [ { "name": "SUCCESS", "number": 0 }, { "name": "FAIL_NOT_ENOUGH_BUDGET", "number": 1 } ] } ] }, { "name": "BreachExitResultEvent", "field": [ { "name": "exited", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "BreachStateEvent", "field": [ { "name": "owner", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.Character" }, { "name": "bonuses", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.ObjectEffect" }, { "name": "budget", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "saved", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "BreachCharactersEvent", "field": [ { "name": "players", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_INT64" } ] }, { "name": "BreachBonusEvent", "field": [ { "name": "bonus", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.ObjectEffect" } ] }, { "name": "BreachBudgetEvent", "field": [ { "name": "budget", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "BreachSavedEvent", "field": [ { "name": "saved", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "BreachBranchesEvent", "field": [ { "name": "branches", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.BreachBranch" } ] }, { "name": "BreachRewardsEvent", "field": [ { "name": "rewards", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.BreachReward" } ] }, { "name": "BreachRewardBoughtEvent", "field": [ { "name": "reward_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "bought", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "BreachInvitationOfferEvent", "field": [ { "name": "host", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.Character" }, { "name": "time_left_before_cancel", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "BreachInvitationCloseEvent", "field": [ { "name": "host", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.Character" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Challenge.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/challenge.proto", "package": "com.ankama.dofus.server.game.protocol.challenge", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "ChallengeTargetsRequest", "field": [ { "name": "challenge_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "ChallengeSelectionRequest", "field": [ { "name": "challenge_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "ChallengeValidateRequest", "field": [ { "name": "challenge_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "ChallengeModSelectRequest", "field": [ { "name": "challenge_mod", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.common.ChallengeMod" } ] }, { "name": "ChallengeReadyRequest", "field": [ { "name": "challenge_mod", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.common.ChallengeMod" } ] }, { "name": "ChallengeBonusChoiceRequest", "field": [ { "name": "challenge_bonus", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.common.ChallengeBonus" } ] }, { "name": "ChallengeListEvent", "field": [ { "name": "challenges", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.Challenge" } ] }, { "name": "ChallengeTargetsEvent", "field": [ { "name": "challenge", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.Challenge" } ] }, { "name": "ChallengeResultEvent", "field": [ { "name": "challenge_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "success", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "ChallengeNumberEvent", "field": [ { "name": "challenge_number", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "ChallengeProposalEvent", "field": [ { "name": "challenge_proposals", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.Challenge" }, { "name": "timer", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "ChallengeSelectedEvent", "field": [ { "name": "challenge", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.Challenge" } ] }, { "name": "ChallengeAddEvent", "field": [ { "name": "challenge", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.Challenge" } ] }, { "name": "ChallengeModSelectedEvent", "field": [ { "name": "challenge_mod", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.common.ChallengeMod" } ] }, { "name": "ChallengeBonusChoiceSelectedEvent", "field": [ { "name": "challenge_bonus", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.common.ChallengeBonus" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Choice.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/choice.proto", "package": "com.ankama.dofus.server.game.protocol.choice", "messageType": [ { "name": "Choice", "field": [ { "name": "id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "position", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "ChoiceSelectionEvent", "field": [ { "name": "selection_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "choices", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.choice.Choice" } ] }, { "name": "ChoiceSelectedEvent", "field": [ { "name": "position", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "ChoiceSelectedRequest", "field": [ { "name": "position", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Client.Verification.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/client_verification.proto", "package": "com.ankama.dofus.server.game.protocol.client.verification", "messageType": [ { "name": "ServerSessionReadyEvent" }, { "name": "ClientIdRequest", "field": [ { "name": "id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "ServerVerificationEvent" }, { "name": "ClientChallengeInitRequest", "field": [ { "name": "challengeKey", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "ServerChallengeEvent", "field": [ { "name": "value", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING", "oneofIndex": 0, "proto3Optional": true } ], "oneofDecl": [ { "name": "_value" } ] }, { "name": "ClientChallengeProofRequest", "field": [ { "name": "proof", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Connection.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/connection.proto", "package": "com.ankama.dofus.server.game.protocol.connection", "messageType": [ { "name": "IdentificationRequest", "field": [ { "name": "ticket_key", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "language_code", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "ReloginRequest" }, { "name": "PingRequest", "field": [ { "name": "quiet", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "PongEvent", "field": [ { "name": "quiet", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "AuthenticationTicketAcceptedEvent" }, { "name": "AlreadyConnectedEvent" }, { "name": "ReconnectToGameServerEvent", "field": [ { "name": "valid_token", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" }, { "name": "token", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "server_id", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "OptionalFeaturesEvent", "field": [ { "name": "features", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ] }, { "name": "ReloginTokenEvent", "field": [ { "name": "valid_token", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" }, { "name": "token", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "QueueStatusEvent", "field": [ { "name": "position", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "total", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "AuthenticationTicketRefusedEvent" } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Context.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/context.proto", "package": "com.ankama.dofus.server.game.protocol.context", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "ContextCreationRequest" }, { "name": "ContextReadyRequest", "field": [ { "name": "map_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "ContextQuitRequest" }, { "name": "ContextKickRequest", "field": [ { "name": "target_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "ShowCellRequest", "field": [ { "name": "cell_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "ContextCreationEvent", "field": [ { "name": "context", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.context.ContextCreationEvent.GameContext" } ], "enumType": [ { "name": "GameContext", "value": [ { "name": "ROLE_PLAY", "number": 0 }, { "name": "FIGHT", "number": 1 } ] } ] }, { "name": "ContextDestroyEvent" }, { "name": "ContextRemoveElementEvent", "field": [ { "name": "element_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "ContextRemoveElementsEvent", "field": [ { "name": "element_id", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_INT64" } ] }, { "name": "ContextRefreshEntityLookEvent", "field": [ { "name": "entity_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "look", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.EntityLook" } ] }, { "name": "EntitiesDispositionEvent", "field": [ { "name": "dispositions", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.EntityDisposition" } ] }, { "name": "EntityDispositionErrorEvent" }, { "name": "MonsterBoosts", "field": [ { "name": "id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "xp_boost", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "drop_boost", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "RefreshMonsterBoostsEvent", "field": [ { "name": "monster_boosts", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.context.MonsterBoosts" }, { "name": "family_boosts", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.context.MonsterBoosts" } ] }, { "name": "ShowCellEvent", "field": [ { "name": "source_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "cell_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Debt.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/debt.proto", "package": "com.ankama.dofus.server.game.protocol.debt", "messageType": [ { "name": "DebtsUpdateEvent", "field": [ { "name": "action", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.debt.DebtsUpdateEvent.DebtsAction" }, { "name": "debts", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.debt.DebtsUpdateEvent.DebtInformation" } ], "nestedType": [ { "name": "DebtInformation", "field": [ { "name": "debt_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "timestamp", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "kamas", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64", "oneofIndex": 0, "proto3Optional": true } ], "oneofDecl": [ { "name": "_kamas" } ] } ], "enumType": [ { "name": "DebtsAction", "value": [ { "name": "DISPATCH", "number": 0 }, { "name": "UPDATE", "number": 1 } ] } ] }, { "name": "DebtsDeleteEvent", "field": [ { "name": "reason", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.debt.DebtsDeleteEvent.DebtsDeletionReason" }, { "name": "debts", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_INT64" } ], "enumType": [ { "name": "DebtsDeletionReason", "value": [ { "name": "UNKNOWN", "number": 0 }, { "name": "ADMIN_COMMAND_REQUEST", "number": 1 }, { "name": "PAYED", "number": 2 }, { "name": "CANCELED", "number": 3 } ] } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Debug.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/debug.proto", "package": "com.ankama.dofus.server.game.protocol.debug", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "DumpedEntityStatsEvent", "field": [ { "name": "entity_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "stats", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.CharacterCharacteristic" } ] }, { "name": "DebugHighlightCellsEvent", "field": [ { "name": "color", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "cells", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ] }, { "name": "DebugClearHighlightCellsEvent" }, { "name": "DebugInClientEvent", "field": [ { "name": "level", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.debug.DebugInClientEvent.DebugLevel" }, { "name": "message", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ], "enumType": [ { "name": "DebugLevel", "value": [ { "name": "TRACE", "number": 0 }, { "name": "DEBUG", "number": 1 }, { "name": "INFO", "number": 2 }, { "name": "WARN", "number": 3 }, { "name": "ERROR", "number": 4 }, { "name": "FATAL", "number": 5 } ] } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Dialog.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/dialog.proto", "package": "com.ankama.dofus.server.game.protocol.dialog", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "DialogLeaveRequest" }, { "name": "DialogLeaveEvent", "field": [ { "name": "dialog_type", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.common.DialogType" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Document.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/document.proto", "package": "com.ankama.dofus.server.game.protocol.document", "messageType": [ { "name": "DocumentReadingBeginEvent", "field": [ { "name": "document_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "OpenGuideBookEvent", "field": [ { "name": "article_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Element.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/element.proto", "package": "com.ankama.dofus.server.game.protocol.element", "messageType": [ { "name": "LockableUseCodeRequest", "field": [ { "name": "code", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "LockableChangeCodeRequest", "field": [ { "name": "code", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "PurchasableDialogEvent", "field": [ { "name": "action", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.element.PurchasableDialogEvent.Action" }, { "name": "purchasable_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "purchasable_instance_id", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "second_hand", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" }, { "name": "price", "number": 5, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ], "enumType": [ { "name": "Action", "value": [ { "name": "BUY", "number": 0 }, { "name": "SELL", "number": 1 } ] } ] }, { "name": "LockableShowCodeDialogEvent", "field": [ { "name": "action", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.element.LockableShowCodeDialogEvent.Action" }, { "name": "code_size", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ], "enumType": [ { "name": "Action", "value": [ { "name": "CHANGE", "number": 0 }, { "name": "USE", "number": 1 } ] } ] }, { "name": "LockableCodeResultEvent", "field": [ { "name": "result", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.element.LockableCodeResultEvent.LockableResult" } ], "enumType": [ { "name": "LockableResult", "value": [ { "name": "UNLOCKED", "number": 0 }, { "name": "CODE_ERROR", "number": 1 }, { "name": "UNLOCK_FORBIDDEN", "number": 2 } ] } ] }, { "name": "LockableStateUpdateHouseDoorEvent", "field": [ { "name": "house_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "house_instance_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "second_hand", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" }, { "name": "locked", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Emote.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/emote.proto", "package": "com.ankama.dofus.server.game.protocol.emote", "messageType": [ { "name": "EmotePlayRequest", "field": [ { "name": "emote_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "EmotesEvent", "field": [ { "name": "emotes_id", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ] }, { "name": "EmoteAddedEvent", "field": [ { "name": "emote_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "EmoteRemovedEvent", "field": [ { "name": "emote_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "EmotePlayEvent", "field": [ { "name": "emote_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "emote_start_time", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "actor_id", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "account_id", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "EmoteMassivePlayEvent", "field": [ { "name": "emote_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "emote_start_time", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "actors_id", "number": 3, "label": "LABEL_REPEATED", "type": "TYPE_INT64" } ] }, { "name": "EmotePlayErrorEvent", "field": [ { "name": "emote_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Finish.Move.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/finish_move.proto", "package": "com.ankama.dofus.server.game.protocol.finish.move", "messageType": [ { "name": "FinishMovesRequest" }, { "name": "FinishMoveSetRequest", "field": [ { "name": "finish_move_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "effective", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "FinishMovesEvent", "field": [ { "name": "finish_moves", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.finish.move.FinishMovesEvent.FinishMove" } ], "nestedType": [ { "name": "FinishMove", "field": [ { "name": "finish_move_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "effective", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Guild.Chest.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/guild_chest.proto", "package": "com.ankama.dofus.server.game.protocol.guild.chest", "messageType": [ { "name": "GuildChestTabSelectRequest", "field": [ { "name": "tab_number", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "GuildChestTabUpdateRequest", "field": [ { "name": "tab_number", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "name", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "picto", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "drop_type_limitation", "number": 4, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ] }, { "name": "GuildChestTabContributionsRequest" }, { "name": "GuildChestContributionStartRequest" }, { "name": "GuildChestContributionStopRequest" }, { "name": "GuildChestStructureStartListeningRequest" }, { "name": "GuildChestStructureStopListeningRequest" }, { "name": "GuildChestTabContributionsEvent", "field": [ { "name": "contributions", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.guild.chest.GuildChestTabContributionsEvent.Contribution" } ], "nestedType": [ { "name": "Contribution", "field": [ { "name": "contributor_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "contributor_name", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "amount", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] } ] }, { "name": "GuildChestTabLastContributionDateEvent", "field": [ { "name": "last_contribution_date", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "GuildChestTabContributionEvent", "field": [ { "name": "tab_number", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "required_amount", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "current_amount", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "chest_contribution_enrollment_delay", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "chest_contribution_delay", "number": 5, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "GuildChestCurrentListenersEvent", "field": [ { "name": "players", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_STRING" } ] }, { "name": "GuildChestCurrentListenersAddEvent", "field": [ { "name": "players", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "GuildChestCurrentListenersRemoveEvent", "field": [ { "name": "players", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Guild.House.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/guild_house.proto", "package": "com.ankama.dofus.server.game.protocol.guild.house", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "GuildHousesEvent", "field": [ { "name": "houses", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.House" } ] }, { "name": "GuildHouseUpdateEvent", "field": [ { "name": "house", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.House" } ] }, { "name": "GuildHouseRemoveEvent", "field": [ { "name": "house_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "instance_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "second_hand", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Guild.Member.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/guild_member.proto", "package": "com.ankama.dofus.server.game.protocol.guild.member", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "GuildMemberParametersChangeRequest", "field": [ { "name": "member_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "rank_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "experience_given_percent", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "GuildMemberWarnOnConnectionStartRequest" }, { "name": "GuildMemberWarnOnConnectionStopRequest" }, { "name": "GuildMemberOnlineStatusEvent", "field": [ { "name": "member_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "online", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "GuildMembersEvent", "field": [ { "name": "members", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.Character" } ] }, { "name": "GuildMemberUpdateEvent", "field": [ { "name": "member", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.Character" } ] }, { "name": "GuildMemberLeaveEvent", "field": [ { "name": "kicked", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" }, { "name": "player_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "GuildLeftEvent" }, { "name": "GuildMembershipEvent", "field": [ { "name": "guild_information", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.GuildInformation" }, { "name": "rank_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "GuildJoinedEvent", "field": [ { "name": "guild_information", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.GuildInformation" }, { "name": "rank_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Guild.Rank.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/guild_rank.proto", "package": "com.ankama.dofus.server.game.protocol.guild.rank", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "GuildRanksRequest" }, { "name": "GuildRankCreateRequest", "field": [ { "name": "parent_rank_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "gfx_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "name", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "GuildRankUpdateAllRequest", "field": [ { "name": "ranks", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.RankInformation" } ] }, { "name": "GuildRankUpdateRequest", "field": [ { "name": "rank", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.RankInformation" } ] }, { "name": "GuildRightsUpdateRequest", "field": [ { "name": "rank_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "rights", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ] }, { "name": "GuildRankRemoveRequest", "field": [ { "name": "rank_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "new_rank_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "GuildRanksEvent", "field": [ { "name": "ranks", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.RankInformation" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Guild.Recruitment.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/guild_recruitment.proto", "package": "com.ankama.dofus.server.game.protocol.guild.recruitment", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "GuildRecruitmentUpdateRequest", "field": [ { "name": "recruitment", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.GuildRecruitmentInformation" } ] }, { "name": "GuildRecruitmentEvent", "field": [ { "name": "recruitment", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.GuildRecruitmentInformation" } ] }, { "name": "GuildRecruitmentInvalidateEvent" } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Haapi.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/haapi.proto", "package": "com.ankama.dofus.server.game.protocol.haapi", "messageType": [ { "name": "HaapiTokenRequest" }, { "name": "HaapiTokenEvent", "field": [ { "name": "token", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "HaapiAuthenticationErrorEvent" }, { "name": "HaapiSessionEvent", "field": [ { "name": "session_uid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Haven.Bag.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/haven_bag.proto", "package": "com.ankama.dofus.server.game.protocol.haven.bag", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "HavenBagEnterRequest", "field": [ { "name": "owner", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "HavenBagChangeRoomRequest", "field": [ { "name": "room_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "HavenBagExitRequest" }, { "name": "HavenBagEditRequest" }, { "name": "HavenBagEditCancelRequest" }, { "name": "HavenBagThemeChangeRequest", "field": [ { "name": "theme", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "HavenBagFurnitureOpenRequest" }, { "name": "HavenBagFurnitureRequest", "field": [ { "name": "furniture", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.haven.bag.Element" } ] }, { "name": "HavenBagFurnitureCloseRequest" }, { "name": "HavenBagKickRequest", "field": [ { "name": "guest_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "HavenBagPermissionsUpdateRequest", "field": [ { "name": "permissions", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "HavenBagInvitationAnswerRequest", "field": [ { "name": "accepted", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "HavenBagInvitationRequest", "field": [ { "name": "guest_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "HavenBagRoomUpdateEvent", "field": [ { "name": "action", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.haven.bag.HavenBagRoomUpdateEvent.HavenBagRoomAction" }, { "name": "preview", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.haven.bag.HavenBagRoomUpdateEvent.HavenBagRoomPreview" } ], "nestedType": [ { "name": "HavenBagRoomPreview", "field": [ { "name": "room_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "theme_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] } ], "enumType": [ { "name": "HavenBagRoomAction", "value": [ { "name": "HAVEN_BAG_ROOM_DISPATCH", "number": 0 }, { "name": "HAVEN_BAG_ROOM_UPDATE", "number": 1 } ] } ] }, { "name": "HavenBagPackListEvent", "field": [ { "name": "packs_id", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ] }, { "name": "HavenBagEditStartEvent" }, { "name": "HavenBagEditFinishedEvent" }, { "name": "HavenBagDailyLotteryEvent", "field": [ { "name": "result", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.haven.bag.HavenBagDailyLotteryEvent.DailyLotteryResult" }, { "name": "game_action_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64", "oneofIndex": 0, "proto3Optional": true } ], "enumType": [ { "name": "DailyLotteryResult", "value": [ { "name": "HAVEN_BAG_DAILY_LOTTERY_OK", "number": 0 }, { "name": "HAVEN_BAG_DAILY_LOTTERY_ALREADY_USED", "number": 1 }, { "name": "HAVEN_BAG_DAILY_LOTTERY_ERROR", "number": 2 } ] } ], "oneofDecl": [ { "name": "_game_action_id" } ] }, { "name": "HavenBagFurnitureEvent", "field": [ { "name": "furniture", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.haven.bag.Element" } ] }, { "name": "HavenBagPermissionsUpdateEvent", "field": [ { "name": "permissions", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "HavenBagInvitationClosedEvent", "field": [ { "name": "host_information", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.Character" } ] }, { "name": "HavenBagInvitationEvent", "field": [ { "name": "guest_information", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.Character" }, { "name": "accepted", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "HavenBagInvitationOfferedEvent", "field": [ { "name": "host_information", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.Character" }, { "name": "time_before_cancel", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "Element", "field": [ { "name": "cell_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "element_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "orientation", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Interactive.Element.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/interactive_element.proto", "package": "com.ankama.dofus.server.game.protocol.interactive.element", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "InteractiveUseRequest", "field": [ { "name": "element_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "skill_instance_uid", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "specific_instance_id", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32", "oneofIndex": 0, "proto3Optional": true } ], "oneofDecl": [ { "name": "_specific_instance_id" } ] }, { "name": "InteractiveUseErrorEvent", "field": [ { "name": "element_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "skill_instance_uid", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "InteractiveUsedEvent", "field": [ { "name": "entity_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "element_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "skill_id", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "duration", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "can_move", "number": 5, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "InteractiveUseEndedEvent", "field": [ { "name": "element_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "skill_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "InteractiveMapUpdateEvent", "field": [ { "name": "interactive_elements", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.InteractiveElement" } ] }, { "name": "StatedMapUpdateEvent", "field": [ { "name": "stated_elements", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.StatedElement" } ] }, { "name": "InteractiveElementUpdatedEvent", "field": [ { "name": "interactive_element", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.InteractiveElement" } ] }, { "name": "StatedElementUpdatedEvent", "field": [ { "name": "stated_element", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.StatedElement" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Living.Object.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/living_object.proto", "package": "com.ankama.dofus.server.game.protocol.living.object", "messageType": [ { "name": "LivingObjectMessageRequest", "field": [ { "name": "message_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "object_gid", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "LivingObjectDissociateRequest", "field": [ { "name": "object_uid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "position", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "LivingObjectChangeSkinRequest", "field": [ { "name": "object_uid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "position", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "skin_id", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "LivingObjectMessageEvent", "field": [ { "name": "message_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "timestamp", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "owner_name", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "object_gid", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Moderation.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/moderation.proto", "package": "com.ankama.dofus.server.game.protocol.moderation", "messageType": [ { "name": "PopupWarningCloseRequest" }, { "name": "PopupWarningEvent", "field": [ { "name": "lock_duration", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "author", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "content", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "PopupWarningClosedEvent" } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Notification.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/notification.proto", "package": "com.ankama.dofus.server.game.protocol.notification", "messageType": [ { "name": "NotificationUpdateFlagRequest", "field": [ { "name": "index", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "NotificationResetRequest" }, { "name": "NotificationsEvent", "field": [ { "name": "flags", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ] }, { "name": "NotificationEvent", "field": [ { "name": "id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "parameters", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_STRING" }, { "name": "force", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "RemoveNotificationEvent", "field": [ { "name": "id", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Npc.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/npc.proto", "package": "com.ankama.dofus.server.game.protocol.npc", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "NpcGenericActionRequest", "field": [ { "name": "npc_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "npc_action_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "npc_map_id", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "NpcDialogReplyRequest", "field": [ { "name": "reply_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "NpcsMapQuestStatusUpdateEvent", "field": [ { "name": "map_information", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.npc.NpcsMapQuestStatusUpdateEvent.MapNpcQuest" } ], "nestedType": [ { "name": "MapNpcQuest", "field": [ { "name": "map_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "npcs_with_quests", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.npc.NpcsMapQuestStatusUpdateEvent.MapNpcQuest.NpcWithQuest" } ], "nestedType": [ { "name": "NpcWithQuest", "field": [ { "name": "npc_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "quests_to_validate", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_INT32" }, { "name": "quests_to_start", "number": 3, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ] } ] } ] }, { "name": "NpcGenericActionFailureEvent" }, { "name": "NpcDialogCreationEvent", "field": [ { "name": "map_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "npc_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "portal_type", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.npc.NpcDialogCreationEvent.PortalType", "oneofIndex": 0, "proto3Optional": true } ], "enumType": [ { "name": "PortalType", "value": [ { "name": "UNSUPPORTED", "number": 0 }, { "name": "ENUTROSOR", "number": 1 }, { "name": "SRAMBAD", "number": 2 }, { "name": "XELORIUM", "number": 3 }, { "name": "ECAFLIPUS", "number": 4 } ] } ], "oneofDecl": [ { "name": "_portal_type" } ] }, { "name": "NpcDialogQuestionEvent", "field": [ { "name": "message_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "dialog_params", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_STRING" }, { "name": "visible_replies", "number": 3, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.npc.NpcDialogQuestionEvent.VisibleReply" } ], "nestedType": [ { "name": "VisibleReply", "field": [ { "name": "reply_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "actions", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.npc.NpcDialogQuestionEvent.VisibleReply.ActionInformation" } ], "nestedType": [ { "name": "ActionInformation", "field": [ { "name": "id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "is_repeatable", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL", "oneofIndex": 0, "proto3Optional": true } ], "oneofDecl": [ { "name": "_is_repeatable" } ] } ] } ] }, { "name": "TaxCollectorDialogQuestionEvent", "field": [ { "name": "alliance_information", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.AllianceInformation" }, { "name": "max_pods", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "prospecting", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "tax_collectors_count", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "possible_attack", "number": 5, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32", "oneofIndex": 0, "proto3Optional": true }, { "name": "looted_pods", "number": 6, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "looted_items_value", "number": 7, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ], "oneofDecl": [ { "name": "_possible_attack" } ] }, { "name": "PrismDialogQuestionEvent" }, { "name": "EntityTalkEvent", "field": [ { "name": "entity_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "text_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "parameters", "number": 3, "label": "LABEL_REPEATED", "type": "TYPE_STRING" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Paddock.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/paddock.proto", "package": "com.ankama.dofus.server.game.protocol.paddock", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "PaddockSellRequest", "field": [ { "name": "price", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "for_sale", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "PaddockBuyRequest", "field": [ { "name": "proposed_price", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "PaddockRemoveItemRequest", "field": [ { "name": "cell_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "PaddockMoveItemRequest", "field": [ { "name": "old_cell_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "new_cell_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "PaddocksToSellRequest", "field": [ { "name": "page_index", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "PaddocksToSellFiltersRequest", "field": [ { "name": "area_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "at_least_mount_number", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "at_least_machine_number", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "price_max", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "order_by", "number": 5, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.common.RealEstateOrder" } ] }, { "name": "PaddockObjectRemovedEvent", "field": [ { "name": "cell_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "PaddockObjectAddedEvent", "field": [ { "name": "paddock_item", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.ObjectInRolePlay" } ] }, { "name": "PaddockObjectsAddedEvent", "field": [ { "name": "paddock_item", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.ObjectInRolePlay" } ] }, { "name": "PaddockBuyResultEvent", "field": [ { "name": "paddock_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "bought", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" }, { "name": "price", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "PaddockPropertiesEvent", "field": [ { "name": "properties", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.PaddockInformation" } ] }, { "name": "PaddockTransactionDialogEvent", "field": [ { "name": "transaction", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.paddock.PaddockTransactionDialogEvent.Transaction" }, { "name": "owner_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "price", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ], "enumType": [ { "name": "Transaction", "value": [ { "name": "BUY", "number": 0 }, { "name": "SELL", "number": 1 } ] } ] }, { "name": "PaddockObjectAnimationPlayEvent", "field": [ { "name": "cells_id", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ] }, { "name": "PaddocksToSellEvent", "field": [ { "name": "page_index", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "page_total", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "paddocks", "number": 3, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.paddock.PaddocksToSellEvent.PaddockForSale" } ], "nestedType": [ { "name": "PaddockForSale", "field": [ { "name": "guild_owner", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "coordinates", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.MapCoordinates" }, { "name": "sub_area_id", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "mount_number", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "object_number", "number": 5, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "price", "number": 6, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Prism.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/prism.proto", "package": "com.ankama.dofus.server.game.protocol.prism", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "PrismTeleportationRequest" }, { "name": "PrismAttackRequest" }, { "name": "PrismExchangeRequest" }, { "name": "PrismRecycleRequest" }, { "name": "PrismListEvent", "field": [ { "name": "prism_localized_information", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.PrismLocalizedInformation" } ] }, { "name": "PrismAddOrUpdateEvent", "field": [ { "name": "prism_localized_information", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.PrismLocalizedInformation" } ] }, { "name": "PrismRemoveEvent", "field": [ { "name": "prism_localized_information", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.PrismLocalizedInformation" } ] }, { "name": "PrismAttackedEvent", "field": [ { "name": "prism_localized_information", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.PrismLocalizedInformation" } ] }, { "name": "PrismAttackResultEvent", "field": [ { "name": "prism_localized_information", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.PrismLocalizedInformation" }, { "name": "prism_attack_result", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.prism.PrismAttackResultEvent.PrismAttackResult" } ], "enumType": [ { "name": "PrismAttackResult", "value": [ { "name": "DEFENDERS_WIN", "number": 0 }, { "name": "ATTACKERS_WIN", "number": 1 } ] } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Roleplay.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/roleplay.proto", "package": "com.ankama.dofus.server.game.protocol.roleplay", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "PlayerFightRequest", "field": [ { "name": "target_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "target_cell_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "friendly", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "PlayerFightFriendlyAnswerRequest", "field": [ { "name": "fight_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "accept", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "AttackMonsterRequest", "field": [ { "name": "monster_group_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "ExitRequest" }, { "name": "DelayedActionCancelRequest" }, { "name": "FightRequestCanceledEvent", "field": [ { "name": "fight_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "source_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "target_id", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "AggressionEvent", "field": [ { "name": "attacker_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "defender_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "PlayerFightFriendlyRequestedEvent", "field": [ { "name": "fight_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "source_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "target_id", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "PlayerFightFriendlyAnsweredEvent", "field": [ { "name": "fight_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "source_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "target_id", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "accept", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "MonsterAngryAtPlayerEvent", "field": [ { "name": "character_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "monster_group_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "angry_start_time", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "attack_time", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "MonsterNotAngryAtPlayerEvent", "field": [ { "name": "character_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "monster_group_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] }, { "name": "ShowChallengeEvent", "field": [ { "name": "fight_information", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.FightCommonInformation" } ] }, { "name": "RemoveChallengeEvent", "field": [ { "name": "fight_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "SpellAnimEvent", "field": [ { "name": "caster_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "target_cell_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "spell_id", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "spell_level", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "direction", "number": 5, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.common.Direction" } ] }, { "name": "DelayedActionEvent", "field": [ { "name": "character_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "delayed_action_type", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.common.DelayedActionType" }, { "name": "delayed_end_time", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "object_gid", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32", "oneofIndex": 0, "proto3Optional": true } ], "oneofDecl": [ { "name": "_object_gid" } ] }, { "name": "DelayedActionFinishedEvent", "field": [ { "name": "character_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "delayed_action_type", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.common.DelayedActionType" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Script.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/script.proto", "package": "com.ankama.dofus.server.game.protocol.script", "messageType": [ { "name": "CinematicEvent", "field": [ { "name": "cinematic_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Security.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/security.proto", "package": "com.ankama.dofus.server.game.protocol.security", "messageType": [ { "name": "FileCheckRequest", "field": [ { "name": "check_type", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.security.CheckType" }, { "name": "value", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "TrustStatusEvent", "field": [ { "name": "certified", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "FileCheckEvent", "field": [ { "name": "file_name", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "check_type", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.security.CheckType" } ] } ], "enumType": [ { "name": "CheckType", "value": [ { "name": "LENGTH", "number": 0 }, { "name": "HASH_SUM", "number": 1 } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Server.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/server.proto", "package": "com.ankama.dofus.server.game.protocol.server", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "ServerSettingsEvent", "field": [ { "name": "language", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "community", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "game_type", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.common.ServerType" }, { "name": "is_mono_account", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" }, { "name": "arena_leave_ban_time", "number": 5, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "item_max_level", "number": 6, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "has_free_autopilot", "number": 7, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "ServerSessionConstantsEvent", "field": [ { "name": "variables", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.server.ServerSessionConstantsEvent.ServerSessionConstant" } ], "nestedType": [ { "name": "ServerSessionConstant", "field": [ { "name": "id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "value", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" } ] } ] }, { "name": "ServerExperienceModifierEvent", "field": [ { "name": "experience_percentage", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Shop.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/shop.proto", "package": "com.ankama.dofus.server.game.protocol.shop", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "AccessoryPreviewRequest", "field": [ { "name": "object_gid", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_INT32" }, { "name": "show_current_objects", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "AccessoryPreviewErrorEvent", "field": [ { "name": "error", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.shop.AccessoryPreviewErrorEvent.AccessoryPreviewError" } ], "enumType": [ { "name": "AccessoryPreviewError", "value": [ { "name": "ERROR", "number": 0 }, { "name": "COOL_DOWN", "number": 1 }, { "name": "BAD_ITEM", "number": 2 } ] } ] }, { "name": "AccessoryPreviewEvent", "field": [ { "name": "look", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.EntityLook" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Spell.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/spell.proto", "package": "com.ankama.dofus.server.game.protocol.spell", "dependency": [ "includes/common.proto" ], "messageType": [ { "name": "SpellVariantActivationRequest", "field": [ { "name": "spell_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "ForgettableSpellActionRequest", "field": [ { "name": "spell_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "action", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.spell.ForgettableSpellActionRequest.ForgettableSpellAction" } ], "enumType": [ { "name": "ForgettableSpellAction", "value": [ { "name": "FORGET", "number": 0 }, { "name": "EQUIP", "number": 1 }, { "name": "REMOVE", "number": 2 } ] } ] }, { "name": "ApplySpellModifierEvent", "field": [ { "name": "actor_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "modifier", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.common.SpellModifier" } ] }, { "name": "RemoveSpellModifierEvent", "field": [ { "name": "actor_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT64" }, { "name": "action_type", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.common.SpellModifierActionType" }, { "name": "modifier_type", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.common.SpellModifierType" }, { "name": "spell_id", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "SpellVariantActivationEvent", "field": [ { "name": "spell_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "effective", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] }, { "name": "ForgettableSpellEquipmentSlotsEvent", "field": [ { "name": "quantity", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "ForgettableSpellDeletionEvent", "field": [ { "name": "reason", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.spell.ForgettableSpellDeletionEvent.DeletionReason" }, { "name": "spells", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ], "enumType": [ { "name": "DeletionReason", "value": [ { "name": "UNKNOWN", "number": 0 }, { "name": "ADMIN_COMMAND_REQUEST", "number": 1 }, { "name": "FORGOTTEN", "number": 2 }, { "name": "DISABLED", "number": 3 }, { "name": "NOT_FOUND", "number": 4 } ] } ] }, { "name": "ForgettableSpellsEvent", "field": [ { "name": "action", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.spell.ForgettableSpellsEvent.Action" }, { "name": "spells", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.spell.SpellItem" } ], "enumType": [ { "name": "Action", "value": [ { "name": "DISPATCH", "number": 0 }, { "name": "UPDATE", "number": 1 } ] } ] }, { "name": "SpellsEvent", "field": [ { "name": "spell_visualisation", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" }, { "name": "human_spells", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.spell.SpellItem" }, { "name": "mutant_spells", "number": 3, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.spell.SpellItem" } ] }, { "name": "SpellItem", "field": [ { "name": "spell_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "spell_level", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "available", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL", "oneofIndex": 0, "proto3Optional": true } ], "oneofDecl": [ { "name": "_available" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Suggestion.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/suggestion.proto", "package": "com.ankama.dofus.server.game.protocol.suggestion", "messageType": [ { "name": "ActivitySuggestionsRequest", "field": [ { "name": "min_level", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "max_level", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "area_id", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "activity_category_id", "number": 4, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "cards_number", "number": 5, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "ActivityHideRequest", "field": [ { "name": "activity_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "ActivityLockRequest", "field": [ { "name": "activity_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "ActivitySuggestionsEvent", "field": [ { "name": "locked_activities", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_INT32" }, { "name": "unlocked_activities", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Symbiont.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/symbiont.proto", "package": "com.ankama.dofus.server.game.protocol.symbiont", "messageType": [ { "name": "WrapperObjectDissociateRequest", "field": [ { "name": "host_uid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "host_position", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "MimicryRequest", "field": [ { "name": "symbiont_uid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "host_uid", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "MimicryResponse", "field": [ { "name": "result", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.symbiont.MimicryResponse.Result" } ], "enumType": [ { "name": "Result", "value": [ { "name": "ERROR", "number": 0 }, { "name": "PLAYER_BUSY", "number": 1 }, { "name": "HOST_NOT_MIMICKABLE", "number": 2 }, { "name": "HOST_WRAPPED", "number": 3 }, { "name": "DUPLICATE", "number": 4 }, { "name": "SUCCESS", "number": 5 } ] } ] }, { "name": "MimicryFreeRequest", "field": [ { "name": "host_uid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "MimicryFreeResponse", "field": [ { "name": "success", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_BOOL" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Tag.Storage.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/tag_storage.proto", "package": "com.ankama.dofus.server.game.protocol.tag.storage", "messageType": [ { "name": "AddTagStorageRequest", "field": [ { "name": "name", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "picto", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "AddTagStorageResponse", "field": [ { "name": "tag_storage_uuid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "RemoveTagStorageRequest", "field": [ { "name": "tag_storage_uuid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "RemoveTagStorageResponse", "field": [ { "name": "tag_storage_uuid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "AddTagObjectRequest", "field": [ { "name": "tag_object_update_content", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.tag.storage.TagObjectUpdateContent" } ] }, { "name": "AddTagObjectResponse", "field": [ { "name": "object_ids", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ] }, { "name": "RemoveTagObjectRequest", "field": [ { "name": "tag_object_update_content", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.tag.storage.TagObjectUpdateContent" } ] }, { "name": "RemoveTagObjectResponse", "field": [ { "name": "object_ids", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ] }, { "name": "TagObjectUpdateContent", "field": [ { "name": "tag_storage_uuid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "object_id", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "UpdateTagStorageContentRequest", "field": [ { "name": "tag_storage_data", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.tag.storage.TagStorageData" } ] }, { "name": "UpdateTagStorageContentResponse", "field": [ { "name": "tag_storage_uuid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" } ] }, { "name": "TagStoragesRefreshEvent", "field": [ { "name": "tag_information", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.tag.storage.TagInformation" } ] }, { "name": "TagInformation", "field": [ { "name": "tag_storage_data", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.tag.storage.TagStorageData" }, { "name": "tag_object_data", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.tag.storage.TagObjectData" } ] }, { "name": "TagStorageData", "field": [ { "name": "tag_storage_uuid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "name", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_STRING" }, { "name": "picto", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "TagObjectData", "field": [ { "name": "tag_object_uuids", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Tinsel.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/tinsel.proto", "package": "com.ankama.dofus.server.game.protocol.tinsel", "messageType": [ { "name": "TitlesAndOrnamentsRequest" }, { "name": "TitlesAndOrnamentsEvent", "field": [ { "name": "titles", "number": 1, "label": "LABEL_REPEATED", "type": "TYPE_INT32" }, { "name": "ornaments", "number": 2, "label": "LABEL_REPEATED", "type": "TYPE_INT32" } ] }, { "name": "TitleGainedEvent", "field": [ { "name": "title_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "TitleLostEvent", "field": [ { "name": "title_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "OrnamentGainedEvent", "field": [ { "name": "ornament_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "OrnamentLostEvent", "field": [ { "name": "ornament_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "TitleSelectedEvent", "field": [ { "name": "title_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "TitleSelectErrorEvent", "field": [ { "name": "reason", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.tinsel.TinselSelectError" } ] }, { "name": "OrnamentSelectedEvent", "field": [ { "name": "ornament_id", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" } ] }, { "name": "OrnamentSelectErrorEvent", "field": [ { "name": "reason", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.tinsel.TinselSelectError" } ] } ], "enumType": [ { "name": "TinselSelectError", "value": [ { "name": "UNDEFINED", "number": 0 }, { "name": "INVALID", "number": 1 }, { "name": "ALREADY", "number": 2 } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.Ui.json:
--------------------------------------------------------------------------------
1 | { "name": "includes/ui.proto", "package": "com.ankama.dofus.server.game.protocol.ui", "messageType": [ { "name": "ClientUIOpenedEvent", "field": [ { "name": "type", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_ENUM", "typeName": ".com.ankama.dofus.server.game.protocol.ui.ClientUIOpenedEvent.UIType" }, { "name": "object_uid", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32", "oneofIndex": 0, "proto3Optional": true } ], "enumType": [ { "name": "UIType", "value": [ { "name": "UNDEFINED", "number": 0 }, { "name": "TELEPORT_GUILD_HOUSE", "number": 1 }, { "name": "TELEPORT_GUILD_PADDOCK", "number": 2 }, { "name": "OBJECT_MIMICRY", "number": 3 }, { "name": "LEGENDARY_TREASURE_QUEST", "number": 4 }, { "name": "TELEPORT_HOUSE", "number": 5 } ] } ], "oneofDecl": [ { "name": "_object_uid" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/proto_descriptor/Com.Ankama.Dofus.Server.Game.Protocol.json:
--------------------------------------------------------------------------------
1 | { "name": "message.proto", "package": "com.ankama.dofus.server.game.protocol", "dependency": [ "google/protobuf/any.proto" ], "messageType": [ { "name": "Message", "field": [ { "name": "request", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.Request", "oneofIndex": 0 }, { "name": "response", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.Response", "oneofIndex": 0 }, { "name": "event", "number": 3, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".com.ankama.dofus.server.game.protocol.Event", "oneofIndex": 0 } ], "oneofDecl": [ { "name": "content" } ] }, { "name": "Request", "field": [ { "name": "uid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "content", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".google.protobuf.Any" } ] }, { "name": "Response", "field": [ { "name": "uid", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_INT32" }, { "name": "content", "number": 2, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".google.protobuf.Any" } ] }, { "name": "Event", "field": [ { "name": "content", "number": 1, "label": "LABEL_OPTIONAL", "type": "TYPE_MESSAGE", "typeName": ".google.protobuf.Any" } ] } ], "options": { "javaMultipleFiles": true }, "syntax": "proto3" }
--------------------------------------------------------------------------------
/src/protocol/protocol.go:
--------------------------------------------------------------------------------
1 | package protocol
2 |
3 | import (
4 | "encoding/binary"
5 | "fmt"
6 | gameMessage "go-xp-dofus-unity-proto-builder/src/protocol/game/message"
7 | "go-xp-dofus-unity-proto-builder/src/resolver"
8 | "google.golang.org/protobuf/encoding/protojson"
9 | "google.golang.org/protobuf/proto"
10 | "google.golang.org/protobuf/reflect/protoreflect"
11 | "google.golang.org/protobuf/types/known/anypb"
12 | )
13 |
14 | var customResolver = resolver.NewCustomResolver()
15 |
16 | var unmarshal = proto.UnmarshalOptions{
17 | Resolver: customResolver,
18 | }
19 |
20 | var jsonMarshal = protojson.MarshalOptions{
21 | Indent: " ",
22 | Resolver: customResolver,
23 | }
24 |
25 | var jsonUnmarshal = protojson.UnmarshalOptions{
26 | Resolver: customResolver,
27 | }
28 |
29 | const typeUrlPrefix = "type.ankama.com/"
30 |
31 | type ServerType string
32 |
33 | const (
34 | ConnectionServer ServerType = "Connection"
35 | GameServer ServerType = "Game"
36 | )
37 |
38 | type Direction string
39 |
40 | const (
41 | ClientToServer Direction = "ClientToServer"
42 | ServerToClient Direction = "ServerToClient"
43 | )
44 |
45 | func PrettyPrintMessage(message protoreflect.ProtoMessage) string {
46 | jsonBytes, err := jsonMarshal.Marshal(message)
47 | if err != nil {
48 | return "" // TODO: handle error
49 | }
50 |
51 | return string(jsonBytes)
52 | }
53 |
54 | func EncodeMessage(message protoreflect.ProtoMessage) ([]byte, error) {
55 | data, err := proto.Marshal(message)
56 | if err != nil {
57 | fmt.Println("Error marshalling message:", err)
58 | }
59 |
60 | varIntBuffer := make([]byte, binary.MaxVarintLen64)
61 | sizeLength := binary.PutUvarint(varIntBuffer, uint64(len(data)))
62 | buffer := append(varIntBuffer[:sizeLength], data...)
63 |
64 | return buffer, nil
65 | }
66 |
67 | func DecodeMessage(data []byte, message proto.Message) error {
68 | if err := unmarshal.Unmarshal(data, message); err != nil {
69 | return fmt.Errorf("error unmarshalling message: %w", err)
70 | }
71 |
72 | return nil
73 | }
74 |
75 | func DecodeSubMessage(message *gameMessage.Message) (protoreflect.ProtoMessage, error) {
76 | request := message.GetRequest()
77 | typeUrl := request.GetContent().GetTypeUrl()
78 | anyMsg := request.GetContent()
79 |
80 | messageType, err := customResolver.FindMessageByURL(typeUrl)
81 | if err != nil {
82 | return nil, err
83 | }
84 |
85 | specificMsg := messageType.New().Interface()
86 | if err = anyMsg.UnmarshalTo(specificMsg); err != nil {
87 | return nil, err
88 | }
89 |
90 | return specificMsg, nil
91 | }
92 |
93 | func EncodeGameRequest(request protoreflect.ProtoMessage) (*gameMessage.Message, error) {
94 | marshalMsg, err := proto.Marshal(request)
95 | if err != nil {
96 | return nil, err
97 | }
98 |
99 | anyMsg := &anypb.Any{
100 | TypeUrl: typeUrlPrefix + string(request.ProtoReflect().Descriptor().FullName()),
101 | Value: marshalMsg,
102 | }
103 |
104 | return &gameMessage.Message{
105 | Content: &gameMessage.Message_Request{
106 | Request: &gameMessage.Request{
107 | Content: anyMsg,
108 | },
109 | },
110 | }, nil
111 | }
112 |
113 | func EncodeGameResponse(response protoreflect.ProtoMessage) (*gameMessage.Message, error) {
114 | marshalMsg, err := proto.Marshal(response)
115 | if err != nil {
116 | return nil, err
117 | }
118 |
119 | anyMsg := &anypb.Any{
120 | TypeUrl: typeUrlPrefix + string(response.ProtoReflect().Descriptor().FullName()),
121 | Value: marshalMsg,
122 | }
123 |
124 | return &gameMessage.Message{
125 | Content: &gameMessage.Message_Response{
126 | Response: &gameMessage.Response{
127 | Content: anyMsg,
128 | },
129 | },
130 | }, nil
131 | }
132 |
133 | func EncodeGameEvent(event protoreflect.ProtoMessage) (*gameMessage.Message, error) {
134 | marshalMsg, err := proto.Marshal(event)
135 | if err != nil {
136 | return nil, err
137 | }
138 |
139 | anyMsg := &anypb.Any{
140 | TypeUrl: typeUrlPrefix + string(event.ProtoReflect().Descriptor().FullName()),
141 | Value: marshalMsg,
142 | }
143 |
144 | return &gameMessage.Message{
145 | Content: &gameMessage.Message_Event{
146 | Event: &gameMessage.Event{
147 | Content: anyMsg,
148 | },
149 | },
150 | }, nil
151 | }
152 |
153 | func JsonToProto(jsonBytes []byte, message proto.Message) error {
154 | if err := jsonUnmarshal.Unmarshal(jsonBytes, message); err != nil {
155 | return fmt.Errorf("error unmarshalling message: %w", err)
156 | }
157 |
158 | return nil
159 | }
160 |
--------------------------------------------------------------------------------