├── .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 | --------------------------------------------------------------------------------