diff --git a/README.md b/README.md
index c8a563b2..f0c1944b 100644
--- a/README.md
+++ b/README.md
@@ -1,92 +1,2 @@
# Grasscutter Protos
-
-
-
-## Getting started
-
-To make it easy for you to get started with GitLab, here's a list of recommended next steps.
-
-Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
-
-## Add your files
-
-- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
-- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
-
-```
-cd existing_repo
-git remote add origin https://gitlab.com/yukiz/grasscutter-protos.git
-git branch -M main
-git push -uf origin main
-```
-
-## Integrate with your tools
-
-- [ ] [Set up project integrations](https://gitlab.com/yukiz/grasscutter-protos/-/settings/integrations)
-
-## Collaborate with your team
-
-- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
-- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
-- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
-- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
-- [ ] [Automatically merge when pipeline succeeds](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
-
-## Test and Deploy
-
-Use the built-in continuous integration in GitLab.
-
-- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html)
-- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing(SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
-- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
-- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
-- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
-
-***
-
-# Editing this README
-
-When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thank you to [makeareadme.com](https://www.makeareadme.com/) for this template.
-
-## Suggestions for a good README
-Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
-
-## Name
-Choose a self-explaining name for your project.
-
-## Description
-Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
-
-## Badges
-On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
-
-## Visuals
-Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
-
-## Installation
-Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
-
-## Usage
-Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
-
-## Support
-Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
-
-## Roadmap
-If you have ideas for releases in the future, it is a good idea to list them in the README.
-
-## Contributing
-State if you are open to contributions and what your requirements are for accepting them.
-
-For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
-
-You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
-
-## Authors and acknowledgment
-Show your appreciation to those who have contributed to the project.
-
-## License
-For open source projects, say how it is licensed.
-
-## Project status
-If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
+Testing
\ No newline at end of file
diff --git a/SoraToJava.py b/SoraToJava.py
new file mode 100644
index 00000000..5ca7bd22
--- /dev/null
+++ b/SoraToJava.py
@@ -0,0 +1,13 @@
+import os
+
+for file in os.listdir(r'./proto'):
+ with open(f'./proto/{file}', 'r') as f:
+ temp = '// Proto has been converted from Sorapointa to Grasscutter format\n'
+ for line in f.readlines():
+ if 'org.sorapointa.proto' in line:
+ temp += "option java_package = \"emu.grasscutter.net.proto\";\n"
+ else:
+ temp += line
+
+ with open(f'./proto/{file}', 'w') as out:
+ out.write(temp)
\ No newline at end of file
diff --git a/proto/AISnapshotEntityData.proto b/proto/AISnapshotEntityData.proto
new file mode 100644
index 00000000..2130d24c
--- /dev/null
+++ b/proto/AISnapshotEntityData.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AISnapshotEntitySkillCycle.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AISnapshotEntityData {
+ float tick_time = 5;
+ uint32 tactic = 2;
+ repeated AISnapshotEntitySkillCycle finished_skill_cycles = 9;
+ float moved_distance = 4;
+ uint32 ai_target_id = 13;
+ uint32 threat_target_id = 3;
+ uint32 threat_list_size = 1;
+ uint32 entity_id = 15;
+ map hitting_avatars = 7;
+ float distance_to_player = 11;
+ uint32 attack_target_id = 10;
+ float real_time = 14;
+}
diff --git a/proto/AISnapshotEntitySkillCycle.proto b/proto/AISnapshotEntitySkillCycle.proto
new file mode 100644
index 00000000..53710704
--- /dev/null
+++ b/proto/AISnapshotEntitySkillCycle.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AISnapshotEntitySkillCycle {
+ bool failed = 12;
+ bool trydoskill = 8;
+ bool success = 9;
+ bool selected = 1;
+ uint32 skill_id = 2;
+}
diff --git a/proto/AISnapshotInfo.proto b/proto/AISnapshotInfo.proto
new file mode 100644
index 00000000..f75470eb
--- /dev/null
+++ b/proto/AISnapshotInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AISnapshotEntityData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AISnapshotInfo {
+ repeated AISnapshotEntityData ai_snapshots = 13;
+}
diff --git a/proto/AbilityActionBlink.proto b/proto/AbilityActionBlink.proto
new file mode 100644
index 00000000..840dd916
--- /dev/null
+++ b/proto/AbilityActionBlink.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityActionBlink {
+ Vector rot = 11;
+ Vector pos = 10;
+}
diff --git a/proto/AbilityActionCreateGadget.proto b/proto/AbilityActionCreateGadget.proto
new file mode 100644
index 00000000..19d2bb51
--- /dev/null
+++ b/proto/AbilityActionCreateGadget.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityActionCreateGadget {
+ uint32 room_id = 3;
+ Vector rot = 8;
+ Vector pos = 11;
+}
diff --git a/proto/AbilityActionCreateTile.proto b/proto/AbilityActionCreateTile.proto
new file mode 100644
index 00000000..7019f6d9
--- /dev/null
+++ b/proto/AbilityActionCreateTile.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityActionCreateTile {
+ Vector rot = 3;
+ Vector pos = 8;
+}
diff --git a/proto/AbilityActionDestroyTile.proto b/proto/AbilityActionDestroyTile.proto
new file mode 100644
index 00000000..b6160d3c
--- /dev/null
+++ b/proto/AbilityActionDestroyTile.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityActionDestroyTile {
+ Vector rot = 3;
+ Vector pos = 1;
+}
diff --git a/proto/AbilityActionFireAfterImage.proto b/proto/AbilityActionFireAfterImage.proto
new file mode 100644
index 00000000..62adf7bd
--- /dev/null
+++ b/proto/AbilityActionFireAfterImage.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityActionFireAfterImage {
+ Vector dir = 12;
+}
diff --git a/proto/AbilityActionGenerateElemBall.proto b/proto/AbilityActionGenerateElemBall.proto
new file mode 100644
index 00000000..fbe2330d
--- /dev/null
+++ b/proto/AbilityActionGenerateElemBall.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityActionGenerateElemBall {
+ uint32 room_id = 2;
+ Vector pos = 7;
+ Vector rot = 13;
+}
diff --git a/proto/AbilityActionServerMonsterLog.proto b/proto/AbilityActionServerMonsterLog.proto
new file mode 100644
index 00000000..35d21ece
--- /dev/null
+++ b/proto/AbilityActionServerMonsterLog.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityActionServerMonsterLog {
+ repeated int32 param_list = 2;
+}
diff --git a/proto/AbilityActionSetCrashDamage.proto b/proto/AbilityActionSetCrashDamage.proto
new file mode 100644
index 00000000..5a38d7ce
--- /dev/null
+++ b/proto/AbilityActionSetCrashDamage.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityActionSetCrashDamage {
+ Vector hit_pos = 2;
+ float damage = 15;
+}
diff --git a/proto/AbilityActionSetRandomOverrideMapValue.proto b/proto/AbilityActionSetRandomOverrideMapValue.proto
new file mode 100644
index 00000000..31dfc819
--- /dev/null
+++ b/proto/AbilityActionSetRandomOverrideMapValue.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityActionSetRandomOverrideMapValue {
+ float random_value = 1;
+}
diff --git a/proto/AbilityActionSummon.proto b/proto/AbilityActionSummon.proto
new file mode 100644
index 00000000..cb4c9cf9
--- /dev/null
+++ b/proto/AbilityActionSummon.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityActionSummon {
+ Vector pos = 10;
+ Vector rot = 1;
+}
diff --git a/proto/AbilityActionTriggerAbility.proto b/proto/AbilityActionTriggerAbility.proto
new file mode 100644
index 00000000..8f7882d9
--- /dev/null
+++ b/proto/AbilityActionTriggerAbility.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityActionTriggerAbility {
+ uint32 other_id = 14;
+}
diff --git a/proto/AbilityAppliedAbility.proto b/proto/AbilityAppliedAbility.proto
new file mode 100644
index 00000000..b1e29c5c
--- /dev/null
+++ b/proto/AbilityAppliedAbility.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityScalarValueEntry.proto";
+import "AbilityString.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityAppliedAbility {
+ AbilityString ability_name = 1;
+ AbilityString ability_override = 2;
+ repeated AbilityScalarValueEntry override_map = 3;
+ uint32 instanced_ability_id = 4;
+}
diff --git a/proto/AbilityAppliedModifier.proto b/proto/AbilityAppliedModifier.proto
new file mode 100644
index 00000000..31a9a891
--- /dev/null
+++ b/proto/AbilityAppliedModifier.proto
@@ -0,0 +1,40 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityAttachedModifier.proto";
+import "AbilityString.proto";
+import "ModifierDurability.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityAppliedModifier {
+ int32 modifier_local_id = 1;
+ uint32 parent_ability_entity_id = 2;
+ AbilityString parent_ability_name = 3;
+ AbilityString parent_ability_override = 4;
+ uint32 instanced_ability_id = 5;
+ uint32 instanced_modifier_id = 6;
+ float exist_duration = 7;
+ AbilityAttachedModifier attached_instanced_modifier = 8;
+ uint32 apply_entity_id = 9;
+ bool is_attached_parent_ability = 10;
+ ModifierDurability modifier_durability = 11;
+ uint32 sbuff_uid = 12;
+ bool is_serverbuff_modifier = 13;
+}
diff --git a/proto/AbilityApplyLevelModifier.proto b/proto/AbilityApplyLevelModifier.proto
new file mode 100644
index 00000000..f41b4b93
--- /dev/null
+++ b/proto/AbilityApplyLevelModifier.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityApplyLevelModifier {
+ uint32 apply_entity_id = 6;
+}
diff --git a/proto/AbilityArgument.proto b/proto/AbilityArgument.proto
new file mode 100644
index 00000000..aacc8124
--- /dev/null
+++ b/proto/AbilityArgument.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityArgument {
+ oneof arg {
+ uint32 int_arg = 5;
+ float float_arg = 15;
+ string str_arg = 11;
+ }
+}
diff --git a/proto/AbilityAttachedModifier.proto b/proto/AbilityAttachedModifier.proto
new file mode 100644
index 00000000..0e881eb8
--- /dev/null
+++ b/proto/AbilityAttachedModifier.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityAttachedModifier {
+ bool is_invalid = 1;
+ uint32 owner_entity_id = 2;
+ uint32 instanced_modifier_id = 3;
+ bool is_serverbuff_modifier = 4;
+ int32 attach_name_hash = 5;
+}
diff --git a/proto/AbilityBornType.proto b/proto/AbilityBornType.proto
new file mode 100644
index 00000000..fbd611e4
--- /dev/null
+++ b/proto/AbilityBornType.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityBornType {
+ Vector rot = 2;
+ Vector move_dir = 14;
+ Vector pos = 5;
+}
diff --git a/proto/AbilityChangeNotify.proto b/proto/AbilityChangeNotify.proto
new file mode 100644
index 00000000..c280ce7c
--- /dev/null
+++ b/proto/AbilityChangeNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityControlBlock.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1131
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AbilityChangeNotify {
+ uint32 entity_id = 1;
+ AbilityControlBlock ability_control_block = 15;
+}
diff --git a/proto/AbilityControlBlock.proto b/proto/AbilityControlBlock.proto
new file mode 100644
index 00000000..b5844c90
--- /dev/null
+++ b/proto/AbilityControlBlock.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityEmbryo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityControlBlock {
+ repeated AbilityEmbryo ability_embryo_list = 1;
+}
diff --git a/proto/AbilityEmbryo.proto b/proto/AbilityEmbryo.proto
new file mode 100644
index 00000000..6e6069c0
--- /dev/null
+++ b/proto/AbilityEmbryo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityEmbryo {
+ uint32 ability_id = 1;
+ fixed32 ability_name_hash = 2;
+ fixed32 ability_override_name_hash = 3;
+}
diff --git a/proto/AbilityFloatValue.proto b/proto/AbilityFloatValue.proto
new file mode 100644
index 00000000..2bcd111d
--- /dev/null
+++ b/proto/AbilityFloatValue.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityFloatValue {
+ float value = 1;
+}
diff --git a/proto/AbilityGadgetInfo.proto b/proto/AbilityGadgetInfo.proto
new file mode 100644
index 00000000..11c6b25d
--- /dev/null
+++ b/proto/AbilityGadgetInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityGadgetInfo {
+ uint32 camp_id = 1;
+ uint32 camp_target_type = 2;
+ uint32 target_entity_id = 3;
+}
diff --git a/proto/AbilityIdentifier.proto b/proto/AbilityIdentifier.proto
new file mode 100644
index 00000000..362ea6a3
--- /dev/null
+++ b/proto/AbilityIdentifier.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityIdentifier {
+ uint32 modifier_owner_id = 2;
+ uint32 instanced_modifier_id = 9;
+ uint32 instanced_ability_id = 10;
+ bool is_serverbuff_modifier = 6;
+ uint32 ability_caster_id = 15;
+ int32 local_id = 3;
+}
diff --git a/proto/AbilityInvocationFailNotify.proto b/proto/AbilityInvocationFailNotify.proto
new file mode 100644
index 00000000..58fafc9e
--- /dev/null
+++ b/proto/AbilityInvocationFailNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityInvokeEntry.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1107
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AbilityInvocationFailNotify {
+ string reason = 7;
+ uint32 entity_id = 13;
+ AbilityInvokeEntry invoke = 3;
+}
diff --git a/proto/AbilityInvocationFixedNotify.proto b/proto/AbilityInvocationFixedNotify.proto
new file mode 100644
index 00000000..edec202a
--- /dev/null
+++ b/proto/AbilityInvocationFixedNotify.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityInvokeEntry.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1172
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AbilityInvocationFixedNotify {
+ AbilityInvokeEntry invoke6th = 14;
+ AbilityInvokeEntry invoke5th = 8;
+ AbilityInvokeEntry invoke4th = 1;
+ AbilityInvokeEntry invoke2nd = 5;
+ AbilityInvokeEntry invoke1st = 10;
+ AbilityInvokeEntry invoke3rd = 12;
+}
diff --git a/proto/AbilityInvocationsNotify.proto b/proto/AbilityInvocationsNotify.proto
new file mode 100644
index 00000000..d5cafc4a
--- /dev/null
+++ b/proto/AbilityInvocationsNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityInvokeEntry.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1198
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AbilityInvocationsNotify {
+ repeated AbilityInvokeEntry invokes = 2;
+}
diff --git a/proto/AbilityInvokeArgument.proto b/proto/AbilityInvokeArgument.proto
new file mode 100644
index 00000000..e53dbe6d
--- /dev/null
+++ b/proto/AbilityInvokeArgument.proto
@@ -0,0 +1,83 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum AbilityInvokeArgument {
+ ABILITY_INVOKE_ARGUMENT_NONE = 0;
+ ABILITY_INVOKE_ARGUMENT_META_MODIFIER_CHANGE = 1;
+ ABILITY_INVOKE_ARGUMENT_META_COMMAND_MODIFIER_CHANGE_REQUEST = 2;
+ ABILITY_INVOKE_ARGUMENT_META_SPECIAL_FLOAT_ARGUMENT = 3;
+ ABILITY_INVOKE_ARGUMENT_META_OVERRIDE_PARAM = 4;
+ ABILITY_INVOKE_ARGUMENT_META_CLEAR_OVERRIDE_PARAM = 5;
+ ABILITY_INVOKE_ARGUMENT_META_REINIT_OVERRIDEMAP = 6;
+ ABILITY_INVOKE_ARGUMENT_META_GLOBAL_FLOAT_VALUE = 7;
+ ABILITY_INVOKE_ARGUMENT_META_CLEAR_GLOBAL_FLOAT_VALUE = 8;
+ ABILITY_INVOKE_ARGUMENT_META_ABILITY_ELEMENT_STRENGTH = 9;
+ ABILITY_INVOKE_ARGUMENT_META_ADD_OR_GET_ABILITY_AND_TRIGGER = 10;
+ ABILITY_INVOKE_ARGUMENT_META_SET_KILLED_STATE = 11;
+ ABILITY_INVOKE_ARGUMENT_META_SET_ABILITY_TRIGGER = 12;
+ ABILITY_INVOKE_ARGUMENT_META_ADD_NEW_ABILITY = 13;
+ ABILITY_INVOKE_ARGUMENT_META_REMOVE_ABILITY = 14;
+ ABILITY_INVOKE_ARGUMENT_META_SET_MODIFIER_APPLY_ENTITY = 15;
+ ABILITY_INVOKE_ARGUMENT_META_MODIFIER_DURABILITY_CHANGE = 16;
+ ABILITY_INVOKE_ARGUMENT_META_ELEMENT_REACTION_VISUAL = 17;
+ ABILITY_INVOKE_ARGUMENT_META_SET_POSE_PARAMETER = 18;
+ ABILITY_INVOKE_ARGUMENT_META_UPDATE_BASE_REACTION_DAMAGE = 19;
+ ABILITY_INVOKE_ARGUMENT_META_TRIGGER_ELEMENT_REACTION = 20;
+ ABILITY_INVOKE_ARGUMENT_META_LOSE_HP = 21;
+ ABILITY_INVOKE_ARGUMENT_Unk2700_JDDDLJELBLJ = 22;
+ ABILITY_INVOKE_ARGUMENT_ACTION_TRIGGER_ABILITY = 50;
+ ABILITY_INVOKE_ARGUMENT_ACTION_SET_CRASH_DAMAGE = 51;
+ ABILITY_INVOKE_ARGUMENT_ACTION_EFFECT = 52;
+ ABILITY_INVOKE_ARGUMENT_ACTION_SUMMON = 53;
+ ABILITY_INVOKE_ARGUMENT_ACTION_BLINK = 54;
+ ABILITY_INVOKE_ARGUMENT_ACTION_CREATE_GADGET = 55;
+ ABILITY_INVOKE_ARGUMENT_ACTION_APPLY_LEVEL_MODIFIER = 56;
+ ABILITY_INVOKE_ARGUMENT_ACTION_GENERATE_ELEM_BALL = 57;
+ ABILITY_INVOKE_ARGUMENT_ACTION_SET_RANDOM_OVERRIDE_MAP_VALUE = 58;
+ ABILITY_INVOKE_ARGUMENT_ACTION_SERVER_MONSTER_LOG = 59;
+ ABILITY_INVOKE_ARGUMENT_ACTION_CREATE_TILE = 60;
+ ABILITY_INVOKE_ARGUMENT_ACTION_DESTROY_TILE = 61;
+ ABILITY_INVOKE_ARGUMENT_ACTION_FIRE_AFTER_IMAGE = 62;
+ ABILITY_INVOKE_ARGUMENT_Unk2700_FNANDDPDLOL = 63;
+ ABILITY_INVOKE_ARGUMENT_Unk3000_EEANHJONEEP = 64;
+ ABILITY_INVOKE_ARGUMENT_Unk3000_ADEHJMKKBJD = 65;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_AVATAR_STEER_BY_CAMERA = 100;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_MONSTER_DEFEND = 101;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_WIND_ZONE = 102;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_COST_STAMINA = 103;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_ELITE_SHIELD = 104;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_ELEMENT_SHIELD = 105;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_GLOBAL_SHIELD = 106;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_SHIELD_BAR = 107;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_WIND_SEED_SPAWNER = 108;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_DO_ACTION_BY_ELEMENT_REACTION = 109;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_FIELD_ENTITY_COUNT_CHANGE = 110;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_SCENE_PROP_SYNC = 111;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_WIDGET_MP_SUPPORT = 112;
+ ABILITY_INVOKE_ARGUMENT_Unk2700_NJHBFADEOON = 113;
+ ABILITY_INVOKE_ARGUMENT_Unk2700_EGCIFFFLLBG = 114;
+ ABILITY_INVOKE_ARGUMENT_Unk2700_OFDGFACOLDI = 115;
+ ABILITY_INVOKE_ARGUMENT_Unk2700_KDPKJGJNGFB = 116;
+ ABILITY_INVOKE_ARGUMENT_Unk3000_BNECPACGKHP = 117;
+ ABILITY_INVOKE_ARGUMENT_Unk3000_LGIPOCBHKAL = 118;
+ ABILITY_INVOKE_ARGUMENT_Unk3000_EFJIGCEGHJG = 119;
+ ABILITY_INVOKE_ARGUMENT_Unk3100_NLIPBBOINEO = 120;
+}
diff --git a/proto/AbilityInvokeEntry.proto b/proto/AbilityInvokeEntry.proto
new file mode 100644
index 00000000..abacec7b
--- /dev/null
+++ b/proto/AbilityInvokeEntry.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityInvokeArgument.proto";
+import "AbilityInvokeEntryHead.proto";
+import "ForwardType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityInvokeEntry {
+ AbilityInvokeArgument argument_type = 1;
+ AbilityInvokeEntryHead head = 2;
+ uint32 forward_peer = 4;
+ uint32 event_id = 12;
+ ForwardType forward_type = 3;
+ bytes ability_data = 15;
+ double total_tick_time = 14;
+ uint32 entity_id = 9;
+}
diff --git a/proto/AbilityInvokeEntryHead.proto b/proto/AbilityInvokeEntryHead.proto
new file mode 100644
index 00000000..777a5534
--- /dev/null
+++ b/proto/AbilityInvokeEntryHead.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityInvokeEntryHead {
+ int32 modifier_config_local_id = 7;
+ bool is_serverbuff_modifier = 2;
+ uint32 instanced_ability_id = 1;
+ uint32 instanced_modifier_id = 12;
+ int32 local_id = 10;
+ uint32 server_buff_uid = 14;
+ uint32 target_id = 3;
+}
diff --git a/proto/AbilityMetaAddAbility.proto b/proto/AbilityMetaAddAbility.proto
new file mode 100644
index 00000000..1bba0b81
--- /dev/null
+++ b/proto/AbilityMetaAddAbility.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityAppliedAbility.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMetaAddAbility {
+ AbilityAppliedAbility ability = 12;
+}
diff --git a/proto/AbilityMetaAddOrGetAbilityAndTrigger.proto b/proto/AbilityMetaAddOrGetAbilityAndTrigger.proto
new file mode 100644
index 00000000..da514e5d
--- /dev/null
+++ b/proto/AbilityMetaAddOrGetAbilityAndTrigger.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityString.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMetaAddOrGetAbilityAndTrigger {
+ AbilityString ability_name = 13;
+ float trigger_argument = 3;
+ AbilityString ability_override = 8;
+}
diff --git a/proto/AbilityMetaElementReactionVisual.proto b/proto/AbilityMetaElementReactionVisual.proto
new file mode 100644
index 00000000..315cdb98
--- /dev/null
+++ b/proto/AbilityMetaElementReactionVisual.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMetaElementReactionVisual {
+ int32 hit_index = 2;
+ uint32 element_source_type = 12;
+ uint32 element_reactor_type = 6;
+ uint32 element_reaction_type = 5;
+}
diff --git a/proto/AbilityMetaLoseHp.proto b/proto/AbilityMetaLoseHp.proto
new file mode 100644
index 00000000..5fd29ccd
--- /dev/null
+++ b/proto/AbilityMetaLoseHp.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMetaLoseHp {
+ uint32 lose_hp_config_idx = 10;
+}
diff --git a/proto/AbilityMetaModifierChange.proto b/proto/AbilityMetaModifierChange.proto
new file mode 100644
index 00000000..4d60128d
--- /dev/null
+++ b/proto/AbilityMetaModifierChange.proto
@@ -0,0 +1,39 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityAttachedModifier.proto";
+import "AbilityString.proto";
+import "ModifierAction.proto";
+import "ModifierProperty.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMetaModifierChange {
+ AbilityAttachedModifier attached_instanced_modifier = 7;
+ uint32 server_buff_uid = 4;
+ bool is_attached_parent_ability = 10;
+ ModifierAction action = 13;
+ int32 modifier_local_id = 2;
+ AbilityString parent_ability_name = 1;
+ bool is_mute_remote = 6;
+ uint32 apply_entity_id = 5;
+ repeated ModifierProperty properties = 3;
+ AbilityString parent_ability_override = 11;
+ bool Unk2700_PMJMNCFJPDC = 9;
+}
diff --git a/proto/AbilityMetaModifierDurabilityChange.proto b/proto/AbilityMetaModifierDurabilityChange.proto
new file mode 100644
index 00000000..46edd238
--- /dev/null
+++ b/proto/AbilityMetaModifierDurabilityChange.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMetaModifierDurabilityChange {
+ float reduce_durability = 6;
+ float remain_durability = 15;
+}
diff --git a/proto/AbilityMetaReInitOverrideMap.proto b/proto/AbilityMetaReInitOverrideMap.proto
new file mode 100644
index 00000000..39da4de0
--- /dev/null
+++ b/proto/AbilityMetaReInitOverrideMap.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityScalarValueEntry.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMetaReInitOverrideMap {
+ repeated AbilityScalarValueEntry override_map = 7;
+}
diff --git a/proto/AbilityMetaSetAbilityTrigger.proto b/proto/AbilityMetaSetAbilityTrigger.proto
new file mode 100644
index 00000000..fc69c045
--- /dev/null
+++ b/proto/AbilityMetaSetAbilityTrigger.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMetaSetAbilityTrigger {
+ uint32 trigger_ability_entity_id = 11;
+}
diff --git a/proto/AbilityMetaSetKilledState.proto b/proto/AbilityMetaSetKilledState.proto
new file mode 100644
index 00000000..157949eb
--- /dev/null
+++ b/proto/AbilityMetaSetKilledState.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMetaSetKilledState {
+ bool killed = 2;
+}
diff --git a/proto/AbilityMetaSetModifierApplyEntityId.proto b/proto/AbilityMetaSetModifierApplyEntityId.proto
new file mode 100644
index 00000000..9be83703
--- /dev/null
+++ b/proto/AbilityMetaSetModifierApplyEntityId.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMetaSetModifierApplyEntityId {
+ uint32 apply_entity_id = 10;
+}
diff --git a/proto/AbilityMetaSetPoseParameter.proto b/proto/AbilityMetaSetPoseParameter.proto
new file mode 100644
index 00000000..e81047a5
--- /dev/null
+++ b/proto/AbilityMetaSetPoseParameter.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AnimatorParameterValueInfoPair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMetaSetPoseParameter {
+ AnimatorParameterValueInfoPair value = 6;
+}
diff --git a/proto/AbilityMetaSpecialFloatArgument.proto b/proto/AbilityMetaSpecialFloatArgument.proto
new file mode 100644
index 00000000..790874a8
--- /dev/null
+++ b/proto/AbilityMetaSpecialFloatArgument.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMetaSpecialFloatArgument {
+ float argument_value = 14;
+ bool is_on = 10;
+}
diff --git a/proto/AbilityMetaTriggerElementReaction.proto b/proto/AbilityMetaTriggerElementReaction.proto
new file mode 100644
index 00000000..20d3e8c4
--- /dev/null
+++ b/proto/AbilityMetaTriggerElementReaction.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMetaTriggerElementReaction {
+ int32 hit_index = 9;
+ uint32 element_source_type = 7;
+ uint32 element_reactor_type = 12;
+ uint32 trigger_entity_id = 2;
+ uint32 element_reaction_type = 1;
+}
diff --git a/proto/AbilityMetaUpdateBaseReactionDamage.proto b/proto/AbilityMetaUpdateBaseReactionDamage.proto
new file mode 100644
index 00000000..fa490cc6
--- /dev/null
+++ b/proto/AbilityMetaUpdateBaseReactionDamage.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityString.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMetaUpdateBaseReactionDamage {
+ uint32 source_caster_id = 15;
+ AbilityString global_value_key = 4;
+ uint32 reaction_type = 8;
+}
diff --git a/proto/AbilityMixinAvatarSteerByCamera.proto b/proto/AbilityMixinAvatarSteerByCamera.proto
new file mode 100644
index 00000000..d31eabde
--- /dev/null
+++ b/proto/AbilityMixinAvatarSteerByCamera.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMixinAvatarSteerByCamera {
+ Vector target_dir = 7;
+ Vector target_pos = 6;
+}
diff --git a/proto/AbilityMixinCostStamina.proto b/proto/AbilityMixinCostStamina.proto
new file mode 100644
index 00000000..28a5260c
--- /dev/null
+++ b/proto/AbilityMixinCostStamina.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMixinCostStamina {
+ bool is_swim = 3;
+}
diff --git a/proto/AbilityMixinDoActionByElementReaction.proto b/proto/AbilityMixinDoActionByElementReaction.proto
new file mode 100644
index 00000000..0957ccf5
--- /dev/null
+++ b/proto/AbilityMixinDoActionByElementReaction.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMixinDoActionByElementReaction {
+ uint32 target_entity_id = 1;
+}
diff --git a/proto/AbilityMixinElementShield.proto b/proto/AbilityMixinElementShield.proto
new file mode 100644
index 00000000..2f2367f0
--- /dev/null
+++ b/proto/AbilityMixinElementShield.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMixinElementShield {
+ float sub_shield = 10;
+ float shield = 8;
+ uint32 absorb_type = 1;
+ uint32 Unk2700_PBKBDDLNBEA = 4;
+ bool is_shield_broken = 9;
+ float max_shield = 12;
+}
diff --git a/proto/AbilityMixinEliteShield.proto b/proto/AbilityMixinEliteShield.proto
new file mode 100644
index 00000000..931c37f5
--- /dev/null
+++ b/proto/AbilityMixinEliteShield.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMixinEliteShield {
+ float sub_shield = 2;
+}
diff --git a/proto/AbilityMixinEmpty.proto b/proto/AbilityMixinEmpty.proto
new file mode 100644
index 00000000..14bd7cfa
--- /dev/null
+++ b/proto/AbilityMixinEmpty.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMixinEmpty {
+ bool is_swim = 1;
+}
diff --git a/proto/AbilityMixinFieldEntityCountChange.proto b/proto/AbilityMixinFieldEntityCountChange.proto
new file mode 100644
index 00000000..5064b1a6
--- /dev/null
+++ b/proto/AbilityMixinFieldEntityCountChange.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMixinFieldEntityCountChange {
+ uint32 field_entity_count = 14;
+}
diff --git a/proto/AbilityMixinGlobalShield.proto b/proto/AbilityMixinGlobalShield.proto
new file mode 100644
index 00000000..6f686675
--- /dev/null
+++ b/proto/AbilityMixinGlobalShield.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMixinGlobalShield {
+ bool is_create_effect = 4;
+ float sub_shield = 7;
+ float height_offset = 5;
+ uint32 avatar_id = 11;
+ float max_shield = 10;
+ string shield_effect_name = 2;
+}
diff --git a/proto/AbilityMixinRecoverInfo.proto b/proto/AbilityMixinRecoverInfo.proto
new file mode 100644
index 00000000..26eb2f95
--- /dev/null
+++ b/proto/AbilityMixinRecoverInfo.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MassivePropSyncInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMixinRecoverInfo {
+ uint32 local_id = 3;
+ repeated uint32 data_list = 4;
+ bool is_serverbuff_modifier = 5;
+ repeated MassivePropSyncInfo massive_prop_list = 6;
+ oneof source {
+ uint32 instanced_ability_id = 1;
+ uint32 instanced_modifier_id = 2;
+ }
+}
diff --git a/proto/AbilityMixinScenePropSync.proto b/proto/AbilityMixinScenePropSync.proto
new file mode 100644
index 00000000..2783b2f1
--- /dev/null
+++ b/proto/AbilityMixinScenePropSync.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MassivePropSyncInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMixinScenePropSync {
+ repeated int64 delete_id_list = 5;
+ bool is_clear_all = 12;
+ repeated MassivePropSyncInfo massive_prop_list = 15;
+}
diff --git a/proto/AbilityMixinShieldBar.proto b/proto/AbilityMixinShieldBar.proto
new file mode 100644
index 00000000..fa52cd00
--- /dev/null
+++ b/proto/AbilityMixinShieldBar.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMixinShieldBar {
+ uint32 Unk2700_PBKBDDLNBEA = 14;
+ float max_shield = 15;
+ float shield = 12;
+ uint32 element_type = 13;
+}
diff --git a/proto/AbilityMixinWidgetMpSupport.proto b/proto/AbilityMixinWidgetMpSupport.proto
new file mode 100644
index 00000000..cad4d853
--- /dev/null
+++ b/proto/AbilityMixinWidgetMpSupport.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMixinWidgetMpSupport {
+ uint32 target_entity_id = 9;
+}
diff --git a/proto/AbilityMixinWindSeedSpawner.proto b/proto/AbilityMixinWindSeedSpawner.proto
new file mode 100644
index 00000000..cab806a0
--- /dev/null
+++ b/proto/AbilityMixinWindSeedSpawner.proto
@@ -0,0 +1,40 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMixinWindSeedSpawner {
+ oneof cmd {
+ AddSignal add_signal = 2;
+ RefreshSeed refresh_seed = 15;
+ CatchSeed catch_seed = 11;
+ }
+
+ message AddSignal {}
+
+ message RefreshSeed {
+ repeated Vector pos_list = 6;
+ }
+
+ message CatchSeed {
+ uint32 entity_id = 8;
+ }
+}
diff --git a/proto/AbilityMixinWindZone.proto b/proto/AbilityMixinWindZone.proto
new file mode 100644
index 00000000..b6a0f073
--- /dev/null
+++ b/proto/AbilityMixinWindZone.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMixinWindZone {
+ repeated uint32 entity_ids = 13;
+ repeated uint32 zone_id_list = 10;
+}
diff --git a/proto/AbilityScalarType.proto b/proto/AbilityScalarType.proto
new file mode 100644
index 00000000..64887344
--- /dev/null
+++ b/proto/AbilityScalarType.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum AbilityScalarType {
+ ABILITY_SCALAR_TYPE_UNKNOW = 0;
+ ABILITY_SCALAR_TYPE_FLOAT = 1;
+ ABILITY_SCALAR_TYPE_INT = 2;
+ ABILITY_SCALAR_TYPE_BOOL = 3;
+ ABILITY_SCALAR_TYPE_TRIGGER = 4;
+ ABILITY_SCALAR_TYPE_STRING = 5;
+ ABILITY_SCALAR_TYPE_UINT = 6;
+}
diff --git a/proto/AbilityScalarValueEntry.proto b/proto/AbilityScalarValueEntry.proto
new file mode 100644
index 00000000..da2278ab
--- /dev/null
+++ b/proto/AbilityScalarValueEntry.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityScalarType.proto";
+import "AbilityString.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityScalarValueEntry {
+ AbilityString key = 1;
+ AbilityScalarType value_type = 2;
+ oneof value {
+ float float_value = 3;
+ string string_value = 4;
+ int32 int_value = 5;
+ uint32 uint_value = 6;
+ }
+}
diff --git a/proto/AbilityString.proto b/proto/AbilityString.proto
new file mode 100644
index 00000000..f3c992a8
--- /dev/null
+++ b/proto/AbilityString.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityString {
+ oneof type {
+ string str = 1;
+ uint32 hash = 2;
+ }
+}
diff --git a/proto/AbilitySyncStateInfo.proto b/proto/AbilitySyncStateInfo.proto
new file mode 100644
index 00000000..d466d690
--- /dev/null
+++ b/proto/AbilitySyncStateInfo.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityAppliedAbility.proto";
+import "AbilityAppliedModifier.proto";
+import "AbilityMixinRecoverInfo.proto";
+import "AbilityScalarValueEntry.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilitySyncStateInfo {
+ bool is_inited = 1;
+ repeated AbilityScalarValueEntry dynamic_value_map = 2;
+ repeated AbilityAppliedAbility applied_abilities = 3;
+ repeated AbilityAppliedModifier applied_modifiers = 4;
+ repeated AbilityMixinRecoverInfo mixin_recover_infos = 5;
+ repeated AbilityScalarValueEntry sgv_dynamic_value_map = 6;
+}
diff --git a/proto/AcceptCityReputationRequestReq.proto b/proto/AcceptCityReputationRequestReq.proto
new file mode 100644
index 00000000..7ead926a
--- /dev/null
+++ b/proto/AcceptCityReputationRequestReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2890
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AcceptCityReputationRequestReq {
+ uint32 city_id = 14;
+ uint32 request_id = 5;
+}
diff --git a/proto/AcceptCityReputationRequestRsp.proto b/proto/AcceptCityReputationRequestRsp.proto
new file mode 100644
index 00000000..1f5e872e
--- /dev/null
+++ b/proto/AcceptCityReputationRequestRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2873
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AcceptCityReputationRequestRsp {
+ uint32 request_id = 5;
+ uint32 city_id = 13;
+ int32 retcode = 2;
+}
diff --git a/proto/Achievement.proto b/proto/Achievement.proto
new file mode 100644
index 00000000..3ee55d48
--- /dev/null
+++ b/proto/Achievement.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Achievement {
+ uint32 finish_timestamp = 11;
+ Status status = 13;
+ uint32 cur_progress = 12;
+ uint32 id = 14;
+ uint32 total_progress = 8;
+
+ enum Status {
+ STATUS_INVALID = 0;
+ STATUS_UNFINISHED = 1;
+ STATUS_FINISHED = 2;
+ STATUS_REWARD_TAKEN = 3;
+ }
+}
diff --git a/proto/AchievementAllDataNotify.proto b/proto/AchievementAllDataNotify.proto
new file mode 100644
index 00000000..11369bfa
--- /dev/null
+++ b/proto/AchievementAllDataNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Achievement.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2676
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AchievementAllDataNotify {
+ repeated Achievement achievement_list = 4;
+ repeated uint32 reward_taken_goal_id_list = 2;
+}
diff --git a/proto/AchievementUpdateNotify.proto b/proto/AchievementUpdateNotify.proto
new file mode 100644
index 00000000..44ca9bd1
--- /dev/null
+++ b/proto/AchievementUpdateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Achievement.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2668
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AchievementUpdateNotify {
+ repeated Achievement achievement_list = 14;
+}
diff --git a/proto/ActivityCoinInfoNotify.proto b/proto/ActivityCoinInfoNotify.proto
new file mode 100644
index 00000000..3dc67ee7
--- /dev/null
+++ b/proto/ActivityCoinInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2008
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ActivityCoinInfoNotify {
+ uint32 schedule_id = 8;
+ uint32 activity_id = 10;
+ map activity_coin_map = 2;
+}
diff --git a/proto/ActivityCondStateChangeNotify.proto b/proto/ActivityCondStateChangeNotify.proto
new file mode 100644
index 00000000..b53ce5a2
--- /dev/null
+++ b/proto/ActivityCondStateChangeNotify.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Uint32Pair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2140
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ActivityCondStateChangeNotify {
+ repeated uint32 activated_sale_id_list = 9;
+ uint32 activity_id = 4;
+ uint32 schedule_id = 5;
+ repeated uint32 expire_cond_list = 11;
+ repeated Uint32Pair disable_transfer_point_interaction_list = 12;
+ repeated uint32 meet_cond_list = 1;
+}
diff --git a/proto/ActivityDisableTransferPointInteractionNotify.proto b/proto/ActivityDisableTransferPointInteractionNotify.proto
new file mode 100644
index 00000000..6620534f
--- /dev/null
+++ b/proto/ActivityDisableTransferPointInteractionNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Uint32Pair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8982
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ActivityDisableTransferPointInteractionNotify {
+ bool is_disable = 10;
+ Uint32Pair scene_point_pair = 5;
+}
diff --git a/proto/ActivityInfo.proto b/proto/ActivityInfo.proto
new file mode 100644
index 00000000..25e5b97d
--- /dev/null
+++ b/proto/ActivityInfo.proto
@@ -0,0 +1,166 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ActivityWatcherInfo.proto";
+import "ArenaChallengeActivityDetailInfo.proto";
+import "AsterActivityDetailInfo.proto";
+import "BartenderActivityDetailInfo.proto";
+import "BlessingActivityDetailInfo.proto";
+import "BlitzRushActivityDetailInfo.proto";
+import "BounceConjuringActivityDetailInfo.proto";
+import "BuoyantCombatDetailInfo.proto";
+import "ChannelerSlabActivityDetailInfo.proto";
+import "ChessActivityDetailInfo.proto";
+import "CrucibleActivityDetailInfo.proto";
+import "CrystalLinkActivityDetailInfo.proto";
+import "DeliveryActivityDetailInfo.proto";
+import "DigActivityDetailInfo.proto";
+import "DragonSpineActivityDetailInfo.proto";
+import "EchoShellDetailInfo.proto";
+import "EffigyActivityDetailInfo.proto";
+import "ExpeditionActivityDetailInfo.proto";
+import "FindHilichurlDetailInfo.proto";
+import "FleurFairActivityDetailInfo.proto";
+import "FlightActivityDetailInfo.proto";
+import "GachaActivityDetailInfo.proto";
+import "GearActivityDetailInfo.proto";
+import "GravenInnocenceDetailInfo.proto";
+import "HachiActivityDetailInfo.proto";
+import "HideAndSeekActivityDetailInfo.proto";
+import "InstableSprayDetailInfo.proto";
+import "IrodoriActivityDetailInfo.proto";
+import "IslandPartyActivityDetailInfo.proto";
+import "LanternRiteActivityDetailInfo.proto";
+import "LuminanceStoneChallengeActivityDetailInfo.proto";
+import "LunaRiteDetailInfo.proto";
+import "MichiaeMatsuriActivityDetailInfo.proto";
+import "MistTrialActivityDetailInfo.proto";
+import "MoonfinTrialActivityDetailInfo.proto";
+import "MuqadasPotionDetailInfo.proto";
+import "MusicGameActivityDetailInfo.proto";
+import "PhotoActivityDetailInfo.proto";
+import "PlantFlowerActivityDetailInfo.proto";
+import "PotionActivityDetailInfo.proto";
+import "RockBoardExploreDetailInfo.proto";
+import "RogueDiaryActivityDetailInfo.proto";
+import "RoguelikeDungeonActivityDetailInfo.proto";
+import "SalesmanActivityDetailInfo.proto";
+import "SeaLampActivityDetailInfo.proto";
+import "SeaLampActivityInfo.proto";
+import "SpiceActivityDetailInfo.proto";
+import "SummerTimeDetailInfo.proto";
+import "SummerTimeV2DetailInfo.proto";
+import "SumoActivityDetailInfo.proto";
+import "TanukiTravelActivityDetailInfo.proto";
+import "TreasureMapActivityDetailInfo.proto";
+import "TreasureSeelieDetailInfo.proto";
+import "TrialAvatarActivityDetailInfo.proto";
+import "UgcActivityDetailInfo.proto";
+import "Unk2800_PHPHMILPOLC.proto";
+import "VintageDetailInfo.proto";
+import "WaterSpiritActivityDetailInfo.proto";
+import "WindFieldDetailInfo.proto";
+import "WinterCampActivityDetailInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ActivityInfo {
+ bool is_play_open_anim = 13;
+ uint32 schedule_id = 15;
+ uint32 cur_score = 1906;
+ bool is_starting = 9;
+ repeated uint32 taken_reward_list = 329;
+ bool Unk2700_NONJFHAIFLA = 102;
+ uint32 selected_avatar_reward_id = 1290;
+ uint32 first_day_start_time = 592;
+ uint32 score_limit = 1958;
+ bool is_finished = 6;
+ bool is_hidden = 919;
+ uint32 begin_time = 8;
+ uint32 end_time = 5;
+ map activity_coin_map = 682;
+ uint32 activity_type = 4;
+ bool Unk2700_EDKLLHBEEGE = 1449;
+ repeated Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 864;
+ repeated uint32 meet_cond_list = 10;
+ map Unk2700_IFPBCNLCKLG = 1399;
+ repeated uint32 expire_cond_list = 3;
+ repeated ActivityWatcherInfo watcher_info_list = 2;
+ uint32 activity_id = 12;
+ oneof detail {
+ SeaLampActivityDetailInfo sam_lamp_info = 7;
+ CrucibleActivityDetailInfo crucible_info = 14;
+ SalesmanActivityDetailInfo salesman_info = 11;
+ TrialAvatarActivityDetailInfo trial_avatar_info = 1;
+ DeliveryActivityDetailInfo delivery_info = 1092;
+ AsterActivityDetailInfo aster_info = 557;
+ FlightActivityDetailInfo flight_info = 1365;
+ DragonSpineActivityDetailInfo dragon_spine_info = 1727;
+ EffigyActivityDetailInfo effigy_info = 391;
+ TreasureMapActivityDetailInfo treasure_map_info = 1114;
+ BlessingActivityDetailInfo blessing_info = 1869;
+ SeaLampActivityInfo sea_lamp_info = 494;
+ ExpeditionActivityDetailInfo expedition_info = 202;
+ ArenaChallengeActivityDetailInfo arena_challenge_info = 859;
+ FleurFairActivityDetailInfo fleur_fair_info = 857;
+ WaterSpiritActivityDetailInfo water_spirit_info = 1675;
+ ChannelerSlabActivityDetailInfo channeler_slab_info = 1015;
+ MistTrialActivityDetailInfo mist_trial_activity_info = 156;
+ HideAndSeekActivityDetailInfo hide_and_seek_info = 427;
+ FindHilichurlDetailInfo find_hilichurl_info = 1411;
+ SummerTimeDetailInfo summer_time_info = 1372;
+ BuoyantCombatDetailInfo buoyant_combat_info = 1842;
+ EchoShellDetailInfo echo_shell_info = 1113;
+ BounceConjuringActivityDetailInfo bounce_conjuring_info = 767;
+ BlitzRushActivityDetailInfo blitz_rush_info = 794;
+ ChessActivityDetailInfo chess_info = 927;
+ SumoActivityDetailInfo sumo_info = 1261;
+ MoonfinTrialActivityDetailInfo moonfin_trial_info = 1588;
+ LunaRiteDetailInfo luna_rite_info = 814;
+ PlantFlowerActivityDetailInfo plant_flower_info = 54;
+ MusicGameActivityDetailInfo music_game_info = 460;
+ RoguelikeDungeonActivityDetailInfo roguelike_dungeon_info = 219;
+ DigActivityDetailInfo dig_info = 403;
+ HachiActivityDetailInfo hachi_info = 491;
+ WinterCampActivityDetailInfo winter_camp_info = 1083;
+ PotionActivityDetailInfo potion_info = 1273;
+ TanukiTravelActivityDetailInfo tanuki_travel_activity_info = 1796;
+ LanternRiteActivityDetailInfo lantern_rite_activity_info = 1876;
+ MichiaeMatsuriActivityDetailInfo michiae_matsuri_info = 194;
+ BartenderActivityDetailInfo bartender_info = 1725;
+ UgcActivityDetailInfo ugc_info = 703;
+ CrystalLinkActivityDetailInfo crystal_link_info = 1226;
+ IrodoriActivityDetailInfo irodori_info = 750;
+ PhotoActivityDetailInfo photo_info = 328;
+ SpiceActivityDetailInfo spice_info = 1891;
+ GachaActivityDetailInfo gacha_info = 825;
+ LuminanceStoneChallengeActivityDetailInfo luminance_stone_challenge_info = 1308;
+ RogueDiaryActivityDetailInfo rogue_diary_info = 812;
+ SummerTimeV2DetailInfo summer_time_v2_info = 622;
+ IslandPartyActivityDetailInfo island_party_info = 1885;
+ GearActivityDetailInfo gear_info = 722;
+ GravenInnocenceDetailInfo graven_innocence_info = 1911;
+ InstableSprayDetailInfo instable_spray_info = 1043;
+ MuqadasPotionDetailInfo muqadas_potion_info = 1157;
+ TreasureSeelieDetailInfo treasure_seelie_info = 966;
+ RockBoardExploreDetailInfo rock_board_explore_info = 1078;
+ VintageDetailInfo vintage_info = 445;
+ WindFieldDetailInfo wind_field_info = 352;
+ }
+}
diff --git a/proto/ActivityInfoNotify.proto b/proto/ActivityInfoNotify.proto
new file mode 100644
index 00000000..e734d1f5
--- /dev/null
+++ b/proto/ActivityInfoNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ActivityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2060
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ActivityInfoNotify {
+ ActivityInfo activity_info = 9;
+}
diff --git a/proto/ActivityPlayOpenAnimNotify.proto b/proto/ActivityPlayOpenAnimNotify.proto
new file mode 100644
index 00000000..239114d3
--- /dev/null
+++ b/proto/ActivityPlayOpenAnimNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2157
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ActivityPlayOpenAnimNotify {
+ uint32 activity_id = 8;
+}
diff --git a/proto/ActivitySaleChangeNotify.proto b/proto/ActivitySaleChangeNotify.proto
new file mode 100644
index 00000000..e1b7bf42
--- /dev/null
+++ b/proto/ActivitySaleChangeNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2071
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ActivitySaleChangeNotify {
+ uint32 sale_id = 5;
+ bool is_close = 1;
+}
diff --git a/proto/ActivityScheduleInfo.proto b/proto/ActivityScheduleInfo.proto
new file mode 100644
index 00000000..3995fa8e
--- /dev/null
+++ b/proto/ActivityScheduleInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ActivityScheduleInfo {
+ uint32 schedule_id = 13;
+ bool is_open = 2;
+ uint32 activity_id = 14;
+ uint32 end_time = 1;
+ uint32 begin_time = 10;
+}
diff --git a/proto/ActivityScheduleInfoNotify.proto b/proto/ActivityScheduleInfoNotify.proto
new file mode 100644
index 00000000..86c571db
--- /dev/null
+++ b/proto/ActivityScheduleInfoNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ActivityScheduleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2073
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ActivityScheduleInfoNotify {
+ repeated ActivityScheduleInfo activity_schedule_list = 12;
+ uint32 remain_fly_sea_lamp_num = 6;
+}
diff --git a/proto/ActivitySelectAvatarCardReq.proto b/proto/ActivitySelectAvatarCardReq.proto
new file mode 100644
index 00000000..56dd5f79
--- /dev/null
+++ b/proto/ActivitySelectAvatarCardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2028
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ActivitySelectAvatarCardReq {
+ uint32 activity_id = 15;
+ uint32 reward_id = 10;
+}
diff --git a/proto/ActivitySelectAvatarCardRsp.proto b/proto/ActivitySelectAvatarCardRsp.proto
new file mode 100644
index 00000000..3a1bf680
--- /dev/null
+++ b/proto/ActivitySelectAvatarCardRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2189
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ActivitySelectAvatarCardRsp {
+ uint32 activity_id = 4;
+ int32 retcode = 3;
+ uint32 reward_id = 9;
+}
diff --git a/proto/ActivityShopSheetInfo.proto b/proto/ActivityShopSheetInfo.proto
new file mode 100644
index 00000000..5e0b47f3
--- /dev/null
+++ b/proto/ActivityShopSheetInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ActivityShopSheetInfo {
+ uint32 end_time = 1;
+ uint32 begin_time = 12;
+ uint32 sheet_id = 2;
+}
diff --git a/proto/ActivityTakeAllScoreRewardReq.proto b/proto/ActivityTakeAllScoreRewardReq.proto
new file mode 100644
index 00000000..a1d8baa3
--- /dev/null
+++ b/proto/ActivityTakeAllScoreRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8372
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ActivityTakeAllScoreRewardReq {
+ uint32 activity_id = 9;
+}
diff --git a/proto/ActivityTakeAllScoreRewardRsp.proto b/proto/ActivityTakeAllScoreRewardRsp.proto
new file mode 100644
index 00000000..0c4f889c
--- /dev/null
+++ b/proto/ActivityTakeAllScoreRewardRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8043
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ActivityTakeAllScoreRewardRsp {
+ repeated uint32 reward_config_list = 14;
+ int32 retcode = 15;
+ uint32 activity_id = 7;
+}
diff --git a/proto/ActivityTakeScoreRewardReq.proto b/proto/ActivityTakeScoreRewardReq.proto
new file mode 100644
index 00000000..0bb38326
--- /dev/null
+++ b/proto/ActivityTakeScoreRewardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8971
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ActivityTakeScoreRewardReq {
+ uint32 reward_config_id = 12;
+ uint32 activity_id = 9;
+}
diff --git a/proto/ActivityTakeScoreRewardRsp.proto b/proto/ActivityTakeScoreRewardRsp.proto
new file mode 100644
index 00000000..bb0a705a
--- /dev/null
+++ b/proto/ActivityTakeScoreRewardRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8583
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ActivityTakeScoreRewardRsp {
+ uint32 activity_id = 13;
+ int32 retcode = 9;
+ uint32 reward_config_id = 15;
+}
diff --git a/proto/ActivityTakeWatcherRewardBatchReq.proto b/proto/ActivityTakeWatcherRewardBatchReq.proto
new file mode 100644
index 00000000..708363e6
--- /dev/null
+++ b/proto/ActivityTakeWatcherRewardBatchReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2159
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ActivityTakeWatcherRewardBatchReq {
+ repeated uint32 watcher_id_list = 11;
+ uint32 activity_id = 3;
+}
diff --git a/proto/ActivityTakeWatcherRewardBatchRsp.proto b/proto/ActivityTakeWatcherRewardBatchRsp.proto
new file mode 100644
index 00000000..9cfc8d7a
--- /dev/null
+++ b/proto/ActivityTakeWatcherRewardBatchRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2109
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ActivityTakeWatcherRewardBatchRsp {
+ repeated uint32 watcher_id_list = 6;
+ int32 retcode = 15;
+ uint32 activity_id = 7;
+ repeated ItemParam item_list = 1;
+}
diff --git a/proto/ActivityTakeWatcherRewardReq.proto b/proto/ActivityTakeWatcherRewardReq.proto
new file mode 100644
index 00000000..96b4a735
--- /dev/null
+++ b/proto/ActivityTakeWatcherRewardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2038
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ActivityTakeWatcherRewardReq {
+ uint32 activity_id = 4;
+ uint32 watcher_id = 14;
+}
diff --git a/proto/ActivityTakeWatcherRewardRsp.proto b/proto/ActivityTakeWatcherRewardRsp.proto
new file mode 100644
index 00000000..4f589719
--- /dev/null
+++ b/proto/ActivityTakeWatcherRewardRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2034
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ActivityTakeWatcherRewardRsp {
+ uint32 activity_id = 14;
+ uint32 watcher_id = 7;
+ int32 retcode = 9;
+}
diff --git a/proto/ActivityUpdateWatcherNotify.proto b/proto/ActivityUpdateWatcherNotify.proto
new file mode 100644
index 00000000..99261d90
--- /dev/null
+++ b/proto/ActivityUpdateWatcherNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ActivityWatcherInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2156
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ActivityUpdateWatcherNotify {
+ ActivityWatcherInfo watcher_info = 2;
+ uint32 activity_id = 1;
+}
diff --git a/proto/ActivityWatcherInfo.proto b/proto/ActivityWatcherInfo.proto
new file mode 100644
index 00000000..80a8956a
--- /dev/null
+++ b/proto/ActivityWatcherInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ActivityWatcherInfo {
+ bool is_taken_reward = 8;
+ uint32 cur_progress = 2;
+ uint32 total_progress = 4;
+ uint32 watcher_id = 5;
+}
diff --git a/proto/AddBlacklistReq.proto b/proto/AddBlacklistReq.proto
new file mode 100644
index 00000000..4c4aa376
--- /dev/null
+++ b/proto/AddBlacklistReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4088
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AddBlacklistReq {
+ uint32 target_uid = 2;
+}
diff --git a/proto/AddBlacklistRsp.proto b/proto/AddBlacklistRsp.proto
new file mode 100644
index 00000000..547805c6
--- /dev/null
+++ b/proto/AddBlacklistRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FriendBrief.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4026
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AddBlacklistRsp {
+ FriendBrief target_friend_brief = 13;
+ int32 retcode = 7;
+}
diff --git a/proto/AddFriendNotify.proto b/proto/AddFriendNotify.proto
new file mode 100644
index 00000000..8ee6f89d
--- /dev/null
+++ b/proto/AddFriendNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FriendBrief.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4022
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AddFriendNotify {
+ uint32 target_uid = 11;
+ FriendBrief target_friend_brief = 10;
+}
diff --git a/proto/AddNoGachaAvatarCardNotify.proto b/proto/AddNoGachaAvatarCardNotify.proto
new file mode 100644
index 00000000..37146cb4
--- /dev/null
+++ b/proto/AddNoGachaAvatarCardNotify.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AddNoGachaAvatarCardTransferItem.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1655
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AddNoGachaAvatarCardNotify {
+ repeated AddNoGachaAvatarCardTransferItem transfer_item_list = 4;
+ uint32 initial_promote_level = 2;
+ uint32 avatar_id = 8;
+ bool is_transfer_to_item = 6;
+ uint32 reason = 9;
+ uint32 initial_level = 10;
+ uint32 item_id = 14;
+}
diff --git a/proto/AddNoGachaAvatarCardTransferItem.proto b/proto/AddNoGachaAvatarCardTransferItem.proto
new file mode 100644
index 00000000..fcff4bcb
--- /dev/null
+++ b/proto/AddNoGachaAvatarCardTransferItem.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AddNoGachaAvatarCardTransferItem {
+ uint32 count = 9;
+ uint32 item_id = 6;
+ bool is_new = 15;
+}
diff --git a/proto/AddQuestContentProgressReq.proto b/proto/AddQuestContentProgressReq.proto
new file mode 100644
index 00000000..6822e17f
--- /dev/null
+++ b/proto/AddQuestContentProgressReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 421
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AddQuestContentProgressReq {
+ uint32 content_type = 6;
+ uint32 param = 12;
+ uint32 add_progress = 15;
+}
diff --git a/proto/AddQuestContentProgressRsp.proto b/proto/AddQuestContentProgressRsp.proto
new file mode 100644
index 00000000..7988200b
--- /dev/null
+++ b/proto/AddQuestContentProgressRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 403
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AddQuestContentProgressRsp {
+ int32 retcode = 13;
+ uint32 content_type = 4;
+}
diff --git a/proto/AddRandTaskInfoNotify.proto b/proto/AddRandTaskInfoNotify.proto
new file mode 100644
index 00000000..5433c15e
--- /dev/null
+++ b/proto/AddRandTaskInfoNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 119
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AddRandTaskInfoNotify {
+ uint32 rand_task_id = 5;
+ Vector pos = 13;
+}
diff --git a/proto/AddSeenMonsterNotify.proto b/proto/AddSeenMonsterNotify.proto
new file mode 100644
index 00000000..748d26fd
--- /dev/null
+++ b/proto/AddSeenMonsterNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 223
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AddSeenMonsterNotify {
+ repeated uint32 monster_id_list = 12;
+}
diff --git a/proto/AdjustTrackingInfo.proto b/proto/AdjustTrackingInfo.proto
new file mode 100644
index 00000000..eeb89293
--- /dev/null
+++ b/proto/AdjustTrackingInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AdjustTrackingInfo {
+ string event_token = 9;
+ string adid = 4;
+ string idfa = 2;
+ string app_token = 14;
+ string gps_adid = 3;
+ string fire_adid = 13;
+}
diff --git a/proto/AdjustWorldLevelReq.proto b/proto/AdjustWorldLevelReq.proto
new file mode 100644
index 00000000..838fc79a
--- /dev/null
+++ b/proto/AdjustWorldLevelReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 164
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AdjustWorldLevelReq {
+ uint32 expect_world_level = 8;
+ uint32 cur_world_level = 9;
+}
diff --git a/proto/AdjustWorldLevelRsp.proto b/proto/AdjustWorldLevelRsp.proto
new file mode 100644
index 00000000..21ae7f47
--- /dev/null
+++ b/proto/AdjustWorldLevelRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 138
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AdjustWorldLevelRsp {
+ int32 retcode = 13;
+ uint32 cd_over_time = 15;
+ uint32 after_world_level = 14;
+}
diff --git a/proto/AiSkillCdInfo.proto b/proto/AiSkillCdInfo.proto
new file mode 100644
index 00000000..ed52329f
--- /dev/null
+++ b/proto/AiSkillCdInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AiSkillCdInfo {
+ map skill_cd_map = 11;
+ map skill_group_cd_map = 6;
+}
diff --git a/proto/AiSyncInfo.proto b/proto/AiSyncInfo.proto
new file mode 100644
index 00000000..bdcc628b
--- /dev/null
+++ b/proto/AiSyncInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AiSyncInfo {
+ uint32 entity_id = 9;
+ bool is_self_killing = 8;
+ bool has_path_to_target = 4;
+}
diff --git a/proto/AiThreatInfo.proto b/proto/AiThreatInfo.proto
new file mode 100644
index 00000000..2c4bbb05
--- /dev/null
+++ b/proto/AiThreatInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AiThreatInfo {
+ map ai_threat_map = 11;
+}
diff --git a/proto/AllCoopInfoNotify.proto b/proto/AllCoopInfoNotify.proto
new file mode 100644
index 00000000..444b0458
--- /dev/null
+++ b/proto/AllCoopInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MainCoop.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1976
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AllCoopInfoNotify {
+ repeated MainCoop main_coop_list = 14;
+}
diff --git a/proto/AllMarkPointNotify.proto b/proto/AllMarkPointNotify.proto
new file mode 100644
index 00000000..2f2aff40
--- /dev/null
+++ b/proto/AllMarkPointNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MapMarkPoint.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3283
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AllMarkPointNotify {
+ repeated MapMarkPoint mark_list = 7;
+}
diff --git a/proto/AllSeenMonsterNotify.proto b/proto/AllSeenMonsterNotify.proto
new file mode 100644
index 00000000..f63ad4ce
--- /dev/null
+++ b/proto/AllSeenMonsterNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 271
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AllSeenMonsterNotify {
+ repeated uint32 monster_id_list = 4;
+}
diff --git a/proto/AllWidgetDataNotify.proto b/proto/AllWidgetDataNotify.proto
new file mode 100644
index 00000000..abebfcba
--- /dev/null
+++ b/proto/AllWidgetDataNotify.proto
@@ -0,0 +1,44 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AnchorPointData.proto";
+import "ClientCollectorData.proto";
+import "LunchBoxData.proto";
+import "OneofGatherPointDetectorData.proto";
+import "Unk2700_CCEOEOHLAPK.proto";
+import "WidgetCoolDownData.proto";
+import "WidgetSlotData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4271
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AllWidgetDataNotify {
+ repeated uint32 Unk3000_CNNFGFBBBFP = 11;
+ LunchBoxData lunch_box_data = 1;
+ repeated WidgetCoolDownData cool_down_group_data_list = 13;
+ repeated AnchorPointData anchor_point_list = 3;
+ repeated WidgetSlotData slot_list = 6;
+ uint32 next_anchor_point_usable_time = 10;
+ repeated ClientCollectorData client_collector_data_list = 4;
+ repeated OneofGatherPointDetectorData oneof_gather_point_detector_data_list = 15;
+ repeated WidgetCoolDownData normal_cool_down_data_list = 9;
+ Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 12;
+}
diff --git a/proto/AnchorPointData.proto b/proto/AnchorPointData.proto
new file mode 100644
index 00000000..582388be
--- /dev/null
+++ b/proto/AnchorPointData.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AnchorPointData {
+ uint32 scene_id = 5;
+ uint32 anchor_point_id = 9;
+ uint32 end_time = 8;
+ Vector pos = 15;
+ Vector rot = 2;
+}
diff --git a/proto/AnchorPointDataNotify.proto b/proto/AnchorPointDataNotify.proto
new file mode 100644
index 00000000..456cee5e
--- /dev/null
+++ b/proto/AnchorPointDataNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AnchorPointData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4276
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AnchorPointDataNotify {
+ repeated AnchorPointData anchor_point_list = 10;
+ uint32 next_usable_time = 14;
+}
diff --git a/proto/AnchorPointOpReq.proto b/proto/AnchorPointOpReq.proto
new file mode 100644
index 00000000..afb3fc85
--- /dev/null
+++ b/proto/AnchorPointOpReq.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4257
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AnchorPointOpReq {
+ uint32 anchor_point_id = 9;
+ uint32 anchor_point_op_type = 12;
+
+ enum AnchorPointOpType {
+ ANCHOR_POINT_OP_TYPE_NONE = 0;
+ ANCHOR_POINT_OP_TYPE_TELEPORT = 1;
+ ANCHOR_POINT_OP_TYPE_REMOVE = 2;
+ }
+}
diff --git a/proto/AnchorPointOpRsp.proto b/proto/AnchorPointOpRsp.proto
new file mode 100644
index 00000000..d04cfc28
--- /dev/null
+++ b/proto/AnchorPointOpRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4252
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AnchorPointOpRsp {
+ int32 retcode = 5;
+ uint32 anchor_point_id = 12;
+ uint32 anchor_point_op_type = 4;
+}
diff --git a/proto/AnimatorForceSetAirMoveNotify.proto b/proto/AnimatorForceSetAirMoveNotify.proto
new file mode 100644
index 00000000..822990bb
--- /dev/null
+++ b/proto/AnimatorForceSetAirMoveNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForwardType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 374
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AnimatorForceSetAirMoveNotify {
+ uint32 entity_id = 14;
+ bool in_air_move = 13;
+ ForwardType forward_type = 9;
+}
diff --git a/proto/AnimatorParameterValueInfo.proto b/proto/AnimatorParameterValueInfo.proto
new file mode 100644
index 00000000..8b7f961e
--- /dev/null
+++ b/proto/AnimatorParameterValueInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AnimatorParameterValueInfo {
+ uint32 para_type = 1;
+ oneof para_val {
+ int32 int_val = 2;
+ float float_val = 3;
+ bool bool_val = 4;
+ }
+}
diff --git a/proto/AnimatorParameterValueInfoPair.proto b/proto/AnimatorParameterValueInfoPair.proto
new file mode 100644
index 00000000..8195e095
--- /dev/null
+++ b/proto/AnimatorParameterValueInfoPair.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AnimatorParameterValueInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AnimatorParameterValueInfoPair {
+ int32 name_id = 1;
+ AnimatorParameterValueInfo animator_para = 2;
+}
diff --git a/proto/AnnounceData.proto b/proto/AnnounceData.proto
new file mode 100644
index 00000000..c6baf8b4
--- /dev/null
+++ b/proto/AnnounceData.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AnnounceData {
+ string count_down_text = 9;
+ string center_system_text = 8;
+ uint32 count_down_frequency = 1;
+ uint32 config_id = 7;
+ uint32 begin_time = 4;
+ uint32 center_system_frequency = 11;
+ string dungeon_confirm_text = 2;
+ bool is_center_system_last5_every_minutes = 14;
+ uint32 end_time = 10;
+}
diff --git a/proto/AntiAddictNotify.proto b/proto/AntiAddictNotify.proto
new file mode 100644
index 00000000..aa71dbc6
--- /dev/null
+++ b/proto/AntiAddictNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 180
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AntiAddictNotify {
+ int32 msg_type = 6;
+ string msg = 3;
+ string level = 5;
+}
diff --git a/proto/ArenaChallengeActivityDetailInfo.proto b/proto/ArenaChallengeActivityDetailInfo.proto
new file mode 100644
index 00000000..48474370
--- /dev/null
+++ b/proto/ArenaChallengeActivityDetailInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ArenaChallengeMonsterLevel.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ArenaChallengeActivityDetailInfo {
+ bool Unk2800_GNKHCICOIMC = 14;
+ map level_open_time_map = 3;
+ uint32 world_level = 15;
+ repeated ArenaChallengeMonsterLevel level_list = 9;
+}
diff --git a/proto/ArenaChallengeChildChallengeInfo.proto b/proto/ArenaChallengeChildChallengeInfo.proto
new file mode 100644
index 00000000..98b06eec
--- /dev/null
+++ b/proto/ArenaChallengeChildChallengeInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ArenaChallengeChildChallengeInfo {
+ uint32 challenge_id = 12;
+ uint32 challenge_type = 5;
+ uint32 challenge_index = 4;
+ bool is_success = 7;
+ bool is_settled = 11;
+}
diff --git a/proto/ArenaChallengeFinishNotify.proto b/proto/ArenaChallengeFinishNotify.proto
new file mode 100644
index 00000000..dd13590d
--- /dev/null
+++ b/proto/ArenaChallengeFinishNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ArenaChallengeChildChallengeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2030
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ArenaChallengeFinishNotify {
+ uint32 arena_challenge_level = 13;
+ uint32 arena_challenge_id = 3;
+ repeated ArenaChallengeChildChallengeInfo child_challenge_list = 2;
+ bool is_success = 12;
+}
diff --git a/proto/ArenaChallengeMonsterLevel.proto b/proto/ArenaChallengeMonsterLevel.proto
new file mode 100644
index 00000000..91f646a6
--- /dev/null
+++ b/proto/ArenaChallengeMonsterLevel.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ArenaChallengeMonsterLevel {
+ uint32 arena_challenge_level = 7;
+ uint32 arena_challenge_id = 15;
+}
diff --git a/proto/AskAddFriendNotify.proto b/proto/AskAddFriendNotify.proto
new file mode 100644
index 00000000..7ef63d57
--- /dev/null
+++ b/proto/AskAddFriendNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FriendBrief.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4065
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AskAddFriendNotify {
+ FriendBrief target_friend_brief = 15;
+ uint32 target_uid = 9;
+}
diff --git a/proto/AskAddFriendReq.proto b/proto/AskAddFriendReq.proto
new file mode 100644
index 00000000..07bcd42b
--- /dev/null
+++ b/proto/AskAddFriendReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4007
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AskAddFriendReq {
+ uint32 target_uid = 7;
+}
diff --git a/proto/AskAddFriendRsp.proto b/proto/AskAddFriendRsp.proto
new file mode 100644
index 00000000..6f5a34f2
--- /dev/null
+++ b/proto/AskAddFriendRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4021
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AskAddFriendRsp {
+ uint32 param = 8;
+ int32 retcode = 7;
+ uint32 target_uid = 4;
+}
diff --git a/proto/AsterActivityDetailInfo.proto b/proto/AsterActivityDetailInfo.proto
new file mode 100644
index 00000000..cbb2d05b
--- /dev/null
+++ b/proto/AsterActivityDetailInfo.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AsterLargeDetailInfo.proto";
+import "AsterLittleDetailInfo.proto";
+import "AsterMidDetailInfo.proto";
+import "AsterProgressDetailInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AsterActivityDetailInfo {
+ AsterLittleDetailInfo aster_little = 7;
+ uint32 aster_credit = 14;
+ AsterLargeDetailInfo aster_large = 9;
+ bool is_special_reward_taken = 1;
+ bool is_content_closed = 13;
+ uint32 content_close_time = 8;
+ uint32 aster_token = 5;
+ AsterMidDetailInfo aster_mid = 6;
+ AsterProgressDetailInfo aster_progress = 2;
+}
diff --git a/proto/AsterLargeDetailInfo.proto b/proto/AsterLargeDetailInfo.proto
new file mode 100644
index 00000000..9de30247
--- /dev/null
+++ b/proto/AsterLargeDetailInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AsterLargeDetailInfo {
+ bool is_open = 3;
+ uint32 begin_time = 13;
+}
diff --git a/proto/AsterLargeInfoNotify.proto b/proto/AsterLargeInfoNotify.proto
new file mode 100644
index 00000000..05b34b4c
--- /dev/null
+++ b/proto/AsterLargeInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AsterLargeDetailInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2146
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AsterLargeInfoNotify {
+ AsterLargeDetailInfo info = 10;
+}
diff --git a/proto/AsterLittleDetailInfo.proto b/proto/AsterLittleDetailInfo.proto
new file mode 100644
index 00000000..82f3ef9e
--- /dev/null
+++ b/proto/AsterLittleDetailInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AsterLittleStageState.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AsterLittleDetailInfo {
+ bool is_open = 4;
+ AsterLittleStageState stage_state = 7;
+ uint32 stage_id = 1;
+ uint32 begin_time = 6;
+ uint32 stage_begin_time = 5;
+}
diff --git a/proto/AsterLittleInfoNotify.proto b/proto/AsterLittleInfoNotify.proto
new file mode 100644
index 00000000..d4121508
--- /dev/null
+++ b/proto/AsterLittleInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AsterLittleDetailInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2068
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AsterLittleInfoNotify {
+ AsterLittleDetailInfo info = 1;
+}
diff --git a/proto/AsterLittleStageState.proto b/proto/AsterLittleStageState.proto
new file mode 100644
index 00000000..868b33ae
--- /dev/null
+++ b/proto/AsterLittleStageState.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum AsterLittleStageState {
+ ASTER_LITTLE_STAGE_STATE_NONE = 0;
+ ASTER_LITTLE_STAGE_STATE_UNSTARTED = 1;
+ ASTER_LITTLE_STAGE_STATE_STARTED = 2;
+ ASTER_LITTLE_STAGE_STATE_FINISHED = 3;
+}
diff --git a/proto/AsterMidCampInfo.proto b/proto/AsterMidCampInfo.proto
new file mode 100644
index 00000000..5023842d
--- /dev/null
+++ b/proto/AsterMidCampInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AsterMidCampInfo {
+ Vector pos = 3;
+ uint32 camp_id = 8;
+}
diff --git a/proto/AsterMidCampInfoNotify.proto b/proto/AsterMidCampInfoNotify.proto
new file mode 100644
index 00000000..86c590fd
--- /dev/null
+++ b/proto/AsterMidCampInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AsterMidCampInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2133
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AsterMidCampInfoNotify {
+ repeated AsterMidCampInfo camp_list = 5;
+}
diff --git a/proto/AsterMidDetailInfo.proto b/proto/AsterMidDetailInfo.proto
new file mode 100644
index 00000000..8d2eaa2e
--- /dev/null
+++ b/proto/AsterMidDetailInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AsterMidCampInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AsterMidDetailInfo {
+ uint32 begin_time = 10;
+ repeated AsterMidCampInfo camp_list = 7;
+ bool is_open = 4;
+ uint32 collect_count = 11;
+}
diff --git a/proto/AsterMidInfoNotify.proto b/proto/AsterMidInfoNotify.proto
new file mode 100644
index 00000000..c5b172c3
--- /dev/null
+++ b/proto/AsterMidInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AsterMidDetailInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2031
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AsterMidInfoNotify {
+ AsterMidDetailInfo info = 4;
+}
diff --git a/proto/AsterMiscInfoNotify.proto b/proto/AsterMiscInfoNotify.proto
new file mode 100644
index 00000000..ed043053
--- /dev/null
+++ b/proto/AsterMiscInfoNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2036
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AsterMiscInfoNotify {
+ uint32 aster_token = 2;
+ uint32 aster_credit = 15;
+}
diff --git a/proto/AsterProgressDetailInfo.proto b/proto/AsterProgressDetailInfo.proto
new file mode 100644
index 00000000..fe68c323
--- /dev/null
+++ b/proto/AsterProgressDetailInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AsterProgressDetailInfo {
+ uint32 last_auto_add_time = 3;
+ uint32 count = 1;
+}
diff --git a/proto/AsterProgressInfoNotify.proto b/proto/AsterProgressInfoNotify.proto
new file mode 100644
index 00000000..946aa6bb
--- /dev/null
+++ b/proto/AsterProgressInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AsterProgressDetailInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2016
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AsterProgressInfoNotify {
+ AsterProgressDetailInfo info = 1;
+}
diff --git a/proto/AttackHitEffectResult.proto b/proto/AttackHitEffectResult.proto
new file mode 100644
index 00000000..d01331a7
--- /dev/null
+++ b/proto/AttackHitEffectResult.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AttackHitEffectResult {
+ float hit_halt_time_scale = 8;
+ uint32 original_hit_eff_level = 12;
+ float air_strength = 15;
+ uint32 hit_eff_level = 2;
+ float hit_halt_time = 13;
+ float retreat_strength = 7;
+}
diff --git a/proto/AttackResult.proto b/proto/AttackResult.proto
new file mode 100644
index 00000000..c80da65c
--- /dev/null
+++ b/proto/AttackResult.proto
@@ -0,0 +1,58 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityIdentifier.proto";
+import "AttackHitEffectResult.proto";
+import "HitCollision.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AttackResult {
+ bool is_resist_text = 1858;
+ uint32 Unk2700_GBANCFEPPIM = 1011;
+ uint32 amplify_reaction_type = 2005;
+ uint32 endure_break = 7;
+ uint32 element_type = 5;
+ float element_durability_attenuation = 425;
+ uint32 defense_id = 15;
+ uint32 attack_timestamp_ms = 1188;
+ uint32 bullet_fly_time_ms = 91;
+ bool is_crit = 13;
+ float element_amplify_rate = 900;
+ uint32 attack_count = 1564;
+ uint32 critical_rand = 1664;
+ uint32 hit_pos_type = 2;
+ string anim_event_id = 4;
+ AttackHitEffectResult hit_eff_result = 8;
+ float damage_shield = 1202;
+ float endure_delta = 430;
+ Vector resolved_dir = 1;
+ float damage = 6;
+ uint32 addhurt_reaction_type = 1887;
+ uint32 hashed_anim_event_id = 278;
+ bool use_gadget_damage_action = 1418;
+ int32 hit_retreat_angle_compat = 9;
+ AbilityIdentifier ability_identifier = 14;
+ uint32 attacker_id = 11;
+ bool mute_element_hurt = 1530;
+ uint32 target_type = 1366;
+ HitCollision hit_collision = 10;
+ uint32 gadget_damage_action_idx = 1110;
+}
diff --git a/proto/AuthorityChange.proto b/proto/AuthorityChange.proto
new file mode 100644
index 00000000..25352eb2
--- /dev/null
+++ b/proto/AuthorityChange.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EntityAuthorityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AuthorityChange {
+ EntityAuthorityInfo entity_authority_info = 5;
+ uint32 authority_peer_id = 3;
+ uint32 entity_id = 13;
+}
diff --git a/proto/AvatarAddNotify.proto b/proto/AvatarAddNotify.proto
new file mode 100644
index 00000000..85905466
--- /dev/null
+++ b/proto/AvatarAddNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1769
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarAddNotify {
+ AvatarInfo avatar = 13;
+ bool is_in_team = 12;
+}
diff --git a/proto/AvatarBuffAddNotify.proto b/proto/AvatarBuffAddNotify.proto
new file mode 100644
index 00000000..a71581b6
--- /dev/null
+++ b/proto/AvatarBuffAddNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 388
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarBuffAddNotify {
+ uint64 avatar_guid = 10;
+ uint32 buff_id = 6;
+}
diff --git a/proto/AvatarBuffDelNotify.proto b/proto/AvatarBuffDelNotify.proto
new file mode 100644
index 00000000..ebc6fb6e
--- /dev/null
+++ b/proto/AvatarBuffDelNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 326
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarBuffDelNotify {
+ uint64 avatar_guid = 10;
+ uint32 buff_id = 12;
+}
diff --git a/proto/AvatarCardChangeReq.proto b/proto/AvatarCardChangeReq.proto
new file mode 100644
index 00000000..78603af5
--- /dev/null
+++ b/proto/AvatarCardChangeReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 688
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarCardChangeReq {
+ uint32 item_id = 6;
+ uint64 avatar_guid = 14;
+ uint32 count = 7;
+}
diff --git a/proto/AvatarCardChangeRsp.proto b/proto/AvatarCardChangeRsp.proto
new file mode 100644
index 00000000..d75eb2fb
--- /dev/null
+++ b/proto/AvatarCardChangeRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 626
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarCardChangeRsp {
+ int32 retcode = 1;
+}
diff --git a/proto/AvatarChangeAnimHashReq.proto b/proto/AvatarChangeAnimHashReq.proto
new file mode 100644
index 00000000..054b69b1
--- /dev/null
+++ b/proto/AvatarChangeAnimHashReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1711
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarChangeAnimHashReq {
+ uint32 anim_hash = 6;
+ uint64 avatar_guid = 3;
+}
diff --git a/proto/AvatarChangeAnimHashRsp.proto b/proto/AvatarChangeAnimHashRsp.proto
new file mode 100644
index 00000000..e2f205b2
--- /dev/null
+++ b/proto/AvatarChangeAnimHashRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1647
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarChangeAnimHashRsp {
+ uint32 anim_hash = 13;
+ int32 retcode = 5;
+ uint64 avatar_guid = 10;
+}
diff --git a/proto/AvatarChangeCostumeNotify.proto b/proto/AvatarChangeCostumeNotify.proto
new file mode 100644
index 00000000..dcc7780b
--- /dev/null
+++ b/proto/AvatarChangeCostumeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SceneEntityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1644
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarChangeCostumeNotify {
+ SceneEntityInfo entity_info = 7;
+}
diff --git a/proto/AvatarChangeCostumeReq.proto b/proto/AvatarChangeCostumeReq.proto
new file mode 100644
index 00000000..bb3ab1df
--- /dev/null
+++ b/proto/AvatarChangeCostumeReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1778
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarChangeCostumeReq {
+ uint32 costume_id = 4;
+ uint64 avatar_guid = 2;
+}
diff --git a/proto/AvatarChangeCostumeRsp.proto b/proto/AvatarChangeCostumeRsp.proto
new file mode 100644
index 00000000..9b16c342
--- /dev/null
+++ b/proto/AvatarChangeCostumeRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1645
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarChangeCostumeRsp {
+ uint64 avatar_guid = 12;
+ int32 retcode = 7;
+ uint32 costume_id = 13;
+}
diff --git a/proto/AvatarChangeElementTypeReq.proto b/proto/AvatarChangeElementTypeReq.proto
new file mode 100644
index 00000000..704c5d30
--- /dev/null
+++ b/proto/AvatarChangeElementTypeReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1785
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarChangeElementTypeReq {
+ uint32 scene_id = 7;
+ uint32 area_id = 3;
+}
diff --git a/proto/AvatarChangeElementTypeRsp.proto b/proto/AvatarChangeElementTypeRsp.proto
new file mode 100644
index 00000000..1bde1657
--- /dev/null
+++ b/proto/AvatarChangeElementTypeRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1651
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarChangeElementTypeRsp {
+ int32 retcode = 13;
+}
diff --git a/proto/AvatarDataNotify.proto b/proto/AvatarDataNotify.proto
new file mode 100644
index 00000000..9e5bb81e
--- /dev/null
+++ b/proto/AvatarDataNotify.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarInfo.proto";
+import "AvatarTeam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1633
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarDataNotify {
+ repeated uint32 owned_costume_list = 11;
+ uint64 choose_avatar_guid = 8;
+ map avatar_team_map = 7;
+ repeated uint32 Unk3000_NIGPICLBHMA = 9;
+ repeated uint64 temp_avatar_guid_list = 12;
+ repeated uint32 owned_flycloak_list = 1;
+ repeated AvatarInfo avatar_list = 6;
+ uint32 cur_avatar_team_id = 2;
+}
diff --git a/proto/AvatarDelNotify.proto b/proto/AvatarDelNotify.proto
new file mode 100644
index 00000000..4b303ab1
--- /dev/null
+++ b/proto/AvatarDelNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1773
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarDelNotify {
+ repeated uint64 avatar_guid_list = 13;
+}
diff --git a/proto/AvatarDieAnimationEndReq.proto b/proto/AvatarDieAnimationEndReq.proto
new file mode 100644
index 00000000..d1ee2606
--- /dev/null
+++ b/proto/AvatarDieAnimationEndReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1610
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarDieAnimationEndReq {
+ Vector reborn_pos = 3;
+ uint64 die_guid = 7;
+ uint32 skill_id = 8;
+}
diff --git a/proto/AvatarDieAnimationEndRsp.proto b/proto/AvatarDieAnimationEndRsp.proto
new file mode 100644
index 00000000..49ab3d51
--- /dev/null
+++ b/proto/AvatarDieAnimationEndRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1694
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarDieAnimationEndRsp {
+ uint32 skill_id = 13;
+ int32 retcode = 14;
+ uint64 die_guid = 15;
+}
diff --git a/proto/AvatarEnterElementViewNotify.proto b/proto/AvatarEnterElementViewNotify.proto
new file mode 100644
index 00000000..b4694e03
--- /dev/null
+++ b/proto/AvatarEnterElementViewNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 334
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarEnterElementViewNotify {
+ bool is_triggerd = 3;
+ uint32 avatar_entity_id = 12;
+}
diff --git a/proto/AvatarEnterSceneInfo.proto b/proto/AvatarEnterSceneInfo.proto
new file mode 100644
index 00000000..2f53e6c4
--- /dev/null
+++ b/proto/AvatarEnterSceneInfo.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilitySyncStateInfo.proto";
+import "ServerBuff.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AvatarEnterSceneInfo {
+ repeated ServerBuff server_buff_list = 14;
+ uint32 avatar_entity_id = 7;
+ AbilitySyncStateInfo weapon_ability_info = 12;
+ uint32 weapon_entity_id = 10;
+ AbilitySyncStateInfo avatar_ability_info = 2;
+ uint64 avatar_guid = 13;
+ uint64 weapon_guid = 9;
+ repeated uint32 buff_id_list = 5;
+}
diff --git a/proto/AvatarEquipAffixInfo.proto b/proto/AvatarEquipAffixInfo.proto
new file mode 100644
index 00000000..8919d88d
--- /dev/null
+++ b/proto/AvatarEquipAffixInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AvatarEquipAffixInfo {
+ uint32 equip_affix_id = 1;
+ uint32 left_cd_time = 2;
+}
diff --git a/proto/AvatarEquipAffixStartNotify.proto b/proto/AvatarEquipAffixStartNotify.proto
new file mode 100644
index 00000000..9c193894
--- /dev/null
+++ b/proto/AvatarEquipAffixStartNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarEquipAffixInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1662
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarEquipAffixStartNotify {
+ uint64 avatar_guid = 4;
+ AvatarEquipAffixInfo equip_affix_info = 12;
+}
diff --git a/proto/AvatarEquipChangeNotify.proto b/proto/AvatarEquipChangeNotify.proto
new file mode 100644
index 00000000..0da6a96e
--- /dev/null
+++ b/proto/AvatarEquipChangeNotify.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SceneReliquaryInfo.proto";
+import "SceneWeaponInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 647
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarEquipChangeNotify {
+ uint64 avatar_guid = 10;
+ uint64 equip_guid = 13;
+ SceneReliquaryInfo reliquary = 1;
+ SceneWeaponInfo weapon = 15;
+ uint32 item_id = 14;
+ uint32 equip_type = 8;
+}
diff --git a/proto/AvatarExcelInfo.proto b/proto/AvatarExcelInfo.proto
new file mode 100644
index 00000000..65a541f8
--- /dev/null
+++ b/proto/AvatarExcelInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AvatarExcelInfo {
+ uint64 prefab_path_hash = 1;
+ uint64 prefab_path_remote_hash = 2;
+ uint64 controller_path_hash = 3;
+ uint64 controller_path_remote_hash = 4;
+ uint64 combat_config_hash = 5;
+}
diff --git a/proto/AvatarExpeditionAllDataReq.proto b/proto/AvatarExpeditionAllDataReq.proto
new file mode 100644
index 00000000..77cf36f3
--- /dev/null
+++ b/proto/AvatarExpeditionAllDataReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1722
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarExpeditionAllDataReq {}
diff --git a/proto/AvatarExpeditionAllDataRsp.proto b/proto/AvatarExpeditionAllDataRsp.proto
new file mode 100644
index 00000000..234361d7
--- /dev/null
+++ b/proto/AvatarExpeditionAllDataRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarExpeditionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1648
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarExpeditionAllDataRsp {
+ repeated uint32 open_expedition_list = 3;
+ int32 retcode = 15;
+ uint32 expedition_count_limit = 12;
+ map expedition_info_map = 4;
+}
diff --git a/proto/AvatarExpeditionCallBackReq.proto b/proto/AvatarExpeditionCallBackReq.proto
new file mode 100644
index 00000000..b132e8c0
--- /dev/null
+++ b/proto/AvatarExpeditionCallBackReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1752
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarExpeditionCallBackReq {
+ repeated uint64 avatar_guid = 13;
+}
diff --git a/proto/AvatarExpeditionCallBackRsp.proto b/proto/AvatarExpeditionCallBackRsp.proto
new file mode 100644
index 00000000..f7b05a67
--- /dev/null
+++ b/proto/AvatarExpeditionCallBackRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarExpeditionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1726
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarExpeditionCallBackRsp {
+ map expedition_info_map = 9;
+ int32 retcode = 5;
+}
diff --git a/proto/AvatarExpeditionDataNotify.proto b/proto/AvatarExpeditionDataNotify.proto
new file mode 100644
index 00000000..622e4753
--- /dev/null
+++ b/proto/AvatarExpeditionDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarExpeditionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1771
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarExpeditionDataNotify {
+ map expedition_info_map = 6;
+}
diff --git a/proto/AvatarExpeditionGetRewardReq.proto b/proto/AvatarExpeditionGetRewardReq.proto
new file mode 100644
index 00000000..ddd966a5
--- /dev/null
+++ b/proto/AvatarExpeditionGetRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1623
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarExpeditionGetRewardReq {
+ uint64 avatar_guid = 14;
+}
diff --git a/proto/AvatarExpeditionGetRewardRsp.proto b/proto/AvatarExpeditionGetRewardRsp.proto
new file mode 100644
index 00000000..5b2c233d
--- /dev/null
+++ b/proto/AvatarExpeditionGetRewardRsp.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarExpeditionInfo.proto";
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1784
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarExpeditionGetRewardRsp {
+ repeated ItemParam Unk2700_HBKHOBPGCLH = 9;
+ repeated ItemParam item_list = 8;
+ map expedition_info_map = 12;
+ int32 retcode = 2;
+}
diff --git a/proto/AvatarExpeditionInfo.proto b/proto/AvatarExpeditionInfo.proto
new file mode 100644
index 00000000..81209ecd
--- /dev/null
+++ b/proto/AvatarExpeditionInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarExpeditionState.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AvatarExpeditionInfo {
+ AvatarExpeditionState state = 1;
+ uint32 exp_id = 2;
+ uint32 hour_time = 3;
+ uint32 start_time = 4;
+ float shorten_ratio = 5;
+}
diff --git a/proto/AvatarExpeditionStartReq.proto b/proto/AvatarExpeditionStartReq.proto
new file mode 100644
index 00000000..92da0073
--- /dev/null
+++ b/proto/AvatarExpeditionStartReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1715
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarExpeditionStartReq {
+ uint32 exp_id = 9;
+ uint64 avatar_guid = 10;
+ uint32 hour_time = 2;
+}
diff --git a/proto/AvatarExpeditionStartRsp.proto b/proto/AvatarExpeditionStartRsp.proto
new file mode 100644
index 00000000..6d634e21
--- /dev/null
+++ b/proto/AvatarExpeditionStartRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarExpeditionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1719
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarExpeditionStartRsp {
+ map expedition_info_map = 2;
+ int32 retcode = 5;
+}
diff --git a/proto/AvatarExpeditionState.proto b/proto/AvatarExpeditionState.proto
new file mode 100644
index 00000000..e9fe5f54
--- /dev/null
+++ b/proto/AvatarExpeditionState.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum AvatarExpeditionState {
+ AVATAR_EXPEDITION_STATE_NONE = 0;
+ AVATAR_EXPEDITION_STATE_DOING = 1;
+ AVATAR_EXPEDITION_STATE_FINISH_WAIT_REWARD = 2;
+ AVATAR_EXPEDITION_STATE_CALLBACK_WAIT_REWARD = 3;
+ AVATAR_EXPEDITION_STATE_LOCKED = 4;
+}
diff --git a/proto/AvatarFetterDataNotify.proto b/proto/AvatarFetterDataNotify.proto
new file mode 100644
index 00000000..f6ee9641
--- /dev/null
+++ b/proto/AvatarFetterDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarFetterInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1782
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarFetterDataNotify {
+ map fetter_info_map = 15;
+}
diff --git a/proto/AvatarFetterInfo.proto b/proto/AvatarFetterInfo.proto
new file mode 100644
index 00000000..f6751635
--- /dev/null
+++ b/proto/AvatarFetterInfo.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FetterData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AvatarFetterInfo {
+ uint32 exp_number = 1;
+ uint32 exp_level = 2;
+ repeated uint32 open_id_list = 3;
+ repeated uint32 finish_id_list = 4;
+ repeated uint32 rewarded_fetter_level_list = 5;
+ repeated FetterData fetter_list = 6;
+}
diff --git a/proto/AvatarFetterLevelRewardReq.proto b/proto/AvatarFetterLevelRewardReq.proto
new file mode 100644
index 00000000..1f52c078
--- /dev/null
+++ b/proto/AvatarFetterLevelRewardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1653
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarFetterLevelRewardReq {
+ uint64 avatar_guid = 1;
+ uint32 fetter_level = 6;
+}
diff --git a/proto/AvatarFetterLevelRewardRsp.proto b/proto/AvatarFetterLevelRewardRsp.proto
new file mode 100644
index 00000000..a8ab016c
--- /dev/null
+++ b/proto/AvatarFetterLevelRewardRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1606
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarFetterLevelRewardRsp {
+ uint64 avatar_guid = 4;
+ uint32 reward_id = 1;
+ int32 retcode = 13;
+ uint32 fetter_level = 14;
+}
diff --git a/proto/AvatarFightPropNotify.proto b/proto/AvatarFightPropNotify.proto
new file mode 100644
index 00000000..af546c28
--- /dev/null
+++ b/proto/AvatarFightPropNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1207
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarFightPropNotify {
+ map fight_prop_map = 8;
+ uint64 avatar_guid = 4;
+}
diff --git a/proto/AvatarFightPropUpdateNotify.proto b/proto/AvatarFightPropUpdateNotify.proto
new file mode 100644
index 00000000..b561c7a4
--- /dev/null
+++ b/proto/AvatarFightPropUpdateNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1221
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarFightPropUpdateNotify {
+ map fight_prop_map = 15;
+ uint64 avatar_guid = 13;
+}
diff --git a/proto/AvatarFlycloakChangeNotify.proto b/proto/AvatarFlycloakChangeNotify.proto
new file mode 100644
index 00000000..4fd7e134
--- /dev/null
+++ b/proto/AvatarFlycloakChangeNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1643
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarFlycloakChangeNotify {
+ uint32 flycloak_id = 8;
+ uint64 avatar_guid = 2;
+}
diff --git a/proto/AvatarFollowRouteNotify.proto b/proto/AvatarFollowRouteNotify.proto
new file mode 100644
index 00000000..f1de13d8
--- /dev/null
+++ b/proto/AvatarFollowRouteNotify.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Route.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3458
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarFollowRouteNotify {
+ uint32 entity_id = 4;
+ uint32 template_id = 6;
+ uint32 start_scene_time_ms = 8;
+ Route route = 2;
+ string client_params = 13;
+}
diff --git a/proto/AvatarGainCostumeNotify.proto b/proto/AvatarGainCostumeNotify.proto
new file mode 100644
index 00000000..2c79482e
--- /dev/null
+++ b/proto/AvatarGainCostumeNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1677
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarGainCostumeNotify {
+ uint32 costume_id = 15;
+}
diff --git a/proto/AvatarGainFlycloakNotify.proto b/proto/AvatarGainFlycloakNotify.proto
new file mode 100644
index 00000000..4ac4997e
--- /dev/null
+++ b/proto/AvatarGainFlycloakNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1656
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarGainFlycloakNotify {
+ uint32 flycloak_id = 3;
+}
diff --git a/proto/AvatarInfo.proto b/proto/AvatarInfo.proto
new file mode 100644
index 00000000..62325768
--- /dev/null
+++ b/proto/AvatarInfo.proto
@@ -0,0 +1,57 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarEquipAffixInfo.proto";
+import "AvatarExcelInfo.proto";
+import "AvatarExpeditionState.proto";
+import "AvatarFetterInfo.proto";
+import "AvatarSkillInfo.proto";
+import "PropValue.proto";
+import "TrialAvatarInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AvatarInfo {
+ uint32 avatar_id = 1;
+ uint64 guid = 2;
+ map prop_map = 3;
+ uint32 life_state = 4;
+ repeated uint64 equip_guid_list = 5;
+ repeated uint32 talent_id_list = 6;
+ map fight_prop_map = 7;
+ TrialAvatarInfo trial_avatar_info = 9;
+ map skill_map = 10;
+ uint32 skill_depot_id = 11;
+ AvatarFetterInfo fetter_info = 12;
+ uint32 core_proud_skill_level = 13;
+ repeated uint32 inherent_proud_skill_list = 14;
+ map skill_level_map = 15;
+ AvatarExpeditionState expedition_state = 16;
+ map proud_skill_extra_level_map = 17;
+ bool is_focus = 18;
+ uint32 avatar_type = 19;
+ repeated uint32 team_resonance_list = 20;
+ uint32 wearing_flycloak_id = 21;
+ repeated AvatarEquipAffixInfo equip_affix_list = 22;
+ uint32 born_time = 23;
+ repeated uint32 pending_promote_reward_list = 24;
+ uint32 costume_id = 25;
+ AvatarExcelInfo excel_info = 26;
+ uint32 anim_hash = 27;
+}
diff --git a/proto/AvatarLifeStateChangeNotify.proto b/proto/AvatarLifeStateChangeNotify.proto
new file mode 100644
index 00000000..7a5833f7
--- /dev/null
+++ b/proto/AvatarLifeStateChangeNotify.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayerDieType.proto";
+import "ServerBuff.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1290
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarLifeStateChangeNotify {
+ uint32 life_state = 13;
+ string attack_tag = 10;
+ PlayerDieType die_type = 2;
+ repeated ServerBuff server_buff_list = 12;
+ uint32 move_reliable_seq = 5;
+ uint32 source_entity_id = 3;
+ uint64 avatar_guid = 11;
+}
diff --git a/proto/AvatarPromoteGetRewardReq.proto b/proto/AvatarPromoteGetRewardReq.proto
new file mode 100644
index 00000000..a0bf6863
--- /dev/null
+++ b/proto/AvatarPromoteGetRewardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1696
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarPromoteGetRewardReq {
+ uint64 avatar_guid = 7;
+ uint32 promote_level = 12;
+}
diff --git a/proto/AvatarPromoteGetRewardRsp.proto b/proto/AvatarPromoteGetRewardRsp.proto
new file mode 100644
index 00000000..f9659624
--- /dev/null
+++ b/proto/AvatarPromoteGetRewardRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1683
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarPromoteGetRewardRsp {
+ int32 retcode = 10;
+ uint32 reward_id = 15;
+ uint64 avatar_guid = 11;
+ uint32 promote_level = 12;
+}
diff --git a/proto/AvatarPromoteReq.proto b/proto/AvatarPromoteReq.proto
new file mode 100644
index 00000000..4cb559f8
--- /dev/null
+++ b/proto/AvatarPromoteReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1664
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarPromoteReq {
+ uint64 guid = 5;
+}
diff --git a/proto/AvatarPromoteRsp.proto b/proto/AvatarPromoteRsp.proto
new file mode 100644
index 00000000..dd10828b
--- /dev/null
+++ b/proto/AvatarPromoteRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1639
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarPromoteRsp {
+ uint64 guid = 11;
+ int32 retcode = 8;
+}
diff --git a/proto/AvatarPropChangeReasonNotify.proto b/proto/AvatarPropChangeReasonNotify.proto
new file mode 100644
index 00000000..28950ba9
--- /dev/null
+++ b/proto/AvatarPropChangeReasonNotify.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PropChangeReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1273
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarPropChangeReasonNotify {
+ float old_value = 11;
+ PropChangeReason reason = 5;
+ uint32 prop_type = 1;
+ uint64 avatar_guid = 8;
+ float cur_value = 15;
+}
diff --git a/proto/AvatarPropNotify.proto b/proto/AvatarPropNotify.proto
new file mode 100644
index 00000000..a6c85f5e
--- /dev/null
+++ b/proto/AvatarPropNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1231
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarPropNotify {
+ map prop_map = 14;
+ uint64 avatar_guid = 15;
+}
diff --git a/proto/AvatarSatiationData.proto b/proto/AvatarSatiationData.proto
new file mode 100644
index 00000000..85d96582
--- /dev/null
+++ b/proto/AvatarSatiationData.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AvatarSatiationData {
+ float finish_time = 14;
+ uint64 avatar_guid = 13;
+ float penalty_finish_time = 12;
+}
diff --git a/proto/AvatarSatiationDataNotify.proto b/proto/AvatarSatiationDataNotify.proto
new file mode 100644
index 00000000..fd4e762a
--- /dev/null
+++ b/proto/AvatarSatiationDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarSatiationData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1693
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarSatiationDataNotify {
+ repeated AvatarSatiationData satiation_data_list = 6;
+}
diff --git a/proto/AvatarSkillChangeNotify.proto b/proto/AvatarSkillChangeNotify.proto
new file mode 100644
index 00000000..82550a78
--- /dev/null
+++ b/proto/AvatarSkillChangeNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1097
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarSkillChangeNotify {
+ uint32 cur_level = 11;
+ uint64 avatar_guid = 2;
+ uint32 entity_id = 7;
+ uint32 skill_depot_id = 13;
+ uint32 old_level = 1;
+ uint32 avatar_skill_id = 6;
+}
diff --git a/proto/AvatarSkillDepotChangeNotify.proto b/proto/AvatarSkillDepotChangeNotify.proto
new file mode 100644
index 00000000..8e622705
--- /dev/null
+++ b/proto/AvatarSkillDepotChangeNotify.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1035
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarSkillDepotChangeNotify {
+ uint32 skill_depot_id = 15;
+ map proud_skill_extra_level_map = 14;
+ repeated uint32 talent_id_list = 9;
+ repeated uint32 proud_skill_list = 4;
+ uint32 core_proud_skill_level = 2;
+ uint32 entity_id = 7;
+ uint64 avatar_guid = 12;
+ map skill_level_map = 3;
+}
diff --git a/proto/AvatarSkillInfo.proto b/proto/AvatarSkillInfo.proto
new file mode 100644
index 00000000..931f3dd6
--- /dev/null
+++ b/proto/AvatarSkillInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AvatarSkillInfo {
+ uint32 pass_cd_time = 1;
+ repeated uint32 full_cd_time_list = 2;
+ uint32 max_charge_count = 3;
+}
diff --git a/proto/AvatarSkillInfoNotify.proto b/proto/AvatarSkillInfoNotify.proto
new file mode 100644
index 00000000..d7c8ba2f
--- /dev/null
+++ b/proto/AvatarSkillInfoNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarSkillInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1090
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarSkillInfoNotify {
+ map skill_map = 11;
+ uint64 guid = 4;
+}
diff --git a/proto/AvatarSkillMaxChargeCountNotify.proto b/proto/AvatarSkillMaxChargeCountNotify.proto
new file mode 100644
index 00000000..4dc5b9f4
--- /dev/null
+++ b/proto/AvatarSkillMaxChargeCountNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1003
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarSkillMaxChargeCountNotify {
+ uint32 skill_id = 6;
+ uint32 max_charge_count = 11;
+ uint64 avatar_guid = 7;
+}
diff --git a/proto/AvatarSkillUpgradeReq.proto b/proto/AvatarSkillUpgradeReq.proto
new file mode 100644
index 00000000..5b52b2dc
--- /dev/null
+++ b/proto/AvatarSkillUpgradeReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1075
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarSkillUpgradeReq {
+ uint64 avatar_guid = 7;
+ uint32 old_level = 3;
+ uint32 avatar_skill_id = 4;
+}
diff --git a/proto/AvatarSkillUpgradeRsp.proto b/proto/AvatarSkillUpgradeRsp.proto
new file mode 100644
index 00000000..517624c2
--- /dev/null
+++ b/proto/AvatarSkillUpgradeRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1048
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarSkillUpgradeRsp {
+ uint64 avatar_guid = 11;
+ uint32 cur_level = 14;
+ uint32 avatar_skill_id = 9;
+ uint32 old_level = 3;
+ int32 retcode = 4;
+}
diff --git a/proto/AvatarTeam.proto b/proto/AvatarTeam.proto
new file mode 100644
index 00000000..60518646
--- /dev/null
+++ b/proto/AvatarTeam.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AvatarTeam {
+ repeated uint64 avatar_guid_list = 7;
+ string team_name = 14;
+}
diff --git a/proto/AvatarTeamResonanceInfo.proto b/proto/AvatarTeamResonanceInfo.proto
new file mode 100644
index 00000000..20e9bf5b
--- /dev/null
+++ b/proto/AvatarTeamResonanceInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AvatarTeamResonanceInfo {
+ repeated uint32 add_team_resonance_id_list = 5;
+ uint32 entity_id = 11;
+ uint64 avatar_guid = 3;
+ repeated uint32 del_team_resonance_id_list = 14;
+}
diff --git a/proto/AvatarTeamUpdateNotify.proto b/proto/AvatarTeamUpdateNotify.proto
new file mode 100644
index 00000000..d25c93f8
--- /dev/null
+++ b/proto/AvatarTeamUpdateNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarTeam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1706
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarTeamUpdateNotify {
+ map avatar_team_map = 2;
+ repeated uint64 temp_avatar_guid_list = 13;
+}
diff --git a/proto/AvatarUnlockTalentNotify.proto b/proto/AvatarUnlockTalentNotify.proto
new file mode 100644
index 00000000..cc128881
--- /dev/null
+++ b/proto/AvatarUnlockTalentNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1012
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarUnlockTalentNotify {
+ uint32 entity_id = 14;
+ uint64 avatar_guid = 13;
+ uint32 talent_id = 10;
+ uint32 skill_depot_id = 1;
+}
diff --git a/proto/AvatarUpgradeReq.proto b/proto/AvatarUpgradeReq.proto
new file mode 100644
index 00000000..f0537f66
--- /dev/null
+++ b/proto/AvatarUpgradeReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1770
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarUpgradeReq {
+ uint64 avatar_guid = 6;
+ uint32 count = 2;
+ uint32 item_id = 5;
+}
diff --git a/proto/AvatarUpgradeRsp.proto b/proto/AvatarUpgradeRsp.proto
new file mode 100644
index 00000000..2de73230
--- /dev/null
+++ b/proto/AvatarUpgradeRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1701
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarUpgradeRsp {
+ uint32 cur_level = 6;
+ uint32 old_level = 13;
+ map old_fight_prop_map = 10;
+ int32 retcode = 1;
+ map cur_fight_prop_map = 4;
+ uint64 avatar_guid = 15;
+}
diff --git a/proto/AvatarWearFlycloakReq.proto b/proto/AvatarWearFlycloakReq.proto
new file mode 100644
index 00000000..3a2df53d
--- /dev/null
+++ b/proto/AvatarWearFlycloakReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1737
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message AvatarWearFlycloakReq {
+ uint64 avatar_guid = 11;
+ uint32 flycloak_id = 13;
+}
diff --git a/proto/AvatarWearFlycloakRsp.proto b/proto/AvatarWearFlycloakRsp.proto
new file mode 100644
index 00000000..33ee4cb8
--- /dev/null
+++ b/proto/AvatarWearFlycloakRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1698
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AvatarWearFlycloakRsp {
+ uint32 flycloak_id = 13;
+ uint64 avatar_guid = 7;
+ int32 retcode = 6;
+}
diff --git a/proto/BackMyWorldReq.proto b/proto/BackMyWorldReq.proto
new file mode 100644
index 00000000..8a8b9e42
--- /dev/null
+++ b/proto/BackMyWorldReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 286
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BackMyWorldReq {}
diff --git a/proto/BackMyWorldRsp.proto b/proto/BackMyWorldRsp.proto
new file mode 100644
index 00000000..0f7506e7
--- /dev/null
+++ b/proto/BackMyWorldRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 201
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BackMyWorldRsp {
+ int32 retcode = 11;
+}
diff --git a/proto/BalloonGalleryInfo.proto b/proto/BalloonGalleryInfo.proto
new file mode 100644
index 00000000..4460387d
--- /dev/null
+++ b/proto/BalloonGalleryInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_ONCHFHBBCBN.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BalloonGalleryInfo {
+ repeated Unk2700_ONCHFHBBCBN record_list = 15;
+}
diff --git a/proto/BalloonPlayerInfo.proto b/proto/BalloonPlayerInfo.proto
new file mode 100644
index 00000000..f0d532d9
--- /dev/null
+++ b/proto/BalloonPlayerInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BalloonPlayerInfo {
+ uint32 uid = 15;
+ uint32 cur_score = 2;
+ uint32 combo_disable_time = 14;
+ uint32 combo = 11;
+}
diff --git a/proto/BalloonSettleInfo.proto b/proto/BalloonSettleInfo.proto
new file mode 100644
index 00000000..de97b129
--- /dev/null
+++ b/proto/BalloonSettleInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "OnlinePlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BalloonSettleInfo {
+ uint32 uid = 3;
+ uint32 shoot_count = 12;
+ uint32 max_combo = 9;
+ uint32 final_score = 7;
+ OnlinePlayerInfo player_info = 2;
+}
diff --git a/proto/BargainOfferPriceReq.proto b/proto/BargainOfferPriceReq.proto
new file mode 100644
index 00000000..10fb0c4c
--- /dev/null
+++ b/proto/BargainOfferPriceReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 493
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BargainOfferPriceReq {
+ uint32 bargain_id = 4;
+ uint32 price = 6;
+}
diff --git a/proto/BargainOfferPriceRsp.proto b/proto/BargainOfferPriceRsp.proto
new file mode 100644
index 00000000..e1e648f3
--- /dev/null
+++ b/proto/BargainOfferPriceRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BargainResultType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 427
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BargainOfferPriceRsp {
+ int32 retcode = 5;
+ uint32 result_param = 13;
+ BargainResultType bargain_result = 14;
+ int32 cur_mood = 6;
+}
diff --git a/proto/BargainResultType.proto b/proto/BargainResultType.proto
new file mode 100644
index 00000000..202ea415
--- /dev/null
+++ b/proto/BargainResultType.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum BargainResultType {
+ BARGAIN_RESULT_TYPE_COMPLETE_SUCC = 0;
+ BARGAIN_RESULT_TYPE_SINGLE_FAIL = 1;
+ BARGAIN_RESULT_TYPE_COMPLETE_FAIL = 2;
+}
diff --git a/proto/BargainSnapshot.proto b/proto/BargainSnapshot.proto
new file mode 100644
index 00000000..a54069ee
--- /dev/null
+++ b/proto/BargainSnapshot.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BargainSnapshot {
+ uint32 expected_price = 3;
+ int32 cur_mood = 14;
+ uint32 price_low_limit = 2;
+ uint32 bargain_id = 5;
+}
diff --git a/proto/BargainStartNotify.proto b/proto/BargainStartNotify.proto
new file mode 100644
index 00000000..a52f9cca
--- /dev/null
+++ b/proto/BargainStartNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BargainSnapshot.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 404
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BargainStartNotify {
+ uint32 bargain_id = 4;
+ BargainSnapshot snapshot = 2;
+}
diff --git a/proto/BargainTerminateNotify.proto b/proto/BargainTerminateNotify.proto
new file mode 100644
index 00000000..425f244d
--- /dev/null
+++ b/proto/BargainTerminateNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 494
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BargainTerminateNotify {
+ uint32 bargain_id = 15;
+}
diff --git a/proto/BartenderActivityDetailInfo.proto b/proto/BartenderActivityDetailInfo.proto
new file mode 100644
index 00000000..e6a50e6e
--- /dev/null
+++ b/proto/BartenderActivityDetailInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_KJODHFMHMNC.proto";
+import "Unk2700_LBIDBGLGKCJ.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BartenderActivityDetailInfo {
+ repeated uint32 Unk2700_BMOAIJMHPGA = 3;
+ bool Unk2700_JICAAEMPNBC = 13;
+ bool is_content_closed = 6;
+ repeated Unk2700_LBIDBGLGKCJ Unk2700_MEGOPKBEHOH = 5;
+ repeated uint32 Unk2700_AIKFMMLFIJI = 14;
+ repeated Unk2700_KJODHFMHMNC Unk2700_DAGGAECBDEG = 2;
+}
diff --git a/proto/BattlePassAllDataNotify.proto b/proto/BattlePassAllDataNotify.proto
new file mode 100644
index 00000000..5a2b91a6
--- /dev/null
+++ b/proto/BattlePassAllDataNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BattlePassMission.proto";
+import "BattlePassSchedule.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2626
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BattlePassAllDataNotify {
+ bool have_cur_schedule = 2;
+ repeated BattlePassMission mission_list = 4;
+ BattlePassSchedule cur_schedule = 1;
+}
diff --git a/proto/BattlePassBuySuccNotify.proto b/proto/BattlePassBuySuccNotify.proto
new file mode 100644
index 00000000..b5c0ead1
--- /dev/null
+++ b/proto/BattlePassBuySuccNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2614
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BattlePassBuySuccNotify {
+ uint32 schedule_id = 4;
+ uint32 product_play_type = 11;
+ uint32 add_point = 12;
+ repeated ItemParam item_list = 9;
+}
diff --git a/proto/BattlePassCurScheduleUpdateNotify.proto b/proto/BattlePassCurScheduleUpdateNotify.proto
new file mode 100644
index 00000000..10b3670d
--- /dev/null
+++ b/proto/BattlePassCurScheduleUpdateNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BattlePassSchedule.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2607
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BattlePassCurScheduleUpdateNotify {
+ bool have_cur_schedule = 11;
+ BattlePassSchedule cur_schedule = 1;
+}
diff --git a/proto/BattlePassCycle.proto b/proto/BattlePassCycle.proto
new file mode 100644
index 00000000..9e1523d2
--- /dev/null
+++ b/proto/BattlePassCycle.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BattlePassCycle {
+ uint32 cycle_idx = 3;
+ uint32 end_time = 10;
+ uint32 begin_time = 13;
+}
diff --git a/proto/BattlePassMission.proto b/proto/BattlePassMission.proto
new file mode 100644
index 00000000..ff052198
--- /dev/null
+++ b/proto/BattlePassMission.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BattlePassMission {
+ uint32 cur_progress = 13;
+ MissionStatus mission_status = 15;
+ uint32 mission_id = 11;
+ uint32 reward_battle_pass_point = 3;
+ uint32 mission_type = 12;
+ uint32 total_progress = 6;
+
+ enum MissionStatus {
+ MISSION_STATUS_INVALID = 0;
+ MISSION_STATUS_UNFINISHED = 1;
+ MISSION_STATUS_FINISHED = 2;
+ MISSION_STATUS_POINT_TAKEN = 3;
+ }
+}
diff --git a/proto/BattlePassMissionDelNotify.proto b/proto/BattlePassMissionDelNotify.proto
new file mode 100644
index 00000000..68f5535a
--- /dev/null
+++ b/proto/BattlePassMissionDelNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2625
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BattlePassMissionDelNotify {
+ repeated uint32 del_mission_id_list = 10;
+}
diff --git a/proto/BattlePassMissionUpdateNotify.proto b/proto/BattlePassMissionUpdateNotify.proto
new file mode 100644
index 00000000..43a8b7be
--- /dev/null
+++ b/proto/BattlePassMissionUpdateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BattlePassMission.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2618
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BattlePassMissionUpdateNotify {
+ repeated BattlePassMission mission_list = 1;
+}
diff --git a/proto/BattlePassProduct.proto b/proto/BattlePassProduct.proto
new file mode 100644
index 00000000..37364d09
--- /dev/null
+++ b/proto/BattlePassProduct.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BattlePassProduct {
+ string normal_product_id = 13;
+ string extra_product_id = 10;
+ string upgrade_product_id = 6;
+}
diff --git a/proto/BattlePassRewardTag.proto b/proto/BattlePassRewardTag.proto
new file mode 100644
index 00000000..e93ce9dd
--- /dev/null
+++ b/proto/BattlePassRewardTag.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BattlePassUnlockStatus.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BattlePassRewardTag {
+ uint32 level = 4;
+ BattlePassUnlockStatus unlock_status = 2;
+ uint32 reward_id = 7;
+}
diff --git a/proto/BattlePassRewardTakeOption.proto b/proto/BattlePassRewardTakeOption.proto
new file mode 100644
index 00000000..6fa36dc1
--- /dev/null
+++ b/proto/BattlePassRewardTakeOption.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BattlePassRewardTag.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BattlePassRewardTakeOption {
+ BattlePassRewardTag tag = 10;
+ uint32 option_idx = 14;
+}
diff --git a/proto/BattlePassSchedule.proto b/proto/BattlePassSchedule.proto
new file mode 100644
index 00000000..e0237a67
--- /dev/null
+++ b/proto/BattlePassSchedule.proto
@@ -0,0 +1,41 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BattlePassCycle.proto";
+import "BattlePassProduct.proto";
+import "BattlePassRewardTag.proto";
+import "BattlePassUnlockStatus.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BattlePassSchedule {
+ uint32 level = 14;
+ uint32 begin_time = 2;
+ uint32 end_time = 15;
+ uint32 point = 1;
+ BattlePassCycle cur_cycle = 4;
+ BattlePassUnlockStatus unlock_status = 7;
+ repeated BattlePassRewardTag reward_taken_list = 11;
+ uint32 cur_cycle_points = 10;
+ uint32 Unk2700_ODHAAHEPFAG = 12;
+ BattlePassProduct product_info = 13;
+ bool is_extra_paid_reward_taken = 6;
+ bool is_viewed = 3;
+ uint32 schedule_id = 9;
+}
diff --git a/proto/BattlePassUnlockStatus.proto b/proto/BattlePassUnlockStatus.proto
new file mode 100644
index 00000000..33d37455
--- /dev/null
+++ b/proto/BattlePassUnlockStatus.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum BattlePassUnlockStatus {
+ BATTLE_PASS_UNLOCK_STATUS_INVALID = 0;
+ BATTLE_PASS_UNLOCK_STATUS_FREE = 1;
+ BATTLE_PASS_UNLOCK_STATUS_PAID = 2;
+}
diff --git a/proto/BeginCameraSceneLookNotify.proto b/proto/BeginCameraSceneLookNotify.proto
new file mode 100644
index 00000000..742e4302
--- /dev/null
+++ b/proto/BeginCameraSceneLookNotify.proto
@@ -0,0 +1,53 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 270
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BeginCameraSceneLookNotify {
+ uint32 Unk3000_MNLLCJMPMNH = 1154;
+ float Unk2700_DHAHEKOGHBJ = 7;
+ bool is_set_screen_xy = 5;
+ Vector look_pos = 4;
+ bool is_recover_keep_current = 11;
+ bool Unk3000_GOPIFPMFEPB = 1375;
+ Unk2700_LNCHDDOOECD Unk2700_HIAKNNCKHJB = 6;
+ bool is_change_play_mode = 9;
+ uint32 Unk3000_IEFIKMHCKDH = 1103;
+ float screen_y = 15;
+ bool is_set_follow_pos = 13;
+ bool is_force = 12;
+ float Unk3000_OGCLMFFADBD = 1758;
+ uint32 entity_id = 1327;
+ float screen_x = 3;
+ bool is_force_walk = 10;
+ repeated string other_params = 1;
+ Vector follow_pos = 8;
+ bool is_allow_input = 2;
+ float duration = 14;
+
+ enum Unk2700_LNCHDDOOECD {
+ Unk2700_LNCHDDOOECD_Unk2700_ACOENBMDFBP = 0;
+ Unk2700_LNCHDDOOECD_Unk2700_FKBLCDFLCOM = 1;
+ }
+}
diff --git a/proto/BigTalentPointConvertReq.proto b/proto/BigTalentPointConvertReq.proto
new file mode 100644
index 00000000..c3b64754
--- /dev/null
+++ b/proto/BigTalentPointConvertReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1007
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BigTalentPointConvertReq {
+ repeated uint64 item_guid_list = 6;
+ uint64 avatar_guid = 3;
+}
diff --git a/proto/BigTalentPointConvertRsp.proto b/proto/BigTalentPointConvertRsp.proto
new file mode 100644
index 00000000..72b0f2f4
--- /dev/null
+++ b/proto/BigTalentPointConvertRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1021
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BigTalentPointConvertRsp {
+ int32 retcode = 1;
+ uint64 avatar_guid = 8;
+}
diff --git a/proto/Birthday.proto b/proto/Birthday.proto
new file mode 100644
index 00000000..02ae45e6
--- /dev/null
+++ b/proto/Birthday.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Birthday {
+ uint32 month = 1;
+ uint32 day = 2;
+}
diff --git a/proto/BlessingAcceptAllGivePicReq.proto b/proto/BlessingAcceptAllGivePicReq.proto
new file mode 100644
index 00000000..79399b48
--- /dev/null
+++ b/proto/BlessingAcceptAllGivePicReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2045
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BlessingAcceptAllGivePicReq {}
diff --git a/proto/BlessingAcceptAllGivePicRsp.proto b/proto/BlessingAcceptAllGivePicRsp.proto
new file mode 100644
index 00000000..286a5533
--- /dev/null
+++ b/proto/BlessingAcceptAllGivePicRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2044
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BlessingAcceptAllGivePicRsp {
+ int32 retcode = 11;
+ map accept_pic_num_map = 14;
+ repeated uint32 accept_index_list = 5;
+}
diff --git a/proto/BlessingAcceptGivePicReq.proto b/proto/BlessingAcceptGivePicReq.proto
new file mode 100644
index 00000000..c6552adc
--- /dev/null
+++ b/proto/BlessingAcceptGivePicReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2006
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BlessingAcceptGivePicReq {
+ uint32 index = 9;
+ uint32 uid = 1;
+}
diff --git a/proto/BlessingAcceptGivePicRsp.proto b/proto/BlessingAcceptGivePicRsp.proto
new file mode 100644
index 00000000..53c82217
--- /dev/null
+++ b/proto/BlessingAcceptGivePicRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2055
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BlessingAcceptGivePicRsp {
+ uint32 pic_id = 1;
+ int32 retcode = 13;
+ uint32 index = 5;
+ uint32 uid = 14;
+}
diff --git a/proto/BlessingActivityDetailInfo.proto b/proto/BlessingActivityDetailInfo.proto
new file mode 100644
index 00000000..4b2b0f19
--- /dev/null
+++ b/proto/BlessingActivityDetailInfo.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BlessingActivityDetailInfo {
+ uint32 cur_day_scan_type = 9;
+ bool is_content_closed = 11;
+ map pic_num_map = 15;
+ uint32 content_close_time = 2;
+ uint32 cur_day_scan_num = 4;
+ uint32 redeem_reward_num = 1;
+ bool is_activated = 13;
+ uint32 next_refresh_time = 6;
+}
diff --git a/proto/BlessingFriendPicData.proto b/proto/BlessingFriendPicData.proto
new file mode 100644
index 00000000..06c21f66
--- /dev/null
+++ b/proto/BlessingFriendPicData.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BlessingFriendPicData {
+ map pic_num_map = 4;
+ uint32 avatar_id = 5;
+ string remark_name = 11;
+ string nickname = 14;
+ string signature = 1;
+ ProfilePicture profile_picture = 6;
+ uint32 uid = 9;
+}
diff --git a/proto/BlessingGetAllRecvPicRecordListReq.proto b/proto/BlessingGetAllRecvPicRecordListReq.proto
new file mode 100644
index 00000000..929d66f9
--- /dev/null
+++ b/proto/BlessingGetAllRecvPicRecordListReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2096
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BlessingGetAllRecvPicRecordListReq {}
diff --git a/proto/BlessingGetAllRecvPicRecordListRsp.proto b/proto/BlessingGetAllRecvPicRecordListRsp.proto
new file mode 100644
index 00000000..4fe1cc40
--- /dev/null
+++ b/proto/BlessingGetAllRecvPicRecordListRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BlessingRecvPicRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2083
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BlessingGetAllRecvPicRecordListRsp {
+ repeated BlessingRecvPicRecord recv_pic_record_list = 15;
+ int32 retcode = 9;
+}
diff --git a/proto/BlessingGetFriendPicListReq.proto b/proto/BlessingGetFriendPicListReq.proto
new file mode 100644
index 00000000..72e833dc
--- /dev/null
+++ b/proto/BlessingGetFriendPicListReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2043
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BlessingGetFriendPicListReq {}
diff --git a/proto/BlessingGetFriendPicListRsp.proto b/proto/BlessingGetFriendPicListRsp.proto
new file mode 100644
index 00000000..f4e8bc7a
--- /dev/null
+++ b/proto/BlessingGetFriendPicListRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BlessingFriendPicData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2056
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BlessingGetFriendPicListRsp {
+ int32 retcode = 2;
+ repeated BlessingFriendPicData friend_pic_data_list = 6;
+}
diff --git a/proto/BlessingGiveFriendPicReq.proto b/proto/BlessingGiveFriendPicReq.proto
new file mode 100644
index 00000000..881ee9f5
--- /dev/null
+++ b/proto/BlessingGiveFriendPicReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2062
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BlessingGiveFriendPicReq {
+ uint32 uid = 11;
+ uint32 pic_id = 3;
+}
diff --git a/proto/BlessingGiveFriendPicRsp.proto b/proto/BlessingGiveFriendPicRsp.proto
new file mode 100644
index 00000000..14a8a7d9
--- /dev/null
+++ b/proto/BlessingGiveFriendPicRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2053
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BlessingGiveFriendPicRsp {
+ uint32 pic_id = 10;
+ int32 retcode = 11;
+ uint32 uid = 13;
+}
diff --git a/proto/BlessingRecvFriendPicNotify.proto b/proto/BlessingRecvFriendPicNotify.proto
new file mode 100644
index 00000000..e004eb22
--- /dev/null
+++ b/proto/BlessingRecvFriendPicNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2178
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BlessingRecvFriendPicNotify {
+ uint32 uid = 15;
+ uint32 pic_id = 5;
+}
diff --git a/proto/BlessingRecvPicRecord.proto b/proto/BlessingRecvPicRecord.proto
new file mode 100644
index 00000000..6b390ce6
--- /dev/null
+++ b/proto/BlessingRecvPicRecord.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BlessingRecvPicRecord {
+ string nickname = 1;
+ string remark_name = 2;
+ uint32 pic_id = 3;
+ uint32 uid = 5;
+ uint32 avatar_id = 6;
+ string signature = 10;
+ uint32 index = 14;
+ bool is_recv = 7;
+ ProfilePicture profile_picture = 9;
+}
diff --git a/proto/BlessingRedeemRewardReq.proto b/proto/BlessingRedeemRewardReq.proto
new file mode 100644
index 00000000..ac2006a3
--- /dev/null
+++ b/proto/BlessingRedeemRewardReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2137
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BlessingRedeemRewardReq {}
diff --git a/proto/BlessingRedeemRewardRsp.proto b/proto/BlessingRedeemRewardRsp.proto
new file mode 100644
index 00000000..0e1ffe7a
--- /dev/null
+++ b/proto/BlessingRedeemRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2098
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BlessingRedeemRewardRsp {
+ map pic_num_map = 12;
+ int32 retcode = 15;
+}
diff --git a/proto/BlessingScanReq.proto b/proto/BlessingScanReq.proto
new file mode 100644
index 00000000..61658dfd
--- /dev/null
+++ b/proto/BlessingScanReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2081
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BlessingScanReq {
+ uint32 entity_id = 11;
+}
diff --git a/proto/BlessingScanRsp.proto b/proto/BlessingScanRsp.proto
new file mode 100644
index 00000000..3e2a9ba9
--- /dev/null
+++ b/proto/BlessingScanRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2093
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BlessingScanRsp {
+ uint32 scan_pic_id = 4;
+ int32 retcode = 11;
+ uint32 cur_day_scan_num = 1;
+}
diff --git a/proto/BlitzRushActivityDetailInfo.proto b/proto/BlitzRushActivityDetailInfo.proto
new file mode 100644
index 00000000..bdba9cd5
--- /dev/null
+++ b/proto/BlitzRushActivityDetailInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BlitzRushStage.proto";
+import "ParkourLevelInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BlitzRushActivityDetailInfo {
+ repeated BlitzRushStage stage_list = 10;
+ uint32 content_close_time = 14;
+ bool is_content_closed = 2;
+ repeated ParkourLevelInfo parkour_level_info_list = 6;
+}
diff --git a/proto/BlitzRushParkourRestartReq.proto b/proto/BlitzRushParkourRestartReq.proto
new file mode 100644
index 00000000..3ab31cd6
--- /dev/null
+++ b/proto/BlitzRushParkourRestartReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8653
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BlitzRushParkourRestartReq {
+ uint32 schedule_id = 13;
+ uint32 group_id = 2;
+}
diff --git a/proto/BlitzRushParkourRestartRsp.proto b/proto/BlitzRushParkourRestartRsp.proto
new file mode 100644
index 00000000..29b491b4
--- /dev/null
+++ b/proto/BlitzRushParkourRestartRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8944
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BlitzRushParkourRestartRsp {
+ int32 retcode = 14;
+ uint32 group_id = 15;
+ uint32 schedule_id = 1;
+}
diff --git a/proto/BlitzRushStage.proto b/proto/BlitzRushStage.proto
new file mode 100644
index 00000000..8d86e908
--- /dev/null
+++ b/proto/BlitzRushStage.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BlitzRushStage {
+ bool is_open = 13;
+ uint32 open_time = 11;
+}
diff --git a/proto/BlockInfo.proto b/proto/BlockInfo.proto
new file mode 100644
index 00000000..027b2ed0
--- /dev/null
+++ b/proto/BlockInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BlockInfo {
+ uint32 block_id = 1;
+ uint32 data_version = 2;
+ bytes bin_data = 3;
+ bool is_dirty = 4;
+}
diff --git a/proto/BlossomBriefInfo.proto b/proto/BlossomBriefInfo.proto
new file mode 100644
index 00000000..e5de208f
--- /dev/null
+++ b/proto/BlossomBriefInfo.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BlossomBriefInfo {
+ uint32 refresh_id = 13;
+ uint32 reward_id = 5;
+ uint32 city_id = 10;
+ uint32 resin = 11;
+ uint32 state = 7;
+ bool is_guide_opened = 1;
+ uint32 monster_level = 8;
+ uint32 circle_camp_id = 15;
+ Vector pos = 12;
+ uint32 scene_id = 9;
+}
diff --git a/proto/BlossomBriefInfoNotify.proto b/proto/BlossomBriefInfoNotify.proto
new file mode 100644
index 00000000..d68a6732
--- /dev/null
+++ b/proto/BlossomBriefInfoNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BlossomBriefInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2712
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BlossomBriefInfoNotify {
+ repeated BlossomBriefInfo brief_info_list = 4;
+}
diff --git a/proto/BlossomChestCreateNotify.proto b/proto/BlossomChestCreateNotify.proto
new file mode 100644
index 00000000..8e9ef7bc
--- /dev/null
+++ b/proto/BlossomChestCreateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2721
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BlossomChestCreateNotify {
+ uint32 refresh_id = 1;
+ uint32 circle_camp_id = 10;
+}
diff --git a/proto/BlossomChestInfo.proto b/proto/BlossomChestInfo.proto
new file mode 100644
index 00000000..a5b06d97
--- /dev/null
+++ b/proto/BlossomChestInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BlossomChestInfo {
+ uint32 resin = 1;
+ repeated uint32 qualify_uid_list = 2;
+ repeated uint32 remain_uid_list = 3;
+ uint32 dead_time = 4;
+ uint32 blossom_refresh_type = 5;
+ uint32 refresh_id = 6;
+}
diff --git a/proto/BlossomChestInfoNotify.proto b/proto/BlossomChestInfoNotify.proto
new file mode 100644
index 00000000..b365953d
--- /dev/null
+++ b/proto/BlossomChestInfoNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BlossomChestInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 890
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BlossomChestInfoNotify {
+ uint32 entity_id = 9;
+ BlossomChestInfo blossom_chest_info = 3;
+}
diff --git a/proto/BlossomScheduleInfo.proto b/proto/BlossomScheduleInfo.proto
new file mode 100644
index 00000000..15dd7026
--- /dev/null
+++ b/proto/BlossomScheduleInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BlossomScheduleInfo {
+ uint32 progress = 13;
+ uint32 state = 10;
+ uint32 round = 4;
+ uint32 circle_camp_id = 15;
+ uint32 refresh_id = 6;
+ uint32 finish_progress = 14;
+}
diff --git a/proto/BonusActivityInfo.proto b/proto/BonusActivityInfo.proto
new file mode 100644
index 00000000..af76b503
--- /dev/null
+++ b/proto/BonusActivityInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BonusActivityInfo {
+ uint32 bonus_activity_id = 6;
+ uint32 state = 3;
+}
diff --git a/proto/BonusActivityInfoReq.proto b/proto/BonusActivityInfoReq.proto
new file mode 100644
index 00000000..5746b42c
--- /dev/null
+++ b/proto/BonusActivityInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2548
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BonusActivityInfoReq {}
diff --git a/proto/BonusActivityInfoRsp.proto b/proto/BonusActivityInfoRsp.proto
new file mode 100644
index 00000000..338a3f5f
--- /dev/null
+++ b/proto/BonusActivityInfoRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BonusActivityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2597
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BonusActivityInfoRsp {
+ repeated BonusActivityInfo bonus_activity_info_list = 2;
+ int32 retcode = 7;
+}
diff --git a/proto/BonusActivityUpdateNotify.proto b/proto/BonusActivityUpdateNotify.proto
new file mode 100644
index 00000000..e711ab91
--- /dev/null
+++ b/proto/BonusActivityUpdateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BonusActivityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2575
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BonusActivityUpdateNotify {
+ repeated BonusActivityInfo bonus_activity_info_list = 8;
+}
diff --git a/proto/BonusOpActivityInfo.proto b/proto/BonusOpActivityInfo.proto
new file mode 100644
index 00000000..d0a71698
--- /dev/null
+++ b/proto/BonusOpActivityInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BonusOpActivityInfo {
+ uint32 left_bonus_count = 11;
+}
diff --git a/proto/BossChestActivateNotify.proto b/proto/BossChestActivateNotify.proto
new file mode 100644
index 00000000..933cb1b1
--- /dev/null
+++ b/proto/BossChestActivateNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 803
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BossChestActivateNotify {
+ repeated uint32 qualify_uid_list = 1;
+ uint32 entity_id = 12;
+}
diff --git a/proto/BossChestInfo.proto b/proto/BossChestInfo.proto
new file mode 100644
index 00000000..8d871e0d
--- /dev/null
+++ b/proto/BossChestInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WeeklyBossResinDiscountInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BossChestInfo {
+ uint32 monster_config_id = 1;
+ uint32 resin = 2;
+ repeated uint32 remain_uid_list = 3;
+ repeated uint32 qualify_uid_list = 4;
+ map uid_discount_map = 5;
+}
diff --git a/proto/BounceConjuringActivityDetailInfo.proto b/proto/BounceConjuringActivityDetailInfo.proto
new file mode 100644
index 00000000..3abc1d2e
--- /dev/null
+++ b/proto/BounceConjuringActivityDetailInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BounceConjuringChapterInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BounceConjuringActivityDetailInfo {
+ repeated BounceConjuringChapterInfo chapter_info_list = 8;
+ bool is_content_closed = 12;
+ uint32 content_close_time = 7;
+}
diff --git a/proto/BounceConjuringChapterInfo.proto b/proto/BounceConjuringChapterInfo.proto
new file mode 100644
index 00000000..4829eb62
--- /dev/null
+++ b/proto/BounceConjuringChapterInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BounceConjuringChapterInfo {
+ uint32 best_score = 12;
+ uint32 open_time = 9;
+ uint32 chapter_id = 13;
+}
diff --git a/proto/BounceConjuringGallerySettleInfo.proto b/proto/BounceConjuringGallerySettleInfo.proto
new file mode 100644
index 00000000..91bb90d7
--- /dev/null
+++ b/proto/BounceConjuringGallerySettleInfo.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ExhibitionDisplayInfo.proto";
+import "OnlinePlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BounceConjuringGallerySettleInfo {
+ OnlinePlayerInfo player_info = 14;
+ uint32 destroyed_machine_count = 5;
+ uint32 fever_count = 6;
+ uint32 normal_hit_count = 4;
+ float damage = 11;
+ map gadget_count_map = 15;
+ uint32 score = 12;
+ uint32 perfect_hit_count = 8;
+ repeated ExhibitionDisplayInfo card_list = 7;
+}
diff --git a/proto/BounceConjuringSettleNotify.proto b/proto/BounceConjuringSettleNotify.proto
new file mode 100644
index 00000000..d107eeed
--- /dev/null
+++ b/proto/BounceConjuringSettleNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BounceConjuringGallerySettleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8084
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BounceConjuringSettleNotify {
+ bool is_new_record = 14;
+ map settle_info_map = 4;
+ uint32 total_score = 2;
+ uint32 chapter_id = 13;
+}
diff --git a/proto/BuildingInfo.proto b/proto/BuildingInfo.proto
new file mode 100644
index 00000000..3fc0b650
--- /dev/null
+++ b/proto/BuildingInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BuildingInfo {
+ uint32 building_id = 1;
+ uint32 point_config_id = 2;
+ uint32 cost = 3;
+ uint32 refund = 5;
+ uint32 owner_uid = 6;
+ uint32 Unk2700_MDJOPHOHFDB = 7;
+ uint32 Unk2700_COFBIGLBNGP = 8;
+}
diff --git a/proto/BundleInfo.proto b/proto/BundleInfo.proto
new file mode 100644
index 00000000..43fa14ff
--- /dev/null
+++ b/proto/BundleInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BundleInfo {
+ repeated uint32 Unk2700_OGNEAEGHCPM = 13;
+}
diff --git a/proto/BuoyantCombatDailyInfo.proto b/proto/BuoyantCombatDailyInfo.proto
new file mode 100644
index 00000000..0da5ff76
--- /dev/null
+++ b/proto/BuoyantCombatDailyInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BuoyantCombatDailyInfo {
+ uint32 start_time = 2;
+ uint32 best_score = 13;
+}
diff --git a/proto/BuoyantCombatDetailInfo.proto b/proto/BuoyantCombatDetailInfo.proto
new file mode 100644
index 00000000..64a7cca1
--- /dev/null
+++ b/proto/BuoyantCombatDetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BuoyantCombatDailyInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BuoyantCombatDetailInfo {
+ repeated BuoyantCombatDailyInfo daily_info_list = 8;
+}
diff --git a/proto/BuoyantCombatGallerySettleInfo.proto b/proto/BuoyantCombatGallerySettleInfo.proto
new file mode 100644
index 00000000..64599936
--- /dev/null
+++ b/proto/BuoyantCombatGallerySettleInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BuoyantCombatGallerySettleInfo {
+ uint32 gallery_level = 12;
+ uint32 final_score = 15;
+ uint32 kill_monster_count = 9;
+ uint32 kill_target_count = 1;
+ uint32 kill_special_monster_count = 4;
+ uint32 gallery_id = 2;
+ uint32 gallery_multiple = 11;
+}
diff --git a/proto/BuoyantCombatSettleInfo.proto b/proto/BuoyantCombatSettleInfo.proto
new file mode 100644
index 00000000..d9c22272
--- /dev/null
+++ b/proto/BuoyantCombatSettleInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BuoyantCombatGallerySettleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message BuoyantCombatSettleInfo {
+ bool is_new_record = 1;
+ BuoyantCombatGallerySettleInfo settle_info = 3;
+}
diff --git a/proto/BuoyantCombatSettleNotify.proto b/proto/BuoyantCombatSettleNotify.proto
new file mode 100644
index 00000000..87a19afa
--- /dev/null
+++ b/proto/BuoyantCombatSettleNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BuoyantCombatSettleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8305
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BuoyantCombatSettleNotify {
+ uint32 gallery_id = 8;
+ BuoyantCombatSettleInfo settle_info = 11;
+}
diff --git a/proto/BuyBattlePassLevelReq.proto b/proto/BuyBattlePassLevelReq.proto
new file mode 100644
index 00000000..c9811eae
--- /dev/null
+++ b/proto/BuyBattlePassLevelReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2647
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BuyBattlePassLevelReq {
+ uint32 buy_level = 8;
+}
diff --git a/proto/BuyBattlePassLevelRsp.proto b/proto/BuyBattlePassLevelRsp.proto
new file mode 100644
index 00000000..c5878eb0
--- /dev/null
+++ b/proto/BuyBattlePassLevelRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2637
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BuyBattlePassLevelRsp {
+ int32 retcode = 5;
+ uint32 buy_level = 13;
+}
diff --git a/proto/BuyGoodsReq.proto b/proto/BuyGoodsReq.proto
new file mode 100644
index 00000000..d1d18a8c
--- /dev/null
+++ b/proto/BuyGoodsReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ShopGoods.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 712
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BuyGoodsReq {
+ uint32 buy_count = 14;
+ ShopGoods goods = 15;
+ uint32 shop_type = 7;
+}
diff --git a/proto/BuyGoodsRsp.proto b/proto/BuyGoodsRsp.proto
new file mode 100644
index 00000000..2f0a13f0
--- /dev/null
+++ b/proto/BuyGoodsRsp.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ShopGoods.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 735
+// EnetChannelId: 0
+// EnetIsReliable: true
+message BuyGoodsRsp {
+ uint32 buy_count = 14;
+ ShopGoods goods = 12;
+ uint32 shop_type = 11;
+ int32 retcode = 2;
+ repeated ShopGoods goods_list = 5;
+}
diff --git a/proto/BuyResinReq.proto b/proto/BuyResinReq.proto
new file mode 100644
index 00000000..6df8e9b5
--- /dev/null
+++ b/proto/BuyResinReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 602
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BuyResinReq {}
diff --git a/proto/BuyResinRsp.proto b/proto/BuyResinRsp.proto
new file mode 100644
index 00000000..8e33c656
--- /dev/null
+++ b/proto/BuyResinRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 619
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message BuyResinRsp {
+ uint32 cur_value = 10;
+ int32 retcode = 5;
+}
diff --git a/proto/CalcWeaponUpgradeReturnItemsReq.proto b/proto/CalcWeaponUpgradeReturnItemsReq.proto
new file mode 100644
index 00000000..87b116ce
--- /dev/null
+++ b/proto/CalcWeaponUpgradeReturnItemsReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 633
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message CalcWeaponUpgradeReturnItemsReq {
+ repeated uint64 food_weapon_guid_list = 15;
+ uint64 target_weapon_guid = 12;
+ repeated ItemParam item_param_list = 3;
+}
diff --git a/proto/CalcWeaponUpgradeReturnItemsRsp.proto b/proto/CalcWeaponUpgradeReturnItemsRsp.proto
new file mode 100644
index 00000000..ec96fe4f
--- /dev/null
+++ b/proto/CalcWeaponUpgradeReturnItemsRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 684
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CalcWeaponUpgradeReturnItemsRsp {
+ repeated ItemParam item_param_list = 4;
+ int32 retcode = 15;
+ uint64 target_weapon_guid = 8;
+}
diff --git a/proto/CanUseSkillNotify.proto b/proto/CanUseSkillNotify.proto
new file mode 100644
index 00000000..575bd528
--- /dev/null
+++ b/proto/CanUseSkillNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1005
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CanUseSkillNotify {
+ bool is_can_use_skill = 2;
+}
diff --git a/proto/CancelCityReputationRequestReq.proto b/proto/CancelCityReputationRequestReq.proto
new file mode 100644
index 00000000..a719d849
--- /dev/null
+++ b/proto/CancelCityReputationRequestReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2899
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message CancelCityReputationRequestReq {
+ uint32 request_id = 10;
+ uint32 city_id = 6;
+}
diff --git a/proto/CancelCityReputationRequestRsp.proto b/proto/CancelCityReputationRequestRsp.proto
new file mode 100644
index 00000000..683356d6
--- /dev/null
+++ b/proto/CancelCityReputationRequestRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2831
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CancelCityReputationRequestRsp {
+ uint32 city_id = 3;
+ int32 retcode = 2;
+ uint32 request_id = 12;
+}
diff --git a/proto/CancelCoopTaskReq.proto b/proto/CancelCoopTaskReq.proto
new file mode 100644
index 00000000..9416a99c
--- /dev/null
+++ b/proto/CancelCoopTaskReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1997
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message CancelCoopTaskReq {
+ uint32 chapter_id = 13;
+}
diff --git a/proto/CancelCoopTaskRsp.proto b/proto/CancelCoopTaskRsp.proto
new file mode 100644
index 00000000..a5a1fa9c
--- /dev/null
+++ b/proto/CancelCoopTaskRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1987
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CancelCoopTaskRsp {
+ uint32 chapter_id = 1;
+ int32 retcode = 5;
+}
diff --git a/proto/CancelFinishParentQuestNotify.proto b/proto/CancelFinishParentQuestNotify.proto
new file mode 100644
index 00000000..12ec401f
--- /dev/null
+++ b/proto/CancelFinishParentQuestNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 424
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CancelFinishParentQuestNotify {
+ uint32 parent_quest_id = 6;
+}
diff --git a/proto/CardProductRewardNotify.proto b/proto/CardProductRewardNotify.proto
new file mode 100644
index 00000000..5aff8f34
--- /dev/null
+++ b/proto/CardProductRewardNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4107
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CardProductRewardNotify {
+ uint32 hcoin = 6;
+ string product_id = 14;
+ uint32 remain_days = 1;
+}
diff --git a/proto/CellInfo.proto b/proto/CellInfo.proto
new file mode 100644
index 00000000..716d1781
--- /dev/null
+++ b/proto/CellInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SceneSurfaceMaterial.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CellInfo {
+ SceneSurfaceMaterial type = 1;
+ int32 y = 2;
+}
diff --git a/proto/ChallengeDataNotify.proto b/proto/ChallengeDataNotify.proto
new file mode 100644
index 00000000..f68bf7e5
--- /dev/null
+++ b/proto/ChallengeDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 953
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChallengeDataNotify {
+ uint32 value = 8;
+ uint32 challenge_index = 2;
+ uint32 param_index = 9;
+}
diff --git a/proto/ChallengeRecord.proto b/proto/ChallengeRecord.proto
new file mode 100644
index 00000000..ec2979b7
--- /dev/null
+++ b/proto/ChallengeRecord.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChallengeRecord {
+ uint32 challenge_record_type = 14;
+ uint32 challenge_index = 15;
+ uint32 challenge_id = 1;
+ uint32 best_value = 8;
+}
diff --git a/proto/ChallengeRecordNotify.proto b/proto/ChallengeRecordNotify.proto
new file mode 100644
index 00000000..a73767d7
--- /dev/null
+++ b/proto/ChallengeRecordNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChallengeRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 993
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChallengeRecordNotify {
+ uint32 group_id = 2;
+ repeated ChallengeRecord challenge_record_list = 5;
+}
diff --git a/proto/ChangeAvatarReq.proto b/proto/ChangeAvatarReq.proto
new file mode 100644
index 00000000..226ec3ef
--- /dev/null
+++ b/proto/ChangeAvatarReq.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1640
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChangeAvatarReq {
+ Vector move_pos = 15;
+ uint32 skill_id = 2;
+ uint64 guid = 7;
+ bool is_move = 10;
+}
diff --git a/proto/ChangeAvatarRsp.proto b/proto/ChangeAvatarRsp.proto
new file mode 100644
index 00000000..b67f097d
--- /dev/null
+++ b/proto/ChangeAvatarRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1607
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChangeAvatarRsp {
+ uint32 skill_id = 3;
+ int32 retcode = 10;
+ uint64 cur_guid = 4;
+}
diff --git a/proto/ChangeEnergyReason.proto b/proto/ChangeEnergyReason.proto
new file mode 100644
index 00000000..870a0fb5
--- /dev/null
+++ b/proto/ChangeEnergyReason.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum ChangeEnergyReason {
+ CHANGE_ENERGY_REASON_NONE = 0;
+ CHANGE_ENERGY_REASON_SKILL_START = 1;
+}
diff --git a/proto/ChangeGameTimeReq.proto b/proto/ChangeGameTimeReq.proto
new file mode 100644
index 00000000..b2516d1d
--- /dev/null
+++ b/proto/ChangeGameTimeReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 173
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChangeGameTimeReq {
+ uint32 game_time = 6;
+ bool is_force_set = 11;
+ uint32 extra_days = 12;
+}
diff --git a/proto/ChangeGameTimeRsp.proto b/proto/ChangeGameTimeRsp.proto
new file mode 100644
index 00000000..7f10c16e
--- /dev/null
+++ b/proto/ChangeGameTimeRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 199
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChangeGameTimeRsp {
+ int32 retcode = 8;
+ uint32 extra_days = 5;
+ uint32 cur_game_time = 14;
+}
diff --git a/proto/ChangeHpReason.proto b/proto/ChangeHpReason.proto
new file mode 100644
index 00000000..3a1121fb
--- /dev/null
+++ b/proto/ChangeHpReason.proto
@@ -0,0 +1,53 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum ChangeHpReason {
+ CHANGE_HP_REASON_NONE = 0;
+ CHANGE_HP_REASON_SUB_AVATAR = 1;
+ CHANGE_HP_REASON_SUB_MONSTER = 2;
+ CHANGE_HP_REASON_SUB_GEAR = 3;
+ CHANGE_HP_REASON_SUB_ENVIR = 4;
+ CHANGE_HP_REASON_SUB_FALL = 5;
+ CHANGE_HP_REASON_SUB_DRAWN = 6;
+ CHANGE_HP_REASON_SUB_ABYSS = 7;
+ CHANGE_HP_REASON_SUB_ABILITY = 8;
+ CHANGE_HP_REASON_SUB_SUMMON = 9;
+ CHANGE_HP_REASON_SUB_SCRIPT = 10;
+ CHANGE_HP_REASON_SUB_GM = 11;
+ CHANGE_HP_REASON_SUB_KILL_SELF = 12;
+ CHANGE_HP_REASON_SUB_CLIMATE_COLD = 13;
+ CHANGE_HP_REASON_SUB_STORM_LIGHTNING = 14;
+ CHANGE_HP_REASON_SUB_KILL_SERVER_GADGET = 15;
+ CHANGE_HP_REASON_SUB_REPLACE = 16;
+ CHANGE_HP_REASON_SUB_PLAYER_LEAVE = 17;
+ CHANGE_HP_REASON_Unk2700_CIKCDBOJGDK = 18;
+ CHANGE_HP_REASON_Unk2700_HEKLBLFBJJK = 19;
+ CHANGE_HP_REASON_BY_LUA = 51;
+ CHANGE_HP_REASON_ADD_ABILITY = 101;
+ CHANGE_HP_REASON_ADD_ITEM = 102;
+ CHANGE_HP_REASON_ADD_REVIVE = 103;
+ CHANGE_HP_REASON_ADD_UPGRADE = 104;
+ CHANGE_HP_REASON_ADD_STATUE = 105;
+ CHANGE_HP_REASON_ADD_BACKGROUND = 106;
+ CHANGE_HP_REASON_ADD_GM = 107;
+ CHANGE_HP_REASON_ADD_TRIAL_AVATAR_ACTIVITY = 108;
+ CHANGE_HP_REASON_ADD_ROUGUELIKE_SPRING = 109;
+}
diff --git a/proto/ChangeMailStarNotify.proto b/proto/ChangeMailStarNotify.proto
new file mode 100644
index 00000000..36ec2819
--- /dev/null
+++ b/proto/ChangeMailStarNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1448
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChangeMailStarNotify {
+ bool is_star = 14;
+ repeated uint32 mail_id_list = 2;
+}
diff --git a/proto/ChangeMpTeamAvatarReq.proto b/proto/ChangeMpTeamAvatarReq.proto
new file mode 100644
index 00000000..48878967
--- /dev/null
+++ b/proto/ChangeMpTeamAvatarReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1708
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChangeMpTeamAvatarReq {
+ uint64 cur_avatar_guid = 4;
+ repeated uint64 avatar_guid_list = 8;
+}
diff --git a/proto/ChangeMpTeamAvatarRsp.proto b/proto/ChangeMpTeamAvatarRsp.proto
new file mode 100644
index 00000000..a4209d35
--- /dev/null
+++ b/proto/ChangeMpTeamAvatarRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1753
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChangeMpTeamAvatarRsp {
+ int32 retcode = 4;
+ repeated uint64 avatar_guid_list = 3;
+ uint64 cur_avatar_guid = 13;
+}
diff --git a/proto/ChangeServerGlobalValueNotify.proto b/proto/ChangeServerGlobalValueNotify.proto
new file mode 100644
index 00000000..2e67484a
--- /dev/null
+++ b/proto/ChangeServerGlobalValueNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 27
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChangeServerGlobalValueNotify {
+ uint32 entity_id = 4;
+}
diff --git a/proto/ChangeTeamNameReq.proto b/proto/ChangeTeamNameReq.proto
new file mode 100644
index 00000000..ff0482a5
--- /dev/null
+++ b/proto/ChangeTeamNameReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1603
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChangeTeamNameReq {
+ int32 team_id = 8;
+ string team_name = 9;
+}
diff --git a/proto/ChangeTeamNameRsp.proto b/proto/ChangeTeamNameRsp.proto
new file mode 100644
index 00000000..c57d9a21
--- /dev/null
+++ b/proto/ChangeTeamNameRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1666
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChangeTeamNameRsp {
+ int32 retcode = 11;
+ string team_name = 2;
+ int32 team_id = 4;
+}
diff --git a/proto/ChangeWorldToSingleModeNotify.proto b/proto/ChangeWorldToSingleModeNotify.proto
new file mode 100644
index 00000000..2e3f97cb
--- /dev/null
+++ b/proto/ChangeWorldToSingleModeNotify.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3006
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChangeWorldToSingleModeNotify {}
diff --git a/proto/ChangeWorldToSingleModeReq.proto b/proto/ChangeWorldToSingleModeReq.proto
new file mode 100644
index 00000000..71f576df
--- /dev/null
+++ b/proto/ChangeWorldToSingleModeReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3066
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChangeWorldToSingleModeReq {}
diff --git a/proto/ChangeWorldToSingleModeRsp.proto b/proto/ChangeWorldToSingleModeRsp.proto
new file mode 100644
index 00000000..19194490
--- /dev/null
+++ b/proto/ChangeWorldToSingleModeRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3282
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChangeWorldToSingleModeRsp {
+ uint32 quit_mp_valid_time = 15;
+ int32 retcode = 4;
+}
diff --git a/proto/ChannelerSlabActivityDetailInfo.proto b/proto/ChannelerSlabActivityDetailInfo.proto
new file mode 100644
index 00000000..fa399a78
--- /dev/null
+++ b/proto/ChannelerSlabActivityDetailInfo.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChannelerSlabBuffInfo.proto";
+import "ChannelerSlabChallengeStage.proto";
+import "ChannelerSlabLoopDungeonStageInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChannelerSlabActivityDetailInfo {
+ ChannelerSlabBuffInfo buff_info = 1;
+ ChannelerSlabLoopDungeonStageInfo loop_dungeon_stage_info = 7;
+ repeated ChannelerSlabChallengeStage stage_list = 15;
+ uint32 play_end_time = 3;
+}
diff --git a/proto/ChannelerSlabAssistInfo.proto b/proto/ChannelerSlabAssistInfo.proto
new file mode 100644
index 00000000..dbd0ee6c
--- /dev/null
+++ b/proto/ChannelerSlabAssistInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChannelerSlabAssistInfo {
+ uint32 uid = 10;
+ uint32 avatar_level = 12;
+ uint32 avatar_id = 6;
+}
diff --git a/proto/ChannelerSlabBuffInfo.proto b/proto/ChannelerSlabBuffInfo.proto
new file mode 100644
index 00000000..1445fa8b
--- /dev/null
+++ b/proto/ChannelerSlabBuffInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChannelerSlabAssistInfo.proto";
+import "ChannelerSlabBuffSchemeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChannelerSlabBuffInfo {
+ ChannelerSlabBuffSchemeInfo mp_buff_scheme_info = 6;
+ repeated uint32 buff_id_list = 8;
+ ChannelerSlabBuffSchemeInfo single_buff_scheme_info = 7;
+ repeated ChannelerSlabAssistInfo assist_info_list = 15;
+}
diff --git a/proto/ChannelerSlabBuffSchemeInfo.proto b/proto/ChannelerSlabBuffSchemeInfo.proto
new file mode 100644
index 00000000..1739e732
--- /dev/null
+++ b/proto/ChannelerSlabBuffSchemeInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChannelerSlabBuffSchemeInfo {
+ map slot_map = 9;
+ uint32 total_energy = 13;
+ uint32 self_energy = 15;
+}
diff --git a/proto/ChannelerSlabCamp.proto b/proto/ChannelerSlabCamp.proto
new file mode 100644
index 00000000..6356efe4
--- /dev/null
+++ b/proto/ChannelerSlabCamp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChannelerSlabCamp {
+ uint32 reward_id = 11;
+ Vector pos = 8;
+ uint32 buff_num = 7;
+ uint32 group_id = 3;
+}
diff --git a/proto/ChannelerSlabChallenge.proto b/proto/ChannelerSlabChallenge.proto
new file mode 100644
index 00000000..c35a88f9
--- /dev/null
+++ b/proto/ChannelerSlabChallenge.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChannelerSlabCamp.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChannelerSlabChallenge {
+ uint32 active_camp_index = 5;
+ repeated ChannelerSlabCamp camp_list = 14;
+}
diff --git a/proto/ChannelerSlabChallengeStage.proto b/proto/ChannelerSlabChallengeStage.proto
new file mode 100644
index 00000000..bf12e9f1
--- /dev/null
+++ b/proto/ChannelerSlabChallengeStage.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChannelerSlabChallenge.proto";
+import "ChannelerSlabOneofDungeon.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChannelerSlabChallengeStage {
+ uint32 open_time = 3;
+ repeated ChannelerSlabChallenge challenge_list = 14;
+ bool is_open = 7;
+ uint32 stage_id = 9;
+ ChannelerSlabOneofDungeon dungeon_info = 13;
+}
diff --git a/proto/ChannelerSlabCheckEnterLoopDungeonReq.proto b/proto/ChannelerSlabCheckEnterLoopDungeonReq.proto
new file mode 100644
index 00000000..32859225
--- /dev/null
+++ b/proto/ChannelerSlabCheckEnterLoopDungeonReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8745
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChannelerSlabCheckEnterLoopDungeonReq {}
diff --git a/proto/ChannelerSlabCheckEnterLoopDungeonRsp.proto b/proto/ChannelerSlabCheckEnterLoopDungeonRsp.proto
new file mode 100644
index 00000000..badda6ba
--- /dev/null
+++ b/proto/ChannelerSlabCheckEnterLoopDungeonRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8452
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChannelerSlabCheckEnterLoopDungeonRsp {
+ int32 retcode = 10;
+}
diff --git a/proto/ChannelerSlabEnterLoopDungeonReq.proto b/proto/ChannelerSlabEnterLoopDungeonReq.proto
new file mode 100644
index 00000000..cc4a5e2f
--- /dev/null
+++ b/proto/ChannelerSlabEnterLoopDungeonReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8869
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChannelerSlabEnterLoopDungeonReq {
+ uint32 point_id = 9;
+ uint32 dungeon_index = 10;
+ repeated uint32 condition_id_list = 5;
+ uint32 difficulty_id = 12;
+}
diff --git a/proto/ChannelerSlabEnterLoopDungeonRsp.proto b/proto/ChannelerSlabEnterLoopDungeonRsp.proto
new file mode 100644
index 00000000..d327a522
--- /dev/null
+++ b/proto/ChannelerSlabEnterLoopDungeonRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8081
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChannelerSlabEnterLoopDungeonRsp {
+ int32 retcode = 9;
+ uint32 point_id = 12;
+ repeated uint32 condition_id_list = 6;
+ uint32 dungeon_index = 15;
+ uint32 difficulty_id = 3;
+}
diff --git a/proto/ChannelerSlabLoopDungeonChallengeInfoNotify.proto b/proto/ChannelerSlabLoopDungeonChallengeInfoNotify.proto
new file mode 100644
index 00000000..bfd370a4
--- /dev/null
+++ b/proto/ChannelerSlabLoopDungeonChallengeInfoNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8224
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChannelerSlabLoopDungeonChallengeInfoNotify {
+ uint32 dungeon_index = 12;
+ uint32 challenge_score = 4;
+ uint32 difficulty_id = 2;
+ repeated uint32 condition_id_list = 3;
+ repeated uint32 scheme_buff_id_list = 6;
+}
diff --git a/proto/ChannelerSlabLoopDungeonInfo.proto b/proto/ChannelerSlabLoopDungeonInfo.proto
new file mode 100644
index 00000000..b5926045
--- /dev/null
+++ b/proto/ChannelerSlabLoopDungeonInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChannelerSlabLoopDungeonInfo {
+ uint32 score = 7;
+ uint32 dungeon_index = 4;
+ uint32 open_time = 12;
+ bool is_first_pass_reward_taken = 9;
+ repeated uint32 last_condition_id_list = 14;
+ bool is_open = 1;
+}
diff --git a/proto/ChannelerSlabLoopDungeonResultInfo.proto b/proto/ChannelerSlabLoopDungeonResultInfo.proto
new file mode 100644
index 00000000..948e358b
--- /dev/null
+++ b/proto/ChannelerSlabLoopDungeonResultInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChannelerSlabLoopDungeonResultInfo {
+ bool is_success = 11;
+ uint32 challenge_max_score = 8;
+ uint32 dungeon_index = 7;
+ bool is_in_time_limit = 10;
+ uint32 challenge_score = 12;
+}
diff --git a/proto/ChannelerSlabLoopDungeonSelectConditionReq.proto b/proto/ChannelerSlabLoopDungeonSelectConditionReq.proto
new file mode 100644
index 00000000..1cb09e2d
--- /dev/null
+++ b/proto/ChannelerSlabLoopDungeonSelectConditionReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8503
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChannelerSlabLoopDungeonSelectConditionReq {
+ uint32 dungeon_index = 4;
+ repeated uint32 condition_id_list = 3;
+ uint32 difficulty_id = 8;
+}
diff --git a/proto/ChannelerSlabLoopDungeonSelectConditionRsp.proto b/proto/ChannelerSlabLoopDungeonSelectConditionRsp.proto
new file mode 100644
index 00000000..451b51ae
--- /dev/null
+++ b/proto/ChannelerSlabLoopDungeonSelectConditionRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8509
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChannelerSlabLoopDungeonSelectConditionRsp {
+ int32 retcode = 9;
+ uint32 dungeon_index = 5;
+ repeated uint32 condition_id_list = 13;
+ uint32 difficulty_id = 14;
+}
diff --git a/proto/ChannelerSlabLoopDungeonStageInfo.proto b/proto/ChannelerSlabLoopDungeonStageInfo.proto
new file mode 100644
index 00000000..5c30e8cc
--- /dev/null
+++ b/proto/ChannelerSlabLoopDungeonStageInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChannelerSlabLoopDungeonInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChannelerSlabLoopDungeonStageInfo {
+ repeated ChannelerSlabLoopDungeonInfo dungeon_info_list = 15;
+ repeated uint32 taken_reward_index_list = 5;
+ bool is_open = 11;
+ uint32 last_difficulty_id = 6;
+ uint32 open_time = 3;
+}
diff --git a/proto/ChannelerSlabLoopDungeonTakeFirstPassRewardReq.proto b/proto/ChannelerSlabLoopDungeonTakeFirstPassRewardReq.proto
new file mode 100644
index 00000000..c58ad118
--- /dev/null
+++ b/proto/ChannelerSlabLoopDungeonTakeFirstPassRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8589
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChannelerSlabLoopDungeonTakeFirstPassRewardReq {
+ uint32 dungeon_index = 10;
+}
diff --git a/proto/ChannelerSlabLoopDungeonTakeFirstPassRewardRsp.proto b/proto/ChannelerSlabLoopDungeonTakeFirstPassRewardRsp.proto
new file mode 100644
index 00000000..788ff20e
--- /dev/null
+++ b/proto/ChannelerSlabLoopDungeonTakeFirstPassRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8539
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChannelerSlabLoopDungeonTakeFirstPassRewardRsp {
+ int32 retcode = 10;
+ uint32 dungeon_index = 8;
+}
diff --git a/proto/ChannelerSlabLoopDungeonTakeScoreRewardReq.proto b/proto/ChannelerSlabLoopDungeonTakeScoreRewardReq.proto
new file mode 100644
index 00000000..ac7d4047
--- /dev/null
+++ b/proto/ChannelerSlabLoopDungeonTakeScoreRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8684
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChannelerSlabLoopDungeonTakeScoreRewardReq {
+ uint32 reward_index = 8;
+}
diff --git a/proto/ChannelerSlabLoopDungeonTakeScoreRewardRsp.proto b/proto/ChannelerSlabLoopDungeonTakeScoreRewardRsp.proto
new file mode 100644
index 00000000..f2ae4264
--- /dev/null
+++ b/proto/ChannelerSlabLoopDungeonTakeScoreRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8433
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChannelerSlabLoopDungeonTakeScoreRewardRsp {
+ uint32 reward_index = 12;
+ int32 retcode = 5;
+}
diff --git a/proto/ChannelerSlabOneOffDungeonInfoNotify.proto b/proto/ChannelerSlabOneOffDungeonInfoNotify.proto
new file mode 100644
index 00000000..3225e330
--- /dev/null
+++ b/proto/ChannelerSlabOneOffDungeonInfoNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8729
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChannelerSlabOneOffDungeonInfoNotify {
+ repeated uint32 scheme_buff_id_list = 6;
+}
diff --git a/proto/ChannelerSlabOneOffDungeonInfoReq.proto b/proto/ChannelerSlabOneOffDungeonInfoReq.proto
new file mode 100644
index 00000000..3f92f3d9
--- /dev/null
+++ b/proto/ChannelerSlabOneOffDungeonInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8409
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChannelerSlabOneOffDungeonInfoReq {}
diff --git a/proto/ChannelerSlabOneOffDungeonInfoRsp.proto b/proto/ChannelerSlabOneOffDungeonInfoRsp.proto
new file mode 100644
index 00000000..fa301395
--- /dev/null
+++ b/proto/ChannelerSlabOneOffDungeonInfoRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8268
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChannelerSlabOneOffDungeonInfoRsp {
+ repeated uint32 scheme_buff_id_list = 3;
+ int32 retcode = 15;
+}
diff --git a/proto/ChannelerSlabOneofDungeon.proto b/proto/ChannelerSlabOneofDungeon.proto
new file mode 100644
index 00000000..748f300d
--- /dev/null
+++ b/proto/ChannelerSlabOneofDungeon.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChannelerSlabOneofDungeon {
+ bool is_done = 8;
+ uint32 dungeon_id = 12;
+ uint32 reward_id = 13;
+}
diff --git a/proto/ChannelerSlabSaveAssistInfoReq.proto b/proto/ChannelerSlabSaveAssistInfoReq.proto
new file mode 100644
index 00000000..12a42621
--- /dev/null
+++ b/proto/ChannelerSlabSaveAssistInfoReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChannelerSlabAssistInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8416
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChannelerSlabSaveAssistInfoReq {
+ repeated ChannelerSlabAssistInfo assist_info_list = 8;
+}
diff --git a/proto/ChannelerSlabSaveAssistInfoRsp.proto b/proto/ChannelerSlabSaveAssistInfoRsp.proto
new file mode 100644
index 00000000..35cdf025
--- /dev/null
+++ b/proto/ChannelerSlabSaveAssistInfoRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChannelerSlabAssistInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8932
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChannelerSlabSaveAssistInfoRsp {
+ repeated ChannelerSlabAssistInfo assist_info_list = 8;
+ int32 retcode = 11;
+}
diff --git a/proto/ChannelerSlabStageActiveChallengeIndexNotify.proto b/proto/ChannelerSlabStageActiveChallengeIndexNotify.proto
new file mode 100644
index 00000000..deaf0e96
--- /dev/null
+++ b/proto/ChannelerSlabStageActiveChallengeIndexNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8734
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChannelerSlabStageActiveChallengeIndexNotify {
+ uint32 stage_id = 15;
+ uint32 challenge_index = 12;
+ uint32 active_camp_index = 6;
+}
diff --git a/proto/ChannelerSlabStageOneofDungeonNotify.proto b/proto/ChannelerSlabStageOneofDungeonNotify.proto
new file mode 100644
index 00000000..145934ea
--- /dev/null
+++ b/proto/ChannelerSlabStageOneofDungeonNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8203
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChannelerSlabStageOneofDungeonNotify {
+ uint32 stage_id = 2;
+ bool is_done = 8;
+}
diff --git a/proto/ChannelerSlabTakeoffBuffReq.proto b/proto/ChannelerSlabTakeoffBuffReq.proto
new file mode 100644
index 00000000..1abca625
--- /dev/null
+++ b/proto/ChannelerSlabTakeoffBuffReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8516
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChannelerSlabTakeoffBuffReq {
+ bool is_mp = 10;
+ uint32 slot_id = 12;
+ uint32 buff_id = 9;
+}
diff --git a/proto/ChannelerSlabTakeoffBuffRsp.proto b/proto/ChannelerSlabTakeoffBuffRsp.proto
new file mode 100644
index 00000000..85b8bb36
--- /dev/null
+++ b/proto/ChannelerSlabTakeoffBuffRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8237
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChannelerSlabTakeoffBuffRsp {
+ int32 retcode = 3;
+ bool is_mp = 13;
+ uint32 buff_id = 14;
+ uint32 slot_id = 8;
+}
diff --git a/proto/ChannelerSlabWearBuffReq.proto b/proto/ChannelerSlabWearBuffReq.proto
new file mode 100644
index 00000000..c9c0441a
--- /dev/null
+++ b/proto/ChannelerSlabWearBuffReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8107
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChannelerSlabWearBuffReq {
+ uint32 buff_id = 3;
+ bool is_mp = 5;
+ uint32 slot_id = 13;
+}
diff --git a/proto/ChannelerSlabWearBuffRsp.proto b/proto/ChannelerSlabWearBuffRsp.proto
new file mode 100644
index 00000000..a8bb9d1f
--- /dev/null
+++ b/proto/ChannelerSlabWearBuffRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8600
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChannelerSlabWearBuffRsp {
+ uint32 buff_id = 15;
+ int32 retcode = 1;
+ bool is_mp = 9;
+ uint32 slot_id = 8;
+}
diff --git a/proto/ChapterState.proto b/proto/ChapterState.proto
new file mode 100644
index 00000000..858cc3bc
--- /dev/null
+++ b/proto/ChapterState.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum ChapterState {
+ CHAPTER_STATE_INVALID = 0;
+ CHAPTER_STATE_UNABLE_TO_BEGIN = 1;
+ CHAPTER_STATE_BEGIN = 2;
+ CHAPTER_STATE_END = 3;
+}
diff --git a/proto/ChapterStateNotify.proto b/proto/ChapterStateNotify.proto
new file mode 100644
index 00000000..aeb04530
--- /dev/null
+++ b/proto/ChapterStateNotify.proto
@@ -0,0 +1,42 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChapterState.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 405
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChapterStateNotify {
+ ChapterState chapter_state = 9;
+ NeedPlayerLevel need_player_level = 10;
+ NeedBeginTime need_begin_time = 1;
+ uint32 chapter_id = 2;
+
+ message NeedPlayerLevel {
+ bool is_limit = 2;
+ uint32 config_need_player_level = 11;
+ }
+
+ message NeedBeginTime {
+ uint32 config_need_begin_time = 3;
+ bool is_limit = 7;
+ }
+}
diff --git a/proto/ChatChannelDataNotify.proto b/proto/ChatChannelDataNotify.proto
new file mode 100644
index 00000000..dac718f9
--- /dev/null
+++ b/proto/ChatChannelDataNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4998
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChatChannelDataNotify {
+ repeated uint32 channel_list = 3;
+}
diff --git a/proto/ChatChannelUpdateNotify.proto b/proto/ChatChannelUpdateNotify.proto
new file mode 100644
index 00000000..96a33109
--- /dev/null
+++ b/proto/ChatChannelUpdateNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5025
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChatChannelUpdateNotify {
+ uint32 channel_id = 3;
+ bool is_create = 15;
+}
diff --git a/proto/ChatEmojiCollectionData.proto b/proto/ChatEmojiCollectionData.proto
new file mode 100644
index 00000000..ed8877fc
--- /dev/null
+++ b/proto/ChatEmojiCollectionData.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChatEmojiCollectionData {
+ repeated uint32 emoji_id_list = 1;
+}
diff --git a/proto/ChatHistoryNotify.proto b/proto/ChatHistoryNotify.proto
new file mode 100644
index 00000000..da9b7306
--- /dev/null
+++ b/proto/ChatHistoryNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChatInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3496
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChatHistoryNotify {
+ repeated ChatInfo chat_info = 9;
+ uint32 channel_id = 12;
+}
diff --git a/proto/ChatInfo.proto b/proto/ChatInfo.proto
new file mode 100644
index 00000000..6fd1e6a7
--- /dev/null
+++ b/proto/ChatInfo.proto
@@ -0,0 +1,43 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChatInfo {
+ uint32 time = 13;
+ uint32 sequence = 10;
+ uint32 to_uid = 7;
+ uint32 uid = 15;
+ bool is_read = 5;
+ oneof content {
+ string text = 1946;
+ uint32 icon = 914;
+ SystemHint system_hint = 1753;
+ }
+
+ enum SystemHintType {
+ SYSTEM_HINT_TYPE_CHAT_NONE = 0;
+ SYSTEM_HINT_TYPE_CHAT_ENTER_WORLD = 1;
+ SYSTEM_HINT_TYPE_CHAT_LEAVE_WORLD = 2;
+ }
+
+ message SystemHint {
+ uint32 type = 14;
+ }
+}
diff --git a/proto/CheckAddItemExceedLimitNotify.proto b/proto/CheckAddItemExceedLimitNotify.proto
new file mode 100644
index 00000000..48f8a176
--- /dev/null
+++ b/proto/CheckAddItemExceedLimitNotify.proto
@@ -0,0 +1,38 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 692
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CheckAddItemExceedLimitNotify {
+ bool is_drop = 5;
+ ItemExceedLimitMsgType msg_type = 4;
+ repeated uint32 exceeded_item_type_list = 10;
+ repeated uint32 exceeded_item_list = 12;
+ uint32 reason = 14;
+
+ enum ItemExceedLimitMsgType {
+ ITEM_EXCEED_LIMIT_MSG_TYPE_DEFAULT = 0;
+ ITEM_EXCEED_LIMIT_MSG_TYPE_TEXT = 1;
+ ITEM_EXCEED_LIMIT_MSG_TYPE_DIALOG = 2;
+ ITEM_EXCEED_LIMIT_MSG_TYPE_Unk2700_BONLGEEEBBF = 3;
+ }
+}
diff --git a/proto/CheckSegmentCRCNotify.proto b/proto/CheckSegmentCRCNotify.proto
new file mode 100644
index 00000000..517b42b2
--- /dev/null
+++ b/proto/CheckSegmentCRCNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SegmentInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 39
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CheckSegmentCRCNotify {
+ repeated SegmentInfo info_list = 6;
+}
diff --git a/proto/CheckSegmentCRCReq.proto b/proto/CheckSegmentCRCReq.proto
new file mode 100644
index 00000000..5941d339
--- /dev/null
+++ b/proto/CheckSegmentCRCReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SegmentCRCInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 53
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message CheckSegmentCRCReq {
+ repeated SegmentCRCInfo info_list = 1;
+}
diff --git a/proto/ChessActivityDetailInfo.proto b/proto/ChessActivityDetailInfo.proto
new file mode 100644
index 00000000..3539704a
--- /dev/null
+++ b/proto/ChessActivityDetailInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChessActivityDetailInfo {
+ uint32 level = 4;
+ bool is_teach_dungeon_finished = 9;
+ uint32 content_close_time = 14;
+ uint32 obtained_exp = 8;
+ bool is_content_closed = 5;
+ uint32 available_exp = 2;
+ uint32 exp = 13;
+ repeated uint32 finished_map_id_list = 1;
+ uint32 punish_over_time = 3;
+}
diff --git a/proto/ChessCardInfo.proto b/proto/ChessCardInfo.proto
new file mode 100644
index 00000000..40260baa
--- /dev/null
+++ b/proto/ChessCardInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChessCardInfo {
+ uint32 effect_stack = 12;
+ uint32 card_id = 11;
+}
diff --git a/proto/ChessEntranceDetailInfo.proto b/proto/ChessEntranceDetailInfo.proto
new file mode 100644
index 00000000..b653558c
--- /dev/null
+++ b/proto/ChessEntranceDetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChessEntranceInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChessEntranceDetailInfo {
+ repeated ChessEntranceInfo info_list = 4;
+}
diff --git a/proto/ChessEntranceInfo.proto b/proto/ChessEntranceInfo.proto
new file mode 100644
index 00000000..e38e4a4a
--- /dev/null
+++ b/proto/ChessEntranceInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChessMonsterInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChessEntranceInfo {
+ repeated ChessMonsterInfo monster_info_list = 14;
+ uint32 entrance_index = 15;
+ uint32 entrance_point_id = 8;
+}
diff --git a/proto/ChessEscapedMonstersNotify.proto b/proto/ChessEscapedMonstersNotify.proto
new file mode 100644
index 00000000..c89e4193
--- /dev/null
+++ b/proto/ChessEscapedMonstersNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5314
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChessEscapedMonstersNotify {
+ uint32 escaped_monsters = 14;
+}
diff --git a/proto/ChessLeftMonstersNotify.proto b/proto/ChessLeftMonstersNotify.proto
new file mode 100644
index 00000000..fd3d00b6
--- /dev/null
+++ b/proto/ChessLeftMonstersNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5360
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChessLeftMonstersNotify {
+ uint32 left_monsters = 6;
+}
diff --git a/proto/ChessManualRefreshCardsReq.proto b/proto/ChessManualRefreshCardsReq.proto
new file mode 100644
index 00000000..7a2faa76
--- /dev/null
+++ b/proto/ChessManualRefreshCardsReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5389
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChessManualRefreshCardsReq {}
diff --git a/proto/ChessManualRefreshCardsRsp.proto b/proto/ChessManualRefreshCardsRsp.proto
new file mode 100644
index 00000000..5a74e5c6
--- /dev/null
+++ b/proto/ChessManualRefreshCardsRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5359
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChessManualRefreshCardsRsp {
+ int32 retcode = 12;
+}
diff --git a/proto/ChessMonsterInfo.proto b/proto/ChessMonsterInfo.proto
new file mode 100644
index 00000000..ad643e55
--- /dev/null
+++ b/proto/ChessMonsterInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChessMonsterInfo {
+ uint32 monster_id = 12;
+ uint32 level = 2;
+ repeated uint32 affix_list = 13;
+}
diff --git a/proto/ChessMysteryInfo.proto b/proto/ChessMysteryInfo.proto
new file mode 100644
index 00000000..2b843af5
--- /dev/null
+++ b/proto/ChessMysteryInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChessEntranceDetailInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChessMysteryInfo {
+ map entrance_point_map = 13;
+ repeated uint32 exit_point_id_list = 3;
+ map detail_info_map = 5;
+}
diff --git a/proto/ChessNormalCardInfo.proto b/proto/ChessNormalCardInfo.proto
new file mode 100644
index 00000000..d326f26b
--- /dev/null
+++ b/proto/ChessNormalCardInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChessNormalCardInfo {
+ uint32 card_id = 2;
+ uint32 cost_points = 15;
+ bool is_attach_curse = 6;
+}
diff --git a/proto/ChessPickCardNotify.proto b/proto/ChessPickCardNotify.proto
new file mode 100644
index 00000000..1f9fd873
--- /dev/null
+++ b/proto/ChessPickCardNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChessNormalCardInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5380
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChessPickCardNotify {
+ uint32 curse_card_id = 13;
+ ChessNormalCardInfo normal_card_info = 1;
+}
diff --git a/proto/ChessPickCardReq.proto b/proto/ChessPickCardReq.proto
new file mode 100644
index 00000000..301e1715
--- /dev/null
+++ b/proto/ChessPickCardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5333
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChessPickCardReq {
+ uint32 card_id = 1;
+ uint32 card_index = 4;
+}
diff --git a/proto/ChessPickCardRsp.proto b/proto/ChessPickCardRsp.proto
new file mode 100644
index 00000000..822bf568
--- /dev/null
+++ b/proto/ChessPickCardRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5384
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChessPickCardRsp {
+ uint32 card_index = 11;
+ uint32 card_id = 1;
+ int32 retcode = 4;
+}
diff --git a/proto/ChessPlayerInfo.proto b/proto/ChessPlayerInfo.proto
new file mode 100644
index 00000000..aac619d9
--- /dev/null
+++ b/proto/ChessPlayerInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChessNormalCardInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChessPlayerInfo {
+ uint32 uid = 5;
+ uint32 free_refresh_limit = 10;
+ repeated ChessNormalCardInfo candidate_card_info_list = 3;
+ uint32 building_points = 12;
+ uint32 candidate_index = 6;
+ uint32 free_refresh_count = 13;
+ uint32 refresh_cost = 7;
+}
diff --git a/proto/ChessPlayerInfoNotify.proto b/proto/ChessPlayerInfoNotify.proto
new file mode 100644
index 00000000..0141fb9a
--- /dev/null
+++ b/proto/ChessPlayerInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChessPlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5332
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChessPlayerInfoNotify {
+ ChessPlayerInfo player_info = 10;
+}
diff --git a/proto/ChessSelectedCardsNotify.proto b/proto/ChessSelectedCardsNotify.proto
new file mode 100644
index 00000000..34910098
--- /dev/null
+++ b/proto/ChessSelectedCardsNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChessCardInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5392
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChessSelectedCardsNotify {
+ repeated ChessCardInfo selected_card_info_list = 4;
+}
diff --git a/proto/ChildQuest.proto b/proto/ChildQuest.proto
new file mode 100644
index 00000000..e4180de6
--- /dev/null
+++ b/proto/ChildQuest.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ChildQuest {
+ uint32 quest_config_id = 8;
+ uint32 state = 4;
+ uint32 quest_id = 15;
+}
diff --git a/proto/ChooseCurAvatarTeamReq.proto b/proto/ChooseCurAvatarTeamReq.proto
new file mode 100644
index 00000000..ce2592ec
--- /dev/null
+++ b/proto/ChooseCurAvatarTeamReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1796
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ChooseCurAvatarTeamReq {
+ uint32 team_id = 9;
+}
diff --git a/proto/ChooseCurAvatarTeamRsp.proto b/proto/ChooseCurAvatarTeamRsp.proto
new file mode 100644
index 00000000..c617489d
--- /dev/null
+++ b/proto/ChooseCurAvatarTeamRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1661
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ChooseCurAvatarTeamRsp {
+ uint32 cur_team_id = 1;
+ int32 retcode = 14;
+}
diff --git a/proto/CityInfo.proto b/proto/CityInfo.proto
new file mode 100644
index 00000000..17ccacf2
--- /dev/null
+++ b/proto/CityInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CityInfo {
+ uint32 city_id = 15;
+ uint32 crystal_num = 3;
+ uint32 level = 4;
+}
diff --git a/proto/CityReputationDataNotify.proto b/proto/CityReputationDataNotify.proto
new file mode 100644
index 00000000..7004b512
--- /dev/null
+++ b/proto/CityReputationDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CityReputationSimpleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2805
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CityReputationDataNotify {
+ repeated CityReputationSimpleInfo simple_info_list = 7;
+}
diff --git a/proto/CityReputationExploreInfo.proto b/proto/CityReputationExploreInfo.proto
new file mode 100644
index 00000000..3af9b83a
--- /dev/null
+++ b/proto/CityReputationExploreInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CityReputationExploreInfo {
+ repeated uint32 taken_explore_reward_list = 2;
+ uint32 explore_percent = 14;
+ bool is_open = 15;
+}
diff --git a/proto/CityReputationHuntInfo.proto b/proto/CityReputationHuntInfo.proto
new file mode 100644
index 00000000..6c223ef2
--- /dev/null
+++ b/proto/CityReputationHuntInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CityReputationHuntInfo {
+ bool is_open = 6;
+ uint32 cur_week_finish_num = 15;
+ bool has_reward = 5;
+}
diff --git a/proto/CityReputationInfo.proto b/proto/CityReputationInfo.proto
new file mode 100644
index 00000000..ab583b9a
--- /dev/null
+++ b/proto/CityReputationInfo.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CityReputationExploreInfo.proto";
+import "CityReputationHuntInfo.proto";
+import "CityReputationQuestInfo.proto";
+import "CityReputationRequestInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CityReputationInfo {
+ uint32 level = 4;
+ uint32 next_refresh_time = 3;
+ CityReputationHuntInfo hunt_info = 11;
+ repeated uint32 taken_level_reward_list = 2;
+ uint32 total_accept_request_num = 6;
+ CityReputationRequestInfo request_info = 5;
+ CityReputationQuestInfo quest_info = 9;
+ uint32 exp = 13;
+ CityReputationExploreInfo explore_info = 10;
+}
diff --git a/proto/CityReputationLevelupNotify.proto b/proto/CityReputationLevelupNotify.proto
new file mode 100644
index 00000000..f1032176
--- /dev/null
+++ b/proto/CityReputationLevelupNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2807
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CityReputationLevelupNotify {
+ uint32 city_id = 12;
+ uint32 level = 15;
+}
diff --git a/proto/CityReputationQuestInfo.proto b/proto/CityReputationQuestInfo.proto
new file mode 100644
index 00000000..04e63d02
--- /dev/null
+++ b/proto/CityReputationQuestInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CityReputationQuestInfo {
+ bool is_open = 2;
+ repeated uint32 taken_parent_quest_reward_list = 12;
+ repeated uint32 finished_parent_quest_list = 7;
+}
diff --git a/proto/CityReputationRequestInfo.proto b/proto/CityReputationRequestInfo.proto
new file mode 100644
index 00000000..d6f23de9
--- /dev/null
+++ b/proto/CityReputationRequestInfo.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CityReputationRequestInfo {
+ bool is_open = 2;
+ repeated RequestInfo request_info_list = 1;
+
+ message RequestInfo {
+ uint32 request_id = 3;
+ uint32 quest_id = 9;
+ bool is_taken_reward = 6;
+ }
+}
diff --git a/proto/CityReputationSimpleInfo.proto b/proto/CityReputationSimpleInfo.proto
new file mode 100644
index 00000000..d803264f
--- /dev/null
+++ b/proto/CityReputationSimpleInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CityReputationSimpleInfo {
+ uint32 level = 15;
+ uint32 city_id = 9;
+}
diff --git a/proto/ClearRoguelikeCurseNotify.proto b/proto/ClearRoguelikeCurseNotify.proto
new file mode 100644
index 00000000..77525620
--- /dev/null
+++ b/proto/ClearRoguelikeCurseNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8207
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ClearRoguelikeCurseNotify {
+ map clear_curse_map = 10;
+ bool is_clear_all = 11;
+ uint32 card_id = 8;
+ bool is_curse_all_clear = 1;
+}
diff --git a/proto/ClientAIStateNotify.proto b/proto/ClientAIStateNotify.proto
new file mode 100644
index 00000000..4243d5dd
--- /dev/null
+++ b/proto/ClientAIStateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1181
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ClientAIStateNotify {
+ uint32 entity_id = 9;
+ uint32 cur_tactic = 15;
+}
diff --git a/proto/ClientAbilitiesInitFinishCombineNotify.proto b/proto/ClientAbilitiesInitFinishCombineNotify.proto
new file mode 100644
index 00000000..c8531b6b
--- /dev/null
+++ b/proto/ClientAbilitiesInitFinishCombineNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EntityAbilityInvokeEntry.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1103
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ClientAbilitiesInitFinishCombineNotify {
+ repeated EntityAbilityInvokeEntry entity_invoke_list = 1;
+}
diff --git a/proto/ClientAbilityChangeNotify.proto b/proto/ClientAbilityChangeNotify.proto
new file mode 100644
index 00000000..c6c048ff
--- /dev/null
+++ b/proto/ClientAbilityChangeNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityInvokeEntry.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1175
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ClientAbilityChangeNotify {
+ bool Unk2200_FNAFDMAPLHP = 9;
+ uint32 entity_id = 2;
+ repeated AbilityInvokeEntry invokes = 3;
+}
diff --git a/proto/ClientAbilityInitBeginNotify.proto b/proto/ClientAbilityInitBeginNotify.proto
new file mode 100644
index 00000000..c14b6fa4
--- /dev/null
+++ b/proto/ClientAbilityInitBeginNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1112
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ClientAbilityInitBeginNotify {
+ uint32 entity_id = 1;
+}
diff --git a/proto/ClientAbilityInitFinishNotify.proto b/proto/ClientAbilityInitFinishNotify.proto
new file mode 100644
index 00000000..d1a29983
--- /dev/null
+++ b/proto/ClientAbilityInitFinishNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityInvokeEntry.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1135
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ClientAbilityInitFinishNotify {
+ repeated AbilityInvokeEntry invokes = 14;
+ uint32 entity_id = 11;
+}
diff --git a/proto/ClientBulletCreateNotify.proto b/proto/ClientBulletCreateNotify.proto
new file mode 100644
index 00000000..9e66f33b
--- /dev/null
+++ b/proto/ClientBulletCreateNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ClientBulletCreateNotify {
+ uint32 param = 6;
+}
diff --git a/proto/ClientCollectorData.proto b/proto/ClientCollectorData.proto
new file mode 100644
index 00000000..e81eeef2
--- /dev/null
+++ b/proto/ClientCollectorData.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ClientCollectorData {
+ uint32 material_id = 10;
+ uint32 max_points = 8;
+ uint32 curr_points = 13;
+}
diff --git a/proto/ClientCollectorDataNotify.proto b/proto/ClientCollectorDataNotify.proto
new file mode 100644
index 00000000..63ef4b20
--- /dev/null
+++ b/proto/ClientCollectorDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ClientCollectorData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4264
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ClientCollectorDataNotify {
+ repeated ClientCollectorData client_collector_data_list = 13;
+}
diff --git a/proto/ClientGadgetInfo.proto b/proto/ClientGadgetInfo.proto
new file mode 100644
index 00000000..3edd342c
--- /dev/null
+++ b/proto/ClientGadgetInfo.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ClientGadgetInfo {
+ uint32 camp_id = 1;
+ uint32 camp_type = 2;
+ uint64 guid = 3;
+ uint32 owner_entity_id = 4;
+ uint32 target_entity_id = 5;
+ bool async_load = 6;
+ bool Unk2700_JBOPENAGGAF = 7;
+ repeated uint32 Unk2700_BELOIHEIEAN = 8;
+}
diff --git a/proto/ClientHashDebugNotify.proto b/proto/ClientHashDebugNotify.proto
new file mode 100644
index 00000000..3f1ebf8e
--- /dev/null
+++ b/proto/ClientHashDebugNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3086
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ClientHashDebugNotify {
+ uint32 job_id = 12;
+}
diff --git a/proto/ClientLoadingCostumeVerificationNotify.proto b/proto/ClientLoadingCostumeVerificationNotify.proto
new file mode 100644
index 00000000..c6161c10
--- /dev/null
+++ b/proto/ClientLoadingCostumeVerificationNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3487
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ClientLoadingCostumeVerificationNotify {
+ uint32 costume_id = 9;
+ uint64 prefab_hash = 2;
+ uint64 guid = 14;
+}
diff --git a/proto/ClientLockGameTimeNotify.proto b/proto/ClientLockGameTimeNotify.proto
new file mode 100644
index 00000000..616e148e
--- /dev/null
+++ b/proto/ClientLockGameTimeNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 114
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ClientLockGameTimeNotify {
+ bool is_lock = 5;
+}
diff --git a/proto/ClientLogBodyLogin.proto b/proto/ClientLogBodyLogin.proto
new file mode 100644
index 00000000..10b5cd7d
--- /dev/null
+++ b/proto/ClientLogBodyLogin.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ClientLogBodyLogin {
+ string action_type = 1;
+ string action_result = 2;
+ uint32 action_time = 3;
+ string xg = 4;
+ uint32 signal_level = 5;
+ string dns = 6;
+}
diff --git a/proto/ClientLogBodyPing.proto b/proto/ClientLogBodyPing.proto
new file mode 100644
index 00000000..9739ed0f
--- /dev/null
+++ b/proto/ClientLogBodyPing.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ClientLogBodyPing {
+ string xg = 1;
+ uint32 signal_level = 2;
+ uint32 ping = 3;
+ string servertype = 4;
+ string serverip = 5;
+ string serverport = 6;
+ uint32 pcount = 7;
+ uint32 plost = 8;
+ string dns = 9;
+}
diff --git a/proto/ClientLogHead.proto b/proto/ClientLogHead.proto
new file mode 100644
index 00000000..af4eb04c
--- /dev/null
+++ b/proto/ClientLogHead.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ClientLogHead {
+ string event_time = 1;
+ string log_serial_number = 2;
+ uint32 action_id = 3;
+ string action_name = 4;
+ string upload_ip = 5;
+ string product_id = 6;
+ string channel_id = 7;
+ string region_name = 8;
+ string game_version = 9;
+ string device_type = 10;
+ string device_uuid = 11;
+ string mac_addr = 12;
+ string account_name = 13;
+ string account_uuid = 14;
+}
diff --git a/proto/ClientMassiveEntity.proto b/proto/ClientMassiveEntity.proto
new file mode 100644
index 00000000..8fe306a8
--- /dev/null
+++ b/proto/ClientMassiveEntity.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MassiveBoxInfo.proto";
+import "MassiveGrassInfo.proto";
+import "MassiveWaterInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ClientMassiveEntity {
+ uint32 entity_type = 1;
+ uint32 config_id = 2;
+ int64 obj_id = 3;
+ oneof entity_info {
+ MassiveWaterInfo water_info = 4;
+ MassiveGrassInfo grass_info = 5;
+ MassiveBoxInfo box_info = 6;
+ }
+}
diff --git a/proto/ClientNewMailNotify.proto b/proto/ClientNewMailNotify.proto
new file mode 100644
index 00000000..104344ab
--- /dev/null
+++ b/proto/ClientNewMailNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1499
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ClientNewMailNotify {
+ uint32 not_read_num = 7;
+ uint32 not_got_attachment_num = 2;
+}
diff --git a/proto/ClientPauseNotify.proto b/proto/ClientPauseNotify.proto
new file mode 100644
index 00000000..89ce540a
--- /dev/null
+++ b/proto/ClientPauseNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 260
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ClientPauseNotify {
+ bool is_open = 1;
+}
diff --git a/proto/ClientReconnectNotify.proto b/proto/ClientReconnectNotify.proto
new file mode 100644
index 00000000..21d65727
--- /dev/null
+++ b/proto/ClientReconnectNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ClientReconnectReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 75
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ClientReconnectNotify {
+ ClientReconnectReason reason = 6;
+}
diff --git a/proto/ClientReconnectReason.proto b/proto/ClientReconnectReason.proto
new file mode 100644
index 00000000..01d21d75
--- /dev/null
+++ b/proto/ClientReconnectReason.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum ClientReconnectReason {
+ CLIENT_RECONNECT_REASON_RECONNNECT_NONE = 0;
+ CLIENT_RECONNECT_REASON_RECONNNECT_QUIT_MP = 1;
+}
diff --git a/proto/ClientReportNotify.proto b/proto/ClientReportNotify.proto
new file mode 100644
index 00000000..536c6bbe
--- /dev/null
+++ b/proto/ClientReportNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 81
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ClientReportNotify {
+ string report_type = 1;
+ string report_value = 4;
+}
diff --git a/proto/ClientScriptEventNotify.proto b/proto/ClientScriptEventNotify.proto
new file mode 100644
index 00000000..7b9f3cef
--- /dev/null
+++ b/proto/ClientScriptEventNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 213
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ClientScriptEventNotify {
+ repeated int32 param_list = 9;
+ uint32 source_entity_id = 14;
+ uint32 event_type = 10;
+ uint32 target_entity_id = 13;
+}
diff --git a/proto/ClientTransmitReq.proto b/proto/ClientTransmitReq.proto
new file mode 100644
index 00000000..ab7d5838
--- /dev/null
+++ b/proto/ClientTransmitReq.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TransmitReason.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 291
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ClientTransmitReq {
+ uint32 scene_id = 2;
+ TransmitReason reason = 14;
+ Vector pos = 1;
+ Vector rot = 9;
+}
diff --git a/proto/ClientTransmitRsp.proto b/proto/ClientTransmitRsp.proto
new file mode 100644
index 00000000..500411b2
--- /dev/null
+++ b/proto/ClientTransmitRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TransmitReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 224
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ClientTransmitRsp {
+ TransmitReason reason = 3;
+ int32 retcode = 9;
+}
diff --git a/proto/ClientTriggerEventNotify.proto b/proto/ClientTriggerEventNotify.proto
new file mode 100644
index 00000000..bda64ac1
--- /dev/null
+++ b/proto/ClientTriggerEventNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EventTriggerType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 148
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ClientTriggerEventNotify {
+ uint32 force_id = 3;
+ EventTriggerType event_type = 2;
+}
diff --git a/proto/CloseCommonTipsNotify.proto b/proto/CloseCommonTipsNotify.proto
new file mode 100644
index 00000000..fd99e3b2
--- /dev/null
+++ b/proto/CloseCommonTipsNotify.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3194
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CloseCommonTipsNotify {}
diff --git a/proto/ClosedItemNotify.proto b/proto/ClosedItemNotify.proto
new file mode 100644
index 00000000..87985fb2
--- /dev/null
+++ b/proto/ClosedItemNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 614
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ClosedItemNotify {
+ repeated uint32 item_id_list = 8;
+}
diff --git a/proto/CodexDataFullNotify.proto b/proto/CodexDataFullNotify.proto
new file mode 100644
index 00000000..c04abe02
--- /dev/null
+++ b/proto/CodexDataFullNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CodexTypeData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4205
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CodexDataFullNotify {
+ uint32 Unk2700_BPKOLHOOGFO = 4;
+ repeated uint32 Unk2700_DFJJHFHHIHF = 2;
+ uint32 Unk2700_HJDNBBPMOAP = 3;
+ repeated CodexTypeData type_data_list = 6;
+}
diff --git a/proto/CodexDataUpdateNotify.proto b/proto/CodexDataUpdateNotify.proto
new file mode 100644
index 00000000..8a83a7df
--- /dev/null
+++ b/proto/CodexDataUpdateNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CodexType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4207
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CodexDataUpdateNotify {
+ uint32 id = 8;
+ uint32 weapon_max_promote_level = 15;
+ CodexType type = 11;
+}
diff --git a/proto/CodexType.proto b/proto/CodexType.proto
new file mode 100644
index 00000000..de4016f2
--- /dev/null
+++ b/proto/CodexType.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum CodexType {
+ CODEX_TYPE_NONE = 0;
+ CODEX_TYPE_QUEST = 1;
+ CODEX_TYPE_WEAPON = 2;
+ CODEX_TYPE_ANIMAL = 3;
+ CODEX_TYPE_MATERIAL = 4;
+ CODEX_TYPE_BOOKS = 5;
+ CODEX_TYPE_PUSHTIPS = 6;
+ CODEX_TYPE_VIEW = 7;
+ CODEX_TYPE_RELIQUARY = 8;
+}
diff --git a/proto/CodexTypeData.proto b/proto/CodexTypeData.proto
new file mode 100644
index 00000000..ef5c5fcf
--- /dev/null
+++ b/proto/CodexTypeData.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CodexType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CodexTypeData {
+ repeated uint32 codex_id_list = 14;
+ map weapon_max_promote_level_map = 4;
+ CodexType type = 13;
+ repeated bool have_viewed_list = 5;
+}
diff --git a/proto/CombatInvocationsNotify.proto b/proto/CombatInvocationsNotify.proto
new file mode 100644
index 00000000..489b6bb0
--- /dev/null
+++ b/proto/CombatInvocationsNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CombatInvokeEntry.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 319
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message CombatInvocationsNotify {
+ repeated CombatInvokeEntry invoke_list = 14;
+}
diff --git a/proto/CombatInvokeEntry.proto b/proto/CombatInvokeEntry.proto
new file mode 100644
index 00000000..a61f693a
--- /dev/null
+++ b/proto/CombatInvokeEntry.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CombatTypeArgument.proto";
+import "ForwardType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CombatInvokeEntry {
+ bytes combat_data = 12;
+ ForwardType forward_type = 10;
+ CombatTypeArgument argument_type = 11;
+}
diff --git a/proto/CombatTypeArgument.proto b/proto/CombatTypeArgument.proto
new file mode 100644
index 00000000..f872e6f1
--- /dev/null
+++ b/proto/CombatTypeArgument.proto
@@ -0,0 +1,42 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum CombatTypeArgument {
+ COMBAT_TYPE_ARGUMENT_NONE = 0;
+ COMBAT_TYPE_ARGUMENT_EVT_BEING_HIT = 1;
+ COMBAT_TYPE_ARGUMENT_ANIMATOR_STATE_CHANGED = 2;
+ COMBAT_TYPE_ARGUMENT_FACE_TO_DIR = 3;
+ COMBAT_TYPE_ARGUMENT_SET_ATTACK_TARGET = 4;
+ COMBAT_TYPE_ARGUMENT_RUSH_MOVE = 5;
+ COMBAT_TYPE_ARGUMENT_ANIMATOR_PARAMETER_CHANGED = 6;
+ COMBAT_TYPE_ARGUMENT_ENTITY_MOVE = 7;
+ COMBAT_TYPE_ARGUMENT_SYNC_ENTITY_POSITION = 8;
+ COMBAT_TYPE_ARGUMENT_STEER_MOTION_INFO = 9;
+ COMBAT_TYPE_ARGUMENT_FORCE_SET_POS_INFO = 10;
+ COMBAT_TYPE_ARGUMENT_COMPENSATE_POS_DIFF = 11;
+ COMBAT_TYPE_ARGUMENT_MONSTER_DO_BLINK = 12;
+ COMBAT_TYPE_ARGUMENT_FIXED_RUSH_MOVE = 13;
+ COMBAT_TYPE_ARGUMENT_SYNC_TRANSFORM = 14;
+ COMBAT_TYPE_ARGUMENT_LIGHT_CORE_MOVE = 15;
+ COMBAT_TYPE_ARGUMENT_Unk2700_KPDNFKCMKPG = 16;
+ COMBAT_TYPE_ARGUMENT_Unk2700_KPLOMOIALGF = 17;
+ COMBAT_TYPE_ARGUMENT_Unk3000_BJEHMPLCFHN = 18;
+}
diff --git a/proto/CombineDataNotify.proto b/proto/CombineDataNotify.proto
new file mode 100644
index 00000000..190edfe0
--- /dev/null
+++ b/proto/CombineDataNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 659
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CombineDataNotify {
+ repeated uint32 combine_id_list = 5;
+}
diff --git a/proto/CombineFormulaDataNotify.proto b/proto/CombineFormulaDataNotify.proto
new file mode 100644
index 00000000..03084f8e
--- /dev/null
+++ b/proto/CombineFormulaDataNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 632
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CombineFormulaDataNotify {
+ uint32 combine_id = 6;
+ bool is_locked = 3;
+}
diff --git a/proto/CombineReq.proto b/proto/CombineReq.proto
new file mode 100644
index 00000000..962b839b
--- /dev/null
+++ b/proto/CombineReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 643
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message CombineReq {
+ uint32 combine_count = 12;
+ uint32 combine_id = 9;
+ uint64 avatar_guid = 14;
+}
diff --git a/proto/CombineRsp.proto b/proto/CombineRsp.proto
new file mode 100644
index 00000000..faba40f2
--- /dev/null
+++ b/proto/CombineRsp.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 674
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CombineRsp {
+ repeated ItemParam cost_item_list = 3;
+ int32 retcode = 7;
+ repeated ItemParam total_extra_item_list = 6;
+ uint32 combine_id = 11;
+ repeated ItemParam total_random_item_list = 9;
+ repeated ItemParam result_item_list = 2;
+ uint32 combine_count = 13;
+ repeated ItemParam total_return_item_list = 12;
+ uint64 avatar_guid = 10;
+}
diff --git a/proto/CommonPlayerTipsNotify.proto b/proto/CommonPlayerTipsNotify.proto
new file mode 100644
index 00000000..b4b1b956
--- /dev/null
+++ b/proto/CommonPlayerTipsNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8466
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CommonPlayerTipsNotify {
+ uint32 notify_type = 3;
+ repeated string text_map_id_list = 9;
+}
diff --git a/proto/CompoundDataNotify.proto b/proto/CompoundDataNotify.proto
new file mode 100644
index 00000000..a8565fc9
--- /dev/null
+++ b/proto/CompoundDataNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CompoundQueueData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 146
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CompoundDataNotify {
+ repeated uint32 unlock_compound_list = 1;
+ repeated CompoundQueueData compound_que_data_list = 9;
+}
diff --git a/proto/CompoundQueueData.proto b/proto/CompoundQueueData.proto
new file mode 100644
index 00000000..bb01f259
--- /dev/null
+++ b/proto/CompoundQueueData.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CompoundQueueData {
+ uint32 output_count = 1;
+ uint32 compound_id = 4;
+ uint32 output_time = 14;
+ uint32 wait_count = 8;
+}
diff --git a/proto/CompoundUnlockNotify.proto b/proto/CompoundUnlockNotify.proto
new file mode 100644
index 00000000..b67267a5
--- /dev/null
+++ b/proto/CompoundUnlockNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 128
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CompoundUnlockNotify {
+ uint32 compound_id = 3;
+}
diff --git a/proto/CookDataNotify.proto b/proto/CookDataNotify.proto
new file mode 100644
index 00000000..a823e12c
--- /dev/null
+++ b/proto/CookDataNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CookRecipeData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 195
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CookDataNotify {
+ repeated CookRecipeData recipe_data_list = 2;
+ uint32 grade = 11;
+}
diff --git a/proto/CookGradeDataNotify.proto b/proto/CookGradeDataNotify.proto
new file mode 100644
index 00000000..f684cdff
--- /dev/null
+++ b/proto/CookGradeDataNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 134
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CookGradeDataNotify {
+ uint32 grade = 12;
+}
diff --git a/proto/CookRecipeData.proto b/proto/CookRecipeData.proto
new file mode 100644
index 00000000..53943781
--- /dev/null
+++ b/proto/CookRecipeData.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CookRecipeData {
+ uint32 proficiency = 13;
+ uint32 recipe_id = 9;
+}
diff --git a/proto/CookRecipeDataNotify.proto b/proto/CookRecipeDataNotify.proto
new file mode 100644
index 00000000..9b7f32f1
--- /dev/null
+++ b/proto/CookRecipeDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CookRecipeData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 106
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CookRecipeDataNotify {
+ CookRecipeData recipe_data = 4;
+}
diff --git a/proto/CoopCg.proto b/proto/CoopCg.proto
new file mode 100644
index 00000000..e4d2d256
--- /dev/null
+++ b/proto/CoopCg.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CoopCg {
+ bool is_unlock = 14;
+ uint32 id = 8;
+}
diff --git a/proto/CoopCgShowNotify.proto b/proto/CoopCgShowNotify.proto
new file mode 100644
index 00000000..55c43bd7
--- /dev/null
+++ b/proto/CoopCgShowNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1983
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CoopCgShowNotify {
+ repeated uint32 cg_list = 10;
+}
diff --git a/proto/CoopCgUpdateNotify.proto b/proto/CoopCgUpdateNotify.proto
new file mode 100644
index 00000000..8ee5b800
--- /dev/null
+++ b/proto/CoopCgUpdateNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1994
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CoopCgUpdateNotify {
+ repeated uint32 cg_list = 13;
+}
diff --git a/proto/CoopChapter.proto b/proto/CoopChapter.proto
new file mode 100644
index 00000000..6ba07bc2
--- /dev/null
+++ b/proto/CoopChapter.proto
@@ -0,0 +1,44 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CoopCg.proto";
+import "CoopPoint.proto";
+import "CoopReward.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CoopChapter {
+ repeated CoopCg coop_cg_list = 1;
+ uint32 id = 2;
+ repeated CoopPoint coop_point_list = 11;
+ repeated uint32 finish_dialog_list = 10;
+ uint32 finished_end_count = 14;
+ uint32 total_end_count = 7;
+ repeated CoopReward coop_reward_list = 5;
+ repeated uint32 lock_reason_list = 12;
+ State state = 4;
+ map seen_ending_map = 9;
+
+ enum State {
+ STATE_CLOSE = 0;
+ STATE_COND_NOT_MEET = 1;
+ STATE_COND_MEET = 2;
+ STATE_ACCEPT = 3;
+ }
+}
diff --git a/proto/CoopChapterUpdateNotify.proto b/proto/CoopChapterUpdateNotify.proto
new file mode 100644
index 00000000..5e53dd26
--- /dev/null
+++ b/proto/CoopChapterUpdateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CoopChapter.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1972
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CoopChapterUpdateNotify {
+ repeated CoopChapter chapter_list = 14;
+}
diff --git a/proto/CoopDataNotify.proto b/proto/CoopDataNotify.proto
new file mode 100644
index 00000000..a42c21e6
--- /dev/null
+++ b/proto/CoopDataNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CoopChapter.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1979
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CoopDataNotify {
+ repeated CoopChapter chapter_list = 15;
+ repeated uint32 viewed_chapter_list = 7;
+ bool is_have_progress = 10;
+ uint32 cur_coop_point = 5;
+}
diff --git a/proto/CoopPoint.proto b/proto/CoopPoint.proto
new file mode 100644
index 00000000..aea06195
--- /dev/null
+++ b/proto/CoopPoint.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CoopPoint {
+ uint32 self_confidence = 15;
+ State state = 10;
+ uint32 id = 14;
+
+ enum State {
+ STATE_UNSTARTED = 0;
+ STATE_STARTED = 1;
+ STATE_FINISHED = 2;
+ }
+}
diff --git a/proto/CoopPointUpdateNotify.proto b/proto/CoopPointUpdateNotify.proto
new file mode 100644
index 00000000..ab2ba562
--- /dev/null
+++ b/proto/CoopPointUpdateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CoopPoint.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1991
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CoopPointUpdateNotify {
+ CoopPoint coop_point = 13;
+}
diff --git a/proto/CoopProgressUpdateNotify.proto b/proto/CoopProgressUpdateNotify.proto
new file mode 100644
index 00000000..771d2e5b
--- /dev/null
+++ b/proto/CoopProgressUpdateNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1998
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CoopProgressUpdateNotify {
+ uint32 cur_coop_point = 11;
+ bool is_have_progress = 12;
+}
diff --git a/proto/CoopReward.proto b/proto/CoopReward.proto
new file mode 100644
index 00000000..b2a03efb
--- /dev/null
+++ b/proto/CoopReward.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CoopReward {
+ uint32 id = 5;
+ State state = 6;
+
+ enum State {
+ STATE_UNLOCK = 0;
+ STATE_LOCK = 1;
+ STATE_TAKEN = 2;
+ }
+}
diff --git a/proto/CoopRewardUpdateNotify.proto b/proto/CoopRewardUpdateNotify.proto
new file mode 100644
index 00000000..9c19401a
--- /dev/null
+++ b/proto/CoopRewardUpdateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CoopReward.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1999
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CoopRewardUpdateNotify {
+ repeated CoopReward reward_list = 7;
+}
diff --git a/proto/CreateEntityInfo.proto b/proto/CreateEntityInfo.proto
new file mode 100644
index 00000000..a898d039
--- /dev/null
+++ b/proto/CreateEntityInfo.proto
@@ -0,0 +1,41 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CreateGadgetInfo.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CreateEntityInfo {
+ uint32 level = 5;
+ Vector pos = 6;
+ Vector rot = 7;
+ uint32 scene_id = 10;
+ uint32 room_id = 11;
+ uint32 client_unique_id = 12;
+ oneof entity {
+ uint32 monster_id = 1;
+ uint32 npc_id = 2;
+ uint32 gadget_id = 3;
+ uint32 item_id = 4;
+ }
+ oneof entity_create_info {
+ CreateGadgetInfo gadget = 13;
+ }
+}
diff --git a/proto/CreateGadgetInfo.proto b/proto/CreateGadgetInfo.proto
new file mode 100644
index 00000000..0e5e1cb3
--- /dev/null
+++ b/proto/CreateGadgetInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GadgetBornType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CreateGadgetInfo {
+ GadgetBornType born_type = 1;
+ Chest chest = 2;
+
+ message Chest {
+ uint32 chest_drop_id = 1;
+ bool is_show_cutscene = 2;
+ }
+}
diff --git a/proto/CreateMassiveEntityNotify.proto b/proto/CreateMassiveEntityNotify.proto
new file mode 100644
index 00000000..b4efbdb9
--- /dev/null
+++ b/proto/CreateMassiveEntityNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ServerMassiveEntity.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 367
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CreateMassiveEntityNotify {
+ repeated ServerMassiveEntity massive_entity_list = 15;
+}
diff --git a/proto/CreateMassiveEntityReq.proto b/proto/CreateMassiveEntityReq.proto
new file mode 100644
index 00000000..6456ce9e
--- /dev/null
+++ b/proto/CreateMassiveEntityReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ClientMassiveEntity.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 342
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message CreateMassiveEntityReq {
+ repeated ClientMassiveEntity massive_entity_list = 1;
+}
diff --git a/proto/CreateMassiveEntityRsp.proto b/proto/CreateMassiveEntityRsp.proto
new file mode 100644
index 00000000..e6111ea1
--- /dev/null
+++ b/proto/CreateMassiveEntityRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 330
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CreateMassiveEntityRsp {
+ int32 retcode = 1;
+}
diff --git a/proto/CreateReason.proto b/proto/CreateReason.proto
new file mode 100644
index 00000000..9d7d9fda
--- /dev/null
+++ b/proto/CreateReason.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum CreateReason {
+ CREATE_REASON_NONE = 0;
+ CREATE_REASON_QUEST = 1;
+ CREATE_REASON_ENERGY = 2;
+}
diff --git a/proto/CreateVehicleReq.proto b/proto/CreateVehicleReq.proto
new file mode 100644
index 00000000..5f31ced5
--- /dev/null
+++ b/proto/CreateVehicleReq.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 893
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message CreateVehicleReq {
+ Vector pos = 11;
+ uint32 vehicle_id = 2;
+ uint32 scene_point_id = 7;
+ Vector rot = 5;
+}
diff --git a/proto/CreateVehicleRsp.proto b/proto/CreateVehicleRsp.proto
new file mode 100644
index 00000000..3fdd559c
--- /dev/null
+++ b/proto/CreateVehicleRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 827
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CreateVehicleRsp {
+ int32 retcode = 10;
+ uint32 vehicle_id = 9;
+ uint32 entity_id = 11;
+}
diff --git a/proto/CrucibleActivityDetailInfo.proto b/proto/CrucibleActivityDetailInfo.proto
new file mode 100644
index 00000000..541b2198
--- /dev/null
+++ b/proto/CrucibleActivityDetailInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CrucibleBattleUidInfo.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CrucibleActivityDetailInfo {
+ uint32 cost_time = 5;
+ uint32 battle_world_level = 12;
+ repeated CrucibleBattleUidInfo uid_info_list = 3;
+ Vector pos = 9;
+}
diff --git a/proto/CrucibleBattleUidInfo.proto b/proto/CrucibleBattleUidInfo.proto
new file mode 100644
index 00000000..871599f0
--- /dev/null
+++ b/proto/CrucibleBattleUidInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CrucibleBattleUidInfo {
+ ProfilePicture profile_picture = 15;
+ uint32 uid = 4;
+ string nickname = 5;
+ string online_id = 13;
+ uint32 icon = 11;
+}
diff --git a/proto/CrystalLinkActivityDetailInfo.proto b/proto/CrystalLinkActivityDetailInfo.proto
new file mode 100644
index 00000000..99cc729a
--- /dev/null
+++ b/proto/CrystalLinkActivityDetailInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_IOLMLCCBAKP.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CrystalLinkActivityDetailInfo {
+ repeated Unk2700_IOLMLCCBAKP Unk2700_FIKHCFMEOAJ = 3;
+ uint32 difficulty_id = 7;
+}
diff --git a/proto/CrystalLinkSettleInfo.proto b/proto/CrystalLinkSettleInfo.proto
new file mode 100644
index 00000000..18614722
--- /dev/null
+++ b/proto/CrystalLinkSettleInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CrystalLinkSettleInfo {
+ uint32 kill_elite_monster_num = 2;
+ uint32 final_score = 6;
+ uint32 level_id = 12;
+ bool is_new_record = 13;
+ uint32 difficulty_id = 9;
+ uint32 kill_normal_mosnter_num = 3;
+}
diff --git a/proto/CurVehicleInfo.proto b/proto/CurVehicleInfo.proto
new file mode 100644
index 00000000..5ce5b487
--- /dev/null
+++ b/proto/CurVehicleInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CurVehicleInfo {
+ uint32 entity_id = 1;
+ uint32 pos = 2;
+}
diff --git a/proto/CustomCommonNodeInfo.proto b/proto/CustomCommonNodeInfo.proto
new file mode 100644
index 00000000..c42e8410
--- /dev/null
+++ b/proto/CustomCommonNodeInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CustomCommonNodeInfo {
+ int32 parent_index = 1;
+ uint32 config_id = 2;
+ string slot_identifier = 3;
+}
diff --git a/proto/CustomDungeonResultInfo.proto b/proto/CustomDungeonResultInfo.proto
new file mode 100644
index 00000000..5de795dc
--- /dev/null
+++ b/proto/CustomDungeonResultInfo.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_FDEGJOCDDGH.proto";
+import "Unk2700_OCOKILBJIPJ.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CustomDungeonResultInfo {
+ bool Unk2700_BONNHGKDLFO = 12;
+ uint32 Unk2700_FBBEJKCDMEI = 9;
+ repeated Unk2700_FDEGJOCDDGH child_challenge_list = 6;
+ uint64 Unk2700_ONOOJBEABOE = 3;
+ Unk2700_OCOKILBJIPJ Unk2700_ONCDLPDHFAB = 7;
+ uint32 time_cost = 11;
+ bool Unk2700_IBDCFAMBGOK = 2;
+ bool Unk2700_HBFLKFOCKBF = 14;
+}
diff --git a/proto/CustomGadgetTreeInfo.proto b/proto/CustomGadgetTreeInfo.proto
new file mode 100644
index 00000000..86ec424f
--- /dev/null
+++ b/proto/CustomGadgetTreeInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CustomCommonNodeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CustomGadgetTreeInfo {
+ repeated CustomCommonNodeInfo node_list = 1;
+}
diff --git a/proto/CutSceneBeginNotify.proto b/proto/CutSceneBeginNotify.proto
new file mode 100644
index 00000000..b5c1970e
--- /dev/null
+++ b/proto/CutSceneBeginNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3100_LFIMJOCPILC.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 296
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CutSceneBeginNotify {
+ bool is_wait_others = 9;
+ uint32 cutscene_id = 14;
+ repeated Unk3100_LFIMJOCPILC extra_param_list = 3;
+}
diff --git a/proto/CutSceneEndNotify.proto b/proto/CutSceneEndNotify.proto
new file mode 100644
index 00000000..eb1deb73
--- /dev/null
+++ b/proto/CutSceneEndNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 215
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CutSceneEndNotify {
+ int32 retcode = 5;
+ uint32 cutscene_id = 14;
+}
diff --git a/proto/CutSceneFinishNotify.proto b/proto/CutSceneFinishNotify.proto
new file mode 100644
index 00000000..de969602
--- /dev/null
+++ b/proto/CutSceneFinishNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 262
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message CutSceneFinishNotify {
+ uint32 cutscene_id = 12;
+}
diff --git a/proto/CylinderRegionSize.proto b/proto/CylinderRegionSize.proto
new file mode 100644
index 00000000..c70bf4e5
--- /dev/null
+++ b/proto/CylinderRegionSize.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CylinderRegionSize {
+ float radius = 8;
+ float height = 7;
+}
diff --git a/proto/DailyDungeonEntryInfo.proto b/proto/DailyDungeonEntryInfo.proto
new file mode 100644
index 00000000..c8cae478
--- /dev/null
+++ b/proto/DailyDungeonEntryInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DungeonEntryInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message DailyDungeonEntryInfo {
+ uint32 dungeon_entry_config_id = 12;
+ uint32 dungeon_entry_id = 15;
+ DungeonEntryInfo recommend_dungeon_entry_info = 1;
+ uint32 recommend_dungeon_id = 4;
+}
diff --git a/proto/DailyTaskDataNotify.proto b/proto/DailyTaskDataNotify.proto
new file mode 100644
index 00000000..b1af086d
--- /dev/null
+++ b/proto/DailyTaskDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 158
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DailyTaskDataNotify {
+ uint32 score_reward_id = 11;
+ uint32 finished_num = 4;
+ bool is_taken_score_reward = 9;
+}
diff --git a/proto/DailyTaskFilterCityReq.proto b/proto/DailyTaskFilterCityReq.proto
new file mode 100644
index 00000000..94152f16
--- /dev/null
+++ b/proto/DailyTaskFilterCityReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 111
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DailyTaskFilterCityReq {
+ uint32 city_id = 8;
+}
diff --git a/proto/DailyTaskFilterCityRsp.proto b/proto/DailyTaskFilterCityRsp.proto
new file mode 100644
index 00000000..741e6d14
--- /dev/null
+++ b/proto/DailyTaskFilterCityRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 144
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DailyTaskFilterCityRsp {
+ int32 retcode = 5;
+ uint32 city_id = 9;
+}
diff --git a/proto/DailyTaskInfo.proto b/proto/DailyTaskInfo.proto
new file mode 100644
index 00000000..7c61c608
--- /dev/null
+++ b/proto/DailyTaskInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message DailyTaskInfo {
+ uint32 reward_id = 3;
+ uint32 progress = 13;
+ uint32 finish_progress = 10;
+ uint32 daily_task_id = 4;
+ bool is_finished = 14;
+}
diff --git a/proto/DailyTaskProgressNotify.proto b/proto/DailyTaskProgressNotify.proto
new file mode 100644
index 00000000..c048bc92
--- /dev/null
+++ b/proto/DailyTaskProgressNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DailyTaskInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 170
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DailyTaskProgressNotify {
+ DailyTaskInfo info = 12;
+}
diff --git a/proto/DailyTaskScoreRewardNotify.proto b/proto/DailyTaskScoreRewardNotify.proto
new file mode 100644
index 00000000..835c8c3c
--- /dev/null
+++ b/proto/DailyTaskScoreRewardNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 117
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DailyTaskScoreRewardNotify {
+ uint32 reward_id = 14;
+}
diff --git a/proto/DailyTaskUnlockedCitiesNotify.proto b/proto/DailyTaskUnlockedCitiesNotify.proto
new file mode 100644
index 00000000..b4f5f253
--- /dev/null
+++ b/proto/DailyTaskUnlockedCitiesNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 186
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DailyTaskUnlockedCitiesNotify {
+ repeated uint32 unlocked_city_list = 12;
+}
diff --git a/proto/DataResVersionNotify.proto b/proto/DataResVersionNotify.proto
new file mode 100644
index 00000000..359938db
--- /dev/null
+++ b/proto/DataResVersionNotify.proto
@@ -0,0 +1,43 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ResVersionConfig.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 167
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DataResVersionNotify {
+ string client_silence_md5 = 10;
+ string client_silence_version_suffix = 15;
+ ResVersionConfig res_version_config = 9;
+ bool is_data_need_relogin = 7;
+ DataResVersionOpType op_type = 12;
+ uint32 client_data_version = 2;
+ string client_version_suffix = 5;
+ uint32 client_silence_data_version = 1;
+ string client_md5 = 14;
+
+ enum DataResVersionOpType {
+ DATA_RES_VERSION_OP_TYPE_NONE = 0;
+ DATA_RES_VERSION_OP_TYPE_RELOGIN = 1;
+ DATA_RES_VERSION_OP_TYPE_MP_RELOGIN = 2;
+ }
+}
diff --git a/proto/DealAddFriendReq.proto b/proto/DealAddFriendReq.proto
new file mode 100644
index 00000000..b0164949
--- /dev/null
+++ b/proto/DealAddFriendReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DealAddFriendResultType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4003
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DealAddFriendReq {
+ DealAddFriendResultType deal_add_friend_result = 12;
+ uint32 target_uid = 10;
+}
diff --git a/proto/DealAddFriendResultType.proto b/proto/DealAddFriendResultType.proto
new file mode 100644
index 00000000..95772443
--- /dev/null
+++ b/proto/DealAddFriendResultType.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum DealAddFriendResultType {
+ DEAL_ADD_FRIEND_RESULT_TYPE_REJECT = 0;
+ DEAL_ADD_FRIEND_RESULT_TYPE_ACCEPT = 1;
+}
diff --git a/proto/DealAddFriendRsp.proto b/proto/DealAddFriendRsp.proto
new file mode 100644
index 00000000..fc4fcffd
--- /dev/null
+++ b/proto/DealAddFriendRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DealAddFriendResultType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4090
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DealAddFriendRsp {
+ int32 retcode = 1;
+ uint32 target_uid = 5;
+ DealAddFriendResultType deal_add_friend_result = 6;
+}
diff --git a/proto/DebugNotify.proto b/proto/DebugNotify.proto
new file mode 100644
index 00000000..cf80e8d0
--- /dev/null
+++ b/proto/DebugNotify.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 101
+// TargetService: 101
+// EnetChannelId: 2
+// EnetIsReliable: true
+message DebugNotify {
+ uint32 id = 1;
+ string name = 2;
+ Retcode retcode = 3;
+
+ enum Retcode {
+ RETCODE_SUCC = 0;
+ RETCODE_FAIL = 1;
+ }
+}
diff --git a/proto/DelMailReq.proto b/proto/DelMailReq.proto
new file mode 100644
index 00000000..ae1f08d1
--- /dev/null
+++ b/proto/DelMailReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1421
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DelMailReq {
+ repeated uint32 mail_id_list = 12;
+}
diff --git a/proto/DelMailRsp.proto b/proto/DelMailRsp.proto
new file mode 100644
index 00000000..eef5b9bc
--- /dev/null
+++ b/proto/DelMailRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1403
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DelMailRsp {
+ int32 retcode = 11;
+ repeated uint32 mail_id_list = 5;
+}
diff --git a/proto/DelScenePlayTeamEntityNotify.proto b/proto/DelScenePlayTeamEntityNotify.proto
new file mode 100644
index 00000000..760e3ffa
--- /dev/null
+++ b/proto/DelScenePlayTeamEntityNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3318
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DelScenePlayTeamEntityNotify {
+ repeated uint32 del_entity_id_list = 2;
+ uint32 scene_id = 4;
+}
diff --git a/proto/DelTeamEntityNotify.proto b/proto/DelTeamEntityNotify.proto
new file mode 100644
index 00000000..f338f212
--- /dev/null
+++ b/proto/DelTeamEntityNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 302
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DelTeamEntityNotify {
+ repeated uint32 del_entity_id_list = 15;
+ uint32 scene_id = 8;
+}
diff --git a/proto/DeleteFriendNotify.proto b/proto/DeleteFriendNotify.proto
new file mode 100644
index 00000000..a3e0d594
--- /dev/null
+++ b/proto/DeleteFriendNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4053
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DeleteFriendNotify {
+ uint32 target_uid = 12;
+}
diff --git a/proto/DeleteFriendReq.proto b/proto/DeleteFriendReq.proto
new file mode 100644
index 00000000..8b85e784
--- /dev/null
+++ b/proto/DeleteFriendReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4031
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DeleteFriendReq {
+ uint32 target_uid = 13;
+}
diff --git a/proto/DeleteFriendRsp.proto b/proto/DeleteFriendRsp.proto
new file mode 100644
index 00000000..19161b9f
--- /dev/null
+++ b/proto/DeleteFriendRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4075
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DeleteFriendRsp {
+ uint32 target_uid = 14;
+ int32 retcode = 5;
+}
diff --git a/proto/DeliveryActivityDetailInfo.proto b/proto/DeliveryActivityDetailInfo.proto
new file mode 100644
index 00000000..6c2e1ae5
--- /dev/null
+++ b/proto/DeliveryActivityDetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message DeliveryActivityDetailInfo {
+ uint32 day_index = 14;
+ bool is_taken_reward = 13;
+ repeated uint32 finished_delivery_quest_index = 4;
+}
diff --git a/proto/DeshretObeliskGadgetInfo.proto b/proto/DeshretObeliskGadgetInfo.proto
new file mode 100644
index 00000000..c69939e2
--- /dev/null
+++ b/proto/DeshretObeliskGadgetInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message DeshretObeliskGadgetInfo {
+ repeated uint32 argument_list = 1;
+}
diff --git a/proto/DestroyMassiveEntityNotify.proto b/proto/DestroyMassiveEntityNotify.proto
new file mode 100644
index 00000000..dc0d14bf
--- /dev/null
+++ b/proto/DestroyMassiveEntityNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ClientMassiveEntity.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 358
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DestroyMassiveEntityNotify {
+ repeated ClientMassiveEntity massive_entity_list = 7;
+}
diff --git a/proto/DestroyMaterialReq.proto b/proto/DestroyMaterialReq.proto
new file mode 100644
index 00000000..52457fda
--- /dev/null
+++ b/proto/DestroyMaterialReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MaterialInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 640
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DestroyMaterialReq {
+ repeated MaterialInfo material_list = 5;
+}
diff --git a/proto/DestroyMaterialRsp.proto b/proto/DestroyMaterialRsp.proto
new file mode 100644
index 00000000..74a9cdf6
--- /dev/null
+++ b/proto/DestroyMaterialRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 618
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DestroyMaterialRsp {
+ repeated uint32 item_count_list = 12;
+ repeated uint32 item_id_list = 13;
+ int32 retcode = 11;
+}
diff --git a/proto/DigActivityChangeGadgetStateReq.proto b/proto/DigActivityChangeGadgetStateReq.proto
new file mode 100644
index 00000000..1d510769
--- /dev/null
+++ b/proto/DigActivityChangeGadgetStateReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8464
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DigActivityChangeGadgetStateReq {
+ uint32 entity_id = 10;
+}
diff --git a/proto/DigActivityChangeGadgetStateRsp.proto b/proto/DigActivityChangeGadgetStateRsp.proto
new file mode 100644
index 00000000..e4486621
--- /dev/null
+++ b/proto/DigActivityChangeGadgetStateRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8430
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DigActivityChangeGadgetStateRsp {
+ uint32 entity_id = 15;
+ int32 retcode = 6;
+}
diff --git a/proto/DigActivityDetailInfo.proto b/proto/DigActivityDetailInfo.proto
new file mode 100644
index 00000000..99f50fcb
--- /dev/null
+++ b/proto/DigActivityDetailInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DigMarkPoint.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message DigActivityDetailInfo {
+ repeated uint32 stage_id_list = 15;
+ repeated DigMarkPoint dig_mark_point_list = 11;
+ uint32 stage_id = 8;
+}
diff --git a/proto/DigActivityMarkPointChangeNotify.proto b/proto/DigActivityMarkPointChangeNotify.proto
new file mode 100644
index 00000000..41972be1
--- /dev/null
+++ b/proto/DigActivityMarkPointChangeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DigMarkPoint.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8109
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DigActivityMarkPointChangeNotify {
+ repeated DigMarkPoint dig_mark_point_list = 11;
+}
diff --git a/proto/DigMarkPoint.proto b/proto/DigMarkPoint.proto
new file mode 100644
index 00000000..be14507a
--- /dev/null
+++ b/proto/DigMarkPoint.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message DigMarkPoint {
+ Vector pos = 1;
+ uint32 bundle_id = 13;
+ Vector rot = 3;
+}
diff --git a/proto/DisableRoguelikeTrapNotify.proto b/proto/DisableRoguelikeTrapNotify.proto
new file mode 100644
index 00000000..613b94c7
--- /dev/null
+++ b/proto/DisableRoguelikeTrapNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8259
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DisableRoguelikeTrapNotify {
+ uint32 card_id = 13;
+}
diff --git a/proto/DoGachaReq.proto b/proto/DoGachaReq.proto
new file mode 100644
index 00000000..0416acdc
--- /dev/null
+++ b/proto/DoGachaReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1512
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DoGachaReq {
+ uint32 gacha_times = 10;
+ uint32 gacha_schedule_id = 7;
+ uint32 gacha_type = 14;
+ uint32 gacha_random = 13;
+ string gacha_tag = 4;
+}
diff --git a/proto/DoGachaRsp.proto b/proto/DoGachaRsp.proto
new file mode 100644
index 00000000..6c743771
--- /dev/null
+++ b/proto/DoGachaRsp.proto
@@ -0,0 +1,47 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GachaItem.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1535
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DoGachaRsp {
+ uint32 Unk3100_JKILPCKLNPI = 155;
+ uint32 cost_item_num = 10;
+ uint32 wish_max_progress = 9;
+ uint32 wish_item_id = 8;
+ int32 retcode = 13;
+ uint32 ten_cost_item_num = 3;
+ uint32 wish_progress = 2;
+ repeated GachaItem gacha_item_list = 15;
+ uint32 ten_cost_item_id = 7;
+ uint32 gacha_times = 4;
+ bool Unk2700_LEEPELHDING = 1435;
+ bool Unk3100_IDBLFJDHHPI = 1868;
+ uint32 gacha_type = 12;
+ uint32 gacha_times_limit = 1;
+ uint32 cost_item_id = 14;
+ uint32 Unk2700_OJKKHDLEDCI = 1240;
+ uint32 left_gacha_times = 6;
+ uint32 new_gacha_random = 11;
+ uint32 gacha_schedule_id = 5;
+}
diff --git a/proto/DoRoguelikeDungeonCardGachaReq.proto b/proto/DoRoguelikeDungeonCardGachaReq.proto
new file mode 100644
index 00000000..694a4a76
--- /dev/null
+++ b/proto/DoRoguelikeDungeonCardGachaReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8148
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DoRoguelikeDungeonCardGachaReq {
+ uint32 dungeon_id = 13;
+ uint32 cell_id = 6;
+}
diff --git a/proto/DoRoguelikeDungeonCardGachaRsp.proto b/proto/DoRoguelikeDungeonCardGachaRsp.proto
new file mode 100644
index 00000000..256a78d0
--- /dev/null
+++ b/proto/DoRoguelikeDungeonCardGachaRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8472
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DoRoguelikeDungeonCardGachaRsp {
+ bool is_can_refresh = 8;
+ repeated uint32 card_list = 15;
+ int32 retcode = 5;
+}
diff --git a/proto/DoSetPlayerBornDataNotify.proto b/proto/DoSetPlayerBornDataNotify.proto
new file mode 100644
index 00000000..55f42fbb
--- /dev/null
+++ b/proto/DoSetPlayerBornDataNotify.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 147
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DoSetPlayerBornDataNotify {}
diff --git a/proto/DraftGuestReplyInviteNotify.proto b/proto/DraftGuestReplyInviteNotify.proto
new file mode 100644
index 00000000..eaebf7f1
--- /dev/null
+++ b/proto/DraftGuestReplyInviteNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5490
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DraftGuestReplyInviteNotify {
+ uint32 draft_id = 5;
+ bool is_agree = 9;
+ uint32 guest_uid = 10;
+}
diff --git a/proto/DraftGuestReplyInviteReq.proto b/proto/DraftGuestReplyInviteReq.proto
new file mode 100644
index 00000000..d8ee0a3d
--- /dev/null
+++ b/proto/DraftGuestReplyInviteReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5421
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DraftGuestReplyInviteReq {
+ uint32 draft_id = 10;
+ bool is_agree = 3;
+}
diff --git a/proto/DraftGuestReplyInviteRsp.proto b/proto/DraftGuestReplyInviteRsp.proto
new file mode 100644
index 00000000..7a41849f
--- /dev/null
+++ b/proto/DraftGuestReplyInviteRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5403
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DraftGuestReplyInviteRsp {
+ uint32 draft_id = 3;
+ int32 retcode = 1;
+ bool is_agree = 10;
+}
diff --git a/proto/DraftGuestReplyTwiceConfirmNotify.proto b/proto/DraftGuestReplyTwiceConfirmNotify.proto
new file mode 100644
index 00000000..02788c76
--- /dev/null
+++ b/proto/DraftGuestReplyTwiceConfirmNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5497
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DraftGuestReplyTwiceConfirmNotify {
+ bool is_agree = 14;
+ uint32 draft_id = 15;
+ uint32 guest_uid = 7;
+}
diff --git a/proto/DraftGuestReplyTwiceConfirmReq.proto b/proto/DraftGuestReplyTwiceConfirmReq.proto
new file mode 100644
index 00000000..47e2a7bf
--- /dev/null
+++ b/proto/DraftGuestReplyTwiceConfirmReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5431
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DraftGuestReplyTwiceConfirmReq {
+ bool is_agree = 15;
+ uint32 draft_id = 14;
+}
diff --git a/proto/DraftGuestReplyTwiceConfirmRsp.proto b/proto/DraftGuestReplyTwiceConfirmRsp.proto
new file mode 100644
index 00000000..0e16a3a4
--- /dev/null
+++ b/proto/DraftGuestReplyTwiceConfirmRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5475
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DraftGuestReplyTwiceConfirmRsp {
+ uint32 draft_id = 5;
+ bool is_agree = 13;
+ int32 retcode = 3;
+}
diff --git a/proto/DraftInviteFailInfo.proto b/proto/DraftInviteFailInfo.proto
new file mode 100644
index 00000000..ac32aa4a
--- /dev/null
+++ b/proto/DraftInviteFailInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DraftInviteFailReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message DraftInviteFailInfo {
+ uint32 uid = 8;
+ DraftInviteFailReason reason = 5;
+}
diff --git a/proto/DraftInviteFailReason.proto b/proto/DraftInviteFailReason.proto
new file mode 100644
index 00000000..a94966c1
--- /dev/null
+++ b/proto/DraftInviteFailReason.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum DraftInviteFailReason {
+ DRAFT_INVITE_FAIL_REASON_UNKNOWN = 0;
+ DRAFT_INVITE_FAIL_REASON_ACTIVITY_NOT_OPEN = 1;
+ DRAFT_INVITE_FAIL_REASON_ACTIVITY_PLAY_NOT_OPEN = 2;
+ DRAFT_INVITE_FAIL_REASON_SCENE_NOT_MEET = 3;
+ DRAFT_INVITE_FAIL_REASON_WORLD_NOT_MEET = 4;
+ DRAFT_INVITE_FAIL_REASON_PLAY_LIMIT_NOT_MEET = 5;
+}
diff --git a/proto/DraftInviteResultNotify.proto b/proto/DraftInviteResultNotify.proto
new file mode 100644
index 00000000..490f1db7
--- /dev/null
+++ b/proto/DraftInviteResultNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5473
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DraftInviteResultNotify {
+ bool is_all_argee = 9;
+ uint32 draft_id = 13;
+}
diff --git a/proto/DraftOwnerInviteNotify.proto b/proto/DraftOwnerInviteNotify.proto
new file mode 100644
index 00000000..6cb34c18
--- /dev/null
+++ b/proto/DraftOwnerInviteNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5407
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DraftOwnerInviteNotify {
+ uint32 draft_id = 4;
+ uint32 invite_deadline_time = 15;
+}
diff --git a/proto/DraftOwnerStartInviteReq.proto b/proto/DraftOwnerStartInviteReq.proto
new file mode 100644
index 00000000..f048d0f2
--- /dev/null
+++ b/proto/DraftOwnerStartInviteReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5412
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DraftOwnerStartInviteReq {
+ uint32 draft_id = 14;
+}
diff --git a/proto/DraftOwnerStartInviteRsp.proto b/proto/DraftOwnerStartInviteRsp.proto
new file mode 100644
index 00000000..1b22802f
--- /dev/null
+++ b/proto/DraftOwnerStartInviteRsp.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DraftInviteFailInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5435
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DraftOwnerStartInviteRsp {
+ repeated DraftInviteFailInfo invite_fail_info_list = 15;
+ int32 retcode = 9;
+ uint32 wrong_uid = 3;
+ uint32 draft_id = 14;
+}
diff --git a/proto/DraftOwnerTwiceConfirmNotify.proto b/proto/DraftOwnerTwiceConfirmNotify.proto
new file mode 100644
index 00000000..3588f672
--- /dev/null
+++ b/proto/DraftOwnerTwiceConfirmNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5499
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DraftOwnerTwiceConfirmNotify {
+ uint32 twice_confirm_deadline_time = 15;
+ uint32 draft_id = 14;
+}
diff --git a/proto/DraftTwiceConfirmResultNotify.proto b/proto/DraftTwiceConfirmResultNotify.proto
new file mode 100644
index 00000000..5ad6adb2
--- /dev/null
+++ b/proto/DraftTwiceConfirmResultNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5448
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DraftTwiceConfirmResultNotify {
+ bool is_all_argee = 7;
+ uint32 draft_id = 1;
+}
diff --git a/proto/DragonSpineActivityDetailInfo.proto b/proto/DragonSpineActivityDetailInfo.proto
new file mode 100644
index 00000000..a81c4b63
--- /dev/null
+++ b/proto/DragonSpineActivityDetailInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DragonSpineChapterInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message DragonSpineActivityDetailInfo {
+ bool is_content_closed = 10;
+ repeated DragonSpineChapterInfo chapter_info_list = 4;
+ uint32 weapon_enhance_level = 2;
+ uint32 content_finish_time = 15;
+ uint32 shimmering_essence = 13;
+ uint32 warm_essence = 11;
+ uint32 wondrous_essence = 7;
+}
diff --git a/proto/DragonSpineChapterFinishNotify.proto b/proto/DragonSpineChapterFinishNotify.proto
new file mode 100644
index 00000000..37cded87
--- /dev/null
+++ b/proto/DragonSpineChapterFinishNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2069
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DragonSpineChapterFinishNotify {
+ uint32 schedule_id = 13;
+ uint32 chapter_id = 11;
+ uint32 weapon_enhance_level = 14;
+}
diff --git a/proto/DragonSpineChapterInfo.proto b/proto/DragonSpineChapterInfo.proto
new file mode 100644
index 00000000..0ed9c9ef
--- /dev/null
+++ b/proto/DragonSpineChapterInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message DragonSpineChapterInfo {
+ uint32 progress = 14;
+ uint32 open_time = 6;
+ bool is_open = 11;
+ uint32 chapter_id = 9;
+ uint32 finished_mission_num = 10;
+}
diff --git a/proto/DragonSpineChapterOpenNotify.proto b/proto/DragonSpineChapterOpenNotify.proto
new file mode 100644
index 00000000..2c2cd1c3
--- /dev/null
+++ b/proto/DragonSpineChapterOpenNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2022
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DragonSpineChapterOpenNotify {
+ uint32 schedule_id = 12;
+ uint32 chapter_id = 10;
+}
diff --git a/proto/DragonSpineChapterProgressChangeNotify.proto b/proto/DragonSpineChapterProgressChangeNotify.proto
new file mode 100644
index 00000000..cf8e72e4
--- /dev/null
+++ b/proto/DragonSpineChapterProgressChangeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2065
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DragonSpineChapterProgressChangeNotify {
+ uint32 schedule_id = 7;
+ uint32 chapter_id = 11;
+ uint32 cur_progress = 5;
+}
diff --git a/proto/DragonSpineCoinChangeNotify.proto b/proto/DragonSpineCoinChangeNotify.proto
new file mode 100644
index 00000000..7c89e982
--- /dev/null
+++ b/proto/DragonSpineCoinChangeNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2088
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DragonSpineCoinChangeNotify {
+ uint32 shimmering_essence = 4;
+ uint32 warm_essence = 13;
+ uint32 schedule_id = 12;
+ uint32 wondrous_essence = 11;
+}
diff --git a/proto/DropHintNotify.proto b/proto/DropHintNotify.proto
new file mode 100644
index 00000000..bd88fb87
--- /dev/null
+++ b/proto/DropHintNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 650
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DropHintNotify {
+ Vector position = 7;
+ repeated uint32 item_id_list = 14;
+}
diff --git a/proto/DropItemReq.proto b/proto/DropItemReq.proto
new file mode 100644
index 00000000..228c6a76
--- /dev/null
+++ b/proto/DropItemReq.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "StoreType.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 699
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DropItemReq {
+ Vector pos = 11;
+ StoreType store_type = 1;
+ uint32 count = 2;
+ uint64 guid = 13;
+}
diff --git a/proto/DropItemRsp.proto b/proto/DropItemRsp.proto
new file mode 100644
index 00000000..aa8f49d5
--- /dev/null
+++ b/proto/DropItemRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "StoreType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 631
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DropItemRsp {
+ int32 retcode = 9;
+ uint64 guid = 1;
+ StoreType store_type = 15;
+}
diff --git a/proto/DropSubfieldType.proto b/proto/DropSubfieldType.proto
new file mode 100644
index 00000000..a44bec7a
--- /dev/null
+++ b/proto/DropSubfieldType.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum DropSubfieldType {
+ DROP_SUBFIELD_TYPE_NONE = 0;
+ DROP_SUBFIELD_TYPE_ONE = 1;
+ DROP_SUBFIELD_TYPE_Unk2700_NNGMHCEADHE = 2;
+ DROP_SUBFIELD_TYPE_Unk2700_MKIJPEHKAJI = 3;
+ DROP_SUBFIELD_TYPE_Unk2700_DJDNENLGIEB = 4;
+}
diff --git a/proto/DungeonCandidateTeamAvatar.proto b/proto/DungeonCandidateTeamAvatar.proto
new file mode 100644
index 00000000..cb6d3df8
--- /dev/null
+++ b/proto/DungeonCandidateTeamAvatar.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message DungeonCandidateTeamAvatar {
+ uint32 player_uid = 2;
+ AvatarInfo avatar_info = 6;
+}
diff --git a/proto/DungeonCandidateTeamChangeAvatarReq.proto b/proto/DungeonCandidateTeamChangeAvatarReq.proto
new file mode 100644
index 00000000..693dc489
--- /dev/null
+++ b/proto/DungeonCandidateTeamChangeAvatarReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 956
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonCandidateTeamChangeAvatarReq {
+ repeated uint64 avatar_guid_list = 5;
+}
diff --git a/proto/DungeonCandidateTeamChangeAvatarRsp.proto b/proto/DungeonCandidateTeamChangeAvatarRsp.proto
new file mode 100644
index 00000000..d14d15d7
--- /dev/null
+++ b/proto/DungeonCandidateTeamChangeAvatarRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 942
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonCandidateTeamChangeAvatarRsp {
+ int32 retcode = 4;
+}
diff --git a/proto/DungeonCandidateTeamCreateReq.proto b/proto/DungeonCandidateTeamCreateReq.proto
new file mode 100644
index 00000000..dabc03b1
--- /dev/null
+++ b/proto/DungeonCandidateTeamCreateReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 995
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonCandidateTeamCreateReq {
+ uint32 point_id = 7;
+ uint32 dungeon_id = 6;
+}
diff --git a/proto/DungeonCandidateTeamCreateRsp.proto b/proto/DungeonCandidateTeamCreateRsp.proto
new file mode 100644
index 00000000..b0976d3a
--- /dev/null
+++ b/proto/DungeonCandidateTeamCreateRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 906
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonCandidateTeamCreateRsp {
+ int32 retcode = 1;
+}
diff --git a/proto/DungeonCandidateTeamDismissNotify.proto b/proto/DungeonCandidateTeamDismissNotify.proto
new file mode 100644
index 00000000..cbfcd955
--- /dev/null
+++ b/proto/DungeonCandidateTeamDismissNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DungeonCandidateTeamDismissReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 963
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonCandidateTeamDismissNotify {
+ DungeonCandidateTeamDismissReason reason = 9;
+ uint32 player_uid = 12;
+}
diff --git a/proto/DungeonCandidateTeamDismissReason.proto b/proto/DungeonCandidateTeamDismissReason.proto
new file mode 100644
index 00000000..56943851
--- /dev/null
+++ b/proto/DungeonCandidateTeamDismissReason.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum DungeonCandidateTeamDismissReason {
+ DUNGEON_CANDIDATE_TEAM_DISMISS_REASON_TPDR_NORMAL = 0;
+ DUNGEON_CANDIDATE_TEAM_DISMISS_REASON_TPDR_DIE = 1;
+ DUNGEON_CANDIDATE_TEAM_DISMISS_REASON_TPDR_DISCONNECT = 2;
+}
diff --git a/proto/DungeonCandidateTeamInfoNotify.proto b/proto/DungeonCandidateTeamInfoNotify.proto
new file mode 100644
index 00000000..4b65cfeb
--- /dev/null
+++ b/proto/DungeonCandidateTeamInfoNotify.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DungeonCandidateTeamAvatar.proto";
+import "DungeonCandidateTeamPlayerState.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 927
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonCandidateTeamInfoNotify {
+ map player_state_map = 10;
+ uint32 dungeon_id = 9;
+ repeated uint32 ready_player_uid = 13;
+ uint32 match_type = 2;
+ repeated DungeonCandidateTeamAvatar avatar_list = 4;
+}
diff --git a/proto/DungeonCandidateTeamInviteNotify.proto b/proto/DungeonCandidateTeamInviteNotify.proto
new file mode 100644
index 00000000..bc9dcc3e
--- /dev/null
+++ b/proto/DungeonCandidateTeamInviteNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 994
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonCandidateTeamInviteNotify {
+ uint32 player_uid = 5;
+ uint32 vaild_deadline_time_sec = 9;
+ uint32 dungeon_id = 6;
+}
diff --git a/proto/DungeonCandidateTeamInviteReq.proto b/proto/DungeonCandidateTeamInviteReq.proto
new file mode 100644
index 00000000..ec3dd9a0
--- /dev/null
+++ b/proto/DungeonCandidateTeamInviteReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 934
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonCandidateTeamInviteReq {
+ repeated uint32 player_uids = 5;
+}
diff --git a/proto/DungeonCandidateTeamInviteRsp.proto b/proto/DungeonCandidateTeamInviteRsp.proto
new file mode 100644
index 00000000..2b91bc9f
--- /dev/null
+++ b/proto/DungeonCandidateTeamInviteRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 950
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonCandidateTeamInviteRsp {
+ int32 retcode = 12;
+ repeated uint32 Unk2700_OJEGACKKJAE = 7;
+}
diff --git a/proto/DungeonCandidateTeamKickReq.proto b/proto/DungeonCandidateTeamKickReq.proto
new file mode 100644
index 00000000..208c7e5e
--- /dev/null
+++ b/proto/DungeonCandidateTeamKickReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 943
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonCandidateTeamKickReq {
+ uint32 player_uid = 9;
+}
diff --git a/proto/DungeonCandidateTeamKickRsp.proto b/proto/DungeonCandidateTeamKickRsp.proto
new file mode 100644
index 00000000..91d59a47
--- /dev/null
+++ b/proto/DungeonCandidateTeamKickRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 974
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonCandidateTeamKickRsp {
+ int32 retcode = 1;
+}
diff --git a/proto/DungeonCandidateTeamLeaveReq.proto b/proto/DungeonCandidateTeamLeaveReq.proto
new file mode 100644
index 00000000..f5a932fa
--- /dev/null
+++ b/proto/DungeonCandidateTeamLeaveReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 976
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonCandidateTeamLeaveReq {}
diff --git a/proto/DungeonCandidateTeamLeaveRsp.proto b/proto/DungeonCandidateTeamLeaveRsp.proto
new file mode 100644
index 00000000..e3694c0e
--- /dev/null
+++ b/proto/DungeonCandidateTeamLeaveRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 946
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonCandidateTeamLeaveRsp {
+ int32 retcode = 14;
+}
diff --git a/proto/DungeonCandidateTeamPlayerLeaveNotify.proto b/proto/DungeonCandidateTeamPlayerLeaveNotify.proto
new file mode 100644
index 00000000..5181a8f8
--- /dev/null
+++ b/proto/DungeonCandidateTeamPlayerLeaveNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DungeonCandidateTeamPlayerLeaveReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 926
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonCandidateTeamPlayerLeaveNotify {
+ DungeonCandidateTeamPlayerLeaveReason reason = 3;
+ uint32 player_uid = 13;
+}
diff --git a/proto/DungeonCandidateTeamPlayerLeaveReason.proto b/proto/DungeonCandidateTeamPlayerLeaveReason.proto
new file mode 100644
index 00000000..ecb1ac81
--- /dev/null
+++ b/proto/DungeonCandidateTeamPlayerLeaveReason.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum DungeonCandidateTeamPlayerLeaveReason {
+ DUNGEON_CANDIDATE_TEAM_PLAYER_LEAVE_REASON_TPLR_NORMAL = 0;
+ DUNGEON_CANDIDATE_TEAM_PLAYER_LEAVE_REASON_TPLR_DIE = 1;
+ DUNGEON_CANDIDATE_TEAM_PLAYER_LEAVE_REASON_TPLR_BE_KICK = 2;
+ DUNGEON_CANDIDATE_TEAM_PLAYER_LEAVE_REASON_DISCONNECT = 3;
+}
diff --git a/proto/DungeonCandidateTeamPlayerState.proto b/proto/DungeonCandidateTeamPlayerState.proto
new file mode 100644
index 00000000..d68506fd
--- /dev/null
+++ b/proto/DungeonCandidateTeamPlayerState.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum DungeonCandidateTeamPlayerState {
+ DUNGEON_CANDIDATE_TEAM_PLAYER_STATE_IDLE = 0;
+ DUNGEON_CANDIDATE_TEAM_PLAYER_STATE_CHANGING_AVATAR = 1;
+ DUNGEON_CANDIDATE_TEAM_PLAYER_STATE_READY = 2;
+}
diff --git a/proto/DungeonCandidateTeamRefuseNotify.proto b/proto/DungeonCandidateTeamRefuseNotify.proto
new file mode 100644
index 00000000..e4b52c6e
--- /dev/null
+++ b/proto/DungeonCandidateTeamRefuseNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 988
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonCandidateTeamRefuseNotify {
+ uint32 player_uid = 3;
+}
diff --git a/proto/DungeonCandidateTeamReplyInviteReq.proto b/proto/DungeonCandidateTeamReplyInviteReq.proto
new file mode 100644
index 00000000..c11bd7b2
--- /dev/null
+++ b/proto/DungeonCandidateTeamReplyInviteReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 941
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonCandidateTeamReplyInviteReq {
+ bool is_accept = 5;
+}
diff --git a/proto/DungeonCandidateTeamReplyInviteRsp.proto b/proto/DungeonCandidateTeamReplyInviteRsp.proto
new file mode 100644
index 00000000..719c8de1
--- /dev/null
+++ b/proto/DungeonCandidateTeamReplyInviteRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 949
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonCandidateTeamReplyInviteRsp {
+ bool is_trans_point = 4;
+ int32 retcode = 2;
+}
diff --git a/proto/DungeonCandidateTeamSetChangingAvatarReq.proto b/proto/DungeonCandidateTeamSetChangingAvatarReq.proto
new file mode 100644
index 00000000..1844bae6
--- /dev/null
+++ b/proto/DungeonCandidateTeamSetChangingAvatarReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 918
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonCandidateTeamSetChangingAvatarReq {
+ bool is_changing_avatar = 12;
+}
diff --git a/proto/DungeonCandidateTeamSetChangingAvatarRsp.proto b/proto/DungeonCandidateTeamSetChangingAvatarRsp.proto
new file mode 100644
index 00000000..7a33fafa
--- /dev/null
+++ b/proto/DungeonCandidateTeamSetChangingAvatarRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 966
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonCandidateTeamSetChangingAvatarRsp {
+ int32 retcode = 2;
+}
diff --git a/proto/DungeonCandidateTeamSetReadyReq.proto b/proto/DungeonCandidateTeamSetReadyReq.proto
new file mode 100644
index 00000000..f6cb7b56
--- /dev/null
+++ b/proto/DungeonCandidateTeamSetReadyReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 991
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonCandidateTeamSetReadyReq {
+ bool is_ready = 15;
+}
diff --git a/proto/DungeonCandidateTeamSetReadyRsp.proto b/proto/DungeonCandidateTeamSetReadyRsp.proto
new file mode 100644
index 00000000..dc06813f
--- /dev/null
+++ b/proto/DungeonCandidateTeamSetReadyRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 924
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonCandidateTeamSetReadyRsp {
+ int32 retcode = 12;
+}
diff --git a/proto/DungeonChallengeBeginNotify.proto b/proto/DungeonChallengeBeginNotify.proto
new file mode 100644
index 00000000..c5fea947
--- /dev/null
+++ b/proto/DungeonChallengeBeginNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 947
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonChallengeBeginNotify {
+ uint32 father_index = 5;
+ repeated uint32 param_list = 14;
+ uint32 challenge_index = 6;
+ uint32 challenge_id = 1;
+ uint32 group_id = 4;
+ repeated uint32 uid_list = 12;
+}
diff --git a/proto/DungeonChallengeFinishNotify.proto b/proto/DungeonChallengeFinishNotify.proto
new file mode 100644
index 00000000..d38da7c7
--- /dev/null
+++ b/proto/DungeonChallengeFinishNotify.proto
@@ -0,0 +1,47 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChannelerSlabLoopDungeonResultInfo.proto";
+import "CustomDungeonResultInfo.proto";
+import "EffigyChallengeDungeonResultInfo.proto";
+import "PotionDungeonResultInfo.proto";
+import "StrengthenPointData.proto";
+import "Unk2700_FHOKHHBGPEG.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 939
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonChallengeFinishNotify {
+ map strengthen_point_data_map = 13;
+ Unk2700_FHOKHHBGPEG Unk2700_ONCDLPDHFAB = 9;
+ bool is_new_record = 10;
+ uint32 challenge_record_type = 7;
+ uint32 time_cost = 4;
+ uint32 current_value = 15;
+ bool is_success = 3;
+ uint32 challenge_index = 5;
+ oneof detail {
+ ChannelerSlabLoopDungeonResultInfo channeller_slab_loop_dungeon_result_info = 1521;
+ EffigyChallengeDungeonResultInfo effigy_challenge_dungeon_result_info = 1627;
+ PotionDungeonResultInfo potion_dungeon_result_info = 1824;
+ CustomDungeonResultInfo custom_dungeon_result_info = 1664;
+ }
+}
diff --git a/proto/DungeonDataNotify.proto b/proto/DungeonDataNotify.proto
new file mode 100644
index 00000000..1a3a09d3
--- /dev/null
+++ b/proto/DungeonDataNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 982
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonDataNotify {
+ map dungeon_data_map = 1;
+}
diff --git a/proto/DungeonDieOptionReq.proto b/proto/DungeonDieOptionReq.proto
new file mode 100644
index 00000000..062e1962
--- /dev/null
+++ b/proto/DungeonDieOptionReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayerDieOption.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 975
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonDieOptionReq {
+ PlayerDieOption die_option = 11;
+ bool is_quit_immediately = 14;
+}
diff --git a/proto/DungeonDieOptionRsp.proto b/proto/DungeonDieOptionRsp.proto
new file mode 100644
index 00000000..b0f3da24
--- /dev/null
+++ b/proto/DungeonDieOptionRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayerDieOption.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 948
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonDieOptionRsp {
+ int32 retcode = 5;
+ uint32 revive_count = 10;
+ PlayerDieOption die_option = 6;
+}
diff --git a/proto/DungeonEntryBlockReason.proto b/proto/DungeonEntryBlockReason.proto
new file mode 100644
index 00000000..c756bbe7
--- /dev/null
+++ b/proto/DungeonEntryBlockReason.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum DungeonEntryBlockReason {
+ DUNGEON_ENTRY_BLOCK_REASON_NONE = 0;
+ DUNGEON_ENTRY_BLOCK_REASON_LEVEL = 1;
+ DUNGEON_ENTRY_BLOCK_REASON_QUEST = 2;
+ DUNGEON_ENTRY_BLOCK_REASON_MULIPLE = 3;
+}
diff --git a/proto/DungeonEntryCond.proto b/proto/DungeonEntryCond.proto
new file mode 100644
index 00000000..7e06e74a
--- /dev/null
+++ b/proto/DungeonEntryCond.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DungeonEntryBlockReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message DungeonEntryCond {
+ DungeonEntryBlockReason cond_reason = 7;
+ uint32 param1 = 8;
+}
diff --git a/proto/DungeonEntryInfo.proto b/proto/DungeonEntryInfo.proto
new file mode 100644
index 00000000..158d9fe2
--- /dev/null
+++ b/proto/DungeonEntryInfo.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WeeklyBossResinDiscountInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message DungeonEntryInfo {
+ uint32 end_time = 6;
+ uint32 dungeon_id = 5;
+ uint32 boss_chest_num = 12;
+ uint32 max_boss_chest_num = 13;
+ uint32 next_refresh_time = 11;
+ WeeklyBossResinDiscountInfo weekly_boss_resin_discount_info = 9;
+ uint32 start_time = 15;
+ bool is_passed = 4;
+ uint32 left_times = 7;
+}
diff --git a/proto/DungeonEntryInfoReq.proto b/proto/DungeonEntryInfoReq.proto
new file mode 100644
index 00000000..702d20ab
--- /dev/null
+++ b/proto/DungeonEntryInfoReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Uint32Pair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 972
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonEntryInfoReq {
+ uint32 point_id = 2;
+ uint32 scene_id = 9;
+ repeated Uint32Pair Unk2800_GGAMJDFELPH = 4;
+}
diff --git a/proto/DungeonEntryInfoRsp.proto b/proto/DungeonEntryInfoRsp.proto
new file mode 100644
index 00000000..4d0e099f
--- /dev/null
+++ b/proto/DungeonEntryInfoRsp.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DungeonEntryInfo.proto";
+import "Unk2800_MHCFAGCKGIB.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 998
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonEntryInfoRsp {
+ repeated DungeonEntryInfo dungeon_entry_list = 12;
+ uint32 point_id = 15;
+ repeated Unk2800_MHCFAGCKGIB Unk2800_JJFLDCLMEHD = 4;
+ uint32 recommend_dungeon_id = 14;
+ int32 retcode = 11;
+}
diff --git a/proto/DungeonEntryToBeExploreNotify.proto b/proto/DungeonEntryToBeExploreNotify.proto
new file mode 100644
index 00000000..c064a0d3
--- /dev/null
+++ b/proto/DungeonEntryToBeExploreNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3147
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonEntryToBeExploreNotify {
+ uint32 dungeon_entry_scene_point_id = 2;
+ uint32 scene_id = 4;
+ uint32 dungeon_entry_config_id = 10;
+}
diff --git a/proto/DungeonFollowNotify.proto b/proto/DungeonFollowNotify.proto
new file mode 100644
index 00000000..39d34754
--- /dev/null
+++ b/proto/DungeonFollowNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 922
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonFollowNotify {
+ uint32 target_uid = 8;
+}
diff --git a/proto/DungeonGetStatueDropReq.proto b/proto/DungeonGetStatueDropReq.proto
new file mode 100644
index 00000000..af015a06
--- /dev/null
+++ b/proto/DungeonGetStatueDropReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 965
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonGetStatueDropReq {}
diff --git a/proto/DungeonGetStatueDropRsp.proto b/proto/DungeonGetStatueDropRsp.proto
new file mode 100644
index 00000000..1b184946
--- /dev/null
+++ b/proto/DungeonGetStatueDropRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 904
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonGetStatueDropRsp {
+ int32 retcode = 12;
+}
diff --git a/proto/DungeonInterruptChallengeReq.proto b/proto/DungeonInterruptChallengeReq.proto
new file mode 100644
index 00000000..e91e120d
--- /dev/null
+++ b/proto/DungeonInterruptChallengeReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 917
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonInterruptChallengeReq {
+ uint32 challenge_index = 14;
+ uint32 group_id = 13;
+ uint32 challenge_id = 11;
+}
diff --git a/proto/DungeonInterruptChallengeRsp.proto b/proto/DungeonInterruptChallengeRsp.proto
new file mode 100644
index 00000000..615d9c21
--- /dev/null
+++ b/proto/DungeonInterruptChallengeRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 902
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonInterruptChallengeRsp {
+ int32 retcode = 1;
+ uint32 challenge_index = 2;
+ uint32 group_id = 15;
+ uint32 challenge_id = 11;
+}
diff --git a/proto/DungeonPlayerDieNotify.proto b/proto/DungeonPlayerDieNotify.proto
new file mode 100644
index 00000000..01281f2b
--- /dev/null
+++ b/proto/DungeonPlayerDieNotify.proto
@@ -0,0 +1,39 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayerDieType.proto";
+import "StrengthenPointData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 931
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonPlayerDieNotify {
+ map strengthen_point_data_map = 15;
+ uint32 wait_time = 1;
+ uint32 dungeon_id = 9;
+ uint32 murderer_entity_id = 13;
+ PlayerDieType die_type = 3;
+ uint32 revive_count = 6;
+ oneof entity {
+ uint32 monster_id = 4;
+ uint32 gadget_id = 8;
+ }
+}
diff --git a/proto/DungeonPlayerDieReq.proto b/proto/DungeonPlayerDieReq.proto
new file mode 100644
index 00000000..084960ea
--- /dev/null
+++ b/proto/DungeonPlayerDieReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayerDieType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 981
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonPlayerDieReq {
+ PlayerDieType die_type = 6;
+ uint32 dungeon_id = 8;
+}
diff --git a/proto/DungeonPlayerDieRsp.proto b/proto/DungeonPlayerDieRsp.proto
new file mode 100644
index 00000000..60fad7ac
--- /dev/null
+++ b/proto/DungeonPlayerDieRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 905
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonPlayerDieRsp {
+ int32 retcode = 5;
+}
diff --git a/proto/DungeonRestartInviteNotify.proto b/proto/DungeonRestartInviteNotify.proto
new file mode 100644
index 00000000..11eb2c83
--- /dev/null
+++ b/proto/DungeonRestartInviteNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 957
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonRestartInviteNotify {
+ uint32 player_uid = 3;
+ uint32 cd = 15;
+ uint32 point_id = 13;
+ uint32 dungeon_id = 10;
+}
diff --git a/proto/DungeonRestartInviteReplyNotify.proto b/proto/DungeonRestartInviteReplyNotify.proto
new file mode 100644
index 00000000..ac4e2962
--- /dev/null
+++ b/proto/DungeonRestartInviteReplyNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 987
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonRestartInviteReplyNotify {
+ bool is_accept = 6;
+ uint32 player_uid = 9;
+}
diff --git a/proto/DungeonRestartInviteReplyReq.proto b/proto/DungeonRestartInviteReplyReq.proto
new file mode 100644
index 00000000..1f04d3f2
--- /dev/null
+++ b/proto/DungeonRestartInviteReplyReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1000
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonRestartInviteReplyReq {
+ bool is_accept = 11;
+}
diff --git a/proto/DungeonRestartInviteReplyRsp.proto b/proto/DungeonRestartInviteReplyRsp.proto
new file mode 100644
index 00000000..dbce208a
--- /dev/null
+++ b/proto/DungeonRestartInviteReplyRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 916
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonRestartInviteReplyRsp {
+ bool is_accept = 10;
+ bool is_trans_point = 1;
+ int32 retcode = 9;
+}
diff --git a/proto/DungeonRestartReq.proto b/proto/DungeonRestartReq.proto
new file mode 100644
index 00000000..5a1a2d22
--- /dev/null
+++ b/proto/DungeonRestartReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 961
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonRestartReq {}
diff --git a/proto/DungeonRestartResultNotify.proto b/proto/DungeonRestartResultNotify.proto
new file mode 100644
index 00000000..f6f8ea80
--- /dev/null
+++ b/proto/DungeonRestartResultNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 940
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonRestartResultNotify {
+ bool is_add_accpet = 9;
+}
diff --git a/proto/DungeonRestartRsp.proto b/proto/DungeonRestartRsp.proto
new file mode 100644
index 00000000..e67834db
--- /dev/null
+++ b/proto/DungeonRestartRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 929
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonRestartRsp {
+ uint32 dungeon_id = 15;
+ int32 retcode = 9;
+ uint32 point_id = 14;
+}
diff --git a/proto/DungeonReviseLevelNotify.proto b/proto/DungeonReviseLevelNotify.proto
new file mode 100644
index 00000000..19c1cbce
--- /dev/null
+++ b/proto/DungeonReviseLevelNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 968
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonReviseLevelNotify {
+ uint32 revise_level = 7;
+ uint32 dungeon_id = 14;
+}
diff --git a/proto/DungeonSettleExhibitionInfo.proto b/proto/DungeonSettleExhibitionInfo.proto
new file mode 100644
index 00000000..a06fc4a9
--- /dev/null
+++ b/proto/DungeonSettleExhibitionInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ExhibitionDisplayInfo.proto";
+import "OnlinePlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message DungeonSettleExhibitionInfo {
+ OnlinePlayerInfo player_info = 3;
+ repeated ExhibitionDisplayInfo card_list = 13;
+}
diff --git a/proto/DungeonSettleNotify.proto b/proto/DungeonSettleNotify.proto
new file mode 100644
index 00000000..13de95c5
--- /dev/null
+++ b/proto/DungeonSettleNotify.proto
@@ -0,0 +1,60 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChannelerSlabLoopDungeonResultInfo.proto";
+import "CrystalLinkSettleInfo.proto";
+import "DungeonSettleExhibitionInfo.proto";
+import "EffigyChallengeDungeonResultInfo.proto";
+import "InstableSpraySettleInfo.proto";
+import "ParamList.proto";
+import "RoguelikeDungeonSettleInfo.proto";
+import "StrengthenPointData.proto";
+import "SummerTimeV2DungeonSettleInfo.proto";
+import "TowerLevelEndNotify.proto";
+import "TrialAvatarFirstPassDungeonNotify.proto";
+import "WindFieldDungeonSettleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 999
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonSettleNotify {
+ uint32 result = 10;
+ uint32 dungeon_id = 13;
+ map strengthen_point_data_map = 14;
+ repeated DungeonSettleExhibitionInfo exhibition_info_list = 8;
+ uint32 Unk3100_PIFIBCAMAIG = 12;
+ repeated uint32 fail_cond_list = 11;
+ uint32 Unk2700_OMCCFBBDJMI = 1;
+ uint32 close_time = 4;
+ bool is_success = 7;
+ map settle_show = 5;
+ oneof detail {
+ TowerLevelEndNotify tower_level_end_notify = 351;
+ TrialAvatarFirstPassDungeonNotify trial_avatar_first_pass_dungeon_notify = 635;
+ ChannelerSlabLoopDungeonResultInfo channeller_slab_loop_dungeon_result_info = 686;
+ EffigyChallengeDungeonResultInfo effigy_challenge_dungeon_result_info = 328;
+ RoguelikeDungeonSettleInfo roguelike_dungeon_settle_info = 1482;
+ CrystalLinkSettleInfo crystal_link_settle_info = 112;
+ SummerTimeV2DungeonSettleInfo summer_time_v2_dungeon_settle_info = 1882;
+ InstableSpraySettleInfo instable_spray_settle_info = 193;
+ WindFieldDungeonSettleInfo wind_field_dungeon_settle_info = 1825;
+ }
+}
diff --git a/proto/DungeonShowReminderNotify.proto b/proto/DungeonShowReminderNotify.proto
new file mode 100644
index 00000000..2a92036c
--- /dev/null
+++ b/proto/DungeonShowReminderNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 997
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonShowReminderNotify {
+ uint32 reminder_id = 9;
+}
diff --git a/proto/DungeonSlipRevivePointActivateReq.proto b/proto/DungeonSlipRevivePointActivateReq.proto
new file mode 100644
index 00000000..c8399112
--- /dev/null
+++ b/proto/DungeonSlipRevivePointActivateReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 958
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonSlipRevivePointActivateReq {
+ uint32 slip_revive_point_id = 9;
+}
diff --git a/proto/DungeonSlipRevivePointActivateRsp.proto b/proto/DungeonSlipRevivePointActivateRsp.proto
new file mode 100644
index 00000000..6d9e6f7d
--- /dev/null
+++ b/proto/DungeonSlipRevivePointActivateRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 970
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonSlipRevivePointActivateRsp {
+ uint32 slip_revive_point_id = 14;
+ int32 retcode = 4;
+}
diff --git a/proto/DungeonWayPointActivateReq.proto b/proto/DungeonWayPointActivateReq.proto
new file mode 100644
index 00000000..9eed640a
--- /dev/null
+++ b/proto/DungeonWayPointActivateReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 990
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message DungeonWayPointActivateReq {
+ uint32 way_point_id = 3;
+}
diff --git a/proto/DungeonWayPointActivateRsp.proto b/proto/DungeonWayPointActivateRsp.proto
new file mode 100644
index 00000000..eb84c79c
--- /dev/null
+++ b/proto/DungeonWayPointActivateRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 973
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonWayPointActivateRsp {
+ int32 retcode = 6;
+ uint32 way_point_id = 7;
+}
diff --git a/proto/DungeonWayPointNotify.proto b/proto/DungeonWayPointNotify.proto
new file mode 100644
index 00000000..4de92007
--- /dev/null
+++ b/proto/DungeonWayPointNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 903
+// EnetChannelId: 0
+// EnetIsReliable: true
+message DungeonWayPointNotify {
+ bool is_add = 9;
+ repeated uint32 active_way_point_list = 4;
+}
diff --git a/proto/EchoNotify.proto b/proto/EchoNotify.proto
new file mode 100644
index 00000000..2a50b7b6
--- /dev/null
+++ b/proto/EchoNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 65
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EchoNotify {
+ uint32 seq_id = 4;
+ string content = 9;
+}
diff --git a/proto/EchoShellDetailInfo.proto b/proto/EchoShellDetailInfo.proto
new file mode 100644
index 00000000..b4ba84fa
--- /dev/null
+++ b/proto/EchoShellDetailInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2800_CEAECGGBOKL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EchoShellDetailInfo {
+ repeated Unk2800_CEAECGGBOKL Unk2800_KEMCFBCAMMM = 8;
+ repeated uint32 shell_list = 13;
+ repeated uint32 Unk2800_BFONDMJGNKL = 4;
+ repeated uint32 taken_reward_list = 2;
+}
diff --git a/proto/EchoShellInfo.proto b/proto/EchoShellInfo.proto
new file mode 100644
index 00000000..3f1de04a
--- /dev/null
+++ b/proto/EchoShellInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EchoShellInfo {
+ uint32 shell_id = 1;
+}
diff --git a/proto/EchoShellTakeRewardReq.proto b/proto/EchoShellTakeRewardReq.proto
new file mode 100644
index 00000000..259fe3d9
--- /dev/null
+++ b/proto/EchoShellTakeRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8114
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EchoShellTakeRewardReq {
+ uint32 reward_id = 10;
+}
diff --git a/proto/EchoShellTakeRewardRsp.proto b/proto/EchoShellTakeRewardRsp.proto
new file mode 100644
index 00000000..0a4e6c08
--- /dev/null
+++ b/proto/EchoShellTakeRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8797
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EchoShellTakeRewardRsp {
+ uint32 reward_id = 6;
+ int32 retcode = 10;
+}
diff --git a/proto/EchoShellUpdateNotify.proto b/proto/EchoShellUpdateNotify.proto
new file mode 100644
index 00000000..e42a69c9
--- /dev/null
+++ b/proto/EchoShellUpdateNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8150
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EchoShellUpdateNotify {
+ uint32 shell_id = 1;
+}
diff --git a/proto/EffigyActivityDetailInfo.proto b/proto/EffigyActivityDetailInfo.proto
new file mode 100644
index 00000000..f573b319
--- /dev/null
+++ b/proto/EffigyActivityDetailInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EffigyDailyInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EffigyActivityDetailInfo {
+ uint32 cur_score = 5;
+ repeated EffigyDailyInfo daily_info_list = 14;
+ uint32 last_difficulty_id = 9;
+ repeated uint32 taken_reward_index_list = 2;
+}
diff --git a/proto/EffigyChallengeDungeonResultInfo.proto b/proto/EffigyChallengeDungeonResultInfo.proto
new file mode 100644
index 00000000..5fbdff87
--- /dev/null
+++ b/proto/EffigyChallengeDungeonResultInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EffigyChallengeDungeonResultInfo {
+ uint32 challenge_score = 7;
+ bool is_in_time_limit = 8;
+ uint32 challenge_id = 6;
+ bool is_success = 15;
+ uint32 challenge_max_score = 13;
+}
diff --git a/proto/EffigyChallengeInfoNotify.proto b/proto/EffigyChallengeInfoNotify.proto
new file mode 100644
index 00000000..858016b9
--- /dev/null
+++ b/proto/EffigyChallengeInfoNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2090
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EffigyChallengeInfoNotify {
+ uint32 difficulty_id = 9;
+ repeated uint32 condition_id_list = 11;
+ uint32 challenge_score = 14;
+ uint32 challenge_id = 8;
+}
diff --git a/proto/EffigyChallengeResultNotify.proto b/proto/EffigyChallengeResultNotify.proto
new file mode 100644
index 00000000..dede3fd4
--- /dev/null
+++ b/proto/EffigyChallengeResultNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2046
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EffigyChallengeResultNotify {
+ bool is_success = 5;
+ uint32 challenge_max_score = 12;
+ uint32 challenge_score = 3;
+ uint32 challenge_id = 7;
+}
diff --git a/proto/EffigyDailyInfo.proto b/proto/EffigyDailyInfo.proto
new file mode 100644
index 00000000..9d7523c8
--- /dev/null
+++ b/proto/EffigyDailyInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EffigyDailyInfo {
+ uint32 challenge_max_score = 6;
+ bool is_first_pass_reward_taken = 12;
+ uint32 challenge_total_score = 15;
+ uint32 challenge_id = 1;
+ uint32 challenge_count = 3;
+ uint32 day_index = 14;
+ uint32 begin_time = 2;
+}
diff --git a/proto/ElementReliquaryRequest.proto b/proto/ElementReliquaryRequest.proto
new file mode 100644
index 00000000..43e4b095
--- /dev/null
+++ b/proto/ElementReliquaryRequest.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ElementReliquaryRequest {
+ uint32 equip_type = 9;
+ uint32 element_type = 12;
+}
diff --git a/proto/ElementReliquaryResponse.proto b/proto/ElementReliquaryResponse.proto
new file mode 100644
index 00000000..466583a9
--- /dev/null
+++ b/proto/ElementReliquaryResponse.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_GBBDJMDIDEI.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ElementReliquaryResponse {
+ uint32 element_type = 11;
+ repeated Unk2700_GBBDJMDIDEI Unk2700_DMDHDIHGPFA = 5;
+ uint32 equip_type = 15;
+}
diff --git a/proto/EndCameraSceneLookNotify.proto b/proto/EndCameraSceneLookNotify.proto
new file mode 100644
index 00000000..f0377f3c
--- /dev/null
+++ b/proto/EndCameraSceneLookNotify.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 217
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EndCameraSceneLookNotify {}
diff --git a/proto/EnterChessDungeonReq.proto b/proto/EnterChessDungeonReq.proto
new file mode 100644
index 00000000..40cec76a
--- /dev/null
+++ b/proto/EnterChessDungeonReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8191
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EnterChessDungeonReq {
+ uint32 map_id = 12;
+}
diff --git a/proto/EnterChessDungeonRsp.proto b/proto/EnterChessDungeonRsp.proto
new file mode 100644
index 00000000..a3d6cb42
--- /dev/null
+++ b/proto/EnterChessDungeonRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8592
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EnterChessDungeonRsp {
+ int32 retcode = 8;
+ uint32 map_id = 13;
+}
diff --git a/proto/EnterFishingReq.proto b/proto/EnterFishingReq.proto
new file mode 100644
index 00000000..97f9f5f3
--- /dev/null
+++ b/proto/EnterFishingReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5826
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EnterFishingReq {
+ uint32 fish_pool_id = 3;
+}
diff --git a/proto/EnterFishingRsp.proto b/proto/EnterFishingRsp.proto
new file mode 100644
index 00000000..f5516745
--- /dev/null
+++ b/proto/EnterFishingRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5818
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EnterFishingRsp {
+ int32 retcode = 7;
+ uint32 fish_pool_id = 9;
+}
diff --git a/proto/EnterMechanicusDungeonReq.proto b/proto/EnterMechanicusDungeonReq.proto
new file mode 100644
index 00000000..7807309e
--- /dev/null
+++ b/proto/EnterMechanicusDungeonReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3931
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EnterMechanicusDungeonReq {
+ uint32 difficult_level = 7;
+}
diff --git a/proto/EnterMechanicusDungeonRsp.proto b/proto/EnterMechanicusDungeonRsp.proto
new file mode 100644
index 00000000..75c8ecb8
--- /dev/null
+++ b/proto/EnterMechanicusDungeonRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3975
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EnterMechanicusDungeonRsp {
+ uint32 wrong_uid = 12;
+ uint32 difficult_level = 13;
+ int32 retcode = 6;
+ uint32 dungeon_id = 11;
+}
diff --git a/proto/EnterRoguelikeDungeonNotify.proto b/proto/EnterRoguelikeDungeonNotify.proto
new file mode 100644
index 00000000..866aefb9
--- /dev/null
+++ b/proto/EnterRoguelikeDungeonNotify.proto
@@ -0,0 +1,45 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RogueCellInfo.proto";
+import "RoguelikeRuneRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8652
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EnterRoguelikeDungeonNotify {
+ bool is_mist_clear = 14;
+ uint32 dungeon_weight_config_id = 2;
+ repeated RoguelikeRuneRecord rune_record_list = 6;
+ repeated uint64 onstage_avatar_guid_list = 9;
+ bool is_first_enter = 205;
+ repeated uint32 explored_cell_list = 3;
+ map cell_info_map = 11;
+ uint32 dungeon_id = 1;
+ uint32 refresh_cost_item_count = 1999;
+ float bonus_resource_prop = 13;
+ uint32 revise_monster_level = 1541;
+ uint32 stage_id = 15;
+ repeated uint64 backstage_avatar_guid_list = 10;
+ uint32 cur_cell_id = 12;
+ uint32 refresh_cost_item_id = 7;
+ uint32 cur_level = 8;
+}
diff --git a/proto/EnterSceneDoneReq.proto b/proto/EnterSceneDoneReq.proto
new file mode 100644
index 00000000..91baa5cc
--- /dev/null
+++ b/proto/EnterSceneDoneReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 277
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EnterSceneDoneReq {
+ uint32 enter_scene_token = 11;
+}
diff --git a/proto/EnterSceneDoneRsp.proto b/proto/EnterSceneDoneRsp.proto
new file mode 100644
index 00000000..491aec9c
--- /dev/null
+++ b/proto/EnterSceneDoneRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 237
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EnterSceneDoneRsp {
+ uint32 enter_scene_token = 15;
+ int32 retcode = 7;
+}
diff --git a/proto/EnterScenePeerNotify.proto b/proto/EnterScenePeerNotify.proto
new file mode 100644
index 00000000..05e36fe0
--- /dev/null
+++ b/proto/EnterScenePeerNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 252
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EnterScenePeerNotify {
+ uint32 dest_scene_id = 12;
+ uint32 enter_scene_token = 11;
+ uint32 host_peer_id = 14;
+ uint32 peer_id = 1;
+}
diff --git a/proto/EnterSceneReadyReq.proto b/proto/EnterSceneReadyReq.proto
new file mode 100644
index 00000000..aa243399
--- /dev/null
+++ b/proto/EnterSceneReadyReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 208
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EnterSceneReadyReq {
+ uint32 enter_scene_token = 9;
+}
diff --git a/proto/EnterSceneReadyRsp.proto b/proto/EnterSceneReadyRsp.proto
new file mode 100644
index 00000000..43ddc613
--- /dev/null
+++ b/proto/EnterSceneReadyRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 209
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EnterSceneReadyRsp {
+ uint32 enter_scene_token = 1;
+ int32 retcode = 4;
+}
diff --git a/proto/EnterSceneWeatherAreaNotify.proto b/proto/EnterSceneWeatherAreaNotify.proto
new file mode 100644
index 00000000..8a7b6808
--- /dev/null
+++ b/proto/EnterSceneWeatherAreaNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 256
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EnterSceneWeatherAreaNotify {
+ uint32 weather_gadget_id = 13;
+}
diff --git a/proto/EnterTransPointRegionNotify.proto b/proto/EnterTransPointRegionNotify.proto
new file mode 100644
index 00000000..71009238
--- /dev/null
+++ b/proto/EnterTransPointRegionNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 205
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EnterTransPointRegionNotify {
+ uint32 scene_id = 8;
+ uint32 point_id = 6;
+}
diff --git a/proto/EnterTrialAvatarActivityDungeonReq.proto b/proto/EnterTrialAvatarActivityDungeonReq.proto
new file mode 100644
index 00000000..12ffc479
--- /dev/null
+++ b/proto/EnterTrialAvatarActivityDungeonReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2118
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EnterTrialAvatarActivityDungeonReq {
+ uint32 enter_point_id = 10;
+ uint32 trial_avatar_index_id = 5;
+ uint32 activity_id = 14;
+}
diff --git a/proto/EnterTrialAvatarActivityDungeonRsp.proto b/proto/EnterTrialAvatarActivityDungeonRsp.proto
new file mode 100644
index 00000000..2c77bb74
--- /dev/null
+++ b/proto/EnterTrialAvatarActivityDungeonRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2183
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EnterTrialAvatarActivityDungeonRsp {
+ int32 retcode = 11;
+ uint32 trial_avatar_index_id = 13;
+ uint32 activity_id = 10;
+}
diff --git a/proto/EnterType.proto b/proto/EnterType.proto
new file mode 100644
index 00000000..8a26f12a
--- /dev/null
+++ b/proto/EnterType.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum EnterType {
+ ENTER_TYPE_NONE = 0;
+ ENTER_TYPE_SELF = 1;
+ ENTER_TYPE_GOTO = 2;
+ ENTER_TYPE_JUMP = 3;
+ ENTER_TYPE_OTHER = 4;
+ ENTER_TYPE_BACK = 5;
+ ENTER_TYPE_DUNGEON = 6;
+ ENTER_TYPE_DUNGEON_REPLAY = 7;
+ ENTER_TYPE_GOTO_BY_PORTAL = 8;
+ ENTER_TYPE_SELF_HOME = 9;
+ ENTER_TYPE_OTHER_HOME = 10;
+ ENTER_TYPE_GOTO_RECREATE = 11;
+}
diff --git a/proto/EnterWorldAreaReq.proto b/proto/EnterWorldAreaReq.proto
new file mode 100644
index 00000000..970525f1
--- /dev/null
+++ b/proto/EnterWorldAreaReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 250
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EnterWorldAreaReq {
+ uint32 area_type = 8;
+ uint32 area_id = 1;
+}
diff --git a/proto/EnterWorldAreaRsp.proto b/proto/EnterWorldAreaRsp.proto
new file mode 100644
index 00000000..17acb6b5
--- /dev/null
+++ b/proto/EnterWorldAreaRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 243
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EnterWorldAreaRsp {
+ uint32 area_type = 1;
+ uint32 area_id = 7;
+ int32 retcode = 9;
+}
diff --git a/proto/EntityAbilityInvokeEntry.proto b/proto/EntityAbilityInvokeEntry.proto
new file mode 100644
index 00000000..d423c160
--- /dev/null
+++ b/proto/EntityAbilityInvokeEntry.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityInvokeEntry.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EntityAbilityInvokeEntry {
+ uint32 entity_id = 8;
+ repeated AbilityInvokeEntry invokes = 1;
+}
diff --git a/proto/EntityAiKillSelfNotify.proto b/proto/EntityAiKillSelfNotify.proto
new file mode 100644
index 00000000..434faaba
--- /dev/null
+++ b/proto/EntityAiKillSelfNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 340
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EntityAiKillSelfNotify {
+ uint32 entity_id = 12;
+}
diff --git a/proto/EntityAiSyncNotify.proto b/proto/EntityAiSyncNotify.proto
new file mode 100644
index 00000000..ae364f09
--- /dev/null
+++ b/proto/EntityAiSyncNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AiSyncInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 400
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EntityAiSyncNotify {
+ repeated uint32 local_avatar_alerted_monster_list = 15;
+ repeated AiSyncInfo info_list = 1;
+}
diff --git a/proto/EntityAuthorityChangeNotify.proto b/proto/EntityAuthorityChangeNotify.proto
new file mode 100644
index 00000000..e054dec2
--- /dev/null
+++ b/proto/EntityAuthorityChangeNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AuthorityChange.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 394
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EntityAuthorityChangeNotify {
+ repeated AuthorityChange authority_change_list = 15;
+}
diff --git a/proto/EntityAuthorityInfo.proto b/proto/EntityAuthorityInfo.proto
new file mode 100644
index 00000000..194a35b4
--- /dev/null
+++ b/proto/EntityAuthorityInfo.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilitySyncStateInfo.proto";
+import "AnimatorParameterValueInfoPair.proto";
+import "EntityRendererChangedInfo.proto";
+import "SceneEntityAiInfo.proto";
+import "Unk2700_HFMDKDHCJCM.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EntityAuthorityInfo {
+ AbilitySyncStateInfo ability_info = 1;
+ EntityRendererChangedInfo renderer_changed_info = 2;
+ SceneEntityAiInfo ai_info = 3;
+ Vector born_pos = 4;
+ repeated AnimatorParameterValueInfoPair pose_para_list = 5;
+ Unk2700_HFMDKDHCJCM Unk2700_KDGMOPELHNE = 6;
+}
diff --git a/proto/EntityClientData.proto b/proto/EntityClientData.proto
new file mode 100644
index 00000000..58ae8173
--- /dev/null
+++ b/proto/EntityClientData.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EntityClientData {
+ uint32 wind_change_scene_time = 1;
+ float windmill_sync_angle = 2;
+ int32 wind_change_target_level = 3;
+}
diff --git a/proto/EntityConfigHashEntry.proto b/proto/EntityConfigHashEntry.proto
new file mode 100644
index 00000000..16f41144
--- /dev/null
+++ b/proto/EntityConfigHashEntry.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EntityConfigHashEntry {
+ uint32 job_id = 13;
+ int32 hash_value = 6;
+ uint32 entity_id = 11;
+}
diff --git a/proto/EntityConfigHashNotify.proto b/proto/EntityConfigHashNotify.proto
new file mode 100644
index 00000000..505671bc
--- /dev/null
+++ b/proto/EntityConfigHashNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EntityConfigHashEntry.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3189
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EntityConfigHashNotify {
+ repeated EntityConfigHashEntry ability_entry_list = 3;
+ repeated EntityConfigHashEntry avatar_entry_list = 15;
+ repeated EntityConfigHashEntry combat_entry_list = 8;
+}
diff --git a/proto/EntityEnvironmentInfo.proto b/proto/EntityEnvironmentInfo.proto
new file mode 100644
index 00000000..3275e779
--- /dev/null
+++ b/proto/EntityEnvironmentInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EntityEnvironmentInfo {
+ uint32 json_climate_type = 1;
+ uint32 climate_area_id = 2;
+}
diff --git a/proto/EntityFightPropChangeReasonNotify.proto b/proto/EntityFightPropChangeReasonNotify.proto
new file mode 100644
index 00000000..6f47f60a
--- /dev/null
+++ b/proto/EntityFightPropChangeReasonNotify.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChangeEnergyReason.proto";
+import "ChangeHpReason.proto";
+import "PropChangeReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1203
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EntityFightPropChangeReasonNotify {
+ repeated uint32 param_list = 10;
+ float prop_delta = 1;
+ ChangeHpReason change_hp_reason = 14;
+ PropChangeReason reason = 6;
+ uint32 entity_id = 5;
+ ChangeEnergyReason change_energy_reson = 15;
+ uint32 prop_type = 13;
+}
diff --git a/proto/EntityFightPropNotify.proto b/proto/EntityFightPropNotify.proto
new file mode 100644
index 00000000..ae9a13cd
--- /dev/null
+++ b/proto/EntityFightPropNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1212
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EntityFightPropNotify {
+ uint32 entity_id = 4;
+ map fight_prop_map = 8;
+}
diff --git a/proto/EntityFightPropUpdateNotify.proto b/proto/EntityFightPropUpdateNotify.proto
new file mode 100644
index 00000000..9d4ebfd6
--- /dev/null
+++ b/proto/EntityFightPropUpdateNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1235
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EntityFightPropUpdateNotify {
+ map fight_prop_map = 15;
+ uint32 entity_id = 13;
+}
diff --git a/proto/EntityForceSyncReq.proto b/proto/EntityForceSyncReq.proto
new file mode 100644
index 00000000..f3239822
--- /dev/null
+++ b/proto/EntityForceSyncReq.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MotionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 274
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EntityForceSyncReq {
+ uint32 room_id = 1;
+ MotionInfo motion_info = 11;
+ uint32 entity_id = 13;
+ uint32 scene_time = 12;
+}
diff --git a/proto/EntityForceSyncRsp.proto b/proto/EntityForceSyncRsp.proto
new file mode 100644
index 00000000..6ae26cba
--- /dev/null
+++ b/proto/EntityForceSyncRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MotionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 276
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EntityForceSyncRsp {
+ uint32 scene_time = 14;
+ uint32 entity_id = 6;
+ MotionInfo fail_motion = 8;
+ int32 retcode = 4;
+}
diff --git a/proto/EntityJumpNotify.proto b/proto/EntityJumpNotify.proto
new file mode 100644
index 00000000..e970b04c
--- /dev/null
+++ b/proto/EntityJumpNotify.proto
@@ -0,0 +1,38 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 222
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EntityJumpNotify {
+ Type jump_type = 9;
+ Vector rot = 8;
+ Vector pos = 10;
+ uint32 entity_id = 12;
+
+ enum Type {
+ TYPE_NULL = 0;
+ TYPE_ACTIVE = 1;
+ TYPE_PASSIVE = 2;
+ }
+}
diff --git a/proto/EntityMoveFailInfo.proto b/proto/EntityMoveFailInfo.proto
new file mode 100644
index 00000000..0f841882
--- /dev/null
+++ b/proto/EntityMoveFailInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MotionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EntityMoveFailInfo {
+ int32 retcode = 12;
+ uint32 scene_time = 9;
+ MotionInfo fail_motion = 14;
+ uint32 reliable_seq = 4;
+ uint32 entity_id = 10;
+}
diff --git a/proto/EntityMoveInfo.proto b/proto/EntityMoveInfo.proto
new file mode 100644
index 00000000..0dbe6c78
--- /dev/null
+++ b/proto/EntityMoveInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MotionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EntityMoveInfo {
+ uint32 entity_id = 1;
+ MotionInfo motion_info = 2;
+ uint32 scene_time = 3;
+ uint32 reliable_seq = 4;
+ bool is_reliable = 5;
+}
diff --git a/proto/EntityMoveRoomNotify.proto b/proto/EntityMoveRoomNotify.proto
new file mode 100644
index 00000000..c4dbace8
--- /dev/null
+++ b/proto/EntityMoveRoomNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3178
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EntityMoveRoomNotify {
+ uint32 entity_id = 11;
+ uint32 dest_room_id = 9;
+}
diff --git a/proto/EntityPropNotify.proto b/proto/EntityPropNotify.proto
new file mode 100644
index 00000000..c00d3bbe
--- /dev/null
+++ b/proto/EntityPropNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PropValue.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1272
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EntityPropNotify {
+ map prop_map = 1;
+ uint32 entity_id = 14;
+}
diff --git a/proto/EntityRendererChangedInfo.proto b/proto/EntityRendererChangedInfo.proto
new file mode 100644
index 00000000..efd6db94
--- /dev/null
+++ b/proto/EntityRendererChangedInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EntityRendererChangedInfo {
+ map changed_renderers = 1;
+ uint32 visibility_count = 2;
+ bool is_cached = 3;
+}
diff --git a/proto/EntityTagChangeNotify.proto b/proto/EntityTagChangeNotify.proto
new file mode 100644
index 00000000..45fb0284
--- /dev/null
+++ b/proto/EntityTagChangeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3316
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EntityTagChangeNotify {
+ string tag = 2;
+ uint32 entity_id = 8;
+ bool is_add = 10;
+}
diff --git a/proto/Equip.proto b/proto/Equip.proto
new file mode 100644
index 00000000..6fc3993c
--- /dev/null
+++ b/proto/Equip.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Reliquary.proto";
+import "Weapon.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Equip {
+ bool is_locked = 3;
+ oneof detail {
+ Reliquary reliquary = 1;
+ Weapon weapon = 2;
+ }
+}
diff --git a/proto/EquipParam.proto b/proto/EquipParam.proto
new file mode 100644
index 00000000..ccc507b7
--- /dev/null
+++ b/proto/EquipParam.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EquipParam {
+ uint32 item_id = 1;
+ uint32 item_num = 2;
+ uint32 item_level = 3;
+ uint32 promote_level = 4;
+}
diff --git a/proto/EquipParamList.proto b/proto/EquipParamList.proto
new file mode 100644
index 00000000..8a0e4014
--- /dev/null
+++ b/proto/EquipParamList.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EquipParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EquipParamList {
+ repeated EquipParam item_list = 1;
+}
diff --git a/proto/EquipRoguelikeRuneReq.proto b/proto/EquipRoguelikeRuneReq.proto
new file mode 100644
index 00000000..ce242fd3
--- /dev/null
+++ b/proto/EquipRoguelikeRuneReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8306
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EquipRoguelikeRuneReq {
+ repeated uint32 rune_list = 3;
+}
diff --git a/proto/EquipRoguelikeRuneRsp.proto b/proto/EquipRoguelikeRuneRsp.proto
new file mode 100644
index 00000000..6a287536
--- /dev/null
+++ b/proto/EquipRoguelikeRuneRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8705
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EquipRoguelikeRuneRsp {
+ int32 retcode = 14;
+ repeated uint32 rune_list = 1;
+}
diff --git a/proto/EventTriggerType.proto b/proto/EventTriggerType.proto
new file mode 100644
index 00000000..c828dbf7
--- /dev/null
+++ b/proto/EventTriggerType.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum EventTriggerType {
+ EVENT_TRIGGER_TYPE_NONE = 0;
+ EVENT_TRIGGER_TYPE_ENTER_FORCE = 1;
+}
diff --git a/proto/EvtAiSyncCombatThreatInfoNotify.proto b/proto/EvtAiSyncCombatThreatInfoNotify.proto
new file mode 100644
index 00000000..46d29fec
--- /dev/null
+++ b/proto/EvtAiSyncCombatThreatInfoNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AiThreatInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 329
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtAiSyncCombatThreatInfoNotify {
+ map combat_threat_info_map = 8;
+}
diff --git a/proto/EvtAiSyncSkillCdNotify.proto b/proto/EvtAiSyncSkillCdNotify.proto
new file mode 100644
index 00000000..e4bc2f62
--- /dev/null
+++ b/proto/EvtAiSyncSkillCdNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AiSkillCdInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 376
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtAiSyncSkillCdNotify {
+ map ai_cd_map = 7;
+}
diff --git a/proto/EvtAnimatorParameterInfo.proto b/proto/EvtAnimatorParameterInfo.proto
new file mode 100644
index 00000000..b3c2c8b8
--- /dev/null
+++ b/proto/EvtAnimatorParameterInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AnimatorParameterValueInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EvtAnimatorParameterInfo {
+ uint32 entity_id = 4;
+ bool is_server_cache = 5;
+ AnimatorParameterValueInfo value = 7;
+ int32 name_id = 15;
+}
diff --git a/proto/EvtAnimatorParameterNotify.proto b/proto/EvtAnimatorParameterNotify.proto
new file mode 100644
index 00000000..83083963
--- /dev/null
+++ b/proto/EvtAnimatorParameterNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EvtAnimatorParameterInfo.proto";
+import "ForwardType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 398
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtAnimatorParameterNotify {
+ EvtAnimatorParameterInfo animator_param_info = 12;
+ ForwardType forward_type = 14;
+}
diff --git a/proto/EvtAnimatorStateChangedInfo.proto b/proto/EvtAnimatorStateChangedInfo.proto
new file mode 100644
index 00000000..1395ad3e
--- /dev/null
+++ b/proto/EvtAnimatorStateChangedInfo.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EvtAnimatorStateChangedInfo {
+ int32 face_angle_compact = 14;
+ uint32 to_state_hash = 5;
+ uint32 normalized_time_compact = 9;
+ uint32 Unk2700_HEMGNDKMAFO = 2;
+ Vector pos = 13;
+ float fade_duration = 3;
+ bool Unk2700_CJCJLGHIBPK = 1;
+ uint32 entity_id = 15;
+ bool Unk2700_JECBLPNLJMJ = 7;
+}
diff --git a/proto/EvtAnimatorStateChangedNotify.proto b/proto/EvtAnimatorStateChangedNotify.proto
new file mode 100644
index 00000000..4fda9d92
--- /dev/null
+++ b/proto/EvtAnimatorStateChangedNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EvtAnimatorStateChangedInfo.proto";
+import "ForwardType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 331
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtAnimatorStateChangedNotify {
+ ForwardType forward_type = 3;
+ EvtAnimatorStateChangedInfo evt_animator_state_changed_info = 10;
+}
diff --git a/proto/EvtAvatarEnterFocusNotify.proto b/proto/EvtAvatarEnterFocusNotify.proto
new file mode 100644
index 00000000..8e3d9fed
--- /dev/null
+++ b/proto/EvtAvatarEnterFocusNotify.proto
@@ -0,0 +1,43 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForwardType.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 304
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtAvatarEnterFocusNotify {
+ uint32 entity_id = 1;
+ bool can_move = 10;
+ bool enter_holding_focus_shoot = 13;
+ bool Unk2700_GACKGHEHEIK = 6;
+ bool use_auto_focus = 5;
+ bool fast_focus = 3;
+ bool show_cross_hair = 12;
+ bool enter_normal_focus_shoot = 14;
+ ForwardType forward_type = 8;
+ Vector focus_forward = 7;
+ bool disable_anim = 9;
+ bool use_focus_sticky = 15;
+ bool use_gyro = 11;
+}
diff --git a/proto/EvtAvatarExitFocusNotify.proto b/proto/EvtAvatarExitFocusNotify.proto
new file mode 100644
index 00000000..a0a593e9
--- /dev/null
+++ b/proto/EvtAvatarExitFocusNotify.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForwardType.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 393
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtAvatarExitFocusNotify {
+ Vector finish_forward = 12;
+ ForwardType forward_type = 11;
+ uint32 entity_id = 14;
+}
diff --git a/proto/EvtAvatarLockChairReq.proto b/proto/EvtAvatarLockChairReq.proto
new file mode 100644
index 00000000..08c5b6f1
--- /dev/null
+++ b/proto/EvtAvatarLockChairReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 318
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtAvatarLockChairReq {
+ uint64 chair_id = 5;
+ Vector position = 8;
+}
diff --git a/proto/EvtAvatarLockChairRsp.proto b/proto/EvtAvatarLockChairRsp.proto
new file mode 100644
index 00000000..27c1d4af
--- /dev/null
+++ b/proto/EvtAvatarLockChairRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 366
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EvtAvatarLockChairRsp {
+ uint64 chair_id = 14;
+ uint32 entity_id = 15;
+ Vector position = 4;
+ int32 retcode = 12;
+}
diff --git a/proto/EvtAvatarSitDownNotify.proto b/proto/EvtAvatarSitDownNotify.proto
new file mode 100644
index 00000000..02dc8fbf
--- /dev/null
+++ b/proto/EvtAvatarSitDownNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 324
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtAvatarSitDownNotify {
+ Vector position = 9;
+ uint32 entity_id = 4;
+ uint64 chair_id = 6;
+}
diff --git a/proto/EvtAvatarStandUpNotify.proto b/proto/EvtAvatarStandUpNotify.proto
new file mode 100644
index 00000000..980d0a97
--- /dev/null
+++ b/proto/EvtAvatarStandUpNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 356
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtAvatarStandUpNotify {
+ uint64 chair_id = 11;
+ int32 perform_id = 6;
+ int32 direction = 1;
+ uint32 entity_id = 9;
+}
diff --git a/proto/EvtAvatarUpdateFocusNotify.proto b/proto/EvtAvatarUpdateFocusNotify.proto
new file mode 100644
index 00000000..26c80881
--- /dev/null
+++ b/proto/EvtAvatarUpdateFocusNotify.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForwardType.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 327
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtAvatarUpdateFocusNotify {
+ ForwardType forward_type = 7;
+ Vector focus_forward = 11;
+ uint32 entity_id = 10;
+}
diff --git a/proto/EvtBeingHitInfo.proto b/proto/EvtBeingHitInfo.proto
new file mode 100644
index 00000000..3bc70dfc
--- /dev/null
+++ b/proto/EvtBeingHitInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AttackResult.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EvtBeingHitInfo {
+ uint32 peer_id = 6;
+ AttackResult attack_result = 7;
+ uint32 frame_num = 4;
+}
diff --git a/proto/EvtBeingHitNotify.proto b/proto/EvtBeingHitNotify.proto
new file mode 100644
index 00000000..09d21680
--- /dev/null
+++ b/proto/EvtBeingHitNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EvtBeingHitInfo.proto";
+import "ForwardType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 372
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtBeingHitNotify {
+ ForwardType forward_type = 6;
+ EvtBeingHitInfo being_hit_info = 3;
+}
diff --git a/proto/EvtBeingHitsCombineNotify.proto b/proto/EvtBeingHitsCombineNotify.proto
new file mode 100644
index 00000000..07bbf9a8
--- /dev/null
+++ b/proto/EvtBeingHitsCombineNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EvtBeingHitInfo.proto";
+import "ForwardType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 346
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtBeingHitsCombineNotify {
+ ForwardType forward_type = 11;
+ repeated EvtBeingHitInfo evt_being_hit_info_list = 7;
+}
diff --git a/proto/EvtBulletDeactiveNotify.proto b/proto/EvtBulletDeactiveNotify.proto
new file mode 100644
index 00000000..b0f1dcb9
--- /dev/null
+++ b/proto/EvtBulletDeactiveNotify.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForwardType.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 397
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtBulletDeactiveNotify {
+ ForwardType forward_type = 6;
+ uint32 entity_id = 9;
+ Vector disappear_pos = 4;
+}
diff --git a/proto/EvtBulletHitNotify.proto b/proto/EvtBulletHitNotify.proto
new file mode 100644
index 00000000..44937496
--- /dev/null
+++ b/proto/EvtBulletHitNotify.proto
@@ -0,0 +1,40 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForwardType.proto";
+import "HitColliderType.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 348
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtBulletHitNotify {
+ uint32 Unk2700_FEALLBIBHOL = 8;
+ Vector hit_point = 15;
+ Vector hit_normal = 11;
+ int32 hit_box_index = 9;
+ uint32 hit_entity_id = 3;
+ uint32 entity_id = 5;
+ uint32 forward_peer = 7;
+ ForwardType forward_type = 2;
+ HitColliderType hit_collider_type = 6;
+}
diff --git a/proto/EvtBulletMoveNotify.proto b/proto/EvtBulletMoveNotify.proto
new file mode 100644
index 00000000..a35641bc
--- /dev/null
+++ b/proto/EvtBulletMoveNotify.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForwardType.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 365
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtBulletMoveNotify {
+ ForwardType forward_type = 14;
+ Vector cur_pos = 1;
+ uint32 entity_id = 11;
+}
diff --git a/proto/EvtCombatForceSetPosInfo.proto b/proto/EvtCombatForceSetPosInfo.proto
new file mode 100644
index 00000000..9e0a19a9
--- /dev/null
+++ b/proto/EvtCombatForceSetPosInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EvtCombatForceSetPosInfo {
+ uint32 ice_id = 9;
+ uint32 collider_entity_id = 10;
+ uint32 entity_id = 6;
+ Vector target_pos = 1;
+}
diff --git a/proto/EvtCombatSteerMotionInfo.proto b/proto/EvtCombatSteerMotionInfo.proto
new file mode 100644
index 00000000..8aa11047
--- /dev/null
+++ b/proto/EvtCombatSteerMotionInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EvtCombatSteerMotionInfo {
+ Vector pos = 12;
+ Vector velocity = 10;
+ uint32 entity_id = 4;
+ Vector face_dir = 1;
+}
diff --git a/proto/EvtCompensatePosDiffInfo.proto b/proto/EvtCompensatePosDiffInfo.proto
new file mode 100644
index 00000000..972cf716
--- /dev/null
+++ b/proto/EvtCompensatePosDiffInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EvtCompensatePosDiffInfo {
+ Vector cur_pos = 14;
+ uint32 entity_id = 11;
+ int32 face_angle_compact = 10;
+ uint32 cur_hash = 4;
+ uint32 normalized_time_compact = 3;
+}
diff --git a/proto/EvtCostStaminaNotify.proto b/proto/EvtCostStaminaNotify.proto
new file mode 100644
index 00000000..14644cc1
--- /dev/null
+++ b/proto/EvtCostStaminaNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 373
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtCostStaminaNotify {
+ uint32 skill_id = 6;
+ float cost_stamina = 11;
+}
diff --git a/proto/EvtCreateGadgetNotify.proto b/proto/EvtCreateGadgetNotify.proto
new file mode 100644
index 00000000..66a7d8a6
--- /dev/null
+++ b/proto/EvtCreateGadgetNotify.proto
@@ -0,0 +1,49 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForwardType.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 307
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtCreateGadgetNotify {
+ bool is_async_load = 8;
+ uint32 camp_type = 5;
+ bool sight_group_with_owner = 10;
+ repeated uint32 Unk2700_BELOIHEIEAN = 889;
+ ForwardType forward_type = 12;
+ uint32 entity_id = 2;
+ uint32 target_entity_id = 3;
+ uint32 camp_id = 15;
+ uint64 guid = 6;
+ Vector init_euler_angles = 13;
+ uint32 target_lock_point_index = 11;
+ repeated uint32 Unk2700_JDNFLLGJBGA = 1920;
+ Vector init_pos = 4;
+ uint32 owner_entity_id = 9;
+ uint32 room_id = 7;
+ bool Unk2700_JBOPENAGGAF = 25;
+ uint32 prop_owner_entity_id = 1;
+ bool Unk2700_IHIDGKPHFME = 379;
+ uint32 config_id = 14;
+}
diff --git a/proto/EvtDestroyGadgetNotify.proto b/proto/EvtDestroyGadgetNotify.proto
new file mode 100644
index 00000000..07d73e71
--- /dev/null
+++ b/proto/EvtDestroyGadgetNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForwardType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 321
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtDestroyGadgetNotify {
+ ForwardType forward_type = 5;
+ uint32 entity_id = 3;
+}
diff --git a/proto/EvtDestroyServerGadgetNotify.proto b/proto/EvtDestroyServerGadgetNotify.proto
new file mode 100644
index 00000000..535dfc02
--- /dev/null
+++ b/proto/EvtDestroyServerGadgetNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 387
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtDestroyServerGadgetNotify {
+ uint32 entity_id = 7;
+}
diff --git a/proto/EvtDoSkillSuccNotify.proto b/proto/EvtDoSkillSuccNotify.proto
new file mode 100644
index 00000000..2c63c011
--- /dev/null
+++ b/proto/EvtDoSkillSuccNotify.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForwardType.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 335
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtDoSkillSuccNotify {
+ uint32 caster_id = 13;
+ ForwardType forward_type = 10;
+ Vector forward = 15;
+ uint32 skill_id = 7;
+}
diff --git a/proto/EvtEntityRenderersChangedNotify.proto b/proto/EvtEntityRenderersChangedNotify.proto
new file mode 100644
index 00000000..34eb23e5
--- /dev/null
+++ b/proto/EvtEntityRenderersChangedNotify.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EntityRendererChangedInfo.proto";
+import "ForwardType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 343
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtEntityRenderersChangedNotify {
+ ForwardType forward_type = 8;
+ bool is_server_cache = 3;
+ EntityRendererChangedInfo renderer_changed_info = 5;
+ uint32 entity_id = 15;
+}
diff --git a/proto/EvtEntityStartDieEndNotify.proto b/proto/EvtEntityStartDieEndNotify.proto
new file mode 100644
index 00000000..eb406034
--- /dev/null
+++ b/proto/EvtEntityStartDieEndNotify.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForwardType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 381
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtEntityStartDieEndNotify {
+ bool immediately = 15;
+ uint32 die_state_flag = 12;
+ uint32 entity_id = 8;
+ ForwardType forward_type = 11;
+}
diff --git a/proto/EvtFaceToDirInfo.proto b/proto/EvtFaceToDirInfo.proto
new file mode 100644
index 00000000..ee86d9d2
--- /dev/null
+++ b/proto/EvtFaceToDirInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EvtFaceToDirInfo {
+ uint32 entity_id = 12;
+ Vector face_dir = 14;
+}
diff --git a/proto/EvtFaceToDirNotify.proto b/proto/EvtFaceToDirNotify.proto
new file mode 100644
index 00000000..ea0f639e
--- /dev/null
+++ b/proto/EvtFaceToDirNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EvtFaceToDirInfo.proto";
+import "ForwardType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 390
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtFaceToDirNotify {
+ ForwardType forward_type = 13;
+ EvtFaceToDirInfo evt_face_to_dir_info = 5;
+}
diff --git a/proto/EvtFaceToEntityNotify.proto b/proto/EvtFaceToEntityNotify.proto
new file mode 100644
index 00000000..68aa9e3f
--- /dev/null
+++ b/proto/EvtFaceToEntityNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForwardType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 303
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtFaceToEntityNotify {
+ uint32 face_entity_id = 5;
+ ForwardType forward_type = 9;
+ uint32 entity_id = 1;
+}
diff --git a/proto/EvtFixedRushMove.proto b/proto/EvtFixedRushMove.proto
new file mode 100644
index 00000000..aa90fc84
--- /dev/null
+++ b/proto/EvtFixedRushMove.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EvtFixedRushMove {
+ uint32 entity_id = 15;
+ float speed = 3;
+ bool need_set_is_in_air = 7;
+ repeated uint32 animator_state_id_list = 2;
+ Vector target_pos = 9;
+ bool check_animator_state_on_exit_only = 6;
+ string override_collider = 13;
+}
diff --git a/proto/EvtHittingOtherInfo.proto b/proto/EvtHittingOtherInfo.proto
new file mode 100644
index 00000000..e9f35a3f
--- /dev/null
+++ b/proto/EvtHittingOtherInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AttackResult.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EvtHittingOtherInfo {
+ AttackResult attack_result = 2;
+ uint32 peer_id = 8;
+}
diff --git a/proto/EvtLightCoreMove.proto b/proto/EvtLightCoreMove.proto
new file mode 100644
index 00000000..f8b47455
--- /dev/null
+++ b/proto/EvtLightCoreMove.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EvtLightCoreMove {
+ Vector target_pos = 15;
+ float acelerate = 11;
+ uint32 entity_id = 5;
+ float max_absorb_time = 10;
+ float speed = 14;
+}
diff --git a/proto/EvtMonsterDoBlink.proto b/proto/EvtMonsterDoBlink.proto
new file mode 100644
index 00000000..ed3e2914
--- /dev/null
+++ b/proto/EvtMonsterDoBlink.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EvtMonsterDoBlink {
+ Vector target_rot = 3;
+ Vector target_pos = 7;
+ uint32 entity_id = 2;
+}
diff --git a/proto/EvtMotionInfoDuringSteerAttack.proto b/proto/EvtMotionInfoDuringSteerAttack.proto
new file mode 100644
index 00000000..95d97813
--- /dev/null
+++ b/proto/EvtMotionInfoDuringSteerAttack.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EvtMotionInfoDuringSteerAttack {
+ Vector face_dir = 4;
+ Vector velocity = 3;
+ Vector pos = 1;
+ uint32 entity_id = 6;
+}
diff --git a/proto/EvtRushMoveInfo.proto b/proto/EvtRushMoveInfo.proto
new file mode 100644
index 00000000..809eff86
--- /dev/null
+++ b/proto/EvtRushMoveInfo.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EvtRushMoveInfo {
+ int32 state_name_hash = 11;
+ Vector rush_to_pos = 9;
+ Vector rush_attack_target_pos = 8;
+ uint32 entity_id = 4;
+ float time_range = 15;
+ Vector velocity = 6;
+ Vector pos = 2;
+ int32 face_angle_compact = 10;
+}
diff --git a/proto/EvtRushMoveNotify.proto b/proto/EvtRushMoveNotify.proto
new file mode 100644
index 00000000..86afb574
--- /dev/null
+++ b/proto/EvtRushMoveNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EvtRushMoveInfo.proto";
+import "ForwardType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 375
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtRushMoveNotify {
+ ForwardType forward_type = 1;
+ EvtRushMoveInfo evt_rush_move_info = 15;
+}
diff --git a/proto/EvtSetAttackTargetInfo.proto b/proto/EvtSetAttackTargetInfo.proto
new file mode 100644
index 00000000..e4519be7
--- /dev/null
+++ b/proto/EvtSetAttackTargetInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EvtSetAttackTargetInfo {
+ uint32 entity_id = 11;
+ uint32 Unk2700_MPONBCMPCIH = 6;
+ uint32 attack_target_id = 7;
+}
diff --git a/proto/EvtSetAttackTargetNotify.proto b/proto/EvtSetAttackTargetNotify.proto
new file mode 100644
index 00000000..7c0d432d
--- /dev/null
+++ b/proto/EvtSetAttackTargetNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EvtSetAttackTargetInfo.proto";
+import "ForwardType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 399
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EvtSetAttackTargetNotify {
+ ForwardType forward_type = 1;
+ EvtSetAttackTargetInfo evt_set_attack_target_info = 11;
+}
diff --git a/proto/EvtSyncEntityPositionInfo.proto b/proto/EvtSyncEntityPositionInfo.proto
new file mode 100644
index 00000000..967df29f
--- /dev/null
+++ b/proto/EvtSyncEntityPositionInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EvtSyncEntityPositionInfo {
+ uint32 entity_id = 10;
+ uint32 normalized_time_compact = 13;
+ uint32 state_hash = 8;
+ int32 face_angle_compact = 7;
+ Vector pos = 15;
+}
diff --git a/proto/EvtSyncTransform.proto b/proto/EvtSyncTransform.proto
new file mode 100644
index 00000000..a380488d
--- /dev/null
+++ b/proto/EvtSyncTransform.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EvtSyncTransform {
+ uint32 entity_id = 15;
+ Vector entity_pos = 6;
+ Vector entity_rot = 1;
+}
diff --git a/proto/ExclusiveRuleInfo.proto b/proto/ExclusiveRuleInfo.proto
new file mode 100644
index 00000000..4f573efd
--- /dev/null
+++ b/proto/ExclusiveRuleInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ExclusiveRuleInfo {
+ repeated uint32 object_id_list = 1;
+ uint32 rule_type = 10;
+}
diff --git a/proto/ExclusiveRuleNotify.proto b/proto/ExclusiveRuleNotify.proto
new file mode 100644
index 00000000..cada5b39
--- /dev/null
+++ b/proto/ExclusiveRuleNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ExclusiveRuleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 101
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ExclusiveRuleNotify {
+ repeated ExclusiveRuleInfo rule_info_list = 5;
+}
diff --git a/proto/ExecuteGadgetLuaReq.proto b/proto/ExecuteGadgetLuaReq.proto
new file mode 100644
index 00000000..8c4c46cd
--- /dev/null
+++ b/proto/ExecuteGadgetLuaReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 269
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ExecuteGadgetLuaReq {
+ uint32 source_entity_id = 12;
+ int32 param3 = 1;
+ int32 param1 = 5;
+ int32 param2 = 14;
+}
diff --git a/proto/ExecuteGadgetLuaRsp.proto b/proto/ExecuteGadgetLuaRsp.proto
new file mode 100644
index 00000000..6f562da6
--- /dev/null
+++ b/proto/ExecuteGadgetLuaRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 210
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ExecuteGadgetLuaRsp {
+ int32 retcode = 12;
+}
diff --git a/proto/ExecuteGroupTriggerReq.proto b/proto/ExecuteGroupTriggerReq.proto
new file mode 100644
index 00000000..5cfe6725
--- /dev/null
+++ b/proto/ExecuteGroupTriggerReq.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 257
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ExecuteGroupTriggerReq {
+ string source_name = 15;
+ uint32 target_entity_id = 12;
+ int32 param2 = 8;
+ uint32 source_entity_id = 4;
+ int32 param3 = 10;
+ int32 param1 = 9;
+}
diff --git a/proto/ExecuteGroupTriggerRsp.proto b/proto/ExecuteGroupTriggerRsp.proto
new file mode 100644
index 00000000..442a6dce
--- /dev/null
+++ b/proto/ExecuteGroupTriggerRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 300
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ExecuteGroupTriggerRsp {
+ int32 retcode = 13;
+}
diff --git a/proto/ExhibitionDisplayInfo.proto b/proto/ExhibitionDisplayInfo.proto
new file mode 100644
index 00000000..9d9962bc
--- /dev/null
+++ b/proto/ExhibitionDisplayInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ExhibitionDisplayInfo {
+ uint32 id = 1;
+ uint32 param = 2;
+ uint32 detail_param = 3;
+}
diff --git a/proto/ExitFishingReq.proto b/proto/ExitFishingReq.proto
new file mode 100644
index 00000000..bf5ba88a
--- /dev/null
+++ b/proto/ExitFishingReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5814
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ExitFishingReq {}
diff --git a/proto/ExitFishingRsp.proto b/proto/ExitFishingRsp.proto
new file mode 100644
index 00000000..8f2337ee
--- /dev/null
+++ b/proto/ExitFishingRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5847
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ExitFishingRsp {
+ int32 retcode = 9;
+}
diff --git a/proto/ExitSceneWeatherAreaNotify.proto b/proto/ExitSceneWeatherAreaNotify.proto
new file mode 100644
index 00000000..0024fbf2
--- /dev/null
+++ b/proto/ExitSceneWeatherAreaNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 242
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ExitSceneWeatherAreaNotify {
+ uint32 weather_gadget_id = 2;
+}
diff --git a/proto/ExitTransPointRegionNotify.proto b/proto/ExitTransPointRegionNotify.proto
new file mode 100644
index 00000000..0201af4f
--- /dev/null
+++ b/proto/ExitTransPointRegionNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 282
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ExitTransPointRegionNotify {
+ uint32 point_id = 1;
+ uint32 scene_id = 7;
+}
diff --git a/proto/ExpeditionActivityDetailInfo.proto b/proto/ExpeditionActivityDetailInfo.proto
new file mode 100644
index 00000000..9199e9dc
--- /dev/null
+++ b/proto/ExpeditionActivityDetailInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ExpeditionChallengeInfo.proto";
+import "ExpeditionPathInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ExpeditionActivityDetailInfo {
+ uint32 cur_challenge_id = 5;
+ repeated ExpeditionChallengeInfo challenge_info_list = 10;
+ uint32 expedition_count = 2;
+ uint32 content_close_time = 4;
+ bool is_content_closed = 8;
+ repeated ExpeditionPathInfo path_info_list = 15;
+}
diff --git a/proto/ExpeditionAssistInfo.proto b/proto/ExpeditionAssistInfo.proto
new file mode 100644
index 00000000..a381caa5
--- /dev/null
+++ b/proto/ExpeditionAssistInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ExpeditionAssistInfo {
+ string online_id = 14;
+ uint32 assist_time = 1;
+ uint32 costume_id = 6;
+ string target_nick_name = 4;
+ uint32 avatar_id = 12;
+}
diff --git a/proto/ExpeditionChallengeEnterRegionNotify.proto b/proto/ExpeditionChallengeEnterRegionNotify.proto
new file mode 100644
index 00000000..3ae166cc
--- /dev/null
+++ b/proto/ExpeditionChallengeEnterRegionNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2154
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ExpeditionChallengeEnterRegionNotify {
+ uint32 id = 5;
+ bool is_puzzle_finished = 10;
+}
diff --git a/proto/ExpeditionChallengeFinishedNotify.proto b/proto/ExpeditionChallengeFinishedNotify.proto
new file mode 100644
index 00000000..923bbc16
--- /dev/null
+++ b/proto/ExpeditionChallengeFinishedNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2091
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ExpeditionChallengeFinishedNotify {
+ uint32 id = 13;
+}
diff --git a/proto/ExpeditionChallengeInfo.proto b/proto/ExpeditionChallengeInfo.proto
new file mode 100644
index 00000000..5456a2b6
--- /dev/null
+++ b/proto/ExpeditionChallengeInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ExpeditionChallengeInfo {
+ bool is_finished = 5;
+ uint32 id = 11;
+ uint32 open_time = 9;
+}
diff --git a/proto/ExpeditionPathInfo.proto b/proto/ExpeditionPathInfo.proto
new file mode 100644
index 00000000..d63f7337
--- /dev/null
+++ b/proto/ExpeditionPathInfo.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ExpeditionState.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ExpeditionPathInfo {
+ uint32 mark_id = 12;
+ uint32 start_time = 9;
+ uint32 assist_avatar_id = 7;
+ float bonus_probability = 4;
+ ExpeditionState state = 15;
+ repeated uint32 avatar_id_list = 2;
+ uint32 assist_costume_id = 5;
+ uint32 path_id = 8;
+ uint32 challenge_id = 11;
+ uint32 assist_uid = 10;
+}
diff --git a/proto/ExpeditionRecallReq.proto b/proto/ExpeditionRecallReq.proto
new file mode 100644
index 00000000..19aa5c99
--- /dev/null
+++ b/proto/ExpeditionRecallReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2131
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ExpeditionRecallReq {
+ uint32 path_id = 13;
+}
diff --git a/proto/ExpeditionRecallRsp.proto b/proto/ExpeditionRecallRsp.proto
new file mode 100644
index 00000000..f29ebb28
--- /dev/null
+++ b/proto/ExpeditionRecallRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2129
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ExpeditionRecallRsp {
+ uint32 path_id = 1;
+ int32 retcode = 8;
+}
diff --git a/proto/ExpeditionStartReq.proto b/proto/ExpeditionStartReq.proto
new file mode 100644
index 00000000..2b9bc00f
--- /dev/null
+++ b/proto/ExpeditionStartReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2087
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ExpeditionStartReq {
+ repeated uint32 avatar_id_list = 1;
+ uint32 assist_uid = 5;
+ uint32 assist_avatar_id = 8;
+ uint32 path_id = 7;
+}
diff --git a/proto/ExpeditionStartRsp.proto b/proto/ExpeditionStartRsp.proto
new file mode 100644
index 00000000..f814d245
--- /dev/null
+++ b/proto/ExpeditionStartRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2135
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ExpeditionStartRsp {
+ uint32 assist_uid = 1;
+ uint32 path_id = 7;
+ repeated uint32 avatar_id_list = 4;
+ int32 retcode = 12;
+ uint32 assist_avatar_id = 2;
+}
diff --git a/proto/ExpeditionState.proto b/proto/ExpeditionState.proto
new file mode 100644
index 00000000..ac1f5b03
--- /dev/null
+++ b/proto/ExpeditionState.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum ExpeditionState {
+ EXPEDITION_STATE_NONE = 0;
+ EXPEDITION_STATE_STARTED = 1;
+ EXPEDITION_STATE_FINISHED = 2;
+ EXPEDITION_STATE_REWARDED = 3;
+ EXPEDITION_STATE_LOCKED = 4;
+}
diff --git a/proto/ExpeditionTakeRewardReq.proto b/proto/ExpeditionTakeRewardReq.proto
new file mode 100644
index 00000000..663aa211
--- /dev/null
+++ b/proto/ExpeditionTakeRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2149
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ExpeditionTakeRewardReq {
+ uint32 path_id = 3;
+}
diff --git a/proto/ExpeditionTakeRewardRsp.proto b/proto/ExpeditionTakeRewardRsp.proto
new file mode 100644
index 00000000..dc8ce5d2
--- /dev/null
+++ b/proto/ExpeditionTakeRewardRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2080
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ExpeditionTakeRewardRsp {
+ int32 retcode = 13;
+ bool is_bonus = 11;
+ uint32 reward_level = 1;
+ uint32 path_id = 9;
+}
diff --git a/proto/FallPlayerBrief.proto b/proto/FallPlayerBrief.proto
new file mode 100644
index 00000000..d0e2b5f4
--- /dev/null
+++ b/proto/FallPlayerBrief.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FallPlayerBrief {
+ uint32 uid = 13;
+ bool is_ground = 5;
+ uint32 score = 10;
+}
diff --git a/proto/FallPlayerInfo.proto b/proto/FallPlayerInfo.proto
new file mode 100644
index 00000000..ada07926
--- /dev/null
+++ b/proto/FallPlayerInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FallPlayerInfo {
+ uint32 time_cost = 11;
+ uint32 uid = 9;
+ map ball_catch_count_map = 6;
+ uint32 cur_score = 7;
+ bool is_ground = 15;
+}
diff --git a/proto/FallSettleInfo.proto b/proto/FallSettleInfo.proto
new file mode 100644
index 00000000..f4ab2969
--- /dev/null
+++ b/proto/FallSettleInfo.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "OnlinePlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FallSettleInfo {
+ uint32 catch_count = 15;
+ OnlinePlayerInfo player_info = 13;
+ uint32 uid = 14;
+ map flower_ring_catch_count_map = 3;
+ uint32 remain_time = 10;
+ uint32 final_score = 1;
+}
diff --git a/proto/FeatureBlockInfo.proto b/proto/FeatureBlockInfo.proto
new file mode 100644
index 00000000..82415c9a
--- /dev/null
+++ b/proto/FeatureBlockInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FeatureBlockInfo {
+ uint32 feature_type = 1;
+ uint32 end_time = 2;
+}
diff --git a/proto/FetterData.proto b/proto/FetterData.proto
new file mode 100644
index 00000000..f73e7b35
--- /dev/null
+++ b/proto/FetterData.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FetterData {
+ uint32 fetter_id = 1;
+ uint32 fetter_state = 2;
+ repeated uint32 cond_index_list = 3;
+}
diff --git a/proto/FightPropPair.proto b/proto/FightPropPair.proto
new file mode 100644
index 00000000..22456a2b
--- /dev/null
+++ b/proto/FightPropPair.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FightPropPair {
+ uint32 prop_type = 1;
+ float prop_value = 2;
+}
diff --git a/proto/FindHilichurlAcceptQuestNotify.proto b/proto/FindHilichurlAcceptQuestNotify.proto
new file mode 100644
index 00000000..cca29f61
--- /dev/null
+++ b/proto/FindHilichurlAcceptQuestNotify.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8659
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FindHilichurlAcceptQuestNotify {}
diff --git a/proto/FindHilichurlDayContentInfo.proto b/proto/FindHilichurlDayContentInfo.proto
new file mode 100644
index 00000000..71c14870
--- /dev/null
+++ b/proto/FindHilichurlDayContentInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FindHilichurlDayContentInfo {
+ uint32 start_time = 1;
+}
diff --git a/proto/FindHilichurlDetailInfo.proto b/proto/FindHilichurlDetailInfo.proto
new file mode 100644
index 00000000..84b564a7
--- /dev/null
+++ b/proto/FindHilichurlDetailInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FindHilichurlDayContentInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FindHilichurlDetailInfo {
+ repeated FindHilichurlDayContentInfo day_content_info_list = 1;
+ uint32 min_open_player_level = 12;
+ bool is_end_quest_accept = 7;
+ uint32 content_close_time = 6;
+ bool is_content_closed = 9;
+ uint32 player_day_index = 4;
+ uint32 day_index = 15;
+}
diff --git a/proto/FindHilichurlFinishSecondQuestNotify.proto b/proto/FindHilichurlFinishSecondQuestNotify.proto
new file mode 100644
index 00000000..1423e24c
--- /dev/null
+++ b/proto/FindHilichurlFinishSecondQuestNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8901
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FindHilichurlFinishSecondQuestNotify {
+ uint32 day_index = 11;
+}
diff --git a/proto/FinishDeliveryNotify.proto b/proto/FinishDeliveryNotify.proto
new file mode 100644
index 00000000..4cb20210
--- /dev/null
+++ b/proto/FinishDeliveryNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2089
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FinishDeliveryNotify {
+ uint32 finished_quest_index = 1;
+ uint32 schedule_id = 10;
+ uint32 day_index = 12;
+}
diff --git a/proto/FinishMainCoopReq.proto b/proto/FinishMainCoopReq.proto
new file mode 100644
index 00000000..e33bf486
--- /dev/null
+++ b/proto/FinishMainCoopReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1952
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FinishMainCoopReq {
+ uint32 id = 10;
+ uint32 ending_save_point_id = 1;
+}
diff --git a/proto/FinishMainCoopRsp.proto b/proto/FinishMainCoopRsp.proto
new file mode 100644
index 00000000..244bafd2
--- /dev/null
+++ b/proto/FinishMainCoopRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1981
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FinishMainCoopRsp {
+ uint32 id = 2;
+ uint32 ending_save_point_id = 6;
+ int32 retcode = 4;
+}
diff --git a/proto/FinishedParentQuestNotify.proto b/proto/FinishedParentQuestNotify.proto
new file mode 100644
index 00000000..775a65e5
--- /dev/null
+++ b/proto/FinishedParentQuestNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ParentQuest.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 435
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FinishedParentQuestNotify {
+ repeated ParentQuest parent_quest_list = 2;
+}
diff --git a/proto/FinishedParentQuestUpdateNotify.proto b/proto/FinishedParentQuestUpdateNotify.proto
new file mode 100644
index 00000000..276a8eb5
--- /dev/null
+++ b/proto/FinishedParentQuestUpdateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ParentQuest.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 407
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FinishedParentQuestUpdateNotify {
+ repeated ParentQuest parent_quest_list = 9;
+}
diff --git a/proto/FishAttractNotify.proto b/proto/FishAttractNotify.proto
new file mode 100644
index 00000000..4cbf0f09
--- /dev/null
+++ b/proto/FishAttractNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5837
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FishAttractNotify {
+ repeated uint32 fish_id_list = 3;
+ Vector pos = 9;
+ uint32 uid = 2;
+}
diff --git a/proto/FishBaitGoneNotify.proto b/proto/FishBaitGoneNotify.proto
new file mode 100644
index 00000000..398c1246
--- /dev/null
+++ b/proto/FishBaitGoneNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5823
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FishBaitGoneNotify {
+ uint32 uid = 8;
+}
diff --git a/proto/FishBattleBeginReq.proto b/proto/FishBattleBeginReq.proto
new file mode 100644
index 00000000..4e8ed0a2
--- /dev/null
+++ b/proto/FishBattleBeginReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5820
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FishBattleBeginReq {}
diff --git a/proto/FishBattleBeginRsp.proto b/proto/FishBattleBeginRsp.proto
new file mode 100644
index 00000000..7e03195f
--- /dev/null
+++ b/proto/FishBattleBeginRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5845
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FishBattleBeginRsp {
+ int32 retcode = 10;
+}
diff --git a/proto/FishBattleEndReq.proto b/proto/FishBattleEndReq.proto
new file mode 100644
index 00000000..967cf326
--- /dev/null
+++ b/proto/FishBattleEndReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FishBattleResult.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5841
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FishBattleEndReq {
+ uint32 max_bonus_time = 3;
+ FishBattleResult battle_result = 10;
+ bool is_always_bonus = 11;
+}
diff --git a/proto/FishBattleEndRsp.proto b/proto/FishBattleEndRsp.proto
new file mode 100644
index 00000000..d321d292
--- /dev/null
+++ b/proto/FishBattleEndRsp.proto
@@ -0,0 +1,43 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FishBattleResult.proto";
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5842
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FishBattleEndRsp {
+ bool is_got_reward = 10;
+ repeated ItemParam reward_item_list = 11;
+ repeated ItemParam talent_item_list = 13;
+ repeated ItemParam drop_item_list = 9;
+ int32 retcode = 7;
+ FishNoRewardReason no_reward_reason = 14;
+ FishBattleResult battle_result = 6;
+
+ enum FishNoRewardReason {
+ FISH_NO_REWARD_REASON_NONE = 0;
+ FISH_NO_REWARD_REASON_ACTIVITY_LIMIT = 1;
+ FISH_NO_REWARD_REASON_BAG_LIMIT = 2;
+ FISH_NO_REWARD_REASON_POOL_LIMIT = 3;
+ }
+}
diff --git a/proto/FishBattleResult.proto b/proto/FishBattleResult.proto
new file mode 100644
index 00000000..42c81171
--- /dev/null
+++ b/proto/FishBattleResult.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum FishBattleResult {
+ FISH_BATTLE_RESULT_NONE = 0;
+ FISH_BATTLE_RESULT_SUCC = 1;
+ FISH_BATTLE_RESULT_FAIL = 2;
+ FISH_BATTLE_RESULT_TIMEOUT = 3;
+ FISH_BATTLE_RESULT_CANCEL = 4;
+ FISH_BATTLE_RESULT_EXIT = 5;
+}
diff --git a/proto/FishBiteReq.proto b/proto/FishBiteReq.proto
new file mode 100644
index 00000000..93418c19
--- /dev/null
+++ b/proto/FishBiteReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5844
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FishBiteReq {}
diff --git a/proto/FishBiteRsp.proto b/proto/FishBiteRsp.proto
new file mode 100644
index 00000000..d5cded7f
--- /dev/null
+++ b/proto/FishBiteRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5849
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FishBiteRsp {
+ int32 retcode = 9;
+}
diff --git a/proto/FishCastRodReq.proto b/proto/FishCastRodReq.proto
new file mode 100644
index 00000000..f777def1
--- /dev/null
+++ b/proto/FishCastRodReq.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5802
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FishCastRodReq {
+ uint32 bait_id = 14;
+ uint32 rod_id = 4;
+ uint32 rod_entity_id = 7;
+ Vector pos = 12;
+}
diff --git a/proto/FishCastRodRsp.proto b/proto/FishCastRodRsp.proto
new file mode 100644
index 00000000..b192b6b5
--- /dev/null
+++ b/proto/FishCastRodRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5831
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FishCastRodRsp {
+ int32 retcode = 12;
+}
diff --git a/proto/FishChosenNotify.proto b/proto/FishChosenNotify.proto
new file mode 100644
index 00000000..140dd508
--- /dev/null
+++ b/proto/FishChosenNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5829
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FishChosenNotify {
+ uint32 fish_id = 12;
+}
diff --git a/proto/FishEscapeNotify.proto b/proto/FishEscapeNotify.proto
new file mode 100644
index 00000000..fd5f1157
--- /dev/null
+++ b/proto/FishEscapeNotify.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FishEscapeReason.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5822
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FishEscapeNotify {
+ FishEscapeReason reason = 4;
+ Vector pos = 7;
+ uint32 uid = 14;
+ repeated uint32 fish_id_list = 6;
+}
diff --git a/proto/FishEscapeReason.proto b/proto/FishEscapeReason.proto
new file mode 100644
index 00000000..aa2618da
--- /dev/null
+++ b/proto/FishEscapeReason.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum FishEscapeReason {
+ FISH_ESCAPE_REASON_FISN_ESCAPE_NONE = 0;
+ FISH_ESCAPE_REASON_SHOCKED = 1;
+ FISH_ESCAPE_REASON_UNHOOK = 2;
+}
diff --git a/proto/FishInfo.proto b/proto/FishInfo.proto
new file mode 100644
index 00000000..bae63383
--- /dev/null
+++ b/proto/FishInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FishInfo {
+ uint32 free_count = 11;
+ uint32 into_bag_count = 12;
+}
diff --git a/proto/FishPoolDataNotify.proto b/proto/FishPoolDataNotify.proto
new file mode 100644
index 00000000..a1a4c5ba
--- /dev/null
+++ b/proto/FishPoolDataNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5848
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FishPoolDataNotify {
+ uint32 entity_id = 6;
+ uint32 today_fish_num = 2;
+}
diff --git a/proto/FishPoolInfo.proto b/proto/FishPoolInfo.proto
new file mode 100644
index 00000000..98729555
--- /dev/null
+++ b/proto/FishPoolInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FishPoolInfo {
+ uint32 pool_id = 1;
+ repeated uint32 fish_area_list = 2;
+ uint32 today_fish_num = 3;
+}
diff --git a/proto/FishingGallerySettleInfo.proto b/proto/FishingGallerySettleInfo.proto
new file mode 100644
index 00000000..97991702
--- /dev/null
+++ b/proto/FishingGallerySettleInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FishInfo.proto";
+import "FishingScore.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FishingGallerySettleInfo {
+ map fish_map = 11;
+ repeated FishingScore fishing_score_list = 15;
+}
diff --git a/proto/FishingGallerySettleNotify.proto b/proto/FishingGallerySettleNotify.proto
new file mode 100644
index 00000000..dad180de
--- /dev/null
+++ b/proto/FishingGallerySettleNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FishingGallerySettleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8780
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FishingGallerySettleNotify {
+ uint32 gallery_id = 6;
+ uint32 level_id = 15;
+ FishingGallerySettleInfo settle_info = 13;
+}
diff --git a/proto/FishingScore.proto b/proto/FishingScore.proto
new file mode 100644
index 00000000..76ef1e9a
--- /dev/null
+++ b/proto/FishingScore.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FishingScore {
+ uint32 fishing_score_ = 2;
+ bool is_new_record = 4;
+}
diff --git a/proto/FishtankFishInfo.proto b/proto/FishtankFishInfo.proto
new file mode 100644
index 00000000..762a786f
--- /dev/null
+++ b/proto/FishtankFishInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FishtankFishInfo {
+ float Unk3000_KNOBDDHIONH = 1;
+ float Unk3000_NDBJCJEIEEO = 2;
+ float Unk3000_CGBHKPEGBOD = 3;
+}
diff --git a/proto/FleurFairActivityDetailInfo.proto b/proto/FleurFairActivityDetailInfo.proto
new file mode 100644
index 00000000..914c009b
--- /dev/null
+++ b/proto/FleurFairActivityDetailInfo.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FleurFairChapterInfo.proto";
+import "FleurFairDungeonSectionInfo.proto";
+import "FleurFairMinigameInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FleurFairActivityDetailInfo {
+ bool is_content_closed = 4;
+ uint32 dungeon_punish_over_time = 6;
+ uint32 content_close_time = 15;
+ uint32 obtained_token = 13;
+ repeated FleurFairChapterInfo chapter_info_list = 14;
+ map minigame_info_map = 9;
+ map dungeon_section_info_map = 3;
+ bool is_dungeon_unlocked = 11;
+}
diff --git a/proto/FleurFairBalloonInfo.proto b/proto/FleurFairBalloonInfo.proto
new file mode 100644
index 00000000..696cf3c4
--- /dev/null
+++ b/proto/FleurFairBalloonInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FleurFairBalloonInfo {
+ uint32 best_score = 4;
+}
diff --git a/proto/FleurFairBalloonSettleInfo.proto b/proto/FleurFairBalloonSettleInfo.proto
new file mode 100644
index 00000000..d6c5ef69
--- /dev/null
+++ b/proto/FleurFairBalloonSettleInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BalloonSettleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FleurFairBalloonSettleInfo {
+ BalloonSettleInfo settle_info = 10;
+ bool is_new_record = 7;
+}
diff --git a/proto/FleurFairBalloonSettleNotify.proto b/proto/FleurFairBalloonSettleNotify.proto
new file mode 100644
index 00000000..58b9b021
--- /dev/null
+++ b/proto/FleurFairBalloonSettleNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FleurFairBalloonSettleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2099
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FleurFairBalloonSettleNotify {
+ uint32 minigame_id = 9;
+ map settle_info_map = 15;
+}
diff --git a/proto/FleurFairBossSettleInfo.proto b/proto/FleurFairBossSettleInfo.proto
new file mode 100644
index 00000000..9a185c7f
--- /dev/null
+++ b/proto/FleurFairBossSettleInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FleurFairPlayerStatInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FleurFairBossSettleInfo {
+ uint32 reward_token_num = 15;
+ repeated FleurFairPlayerStatInfo stat_info_list = 1;
+ bool is_success = 10;
+ uint32 energy = 12;
+ uint32 cost_time = 8;
+}
diff --git a/proto/FleurFairBuffEnergyNotify.proto b/proto/FleurFairBuffEnergyNotify.proto
new file mode 100644
index 00000000..0343296f
--- /dev/null
+++ b/proto/FleurFairBuffEnergyNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5324
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FleurFairBuffEnergyNotify {
+ uint32 energy = 4;
+}
diff --git a/proto/FleurFairChapterInfo.proto b/proto/FleurFairChapterInfo.proto
new file mode 100644
index 00000000..ce0a2b9c
--- /dev/null
+++ b/proto/FleurFairChapterInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FleurFairChapterInfo {
+ uint32 open_time = 15;
+ uint32 chapter_id = 11;
+}
diff --git a/proto/FleurFairDungeonSectionInfo.proto b/proto/FleurFairDungeonSectionInfo.proto
new file mode 100644
index 00000000..60cd5e2f
--- /dev/null
+++ b/proto/FleurFairDungeonSectionInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FleurFairDungeonSectionInfo {
+ uint32 section_id = 10;
+ uint32 open_time = 13;
+ bool is_open = 1;
+}
diff --git a/proto/FleurFairFallInfo.proto b/proto/FleurFairFallInfo.proto
new file mode 100644
index 00000000..cf4286ca
--- /dev/null
+++ b/proto/FleurFairFallInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FleurFairFallInfo {
+ uint32 best_score = 10;
+}
diff --git a/proto/FleurFairFallSettleInfo.proto b/proto/FleurFairFallSettleInfo.proto
new file mode 100644
index 00000000..0cdce347
--- /dev/null
+++ b/proto/FleurFairFallSettleInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FallSettleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FleurFairFallSettleInfo {
+ FallSettleInfo settle_info = 4;
+ bool is_new_record = 10;
+}
diff --git a/proto/FleurFairFallSettleNotify.proto b/proto/FleurFairFallSettleNotify.proto
new file mode 100644
index 00000000..1da8ba78
--- /dev/null
+++ b/proto/FleurFairFallSettleNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FleurFairFallSettleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2017
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FleurFairFallSettleNotify {
+ uint32 minigame_id = 15;
+ map settle_info_map = 11;
+}
diff --git a/proto/FleurFairFinishGalleryStageNotify.proto b/proto/FleurFairFinishGalleryStageNotify.proto
new file mode 100644
index 00000000..d956be74
--- /dev/null
+++ b/proto/FleurFairFinishGalleryStageNotify.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5342
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FleurFairFinishGalleryStageNotify {}
diff --git a/proto/FleurFairGallerySettleInfo.proto b/proto/FleurFairGallerySettleInfo.proto
new file mode 100644
index 00000000..4eb508fa
--- /dev/null
+++ b/proto/FleurFairGallerySettleInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FleurFairGallerySettleInfo {
+ uint32 energy = 2;
+ uint32 gallery_stage_index = 11;
+ map energy_stat_map = 6;
+ uint32 gallery_stage_count = 9;
+ bool is_success = 1;
+}
diff --git a/proto/FleurFairMinigameInfo.proto b/proto/FleurFairMinigameInfo.proto
new file mode 100644
index 00000000..b33a6cab
--- /dev/null
+++ b/proto/FleurFairMinigameInfo.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FleurFairBalloonInfo.proto";
+import "FleurFairFallInfo.proto";
+import "FleurFairMusicGameInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FleurFairMinigameInfo {
+ uint32 minigame_id = 13;
+ bool is_open = 8;
+ uint32 open_time = 15;
+ oneof detail {
+ FleurFairBalloonInfo balloon_info = 12;
+ FleurFairFallInfo fall_info = 11;
+ FleurFairMusicGameInfo music_info = 9;
+ }
+}
diff --git a/proto/FleurFairMusicGameInfo.proto b/proto/FleurFairMusicGameInfo.proto
new file mode 100644
index 00000000..79986386
--- /dev/null
+++ b/proto/FleurFairMusicGameInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FleurFairMusicRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FleurFairMusicGameInfo {
+ map music_record_map = 10;
+}
diff --git a/proto/FleurFairMusicGameSettleReq.proto b/proto/FleurFairMusicGameSettleReq.proto
new file mode 100644
index 00000000..d618a1f4
--- /dev/null
+++ b/proto/FleurFairMusicGameSettleReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2194
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FleurFairMusicGameSettleReq {
+ uint32 score = 3;
+ uint32 combo = 6;
+ uint32 correct_hit = 10;
+ uint32 music_basic_id = 11;
+}
diff --git a/proto/FleurFairMusicGameSettleRsp.proto b/proto/FleurFairMusicGameSettleRsp.proto
new file mode 100644
index 00000000..67255f65
--- /dev/null
+++ b/proto/FleurFairMusicGameSettleRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2113
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FleurFairMusicGameSettleRsp {
+ bool is_unlock_next_level = 4;
+ bool is_new_record = 12;
+ int32 retcode = 5;
+ uint32 music_basic_id = 9;
+}
diff --git a/proto/FleurFairMusicGameStartReq.proto b/proto/FleurFairMusicGameStartReq.proto
new file mode 100644
index 00000000..2491429f
--- /dev/null
+++ b/proto/FleurFairMusicGameStartReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2167
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FleurFairMusicGameStartReq {
+ uint32 music_basic_id = 2;
+}
diff --git a/proto/FleurFairMusicGameStartRsp.proto b/proto/FleurFairMusicGameStartRsp.proto
new file mode 100644
index 00000000..4084062d
--- /dev/null
+++ b/proto/FleurFairMusicGameStartRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2079
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FleurFairMusicGameStartRsp {
+ int32 retcode = 3;
+ uint32 music_basic_id = 7;
+}
diff --git a/proto/FleurFairMusicRecord.proto b/proto/FleurFairMusicRecord.proto
new file mode 100644
index 00000000..cc5acc48
--- /dev/null
+++ b/proto/FleurFairMusicRecord.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FleurFairMusicRecord {
+ uint32 max_combo = 1;
+ uint32 max_score = 11;
+ bool is_unlock = 12;
+}
diff --git a/proto/FleurFairPlayerStatInfo.proto b/proto/FleurFairPlayerStatInfo.proto
new file mode 100644
index 00000000..6ecc8c9e
--- /dev/null
+++ b/proto/FleurFairPlayerStatInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FleurFairPlayerStatInfo {
+ string online_id = 11;
+ uint32 uid = 8;
+ ProfilePicture profile_picture = 1;
+ uint32 stat_id = 3;
+ uint32 head_image = 6;
+ string nick_name = 15;
+ int32 param = 5;
+}
diff --git a/proto/FleurFairReplayMiniGameReq.proto b/proto/FleurFairReplayMiniGameReq.proto
new file mode 100644
index 00000000..cc29c56d
--- /dev/null
+++ b/proto/FleurFairReplayMiniGameReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2181
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FleurFairReplayMiniGameReq {
+ uint32 minigame_id = 5;
+}
diff --git a/proto/FleurFairReplayMiniGameRsp.proto b/proto/FleurFairReplayMiniGameRsp.proto
new file mode 100644
index 00000000..bad9af50
--- /dev/null
+++ b/proto/FleurFairReplayMiniGameRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2052
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FleurFairReplayMiniGameRsp {
+ int32 retcode = 14;
+ uint32 minigame_id = 8;
+}
diff --git a/proto/FleurFairStageSettleNotify.proto b/proto/FleurFairStageSettleNotify.proto
new file mode 100644
index 00000000..2aea9b74
--- /dev/null
+++ b/proto/FleurFairStageSettleNotify.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FleurFairBossSettleInfo.proto";
+import "FleurFairGallerySettleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5356
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FleurFairStageSettleNotify {
+ uint32 stage_type = 10;
+ oneof detail {
+ FleurFairGallerySettleInfo gallery_settle_info = 13;
+ FleurFairBossSettleInfo boss_settle_info = 14;
+ }
+}
diff --git a/proto/FlightActivityDetailInfo.proto b/proto/FlightActivityDetailInfo.proto
new file mode 100644
index 00000000..97caf1cb
--- /dev/null
+++ b/proto/FlightActivityDetailInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FlightDailyRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FlightActivityDetailInfo {
+ uint32 preview_reward_id = 15;
+ uint32 min_open_player_level = 11;
+ repeated FlightDailyRecord daily_record_list = 1;
+}
diff --git a/proto/FlightActivityRestartReq.proto b/proto/FlightActivityRestartReq.proto
new file mode 100644
index 00000000..a28caecc
--- /dev/null
+++ b/proto/FlightActivityRestartReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2037
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FlightActivityRestartReq {
+ uint32 group_id = 4;
+ uint32 schedule_id = 10;
+}
diff --git a/proto/FlightActivityRestartRsp.proto b/proto/FlightActivityRestartRsp.proto
new file mode 100644
index 00000000..48257a28
--- /dev/null
+++ b/proto/FlightActivityRestartRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2165
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FlightActivityRestartRsp {
+ uint32 group_id = 11;
+ uint32 schedule_id = 10;
+ int32 retcode = 15;
+}
diff --git a/proto/FlightActivitySettleNotify.proto b/proto/FlightActivitySettleNotify.proto
new file mode 100644
index 00000000..e5cac0cf
--- /dev/null
+++ b/proto/FlightActivitySettleNotify.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2195
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FlightActivitySettleNotify {
+ bool is_new_record = 1;
+ uint32 medal_level = 6;
+ uint32 left_time = 13;
+ uint32 collect_num = 9;
+ uint32 total_num = 5;
+ uint32 group_id = 8;
+ uint32 score = 10;
+ bool is_success = 4;
+}
diff --git a/proto/FlightDailyRecord.proto b/proto/FlightDailyRecord.proto
new file mode 100644
index 00000000..9d21350a
--- /dev/null
+++ b/proto/FlightDailyRecord.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FlightDailyRecord {
+ uint32 group_id = 4;
+ bool is_touched = 1;
+ repeated uint32 watcher_id_list = 11;
+ uint32 best_score = 7;
+ uint32 start_time = 3;
+}
diff --git a/proto/FocusAvatarReq.proto b/proto/FocusAvatarReq.proto
new file mode 100644
index 00000000..78c5b900
--- /dev/null
+++ b/proto/FocusAvatarReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1654
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FocusAvatarReq {
+ uint64 avatar_guid = 1;
+ bool is_focus = 8;
+}
diff --git a/proto/FocusAvatarRsp.proto b/proto/FocusAvatarRsp.proto
new file mode 100644
index 00000000..4d818330
--- /dev/null
+++ b/proto/FocusAvatarRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1681
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FocusAvatarRsp {
+ int32 retcode = 5;
+ bool is_focus = 11;
+ uint64 avatar_guid = 4;
+}
diff --git a/proto/ForceAddPlayerFriendReq.proto b/proto/ForceAddPlayerFriendReq.proto
new file mode 100644
index 00000000..eb2e9110
--- /dev/null
+++ b/proto/ForceAddPlayerFriendReq.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4057
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ForceAddPlayerFriendReq {
+ uint32 target_uid = 15;
+}
diff --git a/proto/ForceAddPlayerFriendRsp.proto b/proto/ForceAddPlayerFriendRsp.proto
new file mode 100644
index 00000000..adc497a8
--- /dev/null
+++ b/proto/ForceAddPlayerFriendRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FriendBrief.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4100
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ForceAddPlayerFriendRsp {
+ int32 retcode = 5;
+ FriendBrief target_friend_brief = 2;
+ uint32 target_uid = 9;
+}
diff --git a/proto/ForceDragAvatarNotify.proto b/proto/ForceDragAvatarNotify.proto
new file mode 100644
index 00000000..938d1d77
--- /dev/null
+++ b/proto/ForceDragAvatarNotify.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MotionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3235
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ForceDragAvatarNotify {
+ uint32 scene_time = 3;
+ uint64 delta_time_ms = 1;
+ uint32 entity_id = 2;
+ MotionInfo motion_info = 10;
+ bool is_first_valid = 8;
+ uint64 last_move_time_ms = 12;
+}
diff --git a/proto/ForceDragBackTransferNotify.proto b/proto/ForceDragBackTransferNotify.proto
new file mode 100644
index 00000000..04360588
--- /dev/null
+++ b/proto/ForceDragBackTransferNotify.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3145
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ForceDragBackTransferNotify {}
diff --git a/proto/ForceUpdateInfo.proto b/proto/ForceUpdateInfo.proto
new file mode 100644
index 00000000..2e3e530f
--- /dev/null
+++ b/proto/ForceUpdateInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ForceUpdateInfo {
+ string force_update_url = 1;
+}
diff --git a/proto/ForgeDataNotify.proto b/proto/ForgeDataNotify.proto
new file mode 100644
index 00000000..6f9e7582
--- /dev/null
+++ b/proto/ForgeDataNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForgeQueueData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 680
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ForgeDataNotify {
+ repeated uint32 forge_id_list = 5;
+ map forge_queue_map = 8;
+ uint32 max_queue_num = 14;
+}
diff --git a/proto/ForgeFormulaDataNotify.proto b/proto/ForgeFormulaDataNotify.proto
new file mode 100644
index 00000000..dc226c43
--- /dev/null
+++ b/proto/ForgeFormulaDataNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 689
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ForgeFormulaDataNotify {
+ bool is_locked = 15;
+ uint32 forge_id = 13;
+}
diff --git a/proto/ForgeGetQueueDataReq.proto b/proto/ForgeGetQueueDataReq.proto
new file mode 100644
index 00000000..44406e07
--- /dev/null
+++ b/proto/ForgeGetQueueDataReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 646
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ForgeGetQueueDataReq {}
diff --git a/proto/ForgeGetQueueDataRsp.proto b/proto/ForgeGetQueueDataRsp.proto
new file mode 100644
index 00000000..f60253ef
--- /dev/null
+++ b/proto/ForgeGetQueueDataRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForgeQueueData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 641
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ForgeGetQueueDataRsp {
+ map forge_queue_map = 2;
+ int32 retcode = 15;
+ uint32 max_queue_num = 6;
+}
diff --git a/proto/ForgeQueueData.proto b/proto/ForgeQueueData.proto
new file mode 100644
index 00000000..ce66d42a
--- /dev/null
+++ b/proto/ForgeQueueData.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ForgeQueueData {
+ uint32 finish_count = 13;
+ uint32 total_finish_timestamp = 14;
+ uint32 avatar_id = 7;
+ uint32 queue_id = 1;
+ uint32 unfinish_count = 10;
+ uint32 next_finish_timestamp = 11;
+ uint32 forge_id = 15;
+}
diff --git a/proto/ForgeQueueDataNotify.proto b/proto/ForgeQueueDataNotify.proto
new file mode 100644
index 00000000..9d9ed07d
--- /dev/null
+++ b/proto/ForgeQueueDataNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForgeQueueData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 676
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ForgeQueueDataNotify {
+ map forge_queue_map = 7;
+ repeated uint32 removed_forge_queue_list = 6;
+}
diff --git a/proto/ForgeQueueManipulateReq.proto b/proto/ForgeQueueManipulateReq.proto
new file mode 100644
index 00000000..3b044603
--- /dev/null
+++ b/proto/ForgeQueueManipulateReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForgeQueueManipulateType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 624
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ForgeQueueManipulateReq {
+ uint32 forge_queue_id = 5;
+ ForgeQueueManipulateType manipulate_type = 13;
+}
diff --git a/proto/ForgeQueueManipulateRsp.proto b/proto/ForgeQueueManipulateRsp.proto
new file mode 100644
index 00000000..7ddfadfd
--- /dev/null
+++ b/proto/ForgeQueueManipulateRsp.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForgeQueueManipulateType.proto";
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 656
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ForgeQueueManipulateRsp {
+ ForgeQueueManipulateType manipulate_type = 4;
+ repeated ItemParam extra_output_item_list = 13;
+ repeated ItemParam return_item_list = 10;
+ int32 retcode = 1;
+ repeated ItemParam output_item_list = 9;
+}
diff --git a/proto/ForgeQueueManipulateType.proto b/proto/ForgeQueueManipulateType.proto
new file mode 100644
index 00000000..045d2a8c
--- /dev/null
+++ b/proto/ForgeQueueManipulateType.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum ForgeQueueManipulateType {
+ FORGE_QUEUE_MANIPULATE_TYPE_RECEIVE_OUTPUT = 0;
+ FORGE_QUEUE_MANIPULATE_TYPE_STOP_FORGE = 1;
+}
diff --git a/proto/ForgeStartReq.proto b/proto/ForgeStartReq.proto
new file mode 100644
index 00000000..d595c441
--- /dev/null
+++ b/proto/ForgeStartReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 649
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ForgeStartReq {
+ uint32 avatar_id = 7;
+ uint32 forge_id = 4;
+ uint32 forge_count = 6;
+}
diff --git a/proto/ForgeStartRsp.proto b/proto/ForgeStartRsp.proto
new file mode 100644
index 00000000..038afaad
--- /dev/null
+++ b/proto/ForgeStartRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 691
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ForgeStartRsp {
+ int32 retcode = 8;
+}
diff --git a/proto/ForwardType.proto b/proto/ForwardType.proto
new file mode 100644
index 00000000..e5166502
--- /dev/null
+++ b/proto/ForwardType.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum ForwardType {
+ FORWARD_TYPE_LOCAL = 0;
+ FORWARD_TYPE_TO_ALL = 1;
+ FORWARD_TYPE_TO_ALL_EXCEPT_CUR = 2;
+ FORWARD_TYPE_TO_HOST = 3;
+ FORWARD_TYPE_TO_ALL_GUEST = 4;
+ FORWARD_TYPE_TO_PEER = 5;
+ FORWARD_TYPE_TO_PEERS = 6;
+ FORWARD_TYPE_ONLY_SERVER = 7;
+ FORWARD_TYPE_TO_ALL_EXIST_EXCEPT_CUR = 8;
+}
diff --git a/proto/FoundationInfo.proto b/proto/FoundationInfo.proto
new file mode 100644
index 00000000..3f3ed6f7
--- /dev/null
+++ b/proto/FoundationInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FoundationStatus.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FoundationInfo {
+ FoundationStatus status = 1;
+ repeated uint32 uid_list = 2;
+ uint32 current_building_id = 3;
+ uint32 begin_build_time_ms = 4;
+}
diff --git a/proto/FoundationNotify.proto b/proto/FoundationNotify.proto
new file mode 100644
index 00000000..c1b852db
--- /dev/null
+++ b/proto/FoundationNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FoundationInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 847
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FoundationNotify {
+ FoundationInfo info = 7;
+ uint32 gadget_entity_id = 9;
+}
diff --git a/proto/FoundationOpType.proto b/proto/FoundationOpType.proto
new file mode 100644
index 00000000..2136fbd2
--- /dev/null
+++ b/proto/FoundationOpType.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum FoundationOpType {
+ FOUNDATION_OP_TYPE_NONE = 0;
+ FOUNDATION_OP_TYPE_BUILD = 1;
+ FOUNDATION_OP_TYPE_DEMOLITION = 2;
+ FOUNDATION_OP_TYPE_REBUILD = 3;
+ FOUNDATION_OP_TYPE_ROTATE = 4;
+ FOUNDATION_OP_TYPE_LOCK = 5;
+ FOUNDATION_OP_TYPE_UNLOCK = 6;
+}
diff --git a/proto/FoundationReq.proto b/proto/FoundationReq.proto
new file mode 100644
index 00000000..03245011
--- /dev/null
+++ b/proto/FoundationReq.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FoundationOpType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 805
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FoundationReq {
+ uint32 gadget_entity_id = 14;
+ uint32 point_config_id = 12;
+ uint32 building_id = 13;
+ FoundationOpType op_type = 10;
+}
diff --git a/proto/FoundationRsp.proto b/proto/FoundationRsp.proto
new file mode 100644
index 00000000..c6b85204
--- /dev/null
+++ b/proto/FoundationRsp.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FoundationOpType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 882
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FoundationRsp {
+ FoundationOpType op_type = 13;
+ uint32 gadget_entity_id = 10;
+ uint32 building_id = 11;
+ uint32 point_config_id = 12;
+ int32 retcode = 7;
+}
diff --git a/proto/FoundationStatus.proto b/proto/FoundationStatus.proto
new file mode 100644
index 00000000..aa18ab75
--- /dev/null
+++ b/proto/FoundationStatus.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum FoundationStatus {
+ FOUNDATION_STATUS_NONE = 0;
+ FOUNDATION_STATUS_INIT = 1;
+ FOUNDATION_STATUS_BUILDING = 2;
+ FOUNDATION_STATUS_BUILT = 3;
+}
diff --git a/proto/FriendBrief.proto b/proto/FriendBrief.proto
new file mode 100644
index 00000000..918e221c
--- /dev/null
+++ b/proto/FriendBrief.proto
@@ -0,0 +1,51 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FriendEnterHomeOption.proto";
+import "FriendOnlineState.proto";
+import "PlatformType.proto";
+import "ProfilePicture.proto";
+import "SocialShowAvatarInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FriendBrief {
+ uint32 uid = 1;
+ string nickname = 2;
+ uint32 level = 3;
+ uint32 avatar_id = 4;
+ uint32 world_level = 5;
+ string signature = 6;
+ FriendOnlineState online_state = 7;
+ uint32 param = 8;
+ bool is_mp_mode_available = 10;
+ string online_id = 11;
+ uint32 last_active_time = 12;
+ uint32 name_card_id = 13;
+ uint32 mp_player_num = 14;
+ bool is_chat_no_disturb = 15;
+ uint32 chat_sequence = 16;
+ string remark_name = 17;
+ repeated SocialShowAvatarInfo show_avatar_info_list = 22;
+ FriendEnterHomeOption friend_enter_home_option = 23;
+ ProfilePicture profile_picture = 24;
+ bool is_game_source = 25;
+ bool is_psn_source = 26;
+ PlatformType platform_type = 27;
+}
diff --git a/proto/FriendEnterHomeOption.proto b/proto/FriendEnterHomeOption.proto
new file mode 100644
index 00000000..4fb83dc8
--- /dev/null
+++ b/proto/FriendEnterHomeOption.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum FriendEnterHomeOption {
+ FRIEND_ENTER_HOME_OPTION_NEED_CONFIRM = 0;
+ FRIEND_ENTER_HOME_OPTION_REFUSE = 1;
+ FRIEND_ENTER_HOME_OPTION_DIRECT = 2;
+}
diff --git a/proto/FriendInfoChangeNotify.proto b/proto/FriendInfoChangeNotify.proto
new file mode 100644
index 00000000..a6613216
--- /dev/null
+++ b/proto/FriendInfoChangeNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4032
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FriendInfoChangeNotify {
+ uint32 uid = 1;
+ string online_id = 9;
+}
diff --git a/proto/FriendOnlineState.proto b/proto/FriendOnlineState.proto
new file mode 100644
index 00000000..e64d666d
--- /dev/null
+++ b/proto/FriendOnlineState.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum FriendOnlineState {
+ FRIEND_ONLINE_STATE_FREIEND_DISCONNECT = 0;
+ FRIEND_ONLINE_STATE_ONLINE = 1;
+}
diff --git a/proto/FunitureMakeMakeInfoChangeNotify.proto b/proto/FunitureMakeMakeInfoChangeNotify.proto
new file mode 100644
index 00000000..0480dbd1
--- /dev/null
+++ b/proto/FunitureMakeMakeInfoChangeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FurnitureMakeMakeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4898
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FunitureMakeMakeInfoChangeNotify {
+ FurnitureMakeMakeInfo make_info = 1;
+}
diff --git a/proto/Furniture.proto b/proto/Furniture.proto
new file mode 100644
index 00000000..e645a434
--- /dev/null
+++ b/proto/Furniture.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Furniture {
+ uint32 count = 1;
+}
diff --git a/proto/FurnitureCurModuleArrangeCountNotify.proto b/proto/FurnitureCurModuleArrangeCountNotify.proto
new file mode 100644
index 00000000..3adeedca
--- /dev/null
+++ b/proto/FurnitureCurModuleArrangeCountNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Uint32Pair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4498
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FurnitureCurModuleArrangeCountNotify {
+ repeated Uint32Pair furniture_arrange_count_list = 13;
+}
diff --git a/proto/FurnitureMakeBeHelpedData.proto b/proto/FurnitureMakeBeHelpedData.proto
new file mode 100644
index 00000000..bf761859
--- /dev/null
+++ b/proto/FurnitureMakeBeHelpedData.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FurnitureMakeBeHelpedData {
+ fixed32 time = 12;
+ uint32 icon = 11;
+ uint32 uid = 7;
+ string player_name = 10;
+ ProfilePicture profile_picture = 1;
+}
diff --git a/proto/FurnitureMakeBeHelpedNotify.proto b/proto/FurnitureMakeBeHelpedNotify.proto
new file mode 100644
index 00000000..b35014ff
--- /dev/null
+++ b/proto/FurnitureMakeBeHelpedNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FurnitureMakeBeHelpedData.proto";
+import "FurnitureMakeSlot.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4578
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FurnitureMakeBeHelpedNotify {
+ FurnitureMakeSlot furniture_make_slot = 7;
+ FurnitureMakeBeHelpedData furniture_make_helped_data = 2;
+}
diff --git a/proto/FurnitureMakeCancelReq.proto b/proto/FurnitureMakeCancelReq.proto
new file mode 100644
index 00000000..c3a73035
--- /dev/null
+++ b/proto/FurnitureMakeCancelReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4555
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FurnitureMakeCancelReq {
+ uint32 index = 4;
+ uint32 make_id = 15;
+}
diff --git a/proto/FurnitureMakeCancelRsp.proto b/proto/FurnitureMakeCancelRsp.proto
new file mode 100644
index 00000000..e3afe51d
--- /dev/null
+++ b/proto/FurnitureMakeCancelRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FurnitureMakeSlot.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4683
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FurnitureMakeCancelRsp {
+ int32 retcode = 3;
+ uint32 make_id = 2;
+ FurnitureMakeSlot furniture_make_slot = 15;
+}
diff --git a/proto/FurnitureMakeData.proto b/proto/FurnitureMakeData.proto
new file mode 100644
index 00000000..432bc37a
--- /dev/null
+++ b/proto/FurnitureMakeData.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FurnitureMakeData {
+ uint32 index = 15;
+ uint32 dur_time = 1;
+ fixed32 begin_time = 11;
+ fixed32 accelerate_time = 6;
+ uint32 avatar_id = 2;
+ uint32 make_id = 5;
+}
diff --git a/proto/FurnitureMakeFinishNotify.proto b/proto/FurnitureMakeFinishNotify.proto
new file mode 100644
index 00000000..5b733a13
--- /dev/null
+++ b/proto/FurnitureMakeFinishNotify.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4841
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FurnitureMakeFinishNotify {}
diff --git a/proto/FurnitureMakeHelpData.proto b/proto/FurnitureMakeHelpData.proto
new file mode 100644
index 00000000..4cce7dcb
--- /dev/null
+++ b/proto/FurnitureMakeHelpData.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FurnitureMakeHelpData {
+ uint32 times = 2;
+ uint32 uid = 13;
+}
diff --git a/proto/FurnitureMakeHelpReq.proto b/proto/FurnitureMakeHelpReq.proto
new file mode 100644
index 00000000..62881277
--- /dev/null
+++ b/proto/FurnitureMakeHelpReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4865
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FurnitureMakeHelpReq {}
diff --git a/proto/FurnitureMakeHelpRsp.proto b/proto/FurnitureMakeHelpRsp.proto
new file mode 100644
index 00000000..56831d66
--- /dev/null
+++ b/proto/FurnitureMakeHelpRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FurnitureMakeHelpData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4756
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FurnitureMakeHelpRsp {
+ int32 retcode = 10;
+ repeated FurnitureMakeHelpData help_data_list = 6;
+}
diff --git a/proto/FurnitureMakeMakeInfo.proto b/proto/FurnitureMakeMakeInfo.proto
new file mode 100644
index 00000000..5c864445
--- /dev/null
+++ b/proto/FurnitureMakeMakeInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FurnitureMakeMakeInfo {
+ uint32 furniture_id = 13;
+ uint32 make_count = 9;
+}
diff --git a/proto/FurnitureMakeReq.proto b/proto/FurnitureMakeReq.proto
new file mode 100644
index 00000000..0d3a2a9e
--- /dev/null
+++ b/proto/FurnitureMakeReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4477
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FurnitureMakeReq {}
diff --git a/proto/FurnitureMakeRsp.proto b/proto/FurnitureMakeRsp.proto
new file mode 100644
index 00000000..1d3079d3
--- /dev/null
+++ b/proto/FurnitureMakeRsp.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FurnitureMakeBeHelpedData.proto";
+import "FurnitureMakeHelpData.proto";
+import "FurnitureMakeMakeInfo.proto";
+import "FurnitureMakeSlot.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4782
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FurnitureMakeRsp {
+ repeated FurnitureMakeBeHelpedData helped_data_list = 13;
+ repeated FurnitureMakeMakeInfo make_info_list = 4;
+ FurnitureMakeSlot furniture_make_slot = 1;
+ int32 retcode = 3;
+ repeated FurnitureMakeHelpData help_data_list = 2;
+}
diff --git a/proto/FurnitureMakeSlot.proto b/proto/FurnitureMakeSlot.proto
new file mode 100644
index 00000000..ab841c0f
--- /dev/null
+++ b/proto/FurnitureMakeSlot.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FurnitureMakeData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FurnitureMakeSlot {
+ repeated FurnitureMakeData furniture_make_data_list = 14;
+}
diff --git a/proto/FurnitureMakeStartReq.proto b/proto/FurnitureMakeStartReq.proto
new file mode 100644
index 00000000..221c0549
--- /dev/null
+++ b/proto/FurnitureMakeStartReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4633
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FurnitureMakeStartReq {
+ uint32 avatar_id = 9;
+ uint32 make_id = 1;
+}
diff --git a/proto/FurnitureMakeStartRsp.proto b/proto/FurnitureMakeStartRsp.proto
new file mode 100644
index 00000000..82583798
--- /dev/null
+++ b/proto/FurnitureMakeStartRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FurnitureMakeSlot.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4729
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FurnitureMakeStartRsp {
+ FurnitureMakeSlot furniture_make_slot = 5;
+ int32 retcode = 8;
+}
diff --git a/proto/GMShowNavMeshReq.proto b/proto/GMShowNavMeshReq.proto
new file mode 100644
index 00000000..8f1766f8
--- /dev/null
+++ b/proto/GMShowNavMeshReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2357
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GMShowNavMeshReq {
+ Vector center = 1;
+ Vector extent = 5;
+}
diff --git a/proto/GMShowNavMeshRsp.proto b/proto/GMShowNavMeshRsp.proto
new file mode 100644
index 00000000..c0c2583c
--- /dev/null
+++ b/proto/GMShowNavMeshRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PBNavMeshTile.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2400
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GMShowNavMeshRsp {
+ repeated PBNavMeshTile tiles = 11;
+ int32 retcode = 5;
+}
diff --git a/proto/GMShowObstacleReq.proto b/proto/GMShowObstacleReq.proto
new file mode 100644
index 00000000..4d4142a7
--- /dev/null
+++ b/proto/GMShowObstacleReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2361
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GMShowObstacleReq {}
diff --git a/proto/GMShowObstacleRsp.proto b/proto/GMShowObstacleRsp.proto
new file mode 100644
index 00000000..ba82d925
--- /dev/null
+++ b/proto/GMShowObstacleRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ObstacleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2329
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GMShowObstacleRsp {
+ int32 retcode = 5;
+ repeated ObstacleInfo obstacles = 6;
+}
diff --git a/proto/GachaActivityDetailInfo.proto b/proto/GachaActivityDetailInfo.proto
new file mode 100644
index 00000000..6abe905f
--- /dev/null
+++ b/proto/GachaActivityDetailInfo.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GachaStage.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GachaActivityDetailInfo {
+ repeated uint32 Unk2700_PIDHKNLDALB = 6;
+ repeated GachaStage gacha_stage_list = 4;
+ map Unk2700_KOHKBCABICD = 8;
+ uint32 Unk2700_CDPAPBIOPCA = 3;
+ map Unk2700_DACHHINLDDJ = 5;
+ uint32 Unk2700_FGFGLDIJJEK = 12;
+}
diff --git a/proto/GachaInfo.proto b/proto/GachaInfo.proto
new file mode 100644
index 00000000..4ff9cc01
--- /dev/null
+++ b/proto/GachaInfo.proto
@@ -0,0 +1,51 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GachaUpInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GachaInfo {
+ uint32 ten_cost_item_id = 2;
+ uint32 end_time = 14;
+ repeated uint32 display_up4_item_list = 1875;
+ uint32 Unk3100_JKILPCKLNPI = 469;
+ repeated GachaUpInfo gacha_up_info_list = 1233;
+ string gacha_prob_url = 8;
+ string gacha_prefab_path = 15;
+ uint32 wish_item_id = 1637;
+ uint32 begin_time = 1;
+ uint32 wish_max_progress = 1222;
+ uint32 schedule_id = 10;
+ string gacha_prob_url_oversea = 1481;
+ uint32 gacha_type = 13;
+ uint32 left_gacha_times = 5;
+ repeated uint32 display_up5_item_list = 2006;
+ uint32 gacha_times_limit = 11;
+ uint32 cost_item_num = 3;
+ bool is_new_wish = 733;
+ uint32 cost_item_id = 9;
+ uint32 ten_cost_item_num = 6;
+ string gacha_preview_prefab_path = 4;
+ uint32 wish_progress = 1819;
+ string title_textmap = 736;
+ string gacha_record_url_oversea = 1854;
+ uint32 gacha_sort_id = 7;
+ string gacha_record_url = 12;
+}
diff --git a/proto/GachaItem.proto b/proto/GachaItem.proto
new file mode 100644
index 00000000..29ae9f98
--- /dev/null
+++ b/proto/GachaItem.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GachaTransferItem.proto";
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GachaItem {
+ ItemParam gacha_item_ = 7;
+ bool is_gacha_item_new = 6;
+ bool is_flash_card = 8;
+ repeated ItemParam token_item_list = 9;
+ repeated GachaTransferItem transfer_items = 12;
+}
diff --git a/proto/GachaOpenWishNotify.proto b/proto/GachaOpenWishNotify.proto
new file mode 100644
index 00000000..ca552f12
--- /dev/null
+++ b/proto/GachaOpenWishNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1503
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GachaOpenWishNotify {
+ uint32 gacha_type = 2;
+ uint32 gacha_schedule_id = 9;
+}
diff --git a/proto/GachaSimpleInfoNotify.proto b/proto/GachaSimpleInfoNotify.proto
new file mode 100644
index 00000000..ce52e968
--- /dev/null
+++ b/proto/GachaSimpleInfoNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1590
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GachaSimpleInfoNotify {
+ bool is_new = 5;
+}
diff --git a/proto/GachaStage.proto b/proto/GachaStage.proto
new file mode 100644
index 00000000..6a53724a
--- /dev/null
+++ b/proto/GachaStage.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GachaStage {
+ uint32 stage_id = 15;
+ map Unk2700_DNMNEMKIELD = 14;
+ bool is_open = 13;
+}
diff --git a/proto/GachaTransferItem.proto b/proto/GachaTransferItem.proto
new file mode 100644
index 00000000..417508c3
--- /dev/null
+++ b/proto/GachaTransferItem.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GachaTransferItem {
+ ItemParam item = 3;
+ bool is_transfer_item_new = 1;
+}
diff --git a/proto/GachaUpInfo.proto b/proto/GachaUpInfo.proto
new file mode 100644
index 00000000..f8ee92d5
--- /dev/null
+++ b/proto/GachaUpInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GachaUpInfo {
+ uint32 item_parent_type = 7;
+ repeated uint32 item_id_list = 15;
+}
diff --git a/proto/GachaWishReq.proto b/proto/GachaWishReq.proto
new file mode 100644
index 00000000..579b08a9
--- /dev/null
+++ b/proto/GachaWishReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1507
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GachaWishReq {
+ uint32 gacha_schedule_id = 14;
+ uint32 gacha_type = 13;
+ uint32 item_id = 4;
+}
diff --git a/proto/GachaWishRsp.proto b/proto/GachaWishRsp.proto
new file mode 100644
index 00000000..6d799617
--- /dev/null
+++ b/proto/GachaWishRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1521
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GachaWishRsp {
+ uint32 gacha_type = 8;
+ uint32 gacha_schedule_id = 7;
+ uint32 wish_max_progress = 2;
+ uint32 wish_progress = 5;
+ uint32 wish_item_id = 3;
+ int32 retcode = 14;
+}
diff --git a/proto/GadgetAutoPickDropInfoNotify.proto b/proto/GadgetAutoPickDropInfoNotify.proto
new file mode 100644
index 00000000..b57d7798
--- /dev/null
+++ b/proto/GadgetAutoPickDropInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Item.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 897
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GadgetAutoPickDropInfoNotify {
+ repeated Item item_list = 11;
+}
diff --git a/proto/GadgetBornType.proto b/proto/GadgetBornType.proto
new file mode 100644
index 00000000..ca0ef8e0
--- /dev/null
+++ b/proto/GadgetBornType.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum GadgetBornType {
+ GADGET_BORN_TYPE_NONE = 0;
+ GADGET_BORN_TYPE_IN_AIR = 1;
+ GADGET_BORN_TYPE_PLAYER = 2;
+ GADGET_BORN_TYPE_MONSTER_HIT = 3;
+ GADGET_BORN_TYPE_MONSTER_DIE = 4;
+ GADGET_BORN_TYPE_GADGET = 5;
+ GADGET_BORN_TYPE_GROUND = 6;
+}
diff --git a/proto/GadgetChainLevelChangeNotify.proto b/proto/GadgetChainLevelChangeNotify.proto
new file mode 100644
index 00000000..eb5eb29e
--- /dev/null
+++ b/proto/GadgetChainLevelChangeNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 822
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GadgetChainLevelChangeNotify {
+ map gadget_chain_level_map = 2;
+}
diff --git a/proto/GadgetChainLevelUpdateNotify.proto b/proto/GadgetChainLevelUpdateNotify.proto
new file mode 100644
index 00000000..a4446bb5
--- /dev/null
+++ b/proto/GadgetChainLevelUpdateNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 853
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GadgetChainLevelUpdateNotify {
+ map gadget_chain_level_map = 12;
+}
diff --git a/proto/GadgetCrucibleInfo.proto b/proto/GadgetCrucibleInfo.proto
new file mode 100644
index 00000000..1880c6fb
--- /dev/null
+++ b/proto/GadgetCrucibleInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GadgetCrucibleInfo {
+ uint32 mp_play_id = 1;
+ uint32 prepare_end_time = 2;
+}
diff --git a/proto/GadgetCustomTreeInfoNotify.proto b/proto/GadgetCustomTreeInfoNotify.proto
new file mode 100644
index 00000000..101c894a
--- /dev/null
+++ b/proto/GadgetCustomTreeInfoNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CustomGadgetTreeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 850
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GadgetCustomTreeInfoNotify {
+ CustomGadgetTreeInfo custom_gadget_tree_info = 5;
+ uint32 gadget_entity_id = 12;
+}
diff --git a/proto/GadgetGeneralRewardInfo.proto b/proto/GadgetGeneralRewardInfo.proto
new file mode 100644
index 00000000..8713f661
--- /dev/null
+++ b/proto/GadgetGeneralRewardInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GadgetGeneralRewardInfo {
+ uint32 resin = 1;
+ uint32 dead_time = 2;
+ repeated uint32 remain_uid_list = 3;
+ repeated uint32 qualify_uid_list = 4;
+ ItemParam item_param = 5;
+}
diff --git a/proto/GadgetGeneralRewardInfoNotify.proto b/proto/GadgetGeneralRewardInfoNotify.proto
new file mode 100644
index 00000000..5ba837ca
--- /dev/null
+++ b/proto/GadgetGeneralRewardInfoNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GadgetGeneralRewardInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 848
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GadgetGeneralRewardInfoNotify {
+ uint32 entity_id = 13;
+ GadgetGeneralRewardInfo general_reward_info = 9;
+}
diff --git a/proto/GadgetInteractReq.proto b/proto/GadgetInteractReq.proto
new file mode 100644
index 00000000..a2ef451a
--- /dev/null
+++ b/proto/GadgetInteractReq.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "InterOpType.proto";
+import "ResinCostType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 872
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GadgetInteractReq {
+ uint32 gadget_id = 8;
+ bool is_use_condense_resin = 15;
+ InterOpType op_type = 5;
+ ResinCostType resin_cost_type = 1;
+ uint32 Unk2700_DCPBGMKCHGJ = 2;
+ uint32 gadget_entity_id = 4;
+}
diff --git a/proto/GadgetInteractRsp.proto b/proto/GadgetInteractRsp.proto
new file mode 100644
index 00000000..ff25b56d
--- /dev/null
+++ b/proto/GadgetInteractRsp.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "InteractType.proto";
+import "InterOpType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 898
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GadgetInteractRsp {
+ uint32 gadget_entity_id = 10;
+ InteractType interact_type = 2;
+ InterOpType op_type = 3;
+ int32 retcode = 7;
+ uint32 gadget_id = 15;
+}
diff --git a/proto/GadgetPlayDataNotify.proto b/proto/GadgetPlayDataNotify.proto
new file mode 100644
index 00000000..aa931f26
--- /dev/null
+++ b/proto/GadgetPlayDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 831
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GadgetPlayDataNotify {
+ uint32 play_type = 12;
+ uint32 progress = 9;
+ uint32 entity_id = 6;
+}
diff --git a/proto/GadgetPlayInfo.proto b/proto/GadgetPlayInfo.proto
new file mode 100644
index 00000000..f29f6089
--- /dev/null
+++ b/proto/GadgetPlayInfo.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GadgetCrucibleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GadgetPlayInfo {
+ uint32 play_type = 1;
+ uint32 duration = 2;
+ repeated uint32 progress_stage_list = 3;
+ uint32 start_cd = 4;
+ uint32 start_time = 5;
+ uint32 progress = 6;
+ oneof play_info {
+ GadgetCrucibleInfo crucible_info = 21;
+ }
+}
diff --git a/proto/GadgetPlayStartNotify.proto b/proto/GadgetPlayStartNotify.proto
new file mode 100644
index 00000000..26f28437
--- /dev/null
+++ b/proto/GadgetPlayStartNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 873
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GadgetPlayStartNotify {
+ uint32 start_time = 14;
+ uint32 entity_id = 15;
+ uint32 play_type = 8;
+}
diff --git a/proto/GadgetPlayStopNotify.proto b/proto/GadgetPlayStopNotify.proto
new file mode 100644
index 00000000..7961cf1a
--- /dev/null
+++ b/proto/GadgetPlayStopNotify.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GadgetPlayUidInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 899
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GadgetPlayStopNotify {
+ bool is_win = 14;
+ uint32 entity_id = 7;
+ uint32 play_type = 4;
+ repeated GadgetPlayUidInfo uid_info_list = 8;
+ uint32 score = 5;
+ uint32 cost_time = 6;
+}
diff --git a/proto/GadgetPlayUidInfo.proto b/proto/GadgetPlayUidInfo.proto
new file mode 100644
index 00000000..b66339c1
--- /dev/null
+++ b/proto/GadgetPlayUidInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GadgetPlayUidInfo {
+ ProfilePicture profile_picture = 2;
+ uint32 battle_watcher_id = 6;
+ uint32 uid = 7;
+ uint32 icon = 14;
+ uint32 score = 4;
+ string nickname = 3;
+ string online_id = 8;
+}
diff --git a/proto/GadgetPlayUidOpNotify.proto b/proto/GadgetPlayUidOpNotify.proto
new file mode 100644
index 00000000..fe3f6edf
--- /dev/null
+++ b/proto/GadgetPlayUidOpNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 875
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GadgetPlayUidOpNotify {
+ uint32 entity_id = 11;
+ repeated uint32 uid_list = 2;
+ uint32 play_type = 6;
+ string param_str = 1;
+ uint32 op = 7;
+ repeated uint32 param_list = 4;
+}
diff --git a/proto/GadgetStateNotify.proto b/proto/GadgetStateNotify.proto
new file mode 100644
index 00000000..39ec1a64
--- /dev/null
+++ b/proto/GadgetStateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 812
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GadgetStateNotify {
+ uint32 gadget_entity_id = 5;
+ uint32 gadget_state = 3;
+ bool is_enable_interact = 11;
+}
diff --git a/proto/GadgetTalkChangeNotify.proto b/proto/GadgetTalkChangeNotify.proto
new file mode 100644
index 00000000..68c4edfc
--- /dev/null
+++ b/proto/GadgetTalkChangeNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 839
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GadgetTalkChangeNotify {
+ uint32 gadget_entity_id = 5;
+ uint32 cur_gadget_talk_state = 15;
+}
diff --git a/proto/GalleryBalloonScoreNotify.proto b/proto/GalleryBalloonScoreNotify.proto
new file mode 100644
index 00000000..c313125f
--- /dev/null
+++ b/proto/GalleryBalloonScoreNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5512
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GalleryBalloonScoreNotify {
+ uint32 gallery_id = 9;
+ map uid_score_map = 7;
+}
diff --git a/proto/GalleryBalloonShootNotify.proto b/proto/GalleryBalloonShootNotify.proto
new file mode 100644
index 00000000..061ab7cd
--- /dev/null
+++ b/proto/GalleryBalloonShootNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5598
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GalleryBalloonShootNotify {
+ uint32 trigger_entity_id = 12;
+ uint32 gallery_id = 5;
+ uint32 combo = 14;
+ uint64 combo_disable_time = 6;
+ int32 add_score = 11;
+ uint32 cur_score = 13;
+}
diff --git a/proto/GalleryBounceConjuringHitNotify.proto b/proto/GalleryBounceConjuringHitNotify.proto
new file mode 100644
index 00000000..97f488ba
--- /dev/null
+++ b/proto/GalleryBounceConjuringHitNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5505
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GalleryBounceConjuringHitNotify {
+ uint32 add_score = 8;
+ bool is_perfect = 5;
+ uint32 gallery_id = 10;
+}
diff --git a/proto/GalleryBrokenFloorFallNotify.proto b/proto/GalleryBrokenFloorFallNotify.proto
new file mode 100644
index 00000000..7db8ff00
--- /dev/null
+++ b/proto/GalleryBrokenFloorFallNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5575
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GalleryBrokenFloorFallNotify {
+ uint32 fall_count = 3;
+ uint32 gallery_id = 5;
+}
diff --git a/proto/GalleryBulletHitNotify.proto b/proto/GalleryBulletHitNotify.proto
new file mode 100644
index 00000000..e88ce9e3
--- /dev/null
+++ b/proto/GalleryBulletHitNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5531
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GalleryBulletHitNotify {
+ uint32 hit_count = 14;
+ uint32 gallery_id = 12;
+}
diff --git a/proto/GalleryFallCatchNotify.proto b/proto/GalleryFallCatchNotify.proto
new file mode 100644
index 00000000..3e6ebb0c
--- /dev/null
+++ b/proto/GalleryFallCatchNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5507
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GalleryFallCatchNotify {
+ uint32 cur_score = 6;
+ uint32 time_cost = 11;
+ map ball_catch_count_map = 15;
+ uint32 add_score = 1;
+ bool is_ground = 12;
+ uint32 gallery_id = 10;
+}
diff --git a/proto/GalleryFallScoreNotify.proto b/proto/GalleryFallScoreNotify.proto
new file mode 100644
index 00000000..5fce3e57
--- /dev/null
+++ b/proto/GalleryFallScoreNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FallPlayerBrief.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5521
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GalleryFallScoreNotify {
+ uint32 gallery_id = 7;
+ map uid_brief_map = 1;
+}
diff --git a/proto/GalleryFlowerCatchNotify.proto b/proto/GalleryFlowerCatchNotify.proto
new file mode 100644
index 00000000..760c6481
--- /dev/null
+++ b/proto/GalleryFlowerCatchNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5573
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GalleryFlowerCatchNotify {
+ uint32 cur_score = 12;
+ uint32 add_score = 14;
+ uint32 gallery_id = 5;
+}
diff --git a/proto/GalleryFlowerStartParam.proto b/proto/GalleryFlowerStartParam.proto
new file mode 100644
index 00000000..e3a56ce7
--- /dev/null
+++ b/proto/GalleryFlowerStartParam.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GalleryFlowerStartParam {
+ uint32 target_score = 5;
+}
diff --git a/proto/GalleryPreStartNotify.proto b/proto/GalleryPreStartNotify.proto
new file mode 100644
index 00000000..955244ce
--- /dev/null
+++ b/proto/GalleryPreStartNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5599
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GalleryPreStartNotify {
+ uint32 gallery_id = 10;
+ uint32 pre_start_end_time = 9;
+}
diff --git a/proto/GalleryStageType.proto b/proto/GalleryStageType.proto
new file mode 100644
index 00000000..2471c6b9
--- /dev/null
+++ b/proto/GalleryStageType.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum GalleryStageType {
+ GALLERY_STAGE_TYPE_NONE = 0;
+ GALLERY_STAGE_TYPE_PRESTART = 1;
+ GALLERY_STAGE_TYPE_START = 2;
+}
diff --git a/proto/GalleryStartNotify.proto b/proto/GalleryStartNotify.proto
new file mode 100644
index 00000000..164800c5
--- /dev/null
+++ b/proto/GalleryStartNotify.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GalleryFlowerStartParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5572
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GalleryStartNotify {
+ uint32 gallery_id = 13;
+ uint32 end_time = 6;
+ uint32 player_count = 11;
+ uint32 owner_uid = 9;
+ oneof detail {
+ GalleryFlowerStartParam flower_start_param = 15;
+ }
+}
diff --git a/proto/GalleryStopNotify.proto b/proto/GalleryStopNotify.proto
new file mode 100644
index 00000000..6d1b7ad2
--- /dev/null
+++ b/proto/GalleryStopNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5535
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GalleryStopNotify {
+ uint32 gallery_id = 8;
+}
diff --git a/proto/GallerySumoKillMonsterNotify.proto b/proto/GallerySumoKillMonsterNotify.proto
new file mode 100644
index 00000000..870a5cd5
--- /dev/null
+++ b/proto/GallerySumoKillMonsterNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5582
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GallerySumoKillMonsterNotify {
+ uint32 kill_normal_mosnter_num = 4;
+ uint32 score = 7;
+ uint32 kill_elite_monster_num = 14;
+ uint32 gallery_id = 11;
+}
diff --git a/proto/GatherGadgetInfo.proto b/proto/GatherGadgetInfo.proto
new file mode 100644
index 00000000..21664515
--- /dev/null
+++ b/proto/GatherGadgetInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GatherGadgetInfo {
+ uint32 item_id = 1;
+ bool is_forbid_guest = 2;
+}
diff --git a/proto/GearActivityDetailInfo.proto b/proto/GearActivityDetailInfo.proto
new file mode 100644
index 00000000..3ca50e3b
--- /dev/null
+++ b/proto/GearActivityDetailInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2800_BPOJIIDEADD.proto";
+import "Unk2800_JIPMJPAKIKE.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GearActivityDetailInfo {
+ repeated Unk2800_BPOJIIDEADD Unk2800_GBAPCBPMHNJ = 14;
+ Unk2800_JIPMJPAKIKE Unk2800_IHEHGOBCINC = 8;
+}
diff --git a/proto/GeneralMatchInfo.proto b/proto/GeneralMatchInfo.proto
new file mode 100644
index 00000000..55e08060
--- /dev/null
+++ b/proto/GeneralMatchInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MatchPlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GeneralMatchInfo {
+ uint32 match_param = 1;
+ uint32 match_id = 9;
+ repeated MatchPlayerInfo player_list = 5;
+}
diff --git a/proto/GetActivityInfoReq.proto b/proto/GetActivityInfoReq.proto
new file mode 100644
index 00000000..53a236c5
--- /dev/null
+++ b/proto/GetActivityInfoReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2095
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetActivityInfoReq {
+ repeated uint32 activity_id_list = 4;
+}
diff --git a/proto/GetActivityInfoRsp.proto b/proto/GetActivityInfoRsp.proto
new file mode 100644
index 00000000..4614a0ed
--- /dev/null
+++ b/proto/GetActivityInfoRsp.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ActivityInfo.proto";
+import "Uint32Pair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2041
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetActivityInfoRsp {
+ int32 retcode = 13;
+ repeated ActivityInfo activity_info_list = 5;
+ repeated uint32 activated_sale_id_list = 11;
+ repeated Uint32Pair disable_transfer_point_interaction_list = 10;
+}
diff --git a/proto/GetActivityScheduleReq.proto b/proto/GetActivityScheduleReq.proto
new file mode 100644
index 00000000..2e041234
--- /dev/null
+++ b/proto/GetActivityScheduleReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2136
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetActivityScheduleReq {}
diff --git a/proto/GetActivityScheduleRsp.proto b/proto/GetActivityScheduleRsp.proto
new file mode 100644
index 00000000..f5e81b25
--- /dev/null
+++ b/proto/GetActivityScheduleRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ActivityScheduleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2107
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetActivityScheduleRsp {
+ repeated ActivityScheduleInfo activity_schedule_list = 9;
+ int32 retcode = 13;
+ uint32 remain_fly_sea_lamp_num = 4;
+}
diff --git a/proto/GetActivityShopSheetInfoReq.proto b/proto/GetActivityShopSheetInfoReq.proto
new file mode 100644
index 00000000..aae64ab6
--- /dev/null
+++ b/proto/GetActivityShopSheetInfoReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 703
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetActivityShopSheetInfoReq {
+ uint32 shop_type = 7;
+}
diff --git a/proto/GetActivityShopSheetInfoRsp.proto b/proto/GetActivityShopSheetInfoRsp.proto
new file mode 100644
index 00000000..9cb5b4b6
--- /dev/null
+++ b/proto/GetActivityShopSheetInfoRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ActivityShopSheetInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 790
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetActivityShopSheetInfoRsp {
+ repeated ActivityShopSheetInfo sheet_info_list = 6;
+ uint32 shop_type = 8;
+ int32 retcode = 13;
+}
diff --git a/proto/GetAllActivatedBargainDataReq.proto b/proto/GetAllActivatedBargainDataReq.proto
new file mode 100644
index 00000000..5d587bc0
--- /dev/null
+++ b/proto/GetAllActivatedBargainDataReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 463
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetAllActivatedBargainDataReq {}
diff --git a/proto/GetAllActivatedBargainDataRsp.proto b/proto/GetAllActivatedBargainDataRsp.proto
new file mode 100644
index 00000000..04ad1949
--- /dev/null
+++ b/proto/GetAllActivatedBargainDataRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BargainSnapshot.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 495
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetAllActivatedBargainDataRsp {
+ repeated BargainSnapshot snapshot_list = 5;
+ int32 retcode = 9;
+}
diff --git a/proto/GetAllH5ActivityInfoReq.proto b/proto/GetAllH5ActivityInfoReq.proto
new file mode 100644
index 00000000..f984987b
--- /dev/null
+++ b/proto/GetAllH5ActivityInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5668
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetAllH5ActivityInfoReq {}
diff --git a/proto/GetAllH5ActivityInfoRsp.proto b/proto/GetAllH5ActivityInfoRsp.proto
new file mode 100644
index 00000000..bd372d04
--- /dev/null
+++ b/proto/GetAllH5ActivityInfoRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "H5ActivityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5676
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetAllH5ActivityInfoRsp {
+ repeated H5ActivityInfo h5_activity_info_list = 15;
+ int32 retcode = 5;
+ uint32 client_red_dot_timestamp = 12;
+}
diff --git a/proto/GetAllMailReq.proto b/proto/GetAllMailReq.proto
new file mode 100644
index 00000000..66095270
--- /dev/null
+++ b/proto/GetAllMailReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1431
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetAllMailReq {
+ bool Unk2700_OPEHLDAGICF = 7;
+}
diff --git a/proto/GetAllMailRsp.proto b/proto/GetAllMailRsp.proto
new file mode 100644
index 00000000..e6d1d705
--- /dev/null
+++ b/proto/GetAllMailRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MailData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1475
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetAllMailRsp {
+ int32 retcode = 8;
+ repeated MailData mail_list = 14;
+ bool Unk2700_OPEHLDAGICF = 1;
+ bool is_truncated = 2;
+}
diff --git a/proto/GetAllSceneGalleryInfoReq.proto b/proto/GetAllSceneGalleryInfoReq.proto
new file mode 100644
index 00000000..843ac221
--- /dev/null
+++ b/proto/GetAllSceneGalleryInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5503
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetAllSceneGalleryInfoReq {}
diff --git a/proto/GetAllSceneGalleryInfoRsp.proto b/proto/GetAllSceneGalleryInfoRsp.proto
new file mode 100644
index 00000000..fe448995
--- /dev/null
+++ b/proto/GetAllSceneGalleryInfoRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SceneGalleryInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5590
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetAllSceneGalleryInfoRsp {
+ repeated SceneGalleryInfo gallery_info_list = 12;
+ int32 retcode = 2;
+}
diff --git a/proto/GetAllUnlockNameCardReq.proto b/proto/GetAllUnlockNameCardReq.proto
new file mode 100644
index 00000000..9f0ee256
--- /dev/null
+++ b/proto/GetAllUnlockNameCardReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4027
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetAllUnlockNameCardReq {}
diff --git a/proto/GetAllUnlockNameCardRsp.proto b/proto/GetAllUnlockNameCardRsp.proto
new file mode 100644
index 00000000..683baedb
--- /dev/null
+++ b/proto/GetAllUnlockNameCardRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4094
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetAllUnlockNameCardRsp {
+ int32 retcode = 4;
+ repeated uint32 name_card_list = 14;
+}
diff --git a/proto/GetAreaExplorePointReq.proto b/proto/GetAreaExplorePointReq.proto
new file mode 100644
index 00000000..332ea522
--- /dev/null
+++ b/proto/GetAreaExplorePointReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 241
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetAreaExplorePointReq {
+ repeated uint32 area_id_list = 14;
+}
diff --git a/proto/GetAreaExplorePointRsp.proto b/proto/GetAreaExplorePointRsp.proto
new file mode 100644
index 00000000..b5e8076c
--- /dev/null
+++ b/proto/GetAreaExplorePointRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 249
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetAreaExplorePointRsp {
+ int32 retcode = 8;
+ repeated uint32 area_id_list = 11;
+ repeated uint32 explore_point_list = 4;
+}
diff --git a/proto/GetAuthSalesmanInfoReq.proto b/proto/GetAuthSalesmanInfoReq.proto
new file mode 100644
index 00000000..2c436b00
--- /dev/null
+++ b/proto/GetAuthSalesmanInfoReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2070
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetAuthSalesmanInfoReq {
+ uint32 schedule_id = 8;
+}
diff --git a/proto/GetAuthSalesmanInfoRsp.proto b/proto/GetAuthSalesmanInfoRsp.proto
new file mode 100644
index 00000000..c6f8168e
--- /dev/null
+++ b/proto/GetAuthSalesmanInfoRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2004
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetAuthSalesmanInfoRsp {
+ uint32 day_reward_id = 5;
+ int32 retcode = 6;
+ uint32 schedule_id = 11;
+}
diff --git a/proto/GetAuthkeyReq.proto b/proto/GetAuthkeyReq.proto
new file mode 100644
index 00000000..fb427068
--- /dev/null
+++ b/proto/GetAuthkeyReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1490
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetAuthkeyReq {
+ string auth_appid = 14;
+ uint32 sign_type = 7;
+ uint32 authkey_ver = 13;
+}
diff --git a/proto/GetAuthkeyRsp.proto b/proto/GetAuthkeyRsp.proto
new file mode 100644
index 00000000..a6885b23
--- /dev/null
+++ b/proto/GetAuthkeyRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1473
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetAuthkeyRsp {
+ string auth_appid = 4;
+ uint32 sign_type = 15;
+ int32 retcode = 6;
+ uint32 authkey_ver = 9;
+ string game_biz = 11;
+ string authkey = 3;
+}
diff --git a/proto/GetBargainDataReq.proto b/proto/GetBargainDataReq.proto
new file mode 100644
index 00000000..98c871eb
--- /dev/null
+++ b/proto/GetBargainDataReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 488
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetBargainDataReq {
+ uint32 bargain_id = 12;
+}
diff --git a/proto/GetBargainDataRsp.proto b/proto/GetBargainDataRsp.proto
new file mode 100644
index 00000000..eda760af
--- /dev/null
+++ b/proto/GetBargainDataRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BargainSnapshot.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 426
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetBargainDataRsp {
+ int32 retcode = 1;
+ uint32 bargain_id = 14;
+ BargainSnapshot snapshot = 13;
+}
diff --git a/proto/GetBattlePassProductReq.proto b/proto/GetBattlePassProductReq.proto
new file mode 100644
index 00000000..d79e1103
--- /dev/null
+++ b/proto/GetBattlePassProductReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2644
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetBattlePassProductReq {
+ uint32 battle_pass_product_play_type = 10;
+}
diff --git a/proto/GetBattlePassProductRsp.proto b/proto/GetBattlePassProductRsp.proto
new file mode 100644
index 00000000..51b562ea
--- /dev/null
+++ b/proto/GetBattlePassProductRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2649
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetBattlePassProductRsp {
+ int32 retcode = 14;
+ string price_tier = 6;
+ uint32 battle_pass_product_play_type = 2;
+ string product_id = 1;
+ uint32 cur_schedule_id = 11;
+}
diff --git a/proto/GetBlossomBriefInfoListReq.proto b/proto/GetBlossomBriefInfoListReq.proto
new file mode 100644
index 00000000..7dd83016
--- /dev/null
+++ b/proto/GetBlossomBriefInfoListReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2772
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetBlossomBriefInfoListReq {
+ repeated uint32 city_id_list = 4;
+}
diff --git a/proto/GetBlossomBriefInfoListRsp.proto b/proto/GetBlossomBriefInfoListRsp.proto
new file mode 100644
index 00000000..1bd19436
--- /dev/null
+++ b/proto/GetBlossomBriefInfoListRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BlossomBriefInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2798
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetBlossomBriefInfoListRsp {
+ int32 retcode = 12;
+ repeated BlossomBriefInfo brief_info_list = 11;
+}
diff --git a/proto/GetBonusActivityRewardReq.proto b/proto/GetBonusActivityRewardReq.proto
new file mode 100644
index 00000000..e6badca5
--- /dev/null
+++ b/proto/GetBonusActivityRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2581
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetBonusActivityRewardReq {
+ uint32 bonus_activity_id = 14;
+}
diff --git a/proto/GetBonusActivityRewardRsp.proto b/proto/GetBonusActivityRewardRsp.proto
new file mode 100644
index 00000000..d371e986
--- /dev/null
+++ b/proto/GetBonusActivityRewardRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BonusActivityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2505
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetBonusActivityRewardRsp {
+ BonusActivityInfo bonus_activity_info_list = 4;
+ int32 retcode = 13;
+}
diff --git a/proto/GetChatEmojiCollectionReq.proto b/proto/GetChatEmojiCollectionReq.proto
new file mode 100644
index 00000000..d878d654
--- /dev/null
+++ b/proto/GetChatEmojiCollectionReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4068
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetChatEmojiCollectionReq {}
diff --git a/proto/GetChatEmojiCollectionRsp.proto b/proto/GetChatEmojiCollectionRsp.proto
new file mode 100644
index 00000000..fedf2260
--- /dev/null
+++ b/proto/GetChatEmojiCollectionRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChatEmojiCollectionData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4033
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetChatEmojiCollectionRsp {
+ int32 retcode = 15;
+ ChatEmojiCollectionData chat_emoji_collection_data = 8;
+}
diff --git a/proto/GetCityHuntingOfferReq.proto b/proto/GetCityHuntingOfferReq.proto
new file mode 100644
index 00000000..0376155d
--- /dev/null
+++ b/proto/GetCityHuntingOfferReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4325
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetCityHuntingOfferReq {
+ uint32 city_id = 9;
+}
diff --git a/proto/GetCityHuntingOfferRsp.proto b/proto/GetCityHuntingOfferRsp.proto
new file mode 100644
index 00000000..fd63b8e0
--- /dev/null
+++ b/proto/GetCityHuntingOfferRsp.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HuntingOfferData.proto";
+import "HuntingPair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4307
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetCityHuntingOfferRsp {
+ int32 retcode = 9;
+ repeated HuntingOfferData hunting_offer_list = 13;
+ uint32 city_id = 2;
+ HuntingPair ongoing_hunting_pair = 8;
+ uint32 cur_week_finished_count = 1;
+ uint32 next_refresh_time = 4;
+}
diff --git a/proto/GetCityReputationInfoReq.proto b/proto/GetCityReputationInfoReq.proto
new file mode 100644
index 00000000..1cf382a6
--- /dev/null
+++ b/proto/GetCityReputationInfoReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2872
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetCityReputationInfoReq {
+ uint32 city_id = 7;
+}
diff --git a/proto/GetCityReputationInfoRsp.proto b/proto/GetCityReputationInfoRsp.proto
new file mode 100644
index 00000000..b5f9def5
--- /dev/null
+++ b/proto/GetCityReputationInfoRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CityReputationInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2898
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetCityReputationInfoRsp {
+ uint32 city_id = 1;
+ int32 retcode = 4;
+ CityReputationInfo city_reputation_info = 9;
+}
diff --git a/proto/GetCityReputationMapInfoReq.proto b/proto/GetCityReputationMapInfoReq.proto
new file mode 100644
index 00000000..a73923f9
--- /dev/null
+++ b/proto/GetCityReputationMapInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2875
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetCityReputationMapInfoReq {}
diff --git a/proto/GetCityReputationMapInfoRsp.proto b/proto/GetCityReputationMapInfoRsp.proto
new file mode 100644
index 00000000..aaabd87f
--- /dev/null
+++ b/proto/GetCityReputationMapInfoRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2848
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetCityReputationMapInfoRsp {
+ int32 retcode = 11;
+ bool is_new_hunting = 10;
+ bool is_new_request = 2;
+ repeated uint32 unlock_hunting_city_list = 9;
+ repeated uint32 reward_city_list = 3;
+}
diff --git a/proto/GetCompoundDataReq.proto b/proto/GetCompoundDataReq.proto
new file mode 100644
index 00000000..bbba3e19
--- /dev/null
+++ b/proto/GetCompoundDataReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 141
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetCompoundDataReq {}
diff --git a/proto/GetCompoundDataRsp.proto b/proto/GetCompoundDataRsp.proto
new file mode 100644
index 00000000..0501484a
--- /dev/null
+++ b/proto/GetCompoundDataRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CompoundQueueData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 149
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetCompoundDataRsp {
+ int32 retcode = 3;
+ repeated uint32 unlock_compound_list = 11;
+ repeated CompoundQueueData compound_que_data_list = 7;
+}
diff --git a/proto/GetDailyDungeonEntryInfoReq.proto b/proto/GetDailyDungeonEntryInfoReq.proto
new file mode 100644
index 00000000..f5e0844e
--- /dev/null
+++ b/proto/GetDailyDungeonEntryInfoReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 930
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetDailyDungeonEntryInfoReq {
+ uint32 scene_id = 15;
+}
diff --git a/proto/GetDailyDungeonEntryInfoRsp.proto b/proto/GetDailyDungeonEntryInfoRsp.proto
new file mode 100644
index 00000000..a4e4cc5f
--- /dev/null
+++ b/proto/GetDailyDungeonEntryInfoRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DailyDungeonEntryInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 967
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetDailyDungeonEntryInfoRsp {
+ repeated DailyDungeonEntryInfo daily_dungeon_info_list = 2;
+ int32 retcode = 14;
+}
diff --git a/proto/GetDungeonEntryExploreConditionReq.proto b/proto/GetDungeonEntryExploreConditionReq.proto
new file mode 100644
index 00000000..f6b75d93
--- /dev/null
+++ b/proto/GetDungeonEntryExploreConditionReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3165
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetDungeonEntryExploreConditionReq {
+ uint32 scene_id = 6;
+ uint32 dungeon_entry_config_id = 2;
+ uint32 dungeon_entry_scene_point_id = 4;
+}
diff --git a/proto/GetDungeonEntryExploreConditionRsp.proto b/proto/GetDungeonEntryExploreConditionRsp.proto
new file mode 100644
index 00000000..c7da98df
--- /dev/null
+++ b/proto/GetDungeonEntryExploreConditionRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DungeonEntryCond.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3269
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetDungeonEntryExploreConditionRsp {
+ DungeonEntryCond dungeon_entry_cond = 5;
+ int32 retcode = 3;
+}
diff --git a/proto/GetExpeditionAssistInfoListReq.proto b/proto/GetExpeditionAssistInfoListReq.proto
new file mode 100644
index 00000000..080db682
--- /dev/null
+++ b/proto/GetExpeditionAssistInfoListReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2150
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetExpeditionAssistInfoListReq {}
diff --git a/proto/GetExpeditionAssistInfoListRsp.proto b/proto/GetExpeditionAssistInfoListRsp.proto
new file mode 100644
index 00000000..7324a8f6
--- /dev/null
+++ b/proto/GetExpeditionAssistInfoListRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ExpeditionAssistInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2035
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetExpeditionAssistInfoListRsp {
+ repeated ExpeditionAssistInfo assist_info_list = 6;
+ int32 retcode = 7;
+}
diff --git a/proto/GetFriendShowAvatarInfoReq.proto b/proto/GetFriendShowAvatarInfoReq.proto
new file mode 100644
index 00000000..76ace439
--- /dev/null
+++ b/proto/GetFriendShowAvatarInfoReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4070
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetFriendShowAvatarInfoReq {
+ uint32 uid = 15;
+}
diff --git a/proto/GetFriendShowAvatarInfoRsp.proto b/proto/GetFriendShowAvatarInfoRsp.proto
new file mode 100644
index 00000000..232103a7
--- /dev/null
+++ b/proto/GetFriendShowAvatarInfoRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ShowAvatarInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4017
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetFriendShowAvatarInfoRsp {
+ uint32 uid = 6;
+ int32 retcode = 3;
+ repeated ShowAvatarInfo show_avatar_info_list = 9;
+}
diff --git a/proto/GetFriendShowNameCardInfoReq.proto b/proto/GetFriendShowNameCardInfoReq.proto
new file mode 100644
index 00000000..7e8cc9e5
--- /dev/null
+++ b/proto/GetFriendShowNameCardInfoReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4061
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetFriendShowNameCardInfoReq {
+ uint32 uid = 3;
+}
diff --git a/proto/GetFriendShowNameCardInfoRsp.proto b/proto/GetFriendShowNameCardInfoRsp.proto
new file mode 100644
index 00000000..ff9e38be
--- /dev/null
+++ b/proto/GetFriendShowNameCardInfoRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4029
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetFriendShowNameCardInfoRsp {
+ int32 retcode = 15;
+ uint32 uid = 7;
+ repeated uint32 show_name_card_id_list = 10;
+}
diff --git a/proto/GetFurnitureCurModuleArrangeCountReq.proto b/proto/GetFurnitureCurModuleArrangeCountReq.proto
new file mode 100644
index 00000000..83a72eb8
--- /dev/null
+++ b/proto/GetFurnitureCurModuleArrangeCountReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4711
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetFurnitureCurModuleArrangeCountReq {}
diff --git a/proto/GetGachaInfoReq.proto b/proto/GetGachaInfoReq.proto
new file mode 100644
index 00000000..e7c95cf8
--- /dev/null
+++ b/proto/GetGachaInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1572
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetGachaInfoReq {}
diff --git a/proto/GetGachaInfoRsp.proto b/proto/GetGachaInfoRsp.proto
new file mode 100644
index 00000000..11bd2eb6
--- /dev/null
+++ b/proto/GetGachaInfoRsp.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GachaInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1598
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetGachaInfoRsp {
+ bool Unk3100_IDBLFJDHHPI = 6;
+ uint32 gacha_random = 9;
+ int32 retcode = 10;
+ bool Unk2700_LEEPELHDING = 2;
+ uint32 Unk2700_OJKKHDLEDCI = 5;
+ repeated GachaInfo gacha_info_list = 13;
+}
diff --git a/proto/GetHomeLevelUpRewardReq.proto b/proto/GetHomeLevelUpRewardReq.proto
new file mode 100644
index 00000000..552af1eb
--- /dev/null
+++ b/proto/GetHomeLevelUpRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4557
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetHomeLevelUpRewardReq {
+ uint32 level = 15;
+}
diff --git a/proto/GetHomeLevelUpRewardRsp.proto b/proto/GetHomeLevelUpRewardRsp.proto
new file mode 100644
index 00000000..d2927e80
--- /dev/null
+++ b/proto/GetHomeLevelUpRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4603
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetHomeLevelUpRewardRsp {
+ uint32 level = 1;
+ int32 retcode = 6;
+}
diff --git a/proto/GetHuntingOfferRewardReq.proto b/proto/GetHuntingOfferRewardReq.proto
new file mode 100644
index 00000000..355ac651
--- /dev/null
+++ b/proto/GetHuntingOfferRewardReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HuntingPair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4302
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetHuntingOfferRewardReq {
+ uint32 city_id = 6;
+ HuntingPair hunting_pair = 4;
+}
diff --git a/proto/GetHuntingOfferRewardRsp.proto b/proto/GetHuntingOfferRewardRsp.proto
new file mode 100644
index 00000000..7dd3025a
--- /dev/null
+++ b/proto/GetHuntingOfferRewardRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HuntingPair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4331
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetHuntingOfferRewardRsp {
+ HuntingPair hunting_pair = 14;
+ uint32 city_id = 3;
+ int32 retcode = 12;
+}
diff --git a/proto/GetInvestigationMonsterReq.proto b/proto/GetInvestigationMonsterReq.proto
new file mode 100644
index 00000000..955fa497
--- /dev/null
+++ b/proto/GetInvestigationMonsterReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1901
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetInvestigationMonsterReq {
+ repeated uint32 city_id_list = 3;
+ bool Unk2700_DEMFDHNFBBJ = 4;
+}
diff --git a/proto/GetInvestigationMonsterRsp.proto b/proto/GetInvestigationMonsterRsp.proto
new file mode 100644
index 00000000..cbfebf40
--- /dev/null
+++ b/proto/GetInvestigationMonsterRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "InvestigationMonster.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1910
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetInvestigationMonsterRsp {
+ repeated InvestigationMonster monster_list = 10;
+ int32 retcode = 1;
+ bool Unk2700_DEMFDHNFBBJ = 2;
+}
diff --git a/proto/GetMailItemReq.proto b/proto/GetMailItemReq.proto
new file mode 100644
index 00000000..0a334972
--- /dev/null
+++ b/proto/GetMailItemReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1435
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetMailItemReq {
+ repeated uint32 mail_id_list = 6;
+}
diff --git a/proto/GetMailItemRsp.proto b/proto/GetMailItemRsp.proto
new file mode 100644
index 00000000..211c3ae5
--- /dev/null
+++ b/proto/GetMailItemRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EquipParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1407
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetMailItemRsp {
+ int32 retcode = 7;
+ repeated uint32 mail_id_list = 3;
+ repeated EquipParam item_list = 2;
+}
diff --git a/proto/GetMapAreaReq.proto b/proto/GetMapAreaReq.proto
new file mode 100644
index 00000000..34383451
--- /dev/null
+++ b/proto/GetMapAreaReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3108
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetMapAreaReq {}
diff --git a/proto/GetMapAreaRsp.proto b/proto/GetMapAreaRsp.proto
new file mode 100644
index 00000000..01bf1de4
--- /dev/null
+++ b/proto/GetMapAreaRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MapAreaInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3328
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetMapAreaRsp {
+ int32 retcode = 14;
+ repeated MapAreaInfo map_area_info_list = 9;
+}
diff --git a/proto/GetMapMarkTipsReq.proto b/proto/GetMapMarkTipsReq.proto
new file mode 100644
index 00000000..18be33fa
--- /dev/null
+++ b/proto/GetMapMarkTipsReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3463
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetMapMarkTipsReq {}
diff --git a/proto/GetMapMarkTipsRsp.proto b/proto/GetMapMarkTipsRsp.proto
new file mode 100644
index 00000000..500c1f34
--- /dev/null
+++ b/proto/GetMapMarkTipsRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MapMarkTipsInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3327
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetMapMarkTipsRsp {
+ int32 retcode = 7;
+ repeated MapMarkTipsInfo mark_tips_list = 11;
+}
diff --git a/proto/GetMechanicusInfoReq.proto b/proto/GetMechanicusInfoReq.proto
new file mode 100644
index 00000000..36be0d7d
--- /dev/null
+++ b/proto/GetMechanicusInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3972
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetMechanicusInfoReq {}
diff --git a/proto/GetMechanicusInfoRsp.proto b/proto/GetMechanicusInfoRsp.proto
new file mode 100644
index 00000000..2891e12d
--- /dev/null
+++ b/proto/GetMechanicusInfoRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MechanicusInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3998
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetMechanicusInfoRsp {
+ int32 retcode = 14;
+ MechanicusInfo mechanicus_info = 15;
+}
diff --git a/proto/GetNextResourceInfoReq.proto b/proto/GetNextResourceInfoReq.proto
new file mode 100644
index 00000000..60f9ffe2
--- /dev/null
+++ b/proto/GetNextResourceInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 192
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetNextResourceInfoReq {}
diff --git a/proto/GetNextResourceInfoRsp.proto b/proto/GetNextResourceInfoRsp.proto
new file mode 100644
index 00000000..b874acb1
--- /dev/null
+++ b/proto/GetNextResourceInfoRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ResVersionConfig.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 120
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetNextResourceInfoRsp {
+ string next_resource_url = 14;
+ ResVersionConfig next_res_version_config = 2;
+ int32 retcode = 12;
+}
diff --git a/proto/GetOnlinePlayerInfoReq.proto b/proto/GetOnlinePlayerInfoReq.proto
new file mode 100644
index 00000000..ed10987e
--- /dev/null
+++ b/proto/GetOnlinePlayerInfoReq.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 82
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetOnlinePlayerInfoReq {
+ bool is_online_id = 15;
+ oneof player_id {
+ uint32 target_uid = 9;
+ string online_id = 7;
+ string psn_id = 2;
+ }
+}
diff --git a/proto/GetOnlinePlayerInfoRsp.proto b/proto/GetOnlinePlayerInfoRsp.proto
new file mode 100644
index 00000000..422f9dbf
--- /dev/null
+++ b/proto/GetOnlinePlayerInfoRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "OnlinePlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 47
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetOnlinePlayerInfoRsp {
+ int32 retcode = 11;
+ uint32 target_uid = 7;
+ uint32 param = 4;
+ OnlinePlayerInfo target_player_info = 14;
+}
diff --git a/proto/GetOnlinePlayerListReq.proto b/proto/GetOnlinePlayerListReq.proto
new file mode 100644
index 00000000..3c2eff36
--- /dev/null
+++ b/proto/GetOnlinePlayerListReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 90
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetOnlinePlayerListReq {}
diff --git a/proto/GetOnlinePlayerListRsp.proto b/proto/GetOnlinePlayerListRsp.proto
new file mode 100644
index 00000000..bd4782c1
--- /dev/null
+++ b/proto/GetOnlinePlayerListRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "OnlinePlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 73
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetOnlinePlayerListRsp {
+ int32 retcode = 7;
+ uint32 param = 11;
+ repeated OnlinePlayerInfo player_info_list = 5;
+}
diff --git a/proto/GetOpActivityInfoReq.proto b/proto/GetOpActivityInfoReq.proto
new file mode 100644
index 00000000..3fb02a65
--- /dev/null
+++ b/proto/GetOpActivityInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5172
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetOpActivityInfoReq {}
diff --git a/proto/GetOpActivityInfoRsp.proto b/proto/GetOpActivityInfoRsp.proto
new file mode 100644
index 00000000..066603eb
--- /dev/null
+++ b/proto/GetOpActivityInfoRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "OpActivityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5198
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetOpActivityInfoRsp {
+ int32 retcode = 10;
+ repeated OpActivityInfo op_activity_info_list = 7;
+}
diff --git a/proto/GetPlayerAskFriendListReq.proto b/proto/GetPlayerAskFriendListReq.proto
new file mode 100644
index 00000000..ce7ffbde
--- /dev/null
+++ b/proto/GetPlayerAskFriendListReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4018
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetPlayerAskFriendListReq {}
diff --git a/proto/GetPlayerAskFriendListRsp.proto b/proto/GetPlayerAskFriendListRsp.proto
new file mode 100644
index 00000000..3d4b0d1c
--- /dev/null
+++ b/proto/GetPlayerAskFriendListRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FriendBrief.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4066
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetPlayerAskFriendListRsp {
+ int32 retcode = 13;
+ repeated FriendBrief ask_friend_list = 15;
+}
diff --git a/proto/GetPlayerBlacklistReq.proto b/proto/GetPlayerBlacklistReq.proto
new file mode 100644
index 00000000..32ae8c84
--- /dev/null
+++ b/proto/GetPlayerBlacklistReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4049
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetPlayerBlacklistReq {}
diff --git a/proto/GetPlayerBlacklistRsp.proto b/proto/GetPlayerBlacklistRsp.proto
new file mode 100644
index 00000000..366d9899
--- /dev/null
+++ b/proto/GetPlayerBlacklistRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FriendBrief.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4091
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetPlayerBlacklistRsp {
+ int32 retcode = 2;
+ repeated FriendBrief blacklist = 3;
+}
diff --git a/proto/GetPlayerFriendListReq.proto b/proto/GetPlayerFriendListReq.proto
new file mode 100644
index 00000000..a634f134
--- /dev/null
+++ b/proto/GetPlayerFriendListReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4072
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetPlayerFriendListReq {}
diff --git a/proto/GetPlayerFriendListRsp.proto b/proto/GetPlayerFriendListRsp.proto
new file mode 100644
index 00000000..b0d0e1f6
--- /dev/null
+++ b/proto/GetPlayerFriendListRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FriendBrief.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4098
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetPlayerFriendListRsp {
+ int32 retcode = 9;
+ repeated FriendBrief ask_friend_list = 8;
+ repeated FriendBrief friend_list = 14;
+}
diff --git a/proto/GetPlayerHomeCompInfoReq.proto b/proto/GetPlayerHomeCompInfoReq.proto
new file mode 100644
index 00000000..4de344b8
--- /dev/null
+++ b/proto/GetPlayerHomeCompInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4597
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetPlayerHomeCompInfoReq {}
diff --git a/proto/GetPlayerMpModeAvailabilityReq.proto b/proto/GetPlayerMpModeAvailabilityReq.proto
new file mode 100644
index 00000000..6e557f32
--- /dev/null
+++ b/proto/GetPlayerMpModeAvailabilityReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1844
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetPlayerMpModeAvailabilityReq {}
diff --git a/proto/GetPlayerMpModeAvailabilityRsp.proto b/proto/GetPlayerMpModeAvailabilityRsp.proto
new file mode 100644
index 00000000..6e891445
--- /dev/null
+++ b/proto/GetPlayerMpModeAvailabilityRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1849
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetPlayerMpModeAvailabilityRsp {
+ int32 mp_ret = 15;
+ int32 retcode = 2;
+ repeated uint32 param_list = 8;
+}
diff --git a/proto/GetPlayerSocialDetailReq.proto b/proto/GetPlayerSocialDetailReq.proto
new file mode 100644
index 00000000..4ad03979
--- /dev/null
+++ b/proto/GetPlayerSocialDetailReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4073
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetPlayerSocialDetailReq {
+ uint32 uid = 9;
+}
diff --git a/proto/GetPlayerSocialDetailRsp.proto b/proto/GetPlayerSocialDetailRsp.proto
new file mode 100644
index 00000000..bce5e8ae
--- /dev/null
+++ b/proto/GetPlayerSocialDetailRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SocialDetail.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4099
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetPlayerSocialDetailRsp {
+ SocialDetail detail_data = 12;
+ int32 retcode = 1;
+}
diff --git a/proto/GetPlayerTokenReq.proto b/proto/GetPlayerTokenReq.proto
new file mode 100644
index 00000000..a9239896
--- /dev/null
+++ b/proto/GetPlayerTokenReq.proto
@@ -0,0 +1,46 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 172
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetPlayerTokenReq {
+ string account_token = 10;
+ string account_uid = 11;
+ string psn_region = 4;
+ string online_id = 7;
+ uint32 channel_id = 15;
+ string account_ext = 9;
+ string country_code = 5;
+ string client_seed = 760;
+ bool is_guest = 6;
+ string birthday = 1718;
+ uint32 sub_channel_id = 8;
+ uint32 platform_type = 12;
+ string client_ip_str = 3;
+ string psn_id = 13;
+ uint32 account_type = 1;
+ uint32 Unk2700_NOJPEHIBDJH = 995;
+ uint32 cloud_client_ip = 14;
+ uint32 key_id = 1787;
+ uint32 uid = 2;
+}
diff --git a/proto/GetPlayerTokenRsp.proto b/proto/GetPlayerTokenRsp.proto
new file mode 100644
index 00000000..df95379d
--- /dev/null
+++ b/proto/GetPlayerTokenRsp.proto
@@ -0,0 +1,57 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 198
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetPlayerTokenRsp {
+ string birthday = 937;
+ int32 retcode = 2;
+ bytes security_cmd_buffer = 6;
+ uint64 secret_key_seed = 13;
+ string country_code = 2013;
+ bytes extra_bin_data = 3;
+ string secret_key = 15;
+ uint32 Unk2700_NOJPEHIBDJH = 1561;
+ uint32 black_uid_end_time = 14;
+ uint32 tag = 1635;
+ string token = 11;
+ uint32 gm_uid = 10;
+ uint32 channel_id = 896;
+ string psn_id = 1811;
+ string client_ip_str = 860;
+ string msg = 7;
+ uint32 account_type = 5;
+ uint32 sub_channel_id = 1802;
+ bool Unk2700_FLBKPCPGPDH = 2028;
+ string encrypted_seed = 1493;
+ bool is_proficient_player = 9;
+ uint32 key_id = 1172;
+ uint32 uid = 1;
+ string account_uid = 12;
+ bool is_guest = 4;
+ string client_version_random_key = 1529;
+ repeated uint32 Unk2800_NNBFCEAOEPB = 1640;
+ uint32 platform_type = 8;
+ uint32 reg_platform = 1112;
+ bool is_login_white_list = 573;
+ string seed_signature = 1140;
+}
diff --git a/proto/GetPushTipsRewardReq.proto b/proto/GetPushTipsRewardReq.proto
new file mode 100644
index 00000000..a3f9529c
--- /dev/null
+++ b/proto/GetPushTipsRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2227
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetPushTipsRewardReq {
+ repeated uint32 push_tips_id_list = 4;
+}
diff --git a/proto/GetPushTipsRewardRsp.proto b/proto/GetPushTipsRewardRsp.proto
new file mode 100644
index 00000000..e0c03a0d
--- /dev/null
+++ b/proto/GetPushTipsRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2294
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetPushTipsRewardRsp {
+ int32 retcode = 10;
+ repeated uint32 push_tips_id_list = 9;
+}
diff --git a/proto/GetQuestTalkHistoryReq.proto b/proto/GetQuestTalkHistoryReq.proto
new file mode 100644
index 00000000..1b972142
--- /dev/null
+++ b/proto/GetQuestTalkHistoryReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 490
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetQuestTalkHistoryReq {
+ uint32 parent_quest_id = 6;
+}
diff --git a/proto/GetQuestTalkHistoryRsp.proto b/proto/GetQuestTalkHistoryRsp.proto
new file mode 100644
index 00000000..46ea7991
--- /dev/null
+++ b/proto/GetQuestTalkHistoryRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 473
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetQuestTalkHistoryRsp {
+ repeated uint32 talk_id_list = 13;
+ uint32 parent_quest_id = 7;
+ int32 retcode = 15;
+}
diff --git a/proto/GetRecentMpPlayerListReq.proto b/proto/GetRecentMpPlayerListReq.proto
new file mode 100644
index 00000000..245a2250
--- /dev/null
+++ b/proto/GetRecentMpPlayerListReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4034
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetRecentMpPlayerListReq {}
diff --git a/proto/GetRecentMpPlayerListRsp.proto b/proto/GetRecentMpPlayerListRsp.proto
new file mode 100644
index 00000000..bbd9cbe7
--- /dev/null
+++ b/proto/GetRecentMpPlayerListRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FriendBrief.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4050
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetRecentMpPlayerListRsp {
+ int32 retcode = 13;
+ repeated FriendBrief recent_mp_player_brief_list = 14;
+}
diff --git a/proto/GetRegionSearchReq.proto b/proto/GetRegionSearchReq.proto
new file mode 100644
index 00000000..e1cf7305
--- /dev/null
+++ b/proto/GetRegionSearchReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5602
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetRegionSearchReq {}
diff --git a/proto/GetReunionMissionInfoReq.proto b/proto/GetReunionMissionInfoReq.proto
new file mode 100644
index 00000000..12ec3eb1
--- /dev/null
+++ b/proto/GetReunionMissionInfoReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5094
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetReunionMissionInfoReq {
+ uint32 mission_id = 14;
+}
diff --git a/proto/GetReunionMissionInfoRsp.proto b/proto/GetReunionMissionInfoRsp.proto
new file mode 100644
index 00000000..5ce9d85f
--- /dev/null
+++ b/proto/GetReunionMissionInfoRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ReunionMissionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5099
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetReunionMissionInfoRsp {
+ int32 retcode = 9;
+ ReunionMissionInfo mission_info = 14;
+}
diff --git a/proto/GetReunionPrivilegeInfoReq.proto b/proto/GetReunionPrivilegeInfoReq.proto
new file mode 100644
index 00000000..4b3fca87
--- /dev/null
+++ b/proto/GetReunionPrivilegeInfoReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5097
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetReunionPrivilegeInfoReq {
+ uint32 privilege_id = 10;
+}
diff --git a/proto/GetReunionPrivilegeInfoRsp.proto b/proto/GetReunionPrivilegeInfoRsp.proto
new file mode 100644
index 00000000..222720a2
--- /dev/null
+++ b/proto/GetReunionPrivilegeInfoRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ReunionPrivilegeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5087
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetReunionPrivilegeInfoRsp {
+ int32 retcode = 3;
+ ReunionPrivilegeInfo privilege_info = 1;
+}
diff --git a/proto/GetReunionSignInInfoReq.proto b/proto/GetReunionSignInInfoReq.proto
new file mode 100644
index 00000000..676fc67e
--- /dev/null
+++ b/proto/GetReunionSignInInfoReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5052
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetReunionSignInInfoReq {
+ uint32 sign_in_config_id = 10;
+}
diff --git a/proto/GetReunionSignInInfoRsp.proto b/proto/GetReunionSignInInfoRsp.proto
new file mode 100644
index 00000000..fc9cd06b
--- /dev/null
+++ b/proto/GetReunionSignInInfoRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ReunionSignInInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5081
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetReunionSignInInfoRsp {
+ ReunionSignInInfo sign_in_info = 5;
+ int32 retcode = 15;
+}
diff --git a/proto/GetSceneAreaReq.proto b/proto/GetSceneAreaReq.proto
new file mode 100644
index 00000000..dc4159b5
--- /dev/null
+++ b/proto/GetSceneAreaReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 265
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetSceneAreaReq {
+ uint32 scene_id = 4;
+ uint32 belong_uid = 7;
+}
diff --git a/proto/GetSceneAreaRsp.proto b/proto/GetSceneAreaRsp.proto
new file mode 100644
index 00000000..7a03507b
--- /dev/null
+++ b/proto/GetSceneAreaRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 204
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetSceneAreaRsp {
+ int32 retcode = 7;
+ repeated CityInfo city_info_list = 13;
+ uint32 scene_id = 15;
+ repeated uint32 area_id_list = 9;
+}
diff --git a/proto/GetSceneNpcPositionReq.proto b/proto/GetSceneNpcPositionReq.proto
new file mode 100644
index 00000000..32c343bb
--- /dev/null
+++ b/proto/GetSceneNpcPositionReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 535
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetSceneNpcPositionReq {
+ repeated uint32 npc_id_list = 6;
+ uint32 scene_id = 8;
+}
diff --git a/proto/GetSceneNpcPositionRsp.proto b/proto/GetSceneNpcPositionRsp.proto
new file mode 100644
index 00000000..66f50470
--- /dev/null
+++ b/proto/GetSceneNpcPositionRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "NpcPositionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 507
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetSceneNpcPositionRsp {
+ int32 retcode = 10;
+ repeated NpcPositionInfo npc_info_list = 14;
+ uint32 scene_id = 4;
+}
diff --git a/proto/GetScenePerformanceReq.proto b/proto/GetScenePerformanceReq.proto
new file mode 100644
index 00000000..908317e3
--- /dev/null
+++ b/proto/GetScenePerformanceReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3419
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetScenePerformanceReq {}
diff --git a/proto/GetScenePerformanceRsp.proto b/proto/GetScenePerformanceRsp.proto
new file mode 100644
index 00000000..1770625d
--- /dev/null
+++ b/proto/GetScenePerformanceRsp.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3137
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetScenePerformanceRsp {
+ uint32 monster_num = 9;
+ uint32 gather_num_insight = 1;
+ uint32 gadget_num = 6;
+ int32 retcode = 7;
+ uint32 dynamic_group_num = 12;
+ uint32 group_num = 2;
+ Vector pos = 4;
+ uint32 entity_num = 8;
+ uint32 gather_num = 13;
+}
diff --git a/proto/GetScenePointReq.proto b/proto/GetScenePointReq.proto
new file mode 100644
index 00000000..38ee5ce1
--- /dev/null
+++ b/proto/GetScenePointReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 297
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetScenePointReq {
+ uint32 belong_uid = 10;
+ uint32 scene_id = 4;
+}
diff --git a/proto/GetScenePointRsp.proto b/proto/GetScenePointRsp.proto
new file mode 100644
index 00000000..230344a7
--- /dev/null
+++ b/proto/GetScenePointRsp.proto
@@ -0,0 +1,38 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 281
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetScenePointRsp {
+ repeated uint32 not_explored_dungeon_entry_list = 11;
+ repeated uint32 to_be_explore_dungeon_entry_list = 15;
+ repeated uint32 locked_point_list = 2;
+ repeated uint32 unhide_point_list = 5;
+ int32 retcode = 9;
+ uint32 belong_uid = 12;
+ repeated uint32 unlocked_point_list = 13;
+ repeated uint32 unlock_area_list = 1;
+ repeated uint32 hide_point_list = 4;
+ uint32 scene_id = 14;
+ repeated uint32 not_interact_dungeon_entry_list = 6;
+ repeated uint32 group_unlimit_point_list = 10;
+}
diff --git a/proto/GetShopReq.proto b/proto/GetShopReq.proto
new file mode 100644
index 00000000..61da202b
--- /dev/null
+++ b/proto/GetShopReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 772
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetShopReq {
+ uint32 shop_type = 13;
+}
diff --git a/proto/GetShopRsp.proto b/proto/GetShopRsp.proto
new file mode 100644
index 00000000..fac9ce02
--- /dev/null
+++ b/proto/GetShopRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Shop.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 798
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetShopRsp {
+ Shop shop = 11;
+ int32 retcode = 2;
+}
diff --git a/proto/GetShopmallDataReq.proto b/proto/GetShopmallDataReq.proto
new file mode 100644
index 00000000..9ecb9bed
--- /dev/null
+++ b/proto/GetShopmallDataReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 707
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetShopmallDataReq {}
diff --git a/proto/GetShopmallDataRsp.proto b/proto/GetShopmallDataRsp.proto
new file mode 100644
index 00000000..e50d6651
--- /dev/null
+++ b/proto/GetShopmallDataRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 721
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetShopmallDataRsp {
+ repeated uint32 shop_type_list = 15;
+ int32 retcode = 3;
+}
diff --git a/proto/GetSignInRewardReq.proto b/proto/GetSignInRewardReq.proto
new file mode 100644
index 00000000..ad4f791b
--- /dev/null
+++ b/proto/GetSignInRewardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2507
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetSignInRewardReq {
+ uint32 schedule_id = 10;
+ uint32 reward_day = 3;
+}
diff --git a/proto/GetSignInRewardRsp.proto b/proto/GetSignInRewardRsp.proto
new file mode 100644
index 00000000..1c717eed
--- /dev/null
+++ b/proto/GetSignInRewardRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SignInInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2521
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetSignInRewardRsp {
+ int32 retcode = 1;
+ SignInInfo sign_in_info = 14;
+}
diff --git a/proto/GetWidgetSlotReq.proto b/proto/GetWidgetSlotReq.proto
new file mode 100644
index 00000000..a5fdc555
--- /dev/null
+++ b/proto/GetWidgetSlotReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4253
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetWidgetSlotReq {}
diff --git a/proto/GetWidgetSlotRsp.proto b/proto/GetWidgetSlotRsp.proto
new file mode 100644
index 00000000..b3150e11
--- /dev/null
+++ b/proto/GetWidgetSlotRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WidgetSlotData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4254
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetWidgetSlotRsp {
+ repeated WidgetSlotData slot_list = 13;
+ int32 retcode = 9;
+}
diff --git a/proto/GetWorldMpInfoReq.proto b/proto/GetWorldMpInfoReq.proto
new file mode 100644
index 00000000..810403f7
--- /dev/null
+++ b/proto/GetWorldMpInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3391
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetWorldMpInfoReq {}
diff --git a/proto/GetWorldMpInfoRsp.proto b/proto/GetWorldMpInfoRsp.proto
new file mode 100644
index 00000000..0e8b7ac6
--- /dev/null
+++ b/proto/GetWorldMpInfoRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3320
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetWorldMpInfoRsp {
+ int32 retcode = 12;
+ bool is_in_mp_mode = 1;
+ uint32 quit_mp_valid_time = 9;
+}
diff --git a/proto/GiveUpRoguelikeDungeonCardReq.proto b/proto/GiveUpRoguelikeDungeonCardReq.proto
new file mode 100644
index 00000000..2359bb15
--- /dev/null
+++ b/proto/GiveUpRoguelikeDungeonCardReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8353
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GiveUpRoguelikeDungeonCardReq {}
diff --git a/proto/GiveUpRoguelikeDungeonCardRsp.proto b/proto/GiveUpRoguelikeDungeonCardRsp.proto
new file mode 100644
index 00000000..5d058eb9
--- /dev/null
+++ b/proto/GiveUpRoguelikeDungeonCardRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8497
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GiveUpRoguelikeDungeonCardRsp {
+ int32 retcode = 8;
+}
diff --git a/proto/GivingRecord.proto b/proto/GivingRecord.proto
new file mode 100644
index 00000000..48fd0d55
--- /dev/null
+++ b/proto/GivingRecord.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GivingRecord {
+ bool is_finished = 9;
+ uint32 group_id = 5;
+ bool Unk2800_JBPPNEHPACC = 8;
+ uint32 giving_id = 3;
+ uint32 last_group_id = 6;
+ uint32 config_id = 2;
+ map Unk2800_BDKKENPEEGD = 15;
+}
diff --git a/proto/GivingRecordChangeNotify.proto b/proto/GivingRecordChangeNotify.proto
new file mode 100644
index 00000000..10d750e7
--- /dev/null
+++ b/proto/GivingRecordChangeNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GivingRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 187
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GivingRecordChangeNotify {
+ bool is_deactive = 11;
+ GivingRecord giving_record = 15;
+}
diff --git a/proto/GivingRecordNotify.proto b/proto/GivingRecordNotify.proto
new file mode 100644
index 00000000..4fa75963
--- /dev/null
+++ b/proto/GivingRecordNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GivingRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 116
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GivingRecordNotify {
+ repeated GivingRecord giving_record_list = 14;
+}
diff --git a/proto/GmTalkNotify.proto b/proto/GmTalkNotify.proto
new file mode 100644
index 00000000..aea035c4
--- /dev/null
+++ b/proto/GmTalkNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 94
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GmTalkNotify {
+ string msg = 5;
+}
diff --git a/proto/GmTalkReq.proto b/proto/GmTalkReq.proto
new file mode 100644
index 00000000..aba39d7a
--- /dev/null
+++ b/proto/GmTalkReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 98
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GmTalkReq {
+ string msg = 13;
+}
diff --git a/proto/GmTalkRsp.proto b/proto/GmTalkRsp.proto
new file mode 100644
index 00000000..b69bd6b5
--- /dev/null
+++ b/proto/GmTalkRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 12
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GmTalkRsp {
+ int32 retcode = 15;
+ string retmsg = 3;
+ string msg = 13;
+}
diff --git a/proto/GrantRewardNotify.proto b/proto/GrantRewardNotify.proto
new file mode 100644
index 00000000..666a484b
--- /dev/null
+++ b/proto/GrantRewardNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Reward.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 663
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GrantRewardNotify {
+ Reward reward = 6;
+}
diff --git a/proto/GravenInnocenceDetailInfo.proto b/proto/GravenInnocenceDetailInfo.proto
new file mode 100644
index 00000000..5b471410
--- /dev/null
+++ b/proto/GravenInnocenceDetailInfo.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_ALPEACOMIPG.proto";
+import "Unk3000_FFOBEKMOHOI.proto";
+import "Unk3000_ILLNKBDNGKP.proto";
+import "Unk3000_OFMFFECMKLE.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GravenInnocenceDetailInfo {
+ bool is_content_closed = 8;
+ Unk3000_OFMFFECMKLE Unk3000_JGJKABIPGLK = 10;
+ Unk3000_ILLNKBDNGKP Unk3000_CDDIFHNEDOO = 7;
+ Unk3000_ALPEACOMIPG Unk3000_BDFIOPBIOEB = 13;
+ Unk3000_FFOBEKMOHOI Unk3000_KDPJGGENAJM = 12;
+}
diff --git a/proto/GroupLinkAllNotify.proto b/proto/GroupLinkAllNotify.proto
new file mode 100644
index 00000000..ee200bf8
--- /dev/null
+++ b/proto/GroupLinkAllNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GroupLinkBundle.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5776
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GroupLinkAllNotify {
+ repeated GroupLinkBundle bundle_list = 5;
+}
diff --git a/proto/GroupLinkBundle.proto b/proto/GroupLinkBundle.proto
new file mode 100644
index 00000000..28d71025
--- /dev/null
+++ b/proto/GroupLinkBundle.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GroupLinkBundle {
+ Vector center = 4;
+ bool is_activated = 12;
+ uint32 bundle_id = 3;
+ bool Unk2700_JKDNOPGKJAC = 14;
+ uint32 scene_id = 5;
+ uint32 radius = 1;
+}
diff --git a/proto/GroupLinkChangeNotify.proto b/proto/GroupLinkChangeNotify.proto
new file mode 100644
index 00000000..8b7d42d3
--- /dev/null
+++ b/proto/GroupLinkChangeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GroupLinkBundle.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5768
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GroupLinkChangeNotify {
+ GroupLinkBundle bundle = 8;
+}
diff --git a/proto/GroupLinkDeleteNotify.proto b/proto/GroupLinkDeleteNotify.proto
new file mode 100644
index 00000000..c4ee1bb8
--- /dev/null
+++ b/proto/GroupLinkDeleteNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5775
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GroupLinkDeleteNotify {
+ uint32 bundle_id = 12;
+}
diff --git a/proto/GroupSuiteNotify.proto b/proto/GroupSuiteNotify.proto
new file mode 100644
index 00000000..85cd0536
--- /dev/null
+++ b/proto/GroupSuiteNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3257
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GroupSuiteNotify {
+ map group_map = 3;
+}
diff --git a/proto/GroupUnloadNotify.proto b/proto/GroupUnloadNotify.proto
new file mode 100644
index 00000000..dc957254
--- /dev/null
+++ b/proto/GroupUnloadNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3344
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GroupUnloadNotify {
+ repeated uint32 group_list = 10;
+}
diff --git a/proto/GuestBeginEnterSceneNotify.proto b/proto/GuestBeginEnterSceneNotify.proto
new file mode 100644
index 00000000..5903f318
--- /dev/null
+++ b/proto/GuestBeginEnterSceneNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3031
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GuestBeginEnterSceneNotify {
+ uint32 scene_id = 8;
+ uint32 uid = 15;
+}
diff --git a/proto/GuestPostEnterSceneNotify.proto b/proto/GuestPostEnterSceneNotify.proto
new file mode 100644
index 00000000..6c9a979d
--- /dev/null
+++ b/proto/GuestPostEnterSceneNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3144
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GuestPostEnterSceneNotify {
+ uint32 scene_id = 5;
+ uint32 uid = 4;
+}
diff --git a/proto/H5ActivityIdsNotify.proto b/proto/H5ActivityIdsNotify.proto
new file mode 100644
index 00000000..3cc9b282
--- /dev/null
+++ b/proto/H5ActivityIdsNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5675
+// EnetChannelId: 0
+// EnetIsReliable: true
+message H5ActivityIdsNotify {
+ uint32 client_red_dot_timestamp = 1;
+ map h5_activity_map = 12;
+}
diff --git a/proto/H5ActivityInfo.proto b/proto/H5ActivityInfo.proto
new file mode 100644
index 00000000..f16c7d90
--- /dev/null
+++ b/proto/H5ActivityInfo.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message H5ActivityInfo {
+ uint32 h5_activity_id = 3;
+ string url = 4;
+ bool is_entrance_open = 7;
+ uint32 h5_schedule_id = 8;
+ uint32 end_time = 10;
+ string prefab_path = 11;
+ uint32 content_close_time = 2;
+ uint32 begin_time = 13;
+}
diff --git a/proto/HachiActivityDetailInfo.proto b/proto/HachiActivityDetailInfo.proto
new file mode 100644
index 00000000..0d861aa0
--- /dev/null
+++ b/proto/HachiActivityDetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HachiStageData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HachiActivityDetailInfo {
+ map stage_map = 6;
+}
diff --git a/proto/HachiStageData.proto b/proto/HachiStageData.proto
new file mode 100644
index 00000000..a2d2a13e
--- /dev/null
+++ b/proto/HachiStageData.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HachiStageData {
+ bool is_open = 8;
+ bool is_finished = 12;
+ uint32 open_time = 5;
+ uint32 stage_id = 14;
+}
diff --git a/proto/HashedString.proto b/proto/HashedString.proto
new file mode 100644
index 00000000..95baf57c
--- /dev/null
+++ b/proto/HashedString.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HashedString {
+ uint32 hash = 1;
+}
diff --git a/proto/HideAndSeekActivityDetailInfo.proto b/proto/HideAndSeekActivityDetailInfo.proto
new file mode 100644
index 00000000..b6d72647
--- /dev/null
+++ b/proto/HideAndSeekActivityDetailInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_LBOAEFMECCP.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HideAndSeekActivityDetailInfo {
+ repeated Unk2700_LBOAEFMECCP Unk2700_JDMDOOHFNCA = 1;
+ repeated uint32 chosen_hunter_skill_list = 4;
+ repeated uint32 unlock_map_list = 13;
+ repeated uint32 chosen_hider_skill_list = 6;
+}
diff --git a/proto/HideAndSeekPlayerBattleInfo.proto b/proto/HideAndSeekPlayerBattleInfo.proto
new file mode 100644
index 00000000..84adb70d
--- /dev/null
+++ b/proto/HideAndSeekPlayerBattleInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HideAndSeekPlayerBattleInfo {
+ uint32 costume_id = 3;
+ repeated uint32 skill_list = 15;
+ bool is_ready = 12;
+ uint32 avatar_id = 6;
+}
diff --git a/proto/HideAndSeekPlayerReadyNotify.proto b/proto/HideAndSeekPlayerReadyNotify.proto
new file mode 100644
index 00000000..0ce81a3b
--- /dev/null
+++ b/proto/HideAndSeekPlayerReadyNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5302
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HideAndSeekPlayerReadyNotify {
+ repeated uint32 uid_list = 5;
+}
diff --git a/proto/HideAndSeekPlayerSetAvatarNotify.proto b/proto/HideAndSeekPlayerSetAvatarNotify.proto
new file mode 100644
index 00000000..bd6d86be
--- /dev/null
+++ b/proto/HideAndSeekPlayerSetAvatarNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5319
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HideAndSeekPlayerSetAvatarNotify {
+ uint32 avatar_id = 2;
+ uint32 costume_id = 13;
+ uint32 uid = 5;
+}
diff --git a/proto/HideAndSeekSelectAvatarReq.proto b/proto/HideAndSeekSelectAvatarReq.proto
new file mode 100644
index 00000000..ab73b04d
--- /dev/null
+++ b/proto/HideAndSeekSelectAvatarReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5330
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HideAndSeekSelectAvatarReq {
+ uint32 avatar_id = 8;
+}
diff --git a/proto/HideAndSeekSelectAvatarRsp.proto b/proto/HideAndSeekSelectAvatarRsp.proto
new file mode 100644
index 00000000..6d395728
--- /dev/null
+++ b/proto/HideAndSeekSelectAvatarRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5367
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HideAndSeekSelectAvatarRsp {
+ int32 retcode = 2;
+ uint32 avatar_id = 3;
+}
diff --git a/proto/HideAndSeekSelectSkillReq.proto b/proto/HideAndSeekSelectSkillReq.proto
new file mode 100644
index 00000000..96076798
--- /dev/null
+++ b/proto/HideAndSeekSelectSkillReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8183
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HideAndSeekSelectSkillReq {
+ repeated uint32 skill_list = 13;
+}
diff --git a/proto/HideAndSeekSelectSkillRsp.proto b/proto/HideAndSeekSelectSkillRsp.proto
new file mode 100644
index 00000000..91304d56
--- /dev/null
+++ b/proto/HideAndSeekSelectSkillRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8088
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HideAndSeekSelectSkillRsp {
+ int32 retcode = 4;
+ repeated uint32 skill_list = 12;
+}
diff --git a/proto/HideAndSeekSetReadyReq.proto b/proto/HideAndSeekSetReadyReq.proto
new file mode 100644
index 00000000..f9a18084
--- /dev/null
+++ b/proto/HideAndSeekSetReadyReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5358
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HideAndSeekSetReadyReq {}
diff --git a/proto/HideAndSeekSetReadyRsp.proto b/proto/HideAndSeekSetReadyRsp.proto
new file mode 100644
index 00000000..68eab508
--- /dev/null
+++ b/proto/HideAndSeekSetReadyRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5370
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HideAndSeekSetReadyRsp {
+ int32 retcode = 11;
+}
diff --git a/proto/HideAndSeekSettleInfo.proto b/proto/HideAndSeekSettleInfo.proto
new file mode 100644
index 00000000..f4f575cb
--- /dev/null
+++ b/proto/HideAndSeekSettleInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ExhibitionDisplayInfo.proto";
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HideAndSeekSettleInfo {
+ uint32 uid = 2;
+ ProfilePicture profile_picture = 1;
+ repeated ExhibitionDisplayInfo card_list = 8;
+ string nickname = 3;
+ uint32 head_image = 4;
+ string online_id = 10;
+}
diff --git a/proto/HideAndSeekSettleNotify.proto b/proto/HideAndSeekSettleNotify.proto
new file mode 100644
index 00000000..fa5f847d
--- /dev/null
+++ b/proto/HideAndSeekSettleNotify.proto
@@ -0,0 +1,43 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ExhibitionDisplayInfo.proto";
+import "HideAndSeekSettleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5317
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HideAndSeekSettleNotify {
+ uint32 cost_time = 2;
+ repeated HideAndSeekSettleInfo settle_info_list = 8;
+ repeated uint32 winner_list = 15;
+ SettleReason reason = 4;
+ uint32 play_index = 13;
+ bool is_record_score = 6;
+ repeated ExhibitionDisplayInfo score_list = 9;
+ uint32 stage_type = 14;
+
+ enum SettleReason {
+ SETTLE_REASON_TIME_OUT = 0;
+ SETTLE_REASON_PLAY_END = 1;
+ SETTLE_REASON_PLAYER_QUIT = 2;
+ }
+}
diff --git a/proto/HideAndSeekStageInfo.proto b/proto/HideAndSeekStageInfo.proto
new file mode 100644
index 00000000..a8fca0d8
--- /dev/null
+++ b/proto/HideAndSeekStageInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HideAndSeekPlayerBattleInfo.proto";
+import "HideAndSeekStageType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HideAndSeekStageInfo {
+ uint32 map_id = 8;
+ bool is_record_score = 3;
+ HideAndSeekStageType stage_type = 7;
+ map battle_info_map = 2;
+ repeated uint32 hider_uid_list = 1;
+ uint32 hunter_uid = 10;
+}
diff --git a/proto/HideAndSeekStageType.proto b/proto/HideAndSeekStageType.proto
new file mode 100644
index 00000000..601ca0ce
--- /dev/null
+++ b/proto/HideAndSeekStageType.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum HideAndSeekStageType {
+ HIDE_AND_SEEK_STAGE_TYPE_PREPARE = 0;
+ HIDE_AND_SEEK_STAGE_TYPE_PICK = 1;
+ HIDE_AND_SEEK_STAGE_TYPE_GAME = 2;
+ HIDE_AND_SEEK_STAGE_TYPE_HIDE = 3;
+ HIDE_AND_SEEK_STAGE_TYPE_SEEK = 4;
+ HIDE_AND_SEEK_STAGE_TYPE_SETTLE = 5;
+}
diff --git a/proto/HitClientTrivialNotify.proto b/proto/HitClientTrivialNotify.proto
new file mode 100644
index 00000000..93c0ba26
--- /dev/null
+++ b/proto/HitClientTrivialNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 244
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HitClientTrivialNotify {
+ Vector position = 11;
+ uint32 owner_entity_id = 12;
+}
diff --git a/proto/HitColliderType.proto b/proto/HitColliderType.proto
new file mode 100644
index 00000000..e4cc5234
--- /dev/null
+++ b/proto/HitColliderType.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum HitColliderType {
+ HIT_COLLIDER_TYPE_INVALID = 0;
+ HIT_COLLIDER_TYPE_HIT_BOX = 1;
+ HIT_COLLIDER_TYPE_WET_HIT_BOX = 2;
+ HIT_COLLIDER_TYPE_HEAD_BOX = 3;
+}
diff --git a/proto/HitCollision.proto b/proto/HitCollision.proto
new file mode 100644
index 00000000..3f8bfbfc
--- /dev/null
+++ b/proto/HitCollision.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HitColliderType.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HitCollision {
+ HitColliderType hit_collider_type = 8;
+ Vector hit_point = 7;
+ float attackee_hit_force_angle = 2;
+ Vector hit_dir = 13;
+ float attackee_hit_entity_angle = 15;
+ int32 hit_box_index = 4;
+}
diff --git a/proto/HitTreeNotify.proto b/proto/HitTreeNotify.proto
new file mode 100644
index 00000000..1571b831
--- /dev/null
+++ b/proto/HitTreeNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3019
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HitTreeNotify {
+ uint32 tree_type = 11;
+ Vector tree_pos = 2;
+ Vector drop_pos = 8;
+}
diff --git a/proto/HomeAnimalData.proto b/proto/HomeAnimalData.proto
new file mode 100644
index 00000000..df429429
--- /dev/null
+++ b/proto/HomeAnimalData.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeAnimalData {
+ Vector spawn_rot = 10;
+ uint32 furniture_id = 5;
+ Vector spawn_pos = 6;
+}
diff --git a/proto/HomeAvatarAllFinishRewardNotify.proto b/proto/HomeAvatarAllFinishRewardNotify.proto
new file mode 100644
index 00000000..4c259566
--- /dev/null
+++ b/proto/HomeAvatarAllFinishRewardNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4741
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeAvatarAllFinishRewardNotify {
+ repeated uint32 event_id_list = 7;
+}
diff --git a/proto/HomeAvatarCostumeChangeNotify.proto b/proto/HomeAvatarCostumeChangeNotify.proto
new file mode 100644
index 00000000..94f7c2e7
--- /dev/null
+++ b/proto/HomeAvatarCostumeChangeNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4748
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeAvatarCostumeChangeNotify {
+ uint32 costume_id = 4;
+ uint32 avatar_id = 10;
+}
diff --git a/proto/HomeAvatarRewardEventGetReq.proto b/proto/HomeAvatarRewardEventGetReq.proto
new file mode 100644
index 00000000..11dead8d
--- /dev/null
+++ b/proto/HomeAvatarRewardEventGetReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4551
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeAvatarRewardEventGetReq {
+ uint32 event_id = 9;
+ uint32 avatar_id = 7;
+}
diff --git a/proto/HomeAvatarRewardEventGetRsp.proto b/proto/HomeAvatarRewardEventGetRsp.proto
new file mode 100644
index 00000000..b92211b6
--- /dev/null
+++ b/proto/HomeAvatarRewardEventGetRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4833
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeAvatarRewardEventGetRsp {
+ repeated ItemParam item_list = 4;
+ int32 retcode = 14;
+ uint32 event_id = 8;
+}
diff --git a/proto/HomeAvatarRewardEventInfo.proto b/proto/HomeAvatarRewardEventInfo.proto
new file mode 100644
index 00000000..e4bb723b
--- /dev/null
+++ b/proto/HomeAvatarRewardEventInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeAvatarRewardEventInfo {
+ uint32 avatar_id = 1;
+ uint32 guid = 12;
+ uint32 event_id = 2;
+ uint32 suite_id = 14;
+ uint32 random_position = 9;
+}
diff --git a/proto/HomeAvatarRewardEventNotify.proto b/proto/HomeAvatarRewardEventNotify.proto
new file mode 100644
index 00000000..6f6a9e71
--- /dev/null
+++ b/proto/HomeAvatarRewardEventNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeAvatarRewardEventInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4852
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeAvatarRewardEventNotify {
+ bool is_event_trigger = 4;
+ HomeAvatarRewardEventInfo reward_event = 2;
+ repeated HomeAvatarRewardEventInfo pending_list = 8;
+}
diff --git a/proto/HomeAvatarSummonAllEventNotify.proto b/proto/HomeAvatarSummonAllEventNotify.proto
new file mode 100644
index 00000000..06b5b073
--- /dev/null
+++ b/proto/HomeAvatarSummonAllEventNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeAvatarSummonEventInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4808
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeAvatarSummonAllEventNotify {
+ repeated HomeAvatarSummonEventInfo summon_event_list = 1;
+}
diff --git a/proto/HomeAvatarSummonEventInfo.proto b/proto/HomeAvatarSummonEventInfo.proto
new file mode 100644
index 00000000..acee751c
--- /dev/null
+++ b/proto/HomeAvatarSummonEventInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeAvatarSummonEventInfo {
+ uint32 avatar_id = 3;
+ uint32 guid = 8;
+ uint32 event_id = 9;
+ uint32 suit_id = 12;
+ uint32 event_over_time = 2;
+ uint32 random_position = 10;
+}
diff --git a/proto/HomeAvatarSummonEventReq.proto b/proto/HomeAvatarSummonEventReq.proto
new file mode 100644
index 00000000..3614c2b9
--- /dev/null
+++ b/proto/HomeAvatarSummonEventReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4806
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeAvatarSummonEventReq {
+ uint32 avatar_id = 7;
+ uint32 suit_id = 9;
+ uint32 guid = 12;
+}
diff --git a/proto/HomeAvatarSummonEventRsp.proto b/proto/HomeAvatarSummonEventRsp.proto
new file mode 100644
index 00000000..0477de21
--- /dev/null
+++ b/proto/HomeAvatarSummonEventRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4817
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeAvatarSummonEventRsp {
+ uint32 event_id = 11;
+ int32 retcode = 14;
+}
diff --git a/proto/HomeAvatarSummonFinishReq.proto b/proto/HomeAvatarSummonFinishReq.proto
new file mode 100644
index 00000000..55f029e8
--- /dev/null
+++ b/proto/HomeAvatarSummonFinishReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4629
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeAvatarSummonFinishReq {
+ uint32 event_id = 12;
+}
diff --git a/proto/HomeAvatarSummonFinishRsp.proto b/proto/HomeAvatarSummonFinishRsp.proto
new file mode 100644
index 00000000..987f99e1
--- /dev/null
+++ b/proto/HomeAvatarSummonFinishRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4696
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeAvatarSummonFinishRsp {
+ uint32 event_id = 8;
+ int32 retcode = 3;
+}
diff --git a/proto/HomeAvatarTalkFinishInfo.proto b/proto/HomeAvatarTalkFinishInfo.proto
new file mode 100644
index 00000000..1e689318
--- /dev/null
+++ b/proto/HomeAvatarTalkFinishInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeAvatarTalkFinishInfo {
+ uint32 avatar_id = 9;
+ repeated uint32 finish_talk_id_list = 3;
+}
diff --git a/proto/HomeAvatarTalkFinishInfoNotify.proto b/proto/HomeAvatarTalkFinishInfoNotify.proto
new file mode 100644
index 00000000..f264ec82
--- /dev/null
+++ b/proto/HomeAvatarTalkFinishInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeAvatarTalkFinishInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4896
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeAvatarTalkFinishInfoNotify {
+ repeated HomeAvatarTalkFinishInfo avatar_talk_info_list = 9;
+}
diff --git a/proto/HomeAvatarTalkReq.proto b/proto/HomeAvatarTalkReq.proto
new file mode 100644
index 00000000..9aa28bce
--- /dev/null
+++ b/proto/HomeAvatarTalkReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4688
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeAvatarTalkReq {
+ uint32 talk_id = 12;
+ uint32 avatar_id = 15;
+}
diff --git a/proto/HomeAvatarTalkRsp.proto b/proto/HomeAvatarTalkRsp.proto
new file mode 100644
index 00000000..6fcc1649
--- /dev/null
+++ b/proto/HomeAvatarTalkRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeAvatarTalkFinishInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4464
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeAvatarTalkRsp {
+ int32 retcode = 8;
+ HomeAvatarTalkFinishInfo avatar_talk_info = 3;
+}
diff --git a/proto/HomeAvtarAllFinishRewardNotify.proto b/proto/HomeAvtarAllFinishRewardNotify.proto
new file mode 100644
index 00000000..0b7cf143
--- /dev/null
+++ b/proto/HomeAvtarAllFinishRewardNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4453
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeAvtarAllFinishRewardNotify {
+ repeated uint32 event_id_list = 13;
+}
diff --git a/proto/HomeBasicInfo.proto b/proto/HomeBasicInfo.proto
new file mode 100644
index 00000000..6ac6d1ff
--- /dev/null
+++ b/proto/HomeBasicInfo.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeLimitedShopInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeBasicInfo {
+ uint32 level = 10;
+ uint32 cur_room_scene_id = 13;
+ uint32 cur_module_id = 9;
+ bool is_in_edit_mode = 5;
+ uint32 home_owner_uid = 3;
+ uint64 exp = 14;
+ HomeLimitedShopInfo limited_shop_info = 15;
+ string owner_nick_name = 4;
+}
diff --git a/proto/HomeBasicInfoNotify.proto b/proto/HomeBasicInfoNotify.proto
new file mode 100644
index 00000000..7b90d365
--- /dev/null
+++ b/proto/HomeBasicInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeBasicInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4885
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeBasicInfoNotify {
+ HomeBasicInfo basic_info = 15;
+}
diff --git a/proto/HomeBlockArrangementInfo.proto b/proto/HomeBlockArrangementInfo.proto
new file mode 100644
index 00000000..8963742f
--- /dev/null
+++ b/proto/HomeBlockArrangementInfo.proto
@@ -0,0 +1,46 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeAnimalData.proto";
+import "HomeBlockDotPattern.proto";
+import "HomeBlockFieldData.proto";
+import "HomeFurnitureData.proto";
+import "HomeFurnitureSuiteData.proto";
+import "HomeNpcData.proto";
+import "Unk2700_BIEMCDLIFOD.proto";
+import "Unk2700_GOHMLAFNBGF.proto";
+import "WeekendDjinnInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeBlockArrangementInfo {
+ bool is_unlocked = 1;
+ uint32 comfort_value = 2;
+ repeated HomeAnimalData deploy_animal_list = 4;
+ repeated Unk2700_GOHMLAFNBGF Unk2700_HGIECHILOJL = 5;
+ repeated WeekendDjinnInfo weekend_djinn_info_list = 13;
+ repeated HomeFurnitureSuiteData furniture_suite_list = 15;
+ repeated HomeBlockFieldData field_list = 3;
+ repeated HomeNpcData deploy_npc_list = 11;
+ repeated HomeBlockDotPattern dot_pattern_list = 7;
+ repeated HomeFurnitureData persistent_furniture_list = 9;
+ repeated HomeFurnitureData deploy_furniure_list = 12;
+ uint32 block_id = 6;
+ repeated Unk2700_BIEMCDLIFOD Unk2700_KJGLLEEHBPF = 14;
+}
diff --git a/proto/HomeBlockArrangementMuipData.proto b/proto/HomeBlockArrangementMuipData.proto
new file mode 100644
index 00000000..cbd90f19
--- /dev/null
+++ b/proto/HomeBlockArrangementMuipData.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeFurnitureArrangementMuipData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeBlockArrangementMuipData {
+ uint32 block_id = 1;
+ repeated HomeFurnitureArrangementMuipData furniture_data_list = 2;
+}
diff --git a/proto/HomeBlockDotPattern.proto b/proto/HomeBlockDotPattern.proto
new file mode 100644
index 00000000..467e0cbc
--- /dev/null
+++ b/proto/HomeBlockDotPattern.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeBlockDotPattern {
+ uint32 width = 8;
+ uint32 height = 11;
+ bytes data = 9;
+}
diff --git a/proto/HomeBlockFieldData.proto b/proto/HomeBlockFieldData.proto
new file mode 100644
index 00000000..a3f55777
--- /dev/null
+++ b/proto/HomeBlockFieldData.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeBlockSubFieldData.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeBlockFieldData {
+ Vector rot = 15;
+ Vector pos = 4;
+ uint32 guid = 9;
+ uint32 furniture_id = 1;
+ repeated HomeBlockSubFieldData sub_field_list = 7;
+}
diff --git a/proto/HomeBlockNotify.proto b/proto/HomeBlockNotify.proto
new file mode 100644
index 00000000..6ee05e58
--- /dev/null
+++ b/proto/HomeBlockNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4543
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeBlockNotify {
+ uint32 end_time = 3;
+}
diff --git a/proto/HomeBlockSubFieldData.proto b/proto/HomeBlockSubFieldData.proto
new file mode 100644
index 00000000..d53b5be3
--- /dev/null
+++ b/proto/HomeBlockSubFieldData.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeBlockSubFieldData {
+ Vector rot = 3;
+ Vector pos = 1;
+}
diff --git a/proto/HomeChangeEditModeReq.proto b/proto/HomeChangeEditModeReq.proto
new file mode 100644
index 00000000..515aa7c7
--- /dev/null
+++ b/proto/HomeChangeEditModeReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4564
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeChangeEditModeReq {
+ bool is_enter_edit_mode = 12;
+}
diff --git a/proto/HomeChangeEditModeRsp.proto b/proto/HomeChangeEditModeRsp.proto
new file mode 100644
index 00000000..068f81f5
--- /dev/null
+++ b/proto/HomeChangeEditModeRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4559
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeChangeEditModeRsp {
+ int32 retcode = 10;
+ bool is_enter_edit_mode = 5;
+}
diff --git a/proto/HomeChangeModuleReq.proto b/proto/HomeChangeModuleReq.proto
new file mode 100644
index 00000000..e6416b87
--- /dev/null
+++ b/proto/HomeChangeModuleReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4809
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeChangeModuleReq {
+ uint32 target_module_id = 5;
+}
diff --git a/proto/HomeChangeModuleRsp.proto b/proto/HomeChangeModuleRsp.proto
new file mode 100644
index 00000000..110c5720
--- /dev/null
+++ b/proto/HomeChangeModuleRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4596
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeChangeModuleRsp {
+ int32 retcode = 3;
+ uint32 target_module_id = 2;
+}
diff --git a/proto/HomeChooseModuleReq.proto b/proto/HomeChooseModuleReq.proto
new file mode 100644
index 00000000..96b3d728
--- /dev/null
+++ b/proto/HomeChooseModuleReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4524
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeChooseModuleReq {
+ uint32 module_id = 9;
+}
diff --git a/proto/HomeChooseModuleRsp.proto b/proto/HomeChooseModuleRsp.proto
new file mode 100644
index 00000000..942f0bac
--- /dev/null
+++ b/proto/HomeChooseModuleRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4648
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeChooseModuleRsp {
+ int32 retcode = 2;
+ uint32 module_id = 8;
+}
diff --git a/proto/HomeComfortInfoNotify.proto b/proto/HomeComfortInfoNotify.proto
new file mode 100644
index 00000000..968b7124
--- /dev/null
+++ b/proto/HomeComfortInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeModuleComfortInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4699
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeComfortInfoNotify {
+ repeated HomeModuleComfortInfo module_info_list = 6;
+}
diff --git a/proto/HomeCustomFurnitureInfo.proto b/proto/HomeCustomFurnitureInfo.proto
new file mode 100644
index 00000000..efccb32e
--- /dev/null
+++ b/proto/HomeCustomFurnitureInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CustomCommonNodeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeCustomFurnitureInfo {
+ repeated CustomCommonNodeInfo sub_furniture_list = 12;
+ uint32 guid = 6;
+}
diff --git a/proto/HomeCustomFurnitureInfoNotify.proto b/proto/HomeCustomFurnitureInfoNotify.proto
new file mode 100644
index 00000000..81436412
--- /dev/null
+++ b/proto/HomeCustomFurnitureInfoNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeCustomFurnitureInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4712
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeCustomFurnitureInfoNotify {
+ repeated uint32 delete_custom_furniture_list = 4;
+ map used_sub_furniture_count_map = 15;
+ repeated HomeCustomFurnitureInfo custom_furniture_info_list = 11;
+}
diff --git a/proto/HomeEditCustomFurnitureReq.proto b/proto/HomeEditCustomFurnitureReq.proto
new file mode 100644
index 00000000..d64e2865
--- /dev/null
+++ b/proto/HomeEditCustomFurnitureReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeCustomFurnitureInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4724
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeEditCustomFurnitureReq {
+ HomeCustomFurnitureInfo custom_furniture_info = 15;
+}
diff --git a/proto/HomeEditCustomFurnitureRsp.proto b/proto/HomeEditCustomFurnitureRsp.proto
new file mode 100644
index 00000000..2ed122ab
--- /dev/null
+++ b/proto/HomeEditCustomFurnitureRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeCustomFurnitureInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4496
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeEditCustomFurnitureRsp {
+ HomeCustomFurnitureInfo custom_furniture_info = 11;
+ int32 retcode = 14;
+}
diff --git a/proto/HomeFishFarmingInfo.proto b/proto/HomeFishFarmingInfo.proto
new file mode 100644
index 00000000..da630036
--- /dev/null
+++ b/proto/HomeFishFarmingInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeFishFarmingInfo {
+ repeated uint32 fish_id_list = 11;
+ uint32 fishpond_guid = 14;
+}
diff --git a/proto/HomeFishFarmingInfoNotify.proto b/proto/HomeFishFarmingInfoNotify.proto
new file mode 100644
index 00000000..0e3fbdd9
--- /dev/null
+++ b/proto/HomeFishFarmingInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeFishFarmingInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4677
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeFishFarmingInfoNotify {
+ repeated HomeFishFarmingInfo fish_farming_info_list = 15;
+}
diff --git a/proto/HomeFurnitureArrangementMuipData.proto b/proto/HomeFurnitureArrangementMuipData.proto
new file mode 100644
index 00000000..ca301547
--- /dev/null
+++ b/proto/HomeFurnitureArrangementMuipData.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeFurnitureArrangementMuipData {
+ uint32 furniture_id = 1;
+ Vector spawn_pos = 2;
+ Vector spawn_rot = 3;
+}
diff --git a/proto/HomeFurnitureData.proto b/proto/HomeFurnitureData.proto
new file mode 100644
index 00000000..85bb7b95
--- /dev/null
+++ b/proto/HomeFurnitureData.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeFurnitureData {
+ uint32 version = 6;
+ int32 parent_furniture_index = 3;
+ uint32 furniture_id = 4;
+ uint32 guid = 9;
+ Vector spawn_rot = 10;
+ Vector spawn_pos = 8;
+}
diff --git a/proto/HomeFurnitureSuiteData.proto b/proto/HomeFurnitureSuiteData.proto
new file mode 100644
index 00000000..da43687b
--- /dev/null
+++ b/proto/HomeFurnitureSuiteData.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeFurnitureSuiteData {
+ bool is_allow_summon = 10;
+ uint32 suite_id = 6;
+ Vector spawn_pos = 8;
+ uint32 guid = 13;
+ repeated int32 included_furniture_index_list = 1;
+}
diff --git a/proto/HomeGetArrangementInfoReq.proto b/proto/HomeGetArrangementInfoReq.proto
new file mode 100644
index 00000000..844b5347
--- /dev/null
+++ b/proto/HomeGetArrangementInfoReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4848
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeGetArrangementInfoReq {
+ repeated uint32 scene_id_list = 13;
+}
diff --git a/proto/HomeGetArrangementInfoRsp.proto b/proto/HomeGetArrangementInfoRsp.proto
new file mode 100644
index 00000000..2a9b4aad
--- /dev/null
+++ b/proto/HomeGetArrangementInfoRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeSceneArrangementInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4844
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeGetArrangementInfoRsp {
+ int32 retcode = 6;
+ repeated HomeSceneArrangementInfo scene_arrangement_info_list = 14;
+}
diff --git a/proto/HomeGetBasicInfoReq.proto b/proto/HomeGetBasicInfoReq.proto
new file mode 100644
index 00000000..6fac50d5
--- /dev/null
+++ b/proto/HomeGetBasicInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4655
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeGetBasicInfoReq {}
diff --git a/proto/HomeGetFishFarmingInfoReq.proto b/proto/HomeGetFishFarmingInfoReq.proto
new file mode 100644
index 00000000..0b829aab
--- /dev/null
+++ b/proto/HomeGetFishFarmingInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4476
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeGetFishFarmingInfoReq {}
diff --git a/proto/HomeGetFishFarmingInfoRsp.proto b/proto/HomeGetFishFarmingInfoRsp.proto
new file mode 100644
index 00000000..8c2acaae
--- /dev/null
+++ b/proto/HomeGetFishFarmingInfoRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeFishFarmingInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4678
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeGetFishFarmingInfoRsp {
+ repeated HomeFishFarmingInfo fish_farming_info_list = 7;
+ int32 retcode = 4;
+}
diff --git a/proto/HomeGetOnlineStatusReq.proto b/proto/HomeGetOnlineStatusReq.proto
new file mode 100644
index 00000000..1a1e5285
--- /dev/null
+++ b/proto/HomeGetOnlineStatusReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4820
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeGetOnlineStatusReq {}
diff --git a/proto/HomeGetOnlineStatusRsp.proto b/proto/HomeGetOnlineStatusRsp.proto
new file mode 100644
index 00000000..4a8f8000
--- /dev/null
+++ b/proto/HomeGetOnlineStatusRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "OnlinePlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4705
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeGetOnlineStatusRsp {
+ repeated OnlinePlayerInfo player_info_list = 13;
+ int32 retcode = 7;
+}
diff --git a/proto/HomeKickPlayerReq.proto b/proto/HomeKickPlayerReq.proto
new file mode 100644
index 00000000..5a476b33
--- /dev/null
+++ b/proto/HomeKickPlayerReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4870
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeKickPlayerReq {
+ uint32 target_uid = 12;
+ bool is_kick_all = 13;
+}
diff --git a/proto/HomeKickPlayerRsp.proto b/proto/HomeKickPlayerRsp.proto
new file mode 100644
index 00000000..a32606e8
--- /dev/null
+++ b/proto/HomeKickPlayerRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4691
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeKickPlayerRsp {
+ uint32 target_uid = 4;
+ int32 retcode = 8;
+ bool is_kick_all = 10;
+}
diff --git a/proto/HomeLimitedShop.proto b/proto/HomeLimitedShop.proto
new file mode 100644
index 00000000..667b2c72
--- /dev/null
+++ b/proto/HomeLimitedShop.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeLimitedShopGoods.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeLimitedShop {
+ repeated HomeLimitedShopGoods goods_list = 8;
+}
diff --git a/proto/HomeLimitedShopBuyGoodsReq.proto b/proto/HomeLimitedShopBuyGoodsReq.proto
new file mode 100644
index 00000000..d59725f1
--- /dev/null
+++ b/proto/HomeLimitedShopBuyGoodsReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeLimitedShopGoods.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4760
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeLimitedShopBuyGoodsReq {
+ HomeLimitedShopGoods goods = 3;
+ uint32 buy_count = 10;
+}
diff --git a/proto/HomeLimitedShopBuyGoodsRsp.proto b/proto/HomeLimitedShopBuyGoodsRsp.proto
new file mode 100644
index 00000000..677f63ca
--- /dev/null
+++ b/proto/HomeLimitedShopBuyGoodsRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeLimitedShopGoods.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4750
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeLimitedShopBuyGoodsRsp {
+ repeated HomeLimitedShopGoods goods_list = 13;
+ int32 retcode = 14;
+ HomeLimitedShopGoods goods = 5;
+ uint32 buy_count = 8;
+}
diff --git a/proto/HomeLimitedShopGoods.proto b/proto/HomeLimitedShopGoods.proto
new file mode 100644
index 00000000..d8b5187e
--- /dev/null
+++ b/proto/HomeLimitedShopGoods.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeLimitedShopGoods {
+ uint32 buy_limit = 8;
+ repeated ItemParam cost_item_list = 15;
+ uint32 bought_num = 1;
+ ItemParam goods_item = 6;
+ uint32 goods_id = 13;
+ uint32 disable_type = 3;
+}
diff --git a/proto/HomeLimitedShopGoodsListReq.proto b/proto/HomeLimitedShopGoodsListReq.proto
new file mode 100644
index 00000000..64c4bb3a
--- /dev/null
+++ b/proto/HomeLimitedShopGoodsListReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4552
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeLimitedShopGoodsListReq {}
diff --git a/proto/HomeLimitedShopGoodsListRsp.proto b/proto/HomeLimitedShopGoodsListRsp.proto
new file mode 100644
index 00000000..382f5890
--- /dev/null
+++ b/proto/HomeLimitedShopGoodsListRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeLimitedShop.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4546
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeLimitedShopGoodsListRsp {
+ int32 retcode = 6;
+ HomeLimitedShop shop = 12;
+}
diff --git a/proto/HomeLimitedShopInfo.proto b/proto/HomeLimitedShopInfo.proto
new file mode 100644
index 00000000..cf90c685
--- /dev/null
+++ b/proto/HomeLimitedShopInfo.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeLimitedShopInfo {
+ fixed32 next_close_time = 9;
+ fixed32 next_guest_open_time = 11;
+ Vector djinn_rot = 7;
+ uint32 uid = 4;
+ fixed32 next_open_time = 6;
+ Vector djinn_pos = 2;
+}
diff --git a/proto/HomeLimitedShopInfoChangeNotify.proto b/proto/HomeLimitedShopInfoChangeNotify.proto
new file mode 100644
index 00000000..4fc0c164
--- /dev/null
+++ b/proto/HomeLimitedShopInfoChangeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeLimitedShopGoods.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4790
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeLimitedShopInfoChangeNotify {
+ repeated HomeLimitedShopGoods goods_list = 5;
+}
diff --git a/proto/HomeLimitedShopInfoNotify.proto b/proto/HomeLimitedShopInfoNotify.proto
new file mode 100644
index 00000000..6df4e2e0
--- /dev/null
+++ b/proto/HomeLimitedShopInfoNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeLimitedShopInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4887
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeLimitedShopInfoNotify {
+ HomeLimitedShopInfo shop_info = 2;
+}
diff --git a/proto/HomeLimitedShopInfoReq.proto b/proto/HomeLimitedShopInfoReq.proto
new file mode 100644
index 00000000..761f7174
--- /dev/null
+++ b/proto/HomeLimitedShopInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4825
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeLimitedShopInfoReq {}
diff --git a/proto/HomeLimitedShopInfoRsp.proto b/proto/HomeLimitedShopInfoRsp.proto
new file mode 100644
index 00000000..ea0e12cd
--- /dev/null
+++ b/proto/HomeLimitedShopInfoRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeLimitedShopInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4796
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeLimitedShopInfoRsp {
+ HomeLimitedShopInfo shop_info = 10;
+ int32 retcode = 7;
+}
diff --git a/proto/HomeMarkPointFurnitureData.proto b/proto/HomeMarkPointFurnitureData.proto
new file mode 100644
index 00000000..421571dd
--- /dev/null
+++ b/proto/HomeMarkPointFurnitureData.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeMarkPointNPCData.proto";
+import "HomeMarkPointSuiteData.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeMarkPointFurnitureData {
+ uint32 guid = 1;
+ uint32 furniture_id = 2;
+ uint32 furniture_type = 3;
+ Vector pos = 4;
+ oneof extra {
+ HomeMarkPointNPCData npc_data = 6;
+ HomeMarkPointSuiteData suite_data = 7;
+ }
+}
diff --git a/proto/HomeMarkPointNPCData.proto b/proto/HomeMarkPointNPCData.proto
new file mode 100644
index 00000000..77c064fa
--- /dev/null
+++ b/proto/HomeMarkPointNPCData.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeMarkPointNPCData {
+ uint32 avatar_id = 1;
+ uint32 costume_id = 2;
+}
diff --git a/proto/HomeMarkPointNotify.proto b/proto/HomeMarkPointNotify.proto
new file mode 100644
index 00000000..3f844d56
--- /dev/null
+++ b/proto/HomeMarkPointNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeMarkPointSceneData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4474
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeMarkPointNotify {
+ repeated HomeMarkPointSceneData mark_point_data_list = 12;
+}
diff --git a/proto/HomeMarkPointSceneData.proto b/proto/HomeMarkPointSceneData.proto
new file mode 100644
index 00000000..00e3fc2d
--- /dev/null
+++ b/proto/HomeMarkPointSceneData.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeMarkPointFurnitureData.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeMarkPointSceneData {
+ repeated HomeMarkPointFurnitureData furniture_list = 6;
+ Vector teapot_spirit_pos = 4;
+ uint32 scene_id = 2;
+ uint32 module_id = 5;
+ Vector Unk3100_ABBFBELGECB = 11;
+}
diff --git a/proto/HomeMarkPointSuiteData.proto b/proto/HomeMarkPointSuiteData.proto
new file mode 100644
index 00000000..264f1d9b
--- /dev/null
+++ b/proto/HomeMarkPointSuiteData.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeMarkPointSuiteData {
+ uint32 suite_id = 1;
+}
diff --git a/proto/HomeModuleComfortInfo.proto b/proto/HomeModuleComfortInfo.proto
new file mode 100644
index 00000000..ae1ca484
--- /dev/null
+++ b/proto/HomeModuleComfortInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeModuleComfortInfo {
+ uint32 module_id = 13;
+ uint32 room_scene_comfort_value = 9;
+ repeated uint32 world_scene_block_comfort_value_list = 3;
+}
diff --git a/proto/HomeModuleSeenReq.proto b/proto/HomeModuleSeenReq.proto
new file mode 100644
index 00000000..3be8a665
--- /dev/null
+++ b/proto/HomeModuleSeenReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4499
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeModuleSeenReq {
+ repeated uint32 seen_module_id_list = 5;
+}
diff --git a/proto/HomeModuleSeenRsp.proto b/proto/HomeModuleSeenRsp.proto
new file mode 100644
index 00000000..e9005cc3
--- /dev/null
+++ b/proto/HomeModuleSeenRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4821
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeModuleSeenRsp {
+ repeated uint32 seen_module_id_list = 13;
+ int32 retcode = 8;
+}
diff --git a/proto/HomeModuleUnlockNotify.proto b/proto/HomeModuleUnlockNotify.proto
new file mode 100644
index 00000000..c5d005d5
--- /dev/null
+++ b/proto/HomeModuleUnlockNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4560
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeModuleUnlockNotify {
+ uint32 module_id = 8;
+}
diff --git a/proto/HomeNpcData.proto b/proto/HomeNpcData.proto
new file mode 100644
index 00000000..624bcd4e
--- /dev/null
+++ b/proto/HomeNpcData.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeNpcData {
+ uint32 avatar_id = 14;
+ Vector spawn_pos = 15;
+ uint32 costume_id = 3;
+ Vector spawn_rot = 13;
+}
diff --git a/proto/HomePlantFieldData.proto b/proto/HomePlantFieldData.proto
new file mode 100644
index 00000000..645ea2e0
--- /dev/null
+++ b/proto/HomePlantFieldData.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomePlantSubFieldData.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomePlantFieldData {
+ repeated HomePlantSubFieldData sub_field_list = 13;
+ uint32 furniture_id = 9;
+ uint32 scene_id = 1;
+ uint32 field_guid = 10;
+ Vector spawn_pos = 12;
+}
diff --git a/proto/HomePlantFieldNotify.proto b/proto/HomePlantFieldNotify.proto
new file mode 100644
index 00000000..bd06adce
--- /dev/null
+++ b/proto/HomePlantFieldNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomePlantFieldData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4549
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomePlantFieldNotify {
+ HomePlantFieldData field = 13;
+}
diff --git a/proto/HomePlantFieldStatus.proto b/proto/HomePlantFieldStatus.proto
new file mode 100644
index 00000000..e12415ad
--- /dev/null
+++ b/proto/HomePlantFieldStatus.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum HomePlantFieldStatus {
+ HOME_PLANT_FIELD_STATUS_STATUE_NONE = 0;
+ HOME_PLANT_FIELD_STATUS_STATUE_SEED = 1;
+ HOME_PLANT_FIELD_STATUS_STATUE_SPROUT = 2;
+ HOME_PLANT_FIELD_STATUS_STATUE_GATHER = 3;
+}
diff --git a/proto/HomePlantInfoNotify.proto b/proto/HomePlantInfoNotify.proto
new file mode 100644
index 00000000..e8719240
--- /dev/null
+++ b/proto/HomePlantInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomePlantFieldData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4587
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomePlantInfoNotify {
+ repeated HomePlantFieldData field_list = 4;
+}
diff --git a/proto/HomePlantInfoReq.proto b/proto/HomePlantInfoReq.proto
new file mode 100644
index 00000000..52ddf13a
--- /dev/null
+++ b/proto/HomePlantInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4647
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomePlantInfoReq {}
diff --git a/proto/HomePlantInfoRsp.proto b/proto/HomePlantInfoRsp.proto
new file mode 100644
index 00000000..c5edfa5c
--- /dev/null
+++ b/proto/HomePlantInfoRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomePlantFieldData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4701
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomePlantInfoRsp {
+ int32 retcode = 7;
+ repeated HomePlantFieldData field_list = 15;
+}
diff --git a/proto/HomePlantSeedReq.proto b/proto/HomePlantSeedReq.proto
new file mode 100644
index 00000000..d472386d
--- /dev/null
+++ b/proto/HomePlantSeedReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4804
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomePlantSeedReq {
+ uint32 index = 4;
+ uint32 field_guid = 14;
+ repeated uint32 seed_id_list = 13;
+}
diff --git a/proto/HomePlantSeedRsp.proto b/proto/HomePlantSeedRsp.proto
new file mode 100644
index 00000000..83aeed6a
--- /dev/null
+++ b/proto/HomePlantSeedRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4556
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomePlantSeedRsp {
+ int32 retcode = 9;
+}
diff --git a/proto/HomePlantSubFieldData.proto b/proto/HomePlantSubFieldData.proto
new file mode 100644
index 00000000..f029a7e9
--- /dev/null
+++ b/proto/HomePlantSubFieldData.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomePlantFieldStatus.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomePlantSubFieldData {
+ repeated uint32 entity_id_list = 15;
+ HomePlantFieldStatus field_status = 14;
+ uint32 home_gather_id = 9;
+ uint32 seed_id = 8;
+ fixed32 end_time = 4;
+}
diff --git a/proto/HomePlantWeedReq.proto b/proto/HomePlantWeedReq.proto
new file mode 100644
index 00000000..659d7d57
--- /dev/null
+++ b/proto/HomePlantWeedReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4640
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomePlantWeedReq {
+ uint32 field_guid = 9;
+ uint32 index = 3;
+}
diff --git a/proto/HomePlantWeedRsp.proto b/proto/HomePlantWeedRsp.proto
new file mode 100644
index 00000000..832e40c4
--- /dev/null
+++ b/proto/HomePlantWeedRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4527
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomePlantWeedRsp {
+ int32 retcode = 10;
+}
diff --git a/proto/HomePriorCheckNotify.proto b/proto/HomePriorCheckNotify.proto
new file mode 100644
index 00000000..a4981441
--- /dev/null
+++ b/proto/HomePriorCheckNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4599
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomePriorCheckNotify {
+ fixed32 end_time = 7;
+}
diff --git a/proto/HomeResource.proto b/proto/HomeResource.proto
new file mode 100644
index 00000000..5f767a87
--- /dev/null
+++ b/proto/HomeResource.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeResource {
+ fixed32 next_refresh_time = 15;
+ uint32 store_limit = 3;
+ uint32 store_value = 12;
+}
diff --git a/proto/HomeResourceNotify.proto b/proto/HomeResourceNotify.proto
new file mode 100644
index 00000000..b658accb
--- /dev/null
+++ b/proto/HomeResourceNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeResource.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4892
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeResourceNotify {
+ HomeResource home_coin = 9;
+ HomeResource fetter_exp = 8;
+}
diff --git a/proto/HomeResourceTakeFetterExpReq.proto b/proto/HomeResourceTakeFetterExpReq.proto
new file mode 100644
index 00000000..381ef51f
--- /dev/null
+++ b/proto/HomeResourceTakeFetterExpReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4768
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeResourceTakeFetterExpReq {}
diff --git a/proto/HomeResourceTakeFetterExpRsp.proto b/proto/HomeResourceTakeFetterExpRsp.proto
new file mode 100644
index 00000000..261ec076
--- /dev/null
+++ b/proto/HomeResourceTakeFetterExpRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeResource.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4645
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeResourceTakeFetterExpRsp {
+ HomeResource fetter_exp = 4;
+ int32 retcode = 15;
+}
diff --git a/proto/HomeResourceTakeHomeCoinReq.proto b/proto/HomeResourceTakeHomeCoinReq.proto
new file mode 100644
index 00000000..642948e3
--- /dev/null
+++ b/proto/HomeResourceTakeHomeCoinReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4479
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeResourceTakeHomeCoinReq {}
diff --git a/proto/HomeResourceTakeHomeCoinRsp.proto b/proto/HomeResourceTakeHomeCoinRsp.proto
new file mode 100644
index 00000000..b2e78615
--- /dev/null
+++ b/proto/HomeResourceTakeHomeCoinRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeResource.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4541
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeResourceTakeHomeCoinRsp {
+ HomeResource home_coin = 7;
+ int32 retcode = 10;
+}
diff --git a/proto/HomeSceneArrangementInfo.proto b/proto/HomeSceneArrangementInfo.proto
new file mode 100644
index 00000000..af47577f
--- /dev/null
+++ b/proto/HomeSceneArrangementInfo.proto
@@ -0,0 +1,39 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeBlockArrangementInfo.proto";
+import "HomeFurnitureData.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeSceneArrangementInfo {
+ Vector born_rot = 4;
+ Vector born_pos = 1;
+ repeated HomeFurnitureData stair_list = 11;
+ repeated HomeFurnitureData door_list = 13;
+ bool is_set_born_pos = 10;
+ repeated HomeBlockArrangementInfo block_arrangement_info_list = 8;
+ uint32 scene_id = 2;
+ uint32 Unk2700_BJHAMKKECEI = 12;
+ Vector djinn_pos = 9;
+ HomeFurnitureData main_house = 14;
+ uint32 comfort_value = 7;
+ uint32 tmp_version = 5;
+}
diff --git a/proto/HomeSceneArrangementMuipData.proto b/proto/HomeSceneArrangementMuipData.proto
new file mode 100644
index 00000000..d82650ea
--- /dev/null
+++ b/proto/HomeSceneArrangementMuipData.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeBlockArrangementMuipData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeSceneArrangementMuipData {
+ uint32 module_id = 1;
+ uint32 scene_id = 2;
+ bool is_room = 3;
+ repeated HomeBlockArrangementMuipData block_data_list = 4;
+}
diff --git a/proto/HomeSceneInitFinishReq.proto b/proto/HomeSceneInitFinishReq.proto
new file mode 100644
index 00000000..08b1db85
--- /dev/null
+++ b/proto/HomeSceneInitFinishReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4674
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeSceneInitFinishReq {}
diff --git a/proto/HomeSceneInitFinishRsp.proto b/proto/HomeSceneInitFinishRsp.proto
new file mode 100644
index 00000000..5f8959e4
--- /dev/null
+++ b/proto/HomeSceneInitFinishRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4505
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeSceneInitFinishRsp {
+ int32 retcode = 6;
+}
diff --git a/proto/HomeSceneJumpReq.proto b/proto/HomeSceneJumpReq.proto
new file mode 100644
index 00000000..9914d906
--- /dev/null
+++ b/proto/HomeSceneJumpReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4528
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeSceneJumpReq {
+ bool is_enter_room_scene = 9;
+}
diff --git a/proto/HomeSceneJumpRsp.proto b/proto/HomeSceneJumpRsp.proto
new file mode 100644
index 00000000..fb2c6433
--- /dev/null
+++ b/proto/HomeSceneJumpRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4698
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeSceneJumpRsp {
+ int32 retcode = 11;
+ bool is_enter_room_scene = 8;
+}
diff --git a/proto/HomeTransferData.proto b/proto/HomeTransferData.proto
new file mode 100644
index 00000000..71a4ae0b
--- /dev/null
+++ b/proto/HomeTransferData.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeTransferData {
+ uint32 guid = 15;
+ Vector spawn_pos = 7;
+}
diff --git a/proto/HomeTransferReq.proto b/proto/HomeTransferReq.proto
new file mode 100644
index 00000000..aaf058f0
--- /dev/null
+++ b/proto/HomeTransferReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4726
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeTransferReq {
+ uint32 guid = 1;
+ bool Unk3100_KEMFDDMEBIG = 12;
+}
diff --git a/proto/HomeTransferRsp.proto b/proto/HomeTransferRsp.proto
new file mode 100644
index 00000000..4da2a253
--- /dev/null
+++ b/proto/HomeTransferRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4616
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeTransferRsp {
+ int32 retcode = 10;
+}
diff --git a/proto/HomeUpdateArrangementInfoReq.proto b/proto/HomeUpdateArrangementInfoReq.proto
new file mode 100644
index 00000000..96d5b0e8
--- /dev/null
+++ b/proto/HomeUpdateArrangementInfoReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeSceneArrangementInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4510
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeUpdateArrangementInfoReq {
+ HomeSceneArrangementInfo scene_arrangement_info = 6;
+}
diff --git a/proto/HomeUpdateArrangementInfoRsp.proto b/proto/HomeUpdateArrangementInfoRsp.proto
new file mode 100644
index 00000000..0adf2746
--- /dev/null
+++ b/proto/HomeUpdateArrangementInfoRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4757
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeUpdateArrangementInfoRsp {
+ int32 retcode = 2;
+}
diff --git a/proto/HomeUpdateFishFarmingInfoReq.proto b/proto/HomeUpdateFishFarmingInfoReq.proto
new file mode 100644
index 00000000..c0e8e68f
--- /dev/null
+++ b/proto/HomeUpdateFishFarmingInfoReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeFishFarmingInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4544
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeUpdateFishFarmingInfoReq {
+ HomeFishFarmingInfo fish_farming_info = 5;
+}
diff --git a/proto/HomeUpdateFishFarmingInfoRsp.proto b/proto/HomeUpdateFishFarmingInfoRsp.proto
new file mode 100644
index 00000000..014b025e
--- /dev/null
+++ b/proto/HomeUpdateFishFarmingInfoRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4857
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeUpdateFishFarmingInfoRsp {
+ int32 retcode = 4;
+}
diff --git a/proto/HomeVerifyBlockData.proto b/proto/HomeVerifyBlockData.proto
new file mode 100644
index 00000000..e82430a6
--- /dev/null
+++ b/proto/HomeVerifyBlockData.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeVerifyBlockData {
+ uint32 block_id = 10;
+ uint32 furnitures = 9;
+}
diff --git a/proto/HomeVerifyData.proto b/proto/HomeVerifyData.proto
new file mode 100644
index 00000000..395c377b
--- /dev/null
+++ b/proto/HomeVerifyData.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeSceneArrangementMuipData.proto";
+import "HomeVerifySceneData.proto";
+import "LanguageType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeVerifyData {
+ string Unk2700_OAKBDKKBFHP = 7;
+ fixed32 timestamp = 15;
+ uint32 uid = 5;
+ HomeSceneArrangementMuipData Unk2700_CDELDBLKLDO = 9;
+ string region = 3;
+ string token = 1;
+ HomeVerifySceneData home_info = 6;
+ LanguageType lang = 8;
+}
diff --git a/proto/HomeVerifyFurnitureData.proto b/proto/HomeVerifyFurnitureData.proto
new file mode 100644
index 00000000..03d14c96
--- /dev/null
+++ b/proto/HomeVerifyFurnitureData.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeVerifyFurnitureData {
+ repeated uint32 type = 7;
+ uint32 id = 5;
+ uint32 num = 9;
+}
diff --git a/proto/HomeVerifySceneData.proto b/proto/HomeVerifySceneData.proto
new file mode 100644
index 00000000..ef18ba18
--- /dev/null
+++ b/proto/HomeVerifySceneData.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeVerifyBlockData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeVerifySceneData {
+ repeated HomeVerifyBlockData blocks = 6;
+ uint32 module_id = 11;
+ uint32 scene_id = 4;
+ uint32 version = 14;
+ uint32 is_room = 2;
+}
diff --git a/proto/HostPlayerNotify.proto b/proto/HostPlayerNotify.proto
new file mode 100644
index 00000000..d3a2e9b5
--- /dev/null
+++ b/proto/HostPlayerNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 312
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HostPlayerNotify {
+ uint32 host_peer_id = 13;
+ uint32 host_uid = 10;
+}
diff --git a/proto/HuntingFailNotify.proto b/proto/HuntingFailNotify.proto
new file mode 100644
index 00000000..d3d70044
--- /dev/null
+++ b/proto/HuntingFailNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HuntingPair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4320
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HuntingFailNotify {
+ HuntingPair hunting_pair = 12;
+}
diff --git a/proto/HuntingGiveUpReq.proto b/proto/HuntingGiveUpReq.proto
new file mode 100644
index 00000000..9fa6bdf5
--- /dev/null
+++ b/proto/HuntingGiveUpReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HuntingPair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4341
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HuntingGiveUpReq {
+ HuntingPair hunting_pair = 1;
+}
diff --git a/proto/HuntingGiveUpRsp.proto b/proto/HuntingGiveUpRsp.proto
new file mode 100644
index 00000000..fbfc2a6c
--- /dev/null
+++ b/proto/HuntingGiveUpRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HuntingPair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4342
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HuntingGiveUpRsp {
+ int32 retcode = 3;
+ HuntingPair hunting_pair = 4;
+}
diff --git a/proto/HuntingOfferData.proto b/proto/HuntingOfferData.proto
new file mode 100644
index 00000000..8e71c6d0
--- /dev/null
+++ b/proto/HuntingOfferData.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HuntingOfferState.proto";
+import "HuntingPair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HuntingOfferData {
+ HuntingPair hunting_pair = 4;
+ uint32 city_id = 8;
+ HuntingOfferState state = 1;
+}
diff --git a/proto/HuntingOfferState.proto b/proto/HuntingOfferState.proto
new file mode 100644
index 00000000..ec3abc3b
--- /dev/null
+++ b/proto/HuntingOfferState.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum HuntingOfferState {
+ HUNTING_OFFER_STATE_NONE = 0;
+ HUNTING_OFFER_STATE_STARTED = 1;
+ HUNTING_OFFER_STATE_UNSTARTED = 2;
+ HUNTING_OFFER_STATE_SUCC = 3;
+}
diff --git a/proto/HuntingOngoingNotify.proto b/proto/HuntingOngoingNotify.proto
new file mode 100644
index 00000000..892e6f9d
--- /dev/null
+++ b/proto/HuntingOngoingNotify.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HuntingPair.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4345
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HuntingOngoingNotify {
+ HuntingPair hunting_pair = 15;
+ bool is_started = 8;
+ Vector next_position = 3;
+ uint32 finish_clue_count = 10;
+ bool is_final = 14;
+ uint32 fail_time = 7;
+}
diff --git a/proto/HuntingPair.proto b/proto/HuntingPair.proto
new file mode 100644
index 00000000..76db9ea9
--- /dev/null
+++ b/proto/HuntingPair.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HuntingPair {
+ uint32 refresh_id = 9;
+ uint32 monster_config_id = 4;
+}
diff --git a/proto/HuntingRevealClueNotify.proto b/proto/HuntingRevealClueNotify.proto
new file mode 100644
index 00000000..f073f6ae
--- /dev/null
+++ b/proto/HuntingRevealClueNotify.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HuntingPair.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4322
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HuntingRevealClueNotify {
+ uint32 finish_clue_count = 5;
+ Vector clue_position = 4;
+ HuntingPair hunting_pair = 12;
+ uint32 finished_group_id = 7;
+}
diff --git a/proto/HuntingRevealFinalNotify.proto b/proto/HuntingRevealFinalNotify.proto
new file mode 100644
index 00000000..8215b7b2
--- /dev/null
+++ b/proto/HuntingRevealFinalNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HuntingPair.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4344
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HuntingRevealFinalNotify {
+ uint32 finished_group_id = 5;
+ HuntingPair hunting_pair = 11;
+ Vector final_position = 2;
+}
diff --git a/proto/HuntingStartNotify.proto b/proto/HuntingStartNotify.proto
new file mode 100644
index 00000000..1ea12fb6
--- /dev/null
+++ b/proto/HuntingStartNotify.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HuntingPair.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4329
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HuntingStartNotify {
+ Vector clue_position = 4;
+ uint32 fail_time = 15;
+ HuntingPair hunting_pair = 3;
+ bool is_final = 8;
+}
diff --git a/proto/HuntingSuccessNotify.proto b/proto/HuntingSuccessNotify.proto
new file mode 100644
index 00000000..5f9b253d
--- /dev/null
+++ b/proto/HuntingSuccessNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HuntingPair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4349
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HuntingSuccessNotify {
+ HuntingPair hunting_pair = 4;
+}
diff --git a/proto/InBattleChessInfo.proto b/proto/InBattleChessInfo.proto
new file mode 100644
index 00000000..f1281711
--- /dev/null
+++ b/proto/InBattleChessInfo.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChessCardInfo.proto";
+import "ChessMysteryInfo.proto";
+import "ChessPlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message InBattleChessInfo {
+ repeated uint32 ban_card_tag_list = 2;
+ uint32 round = 4;
+ repeated ChessCardInfo selected_card_info_list = 9;
+ ChessMysteryInfo mystery_info = 1;
+ map player_info_map = 8;
+ uint32 max_escapable_monsters = 6;
+ uint32 escaped_monsters = 12;
+ uint32 total_round = 14;
+ uint32 left_monsters = 15;
+}
diff --git a/proto/InBattleChessSettleInfo.proto b/proto/InBattleChessSettleInfo.proto
new file mode 100644
index 00000000..d82b5156
--- /dev/null
+++ b/proto/InBattleChessSettleInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ExhibitionDisplayInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message InBattleChessSettleInfo {
+ bool is_success = 7;
+ uint32 chess_exp = 11;
+ uint32 chess_level = 13;
+ uint32 old_chess_level = 10;
+ repeated ExhibitionDisplayInfo score_list = 1;
+ uint64 scene_time_ms = 14;
+ uint32 old_chess_exp = 2;
+}
diff --git a/proto/InBattleFleurFairInfo.proto b/proto/InBattleFleurFairInfo.proto
new file mode 100644
index 00000000..566033fc
--- /dev/null
+++ b/proto/InBattleFleurFairInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message InBattleFleurFairInfo {
+ repeated uint32 gallery_id_list = 5;
+ uint32 gallery_stage_index = 6;
+ uint32 preview_stage_index = 8;
+ repeated uint32 ability_group_id_list = 2;
+ uint32 preview_display_duration = 12;
+}
diff --git a/proto/InBattleMechanicusBuildingInfo.proto b/proto/InBattleMechanicusBuildingInfo.proto
new file mode 100644
index 00000000..c3c5711c
--- /dev/null
+++ b/proto/InBattleMechanicusBuildingInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message InBattleMechanicusBuildingInfo {
+ uint32 building_id = 8;
+ uint32 level = 7;
+ uint32 cost_points = 2;
+ uint32 refund_points = 11;
+}
diff --git a/proto/InBattleMechanicusBuildingPointsNotify.proto b/proto/InBattleMechanicusBuildingPointsNotify.proto
new file mode 100644
index 00000000..85924207
--- /dev/null
+++ b/proto/InBattleMechanicusBuildingPointsNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5303
+// EnetChannelId: 0
+// EnetIsReliable: true
+message InBattleMechanicusBuildingPointsNotify {
+ map player_building_points_map = 4;
+}
diff --git a/proto/InBattleMechanicusCardChallengeState.proto b/proto/InBattleMechanicusCardChallengeState.proto
new file mode 100644
index 00000000..7ae494d6
--- /dev/null
+++ b/proto/InBattleMechanicusCardChallengeState.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum InBattleMechanicusCardChallengeState {
+ IN_BATTLE_MECHANICUS_CARD_CHALLENGE_STATE_NONE = 0;
+ IN_BATTLE_MECHANICUS_CARD_CHALLENGE_STATE_ON_GOING = 1;
+ IN_BATTLE_MECHANICUS_CARD_CHALLENGE_STATE_FAIL = 2;
+ IN_BATTLE_MECHANICUS_CARD_CHALLENGE_STATE_SUCCESS = 3;
+}
diff --git a/proto/InBattleMechanicusCardInfo.proto b/proto/InBattleMechanicusCardInfo.proto
new file mode 100644
index 00000000..9aea69e6
--- /dev/null
+++ b/proto/InBattleMechanicusCardInfo.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "InBattleMechanicusCardChallengeState.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message InBattleMechanicusCardInfo {
+ uint32 rand_effect_id = 12;
+ uint32 end_round = 3;
+ InBattleMechanicusCardChallengeState challenge_state = 5;
+ uint32 cost_points = 1;
+ uint32 card_id = 11;
+ uint32 begin_round = 8;
+}
diff --git a/proto/InBattleMechanicusCardResultNotify.proto b/proto/InBattleMechanicusCardResultNotify.proto
new file mode 100644
index 00000000..540ad529
--- /dev/null
+++ b/proto/InBattleMechanicusCardResultNotify.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "InBattleMechanicusCardInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5397
+// EnetChannelId: 0
+// EnetIsReliable: true
+message InBattleMechanicusCardResultNotify {
+ uint32 wait_seconds = 6;
+ uint32 group_id = 2;
+ repeated InBattleMechanicusCardInfo card_list = 9;
+ uint64 wait_begin_time_us = 7;
+ map player_confirmed_card_map = 12;
+ uint32 play_index = 8;
+}
diff --git a/proto/InBattleMechanicusConfirmCardNotify.proto b/proto/InBattleMechanicusConfirmCardNotify.proto
new file mode 100644
index 00000000..d496331f
--- /dev/null
+++ b/proto/InBattleMechanicusConfirmCardNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5348
+// EnetChannelId: 0
+// EnetIsReliable: true
+message InBattleMechanicusConfirmCardNotify {
+ uint32 play_index = 11;
+ uint32 card_id = 13;
+ uint32 group_id = 10;
+ uint32 player_uid = 2;
+}
diff --git a/proto/InBattleMechanicusConfirmCardReq.proto b/proto/InBattleMechanicusConfirmCardReq.proto
new file mode 100644
index 00000000..04a19afa
--- /dev/null
+++ b/proto/InBattleMechanicusConfirmCardReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5331
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message InBattleMechanicusConfirmCardReq {
+ uint32 play_index = 6;
+ uint32 card_id = 1;
+ uint32 group_id = 3;
+}
diff --git a/proto/InBattleMechanicusConfirmCardRsp.proto b/proto/InBattleMechanicusConfirmCardRsp.proto
new file mode 100644
index 00000000..0d9f6ff2
--- /dev/null
+++ b/proto/InBattleMechanicusConfirmCardRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5375
+// EnetChannelId: 0
+// EnetIsReliable: true
+message InBattleMechanicusConfirmCardRsp {
+ uint32 play_index = 2;
+ uint32 card_id = 14;
+ int32 retcode = 11;
+ uint32 group_id = 6;
+}
diff --git a/proto/InBattleMechanicusEscapeMonsterNotify.proto b/proto/InBattleMechanicusEscapeMonsterNotify.proto
new file mode 100644
index 00000000..792f1034
--- /dev/null
+++ b/proto/InBattleMechanicusEscapeMonsterNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5307
+// EnetChannelId: 0
+// EnetIsReliable: true
+message InBattleMechanicusEscapeMonsterNotify {
+ uint32 escaped_monster_num = 4;
+}
diff --git a/proto/InBattleMechanicusInfo.proto b/proto/InBattleMechanicusInfo.proto
new file mode 100644
index 00000000..e5aec44f
--- /dev/null
+++ b/proto/InBattleMechanicusInfo.proto
@@ -0,0 +1,45 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "InBattleMechanicusCardInfo.proto";
+import "InBattleMechanicusMonsterInfo.proto";
+import "InBattleMechanicusPlayerInfo.proto";
+import "InBattleMechanicusStageType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message InBattleMechanicusInfo {
+ uint32 left_monster = 5;
+ uint32 wait_seconds = 13;
+ repeated uint32 entrance_list = 410;
+ repeated uint32 exit_list = 115;
+ repeated InBattleMechanicusCardInfo history_card_list = 11;
+ uint32 max_escape_monster_num = 10;
+ uint32 building_stage_duration = 4;
+ uint64 duration_ms = 8;
+ InBattleMechanicusStageType stage = 9;
+ uint32 total_round = 12;
+ repeated InBattleMechanicusMonsterInfo monster_list = 14;
+ uint32 escaped_monster_num = 6;
+ uint32 round = 3;
+ repeated InBattleMechanicusCardInfo pick_card_list = 15;
+ repeated InBattleMechanicusPlayerInfo player_list = 7;
+ uint64 wait_begin_time_us = 1;
+ uint64 begin_time_ms = 2;
+}
diff --git a/proto/InBattleMechanicusLeftMonsterNotify.proto b/proto/InBattleMechanicusLeftMonsterNotify.proto
new file mode 100644
index 00000000..a0b695af
--- /dev/null
+++ b/proto/InBattleMechanicusLeftMonsterNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5321
+// EnetChannelId: 0
+// EnetIsReliable: true
+message InBattleMechanicusLeftMonsterNotify {
+ uint32 left_monster = 14;
+}
diff --git a/proto/InBattleMechanicusMonsterInfo.proto b/proto/InBattleMechanicusMonsterInfo.proto
new file mode 100644
index 00000000..21179ef9
--- /dev/null
+++ b/proto/InBattleMechanicusMonsterInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message InBattleMechanicusMonsterInfo {
+ uint32 monster_id = 1;
+ uint32 level = 14;
+ uint32 count = 13;
+}
diff --git a/proto/InBattleMechanicusPickCardNotify.proto b/proto/InBattleMechanicusPickCardNotify.proto
new file mode 100644
index 00000000..83d199b8
--- /dev/null
+++ b/proto/InBattleMechanicusPickCardNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5399
+// EnetChannelId: 0
+// EnetIsReliable: true
+message InBattleMechanicusPickCardNotify {
+ uint32 player_uid = 6;
+ uint32 group_id = 7;
+ uint32 play_index = 8;
+ uint32 card_id = 10;
+}
diff --git a/proto/InBattleMechanicusPickCardReq.proto b/proto/InBattleMechanicusPickCardReq.proto
new file mode 100644
index 00000000..b8dc6835
--- /dev/null
+++ b/proto/InBattleMechanicusPickCardReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5390
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message InBattleMechanicusPickCardReq {
+ uint32 group_id = 11;
+ uint32 play_index = 7;
+ uint32 card_id = 1;
+}
diff --git a/proto/InBattleMechanicusPickCardRsp.proto b/proto/InBattleMechanicusPickCardRsp.proto
new file mode 100644
index 00000000..f8d96f3e
--- /dev/null
+++ b/proto/InBattleMechanicusPickCardRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5373
+// EnetChannelId: 0
+// EnetIsReliable: true
+message InBattleMechanicusPickCardRsp {
+ int32 retcode = 11;
+ uint32 card_id = 2;
+ uint32 play_index = 4;
+ uint32 group_id = 9;
+}
diff --git a/proto/InBattleMechanicusPlayerInfo.proto b/proto/InBattleMechanicusPlayerInfo.proto
new file mode 100644
index 00000000..5cd3be69
--- /dev/null
+++ b/proto/InBattleMechanicusPlayerInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "InBattleMechanicusBuildingInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message InBattleMechanicusPlayerInfo {
+ uint32 pick_card_id = 5;
+ uint32 uid = 14;
+ repeated InBattleMechanicusBuildingInfo building_list = 4;
+ bool is_card_confirmed = 13;
+ uint32 building_points = 3;
+}
diff --git a/proto/InBattleMechanicusSettleInfo.proto b/proto/InBattleMechanicusSettleInfo.proto
new file mode 100644
index 00000000..50e713d5
--- /dev/null
+++ b/proto/InBattleMechanicusSettleInfo.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MultistageSettleWatcherInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message InBattleMechanicusSettleInfo {
+ uint64 scene_time_ms = 15;
+ uint32 total_token = 4;
+ uint32 real_token = 8;
+ repeated MultistageSettleWatcherInfo watcher_list = 7;
+ bool is_success = 6;
+ uint32 play_index = 3;
+ uint32 difficulty_percentage = 10;
+ uint32 group_id = 13;
+}
diff --git a/proto/InBattleMechanicusSettleNotify.proto b/proto/InBattleMechanicusSettleNotify.proto
new file mode 100644
index 00000000..f1798944
--- /dev/null
+++ b/proto/InBattleMechanicusSettleNotify.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MultistageSettleWatcherInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5305
+// EnetChannelId: 0
+// EnetIsReliable: true
+message InBattleMechanicusSettleNotify {
+ uint32 group_id = 15;
+ uint64 scene_time_ms = 11;
+ uint32 difficulty_percentage = 6;
+ uint32 total_token = 7;
+ repeated MultistageSettleWatcherInfo watcher_list = 3;
+ uint32 real_token = 13;
+ bool is_success = 2;
+ uint32 play_index = 14;
+}
diff --git a/proto/InBattleMechanicusStageType.proto b/proto/InBattleMechanicusStageType.proto
new file mode 100644
index 00000000..c5854e6f
--- /dev/null
+++ b/proto/InBattleMechanicusStageType.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum InBattleMechanicusStageType {
+ IN_BATTLE_MECHANICUS_STAGE_TYPE_NONE = 0;
+ IN_BATTLE_MECHANICUS_STAGE_TYPE_BUILD = 1;
+ IN_BATTLE_MECHANICUS_STAGE_TYPE_CARD_FLIP = 2;
+ IN_BATTLE_MECHANICUS_STAGE_TYPE_KILL = 3;
+}
diff --git a/proto/InstableSprayDetailInfo.proto b/proto/InstableSprayDetailInfo.proto
new file mode 100644
index 00000000..f7575222
--- /dev/null
+++ b/proto/InstableSprayDetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_ICLKJJNGOHN.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message InstableSprayDetailInfo {
+ repeated Unk3000_ICLKJJNGOHN Unk2700_PHKHIPLDOOA = 9;
+}
diff --git a/proto/InstableSpraySettleInfo.proto b/proto/InstableSpraySettleInfo.proto
new file mode 100644
index 00000000..4b31c92d
--- /dev/null
+++ b/proto/InstableSpraySettleInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message InstableSpraySettleInfo {
+ uint32 stage_id = 1;
+ repeated uint32 score_list = 4;
+ bool is_new_record = 13;
+ uint32 difficulty = 5;
+}
diff --git a/proto/InterOpType.proto b/proto/InterOpType.proto
new file mode 100644
index 00000000..eb3083f7
--- /dev/null
+++ b/proto/InterOpType.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum InterOpType {
+ INTER_OP_TYPE_FINISH = 0;
+ INTER_OP_TYPE_START = 1;
+}
diff --git a/proto/InteractDailyDungeonInfoNotify.proto b/proto/InteractDailyDungeonInfoNotify.proto
new file mode 100644
index 00000000..5526d268
--- /dev/null
+++ b/proto/InteractDailyDungeonInfoNotify.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 919
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message InteractDailyDungeonInfoNotify {}
diff --git a/proto/InteractType.proto b/proto/InteractType.proto
new file mode 100644
index 00000000..f15f7830
--- /dev/null
+++ b/proto/InteractType.proto
@@ -0,0 +1,40 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum InteractType {
+ INTERACT_TYPE_NONE = 0;
+ INTERACT_TYPE_PICK_ITEM = 1;
+ INTERACT_TYPE_GATHER = 2;
+ INTERACT_TYPE_OPEN_CHEST = 3;
+ INTERACT_TYPE_OPEN_STATUE = 4;
+ INTERACT_TYPE_CONSUM = 5;
+ INTERACT_TYPE_MP_PLAY_REWARD = 6;
+ INTERACT_TYPE_VIEW = 7;
+ INTERACT_TYPE_GENERAL_REWARD = 8;
+ INTERACT_TYPE_MIRACLE_RING = 9;
+ INTERACT_TYPE_FOUNDATION = 10;
+ INTERACT_TYPE_ECHO_SHELL = 11;
+ INTERACT_TYPE_HOME_GATHER = 12;
+ INTERACT_TYPE_ENV_ANIMAL = 13;
+ INTERACT_TYPE_QUEST_GADGET = 14;
+ INTERACT_TYPE_Unk2700_LIEIKFDFMGF = 15;
+ INTERACT_TYPE_Unk3000_NMOCFKDNCOB = 16;
+}
diff --git a/proto/InterruptGalleryReq.proto b/proto/InterruptGalleryReq.proto
new file mode 100644
index 00000000..99b8d106
--- /dev/null
+++ b/proto/InterruptGalleryReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5548
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message InterruptGalleryReq {
+ uint32 gallery_id = 13;
+}
diff --git a/proto/InterruptGalleryRsp.proto b/proto/InterruptGalleryRsp.proto
new file mode 100644
index 00000000..bd42978f
--- /dev/null
+++ b/proto/InterruptGalleryRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5597
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message InterruptGalleryRsp {
+ int32 retcode = 12;
+ uint32 gallery_id = 9;
+}
diff --git a/proto/Investigation.proto b/proto/Investigation.proto
new file mode 100644
index 00000000..4b90980b
--- /dev/null
+++ b/proto/Investigation.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Investigation {
+ uint32 total_progress = 5;
+ State state = 2;
+ uint32 progress = 13;
+ uint32 id = 9;
+
+ enum State {
+ STATE_INVALID = 0;
+ STATE_IN_PROGRESS = 1;
+ STATE_COMPLETE = 2;
+ STATE_REWARD_TAKEN = 3;
+ }
+}
diff --git a/proto/InvestigationMonster.proto b/proto/InvestigationMonster.proto
new file mode 100644
index 00000000..4cb069b4
--- /dev/null
+++ b/proto/InvestigationMonster.proto
@@ -0,0 +1,48 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+import "WeeklyBossResinDiscountInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message InvestigationMonster {
+ bool is_alive = 9;
+ uint32 refresh_interval = 3;
+ uint32 id = 13;
+ uint32 level = 5;
+ uint32 boss_chest_num = 1;
+ WeeklyBossResinDiscountInfo weekly_boss_resin_discount_info = 12;
+ uint32 monster_id = 301;
+ Vector pos = 14;
+ uint32 resin = 8;
+ uint32 max_boss_chest_num = 4;
+ uint32 next_refresh_time = 11;
+ uint32 group_id = 285;
+ uint32 scene_id = 10;
+ bool is_area_locked = 15;
+ LockState lock_state = 2;
+ uint32 next_boss_chest_refresh_time = 7;
+ uint32 city_id = 6;
+
+ enum LockState {
+ LOCK_STATE_NONE = 0;
+ LOCK_STATE_QUEST = 1;
+ }
+}
diff --git a/proto/InvestigationMonsterUpdateNotify.proto b/proto/InvestigationMonsterUpdateNotify.proto
new file mode 100644
index 00000000..ec95b2be
--- /dev/null
+++ b/proto/InvestigationMonsterUpdateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "InvestigationMonster.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1906
+// EnetChannelId: 0
+// EnetIsReliable: true
+message InvestigationMonsterUpdateNotify {
+ InvestigationMonster investigation_monster = 5;
+}
diff --git a/proto/InvestigationTarget.proto b/proto/InvestigationTarget.proto
new file mode 100644
index 00000000..b1cfbb60
--- /dev/null
+++ b/proto/InvestigationTarget.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message InvestigationTarget {
+ uint32 quest_id = 15;
+ State state = 2;
+ uint32 progress = 8;
+ uint32 total_progress = 7;
+ uint32 investigation_id = 3;
+
+ enum State {
+ STATE_INVALID = 0;
+ STATE_IN_PROGRESS = 1;
+ STATE_COMPLETE = 2;
+ STATE_REWARD_TAKEN = 3;
+ }
+}
diff --git a/proto/IrodoriActivityDetailInfo.proto b/proto/IrodoriActivityDetailInfo.proto
new file mode 100644
index 00000000..489fc411
--- /dev/null
+++ b/proto/IrodoriActivityDetailInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_AIGECAPPCKK.proto";
+import "Unk2700_AMJFIJNNGHC.proto";
+import "Unk2700_GCPNGHFNGDP.proto";
+import "Unk2700_JACACCPGMGC.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message IrodoriActivityDetailInfo {
+ repeated Unk2700_JACACCPGMGC Unk2700_KLDGOEPJGNC = 11;
+ Unk2700_GCPNGHFNGDP Unk2700_BFPBLJAAPAL = 6;
+ Unk2700_AIGECAPPCKK Unk2700_AGGJBDLONGC = 8;
+ Unk2700_AMJFIJNNGHC Unk2700_MCMCCIEFMPD = 14;
+}
diff --git a/proto/IrodoriChessInfo.proto b/proto/IrodoriChessInfo.proto
new file mode 100644
index 00000000..7ca02661
--- /dev/null
+++ b/proto/IrodoriChessInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_IBEKDNOGMLA.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message IrodoriChessInfo {
+ Unk2700_IBEKDNOGMLA mystery_info = 3;
+ uint32 left_monsters = 12;
+ repeated uint32 Unk2700_MABMPAAGHCJ = 13;
+ uint32 building_points = 7;
+ uint32 Unk2700_CDOKENJJJMH = 4;
+}
diff --git a/proto/IrodoriChessSettleInfo.proto b/proto/IrodoriChessSettleInfo.proto
new file mode 100644
index 00000000..3937f2bb
--- /dev/null
+++ b/proto/IrodoriChessSettleInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message IrodoriChessSettleInfo {
+ bool is_new_record = 5;
+ bool Unk2700_PFEDPLKKLGH = 2;
+ uint64 scene_time_ms = 1;
+ uint32 Unk2700_CDOKENJJJMH = 3;
+ bool is_perfect = 12;
+ uint32 kill_monster_num = 7;
+}
diff --git a/proto/IslandPartyActivityDetailInfo.proto b/proto/IslandPartyActivityDetailInfo.proto
new file mode 100644
index 00000000..9d28157e
--- /dev/null
+++ b/proto/IslandPartyActivityDetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2800_MBKLJLMLIKF.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message IslandPartyActivityDetailInfo {
+ repeated Unk2800_MBKLJLMLIKF Unk2800_PDBHCBCLFBM = 15;
+}
diff --git a/proto/Item.proto b/proto/Item.proto
new file mode 100644
index 00000000..5b247248
--- /dev/null
+++ b/proto/Item.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Equip.proto";
+import "Furniture.proto";
+import "Material.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Item {
+ uint32 item_id = 1;
+ uint64 guid = 2;
+ oneof detail {
+ Material material = 5;
+ Equip equip = 6;
+ Furniture furniture = 7;
+ }
+}
diff --git a/proto/ItemAddHintNotify.proto b/proto/ItemAddHintNotify.proto
new file mode 100644
index 00000000..a0e3fd88
--- /dev/null
+++ b/proto/ItemAddHintNotify.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemHint.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 607
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ItemAddHintNotify {
+ bool is_position_valid = 14;
+ uint32 quest_id = 3;
+ uint32 reason = 6;
+ bool is_general_reward_hiden = 15;
+ repeated ItemHint item_list = 10;
+ bool is_transfered_from_avatar_card = 12;
+ Vector position = 9;
+ repeated ItemHint overflow_transformed_item_list = 8;
+}
diff --git a/proto/ItemCdGroupTimeNotify.proto b/proto/ItemCdGroupTimeNotify.proto
new file mode 100644
index 00000000..c3d5cb7d
--- /dev/null
+++ b/proto/ItemCdGroupTimeNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 634
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ItemCdGroupTimeNotify {
+ map item_cd_map = 9;
+}
diff --git a/proto/ItemGivingReq.proto b/proto/ItemGivingReq.proto
new file mode 100644
index 00000000..84b6db55
--- /dev/null
+++ b/proto/ItemGivingReq.proto
@@ -0,0 +1,38 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 140
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ItemGivingReq {
+ map item_guid_count_map = 15;
+ uint32 giving_id = 13;
+ repeated ItemParam item_param_list = 4;
+ Unk2800_LENCDFJACFN Unk2800_PHNIJJMECGN = 2;
+
+ enum Unk2800_LENCDFJACFN {
+ Unk2800_LENCDFJACFN_QUEST = 0;
+ Unk2800_LENCDFJACFN_Unk2800_HHHOPEHIPFG = 1;
+ }
+}
diff --git a/proto/ItemGivingRsp.proto b/proto/ItemGivingRsp.proto
new file mode 100644
index 00000000..e947d691
--- /dev/null
+++ b/proto/ItemGivingRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 118
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ItemGivingRsp {
+ uint32 Unk2700_MHIPHDFEOON = 1;
+ uint32 giving_id = 13;
+ int32 retcode = 3;
+}
diff --git a/proto/ItemHint.proto b/proto/ItemHint.proto
new file mode 100644
index 00000000..d9cac6ac
--- /dev/null
+++ b/proto/ItemHint.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ItemHint {
+ uint32 item_id = 8;
+ bool is_new = 2;
+ uint32 count = 15;
+ uint64 guid = 4;
+}
diff --git a/proto/ItemParam.proto b/proto/ItemParam.proto
new file mode 100644
index 00000000..58a09f89
--- /dev/null
+++ b/proto/ItemParam.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ItemParam {
+ uint32 item_id = 1;
+ uint32 count = 2;
+}
diff --git a/proto/JoinHomeWorldFailNotify.proto b/proto/JoinHomeWorldFailNotify.proto
new file mode 100644
index 00000000..6a0d37dc
--- /dev/null
+++ b/proto/JoinHomeWorldFailNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4530
+// EnetChannelId: 0
+// EnetIsReliable: true
+message JoinHomeWorldFailNotify {
+ uint32 target_uid = 6;
+ int32 retcode = 13;
+}
diff --git a/proto/JoinPlayerFailNotify.proto b/proto/JoinPlayerFailNotify.proto
new file mode 100644
index 00000000..5fa05dc1
--- /dev/null
+++ b/proto/JoinPlayerFailNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 236
+// EnetChannelId: 0
+// EnetIsReliable: true
+message JoinPlayerFailNotify {
+ int32 retcode = 11;
+}
diff --git a/proto/JoinPlayerSceneReq.proto b/proto/JoinPlayerSceneReq.proto
new file mode 100644
index 00000000..dc43669e
--- /dev/null
+++ b/proto/JoinPlayerSceneReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 292
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message JoinPlayerSceneReq {
+ uint32 target_uid = 12;
+}
diff --git a/proto/JoinPlayerSceneRsp.proto b/proto/JoinPlayerSceneRsp.proto
new file mode 100644
index 00000000..61085a97
--- /dev/null
+++ b/proto/JoinPlayerSceneRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 220
+// EnetChannelId: 0
+// EnetIsReliable: true
+message JoinPlayerSceneRsp {
+ int32 retcode = 10;
+}
diff --git a/proto/KeepAliveNotify.proto b/proto/KeepAliveNotify.proto
new file mode 100644
index 00000000..90db7c63
--- /dev/null
+++ b/proto/KeepAliveNotify.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 72
+// EnetChannelId: 0
+// EnetIsReliable: true
+message KeepAliveNotify {}
diff --git a/proto/LanguageType.proto b/proto/LanguageType.proto
new file mode 100644
index 00000000..e4b1943e
--- /dev/null
+++ b/proto/LanguageType.proto
@@ -0,0 +1,39 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum LanguageType {
+ LANGUAGE_TYPE_NONE = 0;
+ LANGUAGE_TYPE_EN = 1;
+ LANGUAGE_TYPE_SC = 2;
+ LANGUAGE_TYPE_TC = 3;
+ LANGUAGE_TYPE_FR = 4;
+ LANGUAGE_TYPE_DE = 5;
+ LANGUAGE_TYPE_ES = 6;
+ LANGUAGE_TYPE_PT = 7;
+ LANGUAGE_TYPE_RU = 8;
+ LANGUAGE_TYPE_JP = 9;
+ LANGUAGE_TYPE_KR = 10;
+ LANGUAGE_TYPE_TH = 11;
+ LANGUAGE_TYPE_VN = 12;
+ LANGUAGE_TYPE_ID = 13;
+ LANGUAGE_TYPE_Unk2700_IBFJDMFLFII = 14;
+ LANGUAGE_TYPE_Unk2700_PACIPAIFJCN = 15;
+}
diff --git a/proto/LanternRiteActivityDetailInfo.proto b/proto/LanternRiteActivityDetailInfo.proto
new file mode 100644
index 00000000..db42323d
--- /dev/null
+++ b/proto/LanternRiteActivityDetailInfo.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_JCNIPOJMFMH.proto";
+import "Unk2700_LLGDCAKMCKL.proto";
+import "Unk2700_MJGFEHOMKJE.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message LanternRiteActivityDetailInfo {
+ Unk2700_JCNIPOJMFMH Unk2700_ONOHODJPIGK = 13;
+ repeated Unk2700_LLGDCAKMCKL Unk2700_PHKHIPLDOOA = 5;
+ Unk2700_MJGFEHOMKJE Unk2700_MPOCLGBFNAK = 8;
+ bool Unk2700_KGGCKHBIOED = 2;
+ bool is_content_closed = 14;
+ bool Unk2700_EOGEAIHJPFD = 6;
+}
diff --git a/proto/LeaveSceneReq.proto b/proto/LeaveSceneReq.proto
new file mode 100644
index 00000000..af3488db
--- /dev/null
+++ b/proto/LeaveSceneReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 298
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message LeaveSceneReq {}
diff --git a/proto/LeaveSceneRsp.proto b/proto/LeaveSceneRsp.proto
new file mode 100644
index 00000000..eb0882fe
--- /dev/null
+++ b/proto/LeaveSceneRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 212
+// EnetChannelId: 0
+// EnetIsReliable: true
+message LeaveSceneRsp {
+ int32 retcode = 3;
+}
diff --git a/proto/LeaveWorldNotify.proto b/proto/LeaveWorldNotify.proto
new file mode 100644
index 00000000..52ddcd04
--- /dev/null
+++ b/proto/LeaveWorldNotify.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3017
+// EnetChannelId: 0
+// EnetIsReliable: true
+message LeaveWorldNotify {}
diff --git a/proto/LevelupCityReq.proto b/proto/LevelupCityReq.proto
new file mode 100644
index 00000000..81c723ad
--- /dev/null
+++ b/proto/LevelupCityReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 216
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message LevelupCityReq {
+ uint32 scene_id = 5;
+ uint32 area_id = 3;
+ uint32 item_num = 14;
+}
diff --git a/proto/LevelupCityRsp.proto b/proto/LevelupCityRsp.proto
new file mode 100644
index 00000000..8785e512
--- /dev/null
+++ b/proto/LevelupCityRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 287
+// EnetChannelId: 0
+// EnetIsReliable: true
+message LevelupCityRsp {
+ uint32 area_id = 9;
+ int32 retcode = 3;
+ uint32 scene_id = 4;
+ CityInfo city_info = 6;
+}
diff --git a/proto/LifeStateChangeNotify.proto b/proto/LifeStateChangeNotify.proto
new file mode 100644
index 00000000..afc9da28
--- /dev/null
+++ b/proto/LifeStateChangeNotify.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayerDieType.proto";
+import "ServerBuff.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1298
+// EnetChannelId: 0
+// EnetIsReliable: true
+message LifeStateChangeNotify {
+ uint32 entity_id = 4;
+ repeated ServerBuff server_buff_list = 6;
+ string attack_tag = 7;
+ uint32 move_reliable_seq = 15;
+ PlayerDieType die_type = 14;
+ uint32 life_state = 5;
+ uint32 source_entity_id = 1;
+}
diff --git a/proto/LiveEndNotify.proto b/proto/LiveEndNotify.proto
new file mode 100644
index 00000000..75c39a89
--- /dev/null
+++ b/proto/LiveEndNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 806
+// EnetChannelId: 0
+// EnetIsReliable: true
+message LiveEndNotify {
+ uint32 live_id = 5;
+}
diff --git a/proto/LiveStartNotify.proto b/proto/LiveStartNotify.proto
new file mode 100644
index 00000000..553e3c8c
--- /dev/null
+++ b/proto/LiveStartNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 826
+// EnetChannelId: 0
+// EnetIsReliable: true
+message LiveStartNotify {
+ uint32 live_id = 2;
+}
diff --git a/proto/LoadActivityTerrainNotify.proto b/proto/LoadActivityTerrainNotify.proto
new file mode 100644
index 00000000..9df40c34
--- /dev/null
+++ b/proto/LoadActivityTerrainNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2029
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message LoadActivityTerrainNotify {
+ uint32 activity_id = 3;
+}
diff --git a/proto/LockedPersonallineData.proto b/proto/LockedPersonallineData.proto
new file mode 100644
index 00000000..6ee8479c
--- /dev/null
+++ b/proto/LockedPersonallineData.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message LockedPersonallineData {
+ LockReason lock_reason = 2;
+ uint32 personal_line_id = 13;
+ oneof param {
+ uint32 chapter_id = 3;
+ uint32 level = 1;
+ }
+
+ enum LockReason {
+ LOCK_REASON_LEVEL = 0;
+ LOCK_REASON_QUEST = 1;
+ }
+}
diff --git a/proto/LuaEnvironmentEffectNotify.proto b/proto/LuaEnvironmentEffectNotify.proto
new file mode 100644
index 00000000..644a7e58
--- /dev/null
+++ b/proto/LuaEnvironmentEffectNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3408
+// EnetChannelId: 0
+// EnetIsReliable: true
+message LuaEnvironmentEffectNotify {
+ uint32 type = 1;
+ repeated int32 int_param_list = 12;
+ string effect_alias = 3;
+ repeated float float_param_list = 14;
+}
diff --git a/proto/LuaSetOptionNotify.proto b/proto/LuaSetOptionNotify.proto
new file mode 100644
index 00000000..124e1085
--- /dev/null
+++ b/proto/LuaSetOptionNotify.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 316
+// EnetChannelId: 0
+// EnetIsReliable: true
+message LuaSetOptionNotify {
+ string lua_set_param = 8;
+ LuaOptionType option_type = 10;
+
+ enum LuaOptionType {
+ LUA_OPTION_TYPE_NONE = 0;
+ LUA_OPTION_TYPE_PLAYER_INPUT = 1;
+ }
+}
diff --git a/proto/LuminanceStoneChallengeActivityDetailInfo.proto b/proto/LuminanceStoneChallengeActivityDetailInfo.proto
new file mode 100644
index 00000000..a2bdd010
--- /dev/null
+++ b/proto/LuminanceStoneChallengeActivityDetailInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message LuminanceStoneChallengeActivityDetailInfo {
+ uint32 best_score = 11;
+ bool is_content_closed = 6;
+ bool Unk2700_CKGMNLPDFCI = 12;
+ uint32 Unk2700_NNLBIAFMHPA = 15;
+}
diff --git a/proto/LunaRiteAreaFinishNotify.proto b/proto/LunaRiteAreaFinishNotify.proto
new file mode 100644
index 00000000..3eb7f02e
--- /dev/null
+++ b/proto/LunaRiteAreaFinishNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8213
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message LunaRiteAreaFinishNotify {
+ uint32 area_id = 2;
+}
diff --git a/proto/LunaRiteAreaInfo.proto b/proto/LunaRiteAreaInfo.proto
new file mode 100644
index 00000000..6d851bdc
--- /dev/null
+++ b/proto/LunaRiteAreaInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "LunaRiteHintStatusType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message LunaRiteAreaInfo {
+ repeated uint32 sacrifice_list = 11;
+ LunaRiteHintStatusType hint_status = 7;
+ repeated uint32 sacrifice_reward_list = 4;
+ uint32 area_id = 8;
+ uint32 challenge_index = 6;
+}
diff --git a/proto/LunaRiteDetailInfo.proto b/proto/LunaRiteDetailInfo.proto
new file mode 100644
index 00000000..056e1810
--- /dev/null
+++ b/proto/LunaRiteDetailInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "LunaRiteAreaInfo.proto";
+import "LunaRiteHintPoint.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message LunaRiteDetailInfo {
+ repeated LunaRiteHintPoint hint_point = 3;
+ repeated LunaRiteAreaInfo area_info_list = 13;
+}
diff --git a/proto/LunaRiteGroupBundleRegisterNotify.proto b/proto/LunaRiteGroupBundleRegisterNotify.proto
new file mode 100644
index 00000000..a0fd5985
--- /dev/null
+++ b/proto/LunaRiteGroupBundleRegisterNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8465
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message LunaRiteGroupBundleRegisterNotify {
+ uint32 group_link_bundle_id = 11;
+}
diff --git a/proto/LunaRiteHintPoint.proto b/proto/LunaRiteHintPoint.proto
new file mode 100644
index 00000000..009acc55
--- /dev/null
+++ b/proto/LunaRiteHintPoint.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "LunaRiteHintPointType.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message LunaRiteHintPoint {
+ uint32 area_id = 11;
+ uint32 index = 7;
+ LunaRiteHintPointType type = 2;
+ Vector pos = 10;
+}
diff --git a/proto/LunaRiteHintPointRemoveNotify.proto b/proto/LunaRiteHintPointRemoveNotify.proto
new file mode 100644
index 00000000..24485e63
--- /dev/null
+++ b/proto/LunaRiteHintPointRemoveNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8787
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message LunaRiteHintPointRemoveNotify {
+ repeated uint32 hint_point_index = 14;
+}
diff --git a/proto/LunaRiteHintPointReq.proto b/proto/LunaRiteHintPointReq.proto
new file mode 100644
index 00000000..d38bf46d
--- /dev/null
+++ b/proto/LunaRiteHintPointReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8195
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message LunaRiteHintPointReq {
+ uint32 area_id = 13;
+}
diff --git a/proto/LunaRiteHintPointRsp.proto b/proto/LunaRiteHintPointRsp.proto
new file mode 100644
index 00000000..e5c9f8ea
--- /dev/null
+++ b/proto/LunaRiteHintPointRsp.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "LunaRiteHintPoint.proto";
+import "LunaRiteHintStatusType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8765
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message LunaRiteHintPointRsp {
+ LunaRiteHintStatusType hint_status = 4;
+ uint32 area_id = 5;
+ int32 retcode = 13;
+ repeated LunaRiteHintPoint hint_point = 9;
+}
diff --git a/proto/LunaRiteHintPointType.proto b/proto/LunaRiteHintPointType.proto
new file mode 100644
index 00000000..fa5592f6
--- /dev/null
+++ b/proto/LunaRiteHintPointType.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum LunaRiteHintPointType {
+ LUNA_RITE_HINT_POINT_TYPE_NONE = 0;
+ LUNA_RITE_HINT_POINT_TYPE_RUNE = 1;
+ LUNA_RITE_HINT_POINT_TYPE_CHEST = 2;
+}
diff --git a/proto/LunaRiteHintStatusType.proto b/proto/LunaRiteHintStatusType.proto
new file mode 100644
index 00000000..9fd2f410
--- /dev/null
+++ b/proto/LunaRiteHintStatusType.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum LunaRiteHintStatusType {
+ LUNA_RITE_HINT_STATUS_TYPE_DEFAULT = 0;
+ LUNA_RITE_HINT_STATUS_TYPE_NO_COUNT = 1;
+ LUNA_RITE_HINT_STATUS_TYPE_FINISH = 2;
+}
diff --git a/proto/LunaRiteSacrificeReq.proto b/proto/LunaRiteSacrificeReq.proto
new file mode 100644
index 00000000..76a60dec
--- /dev/null
+++ b/proto/LunaRiteSacrificeReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8805
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message LunaRiteSacrificeReq {
+ uint32 area_id = 15;
+ uint32 index = 14;
+}
diff --git a/proto/LunaRiteSacrificeRsp.proto b/proto/LunaRiteSacrificeRsp.proto
new file mode 100644
index 00000000..4f31b7a5
--- /dev/null
+++ b/proto/LunaRiteSacrificeRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8080
+// EnetChannelId: 0
+// EnetIsReliable: true
+message LunaRiteSacrificeRsp {
+ uint32 area_id = 13;
+ repeated uint32 sacrifice_list = 14;
+ uint32 index = 8;
+ int32 retcode = 9;
+}
diff --git a/proto/LunaRiteTakeSacrificeRewardReq.proto b/proto/LunaRiteTakeSacrificeRewardReq.proto
new file mode 100644
index 00000000..5bcb5c79
--- /dev/null
+++ b/proto/LunaRiteTakeSacrificeRewardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8045
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message LunaRiteTakeSacrificeRewardReq {
+ uint32 area_id = 11;
+ uint32 index = 3;
+}
diff --git a/proto/LunaRiteTakeSacrificeRewardRsp.proto b/proto/LunaRiteTakeSacrificeRewardRsp.proto
new file mode 100644
index 00000000..76ebede3
--- /dev/null
+++ b/proto/LunaRiteTakeSacrificeRewardRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8397
+// EnetChannelId: 0
+// EnetIsReliable: true
+message LunaRiteTakeSacrificeRewardRsp {
+ uint32 index = 11;
+ repeated uint32 sacrifice_reward_list = 2;
+ uint32 sacrifice_reward_index = 14;
+ uint32 area_id = 6;
+ int32 retcode = 12;
+}
diff --git a/proto/LunchBoxData.proto b/proto/LunchBoxData.proto
new file mode 100644
index 00000000..6bcb92e8
--- /dev/null
+++ b/proto/LunchBoxData.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message LunchBoxData {
+ map slot_material_map = 3;
+}
diff --git a/proto/MPLevelEntityInfo.proto b/proto/MPLevelEntityInfo.proto
new file mode 100644
index 00000000..4005901e
--- /dev/null
+++ b/proto/MPLevelEntityInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilitySyncStateInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MPLevelEntityInfo {
+ AbilitySyncStateInfo ability_info = 2;
+ uint32 entity_id = 11;
+ uint32 authority_peer_id = 3;
+}
diff --git a/proto/MailChangeNotify.proto b/proto/MailChangeNotify.proto
new file mode 100644
index 00000000..801154f8
--- /dev/null
+++ b/proto/MailChangeNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MailData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1498
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MailChangeNotify {
+ repeated MailData mail_list = 14;
+ repeated uint32 del_mail_id_list = 8;
+}
diff --git a/proto/MailData.proto b/proto/MailData.proto
new file mode 100644
index 00000000..132f21e6
--- /dev/null
+++ b/proto/MailData.proto
@@ -0,0 +1,38 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MailItem.proto";
+import "MailTextContent.proto";
+import "Unk2700_CBJEDMGOBPL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MailData {
+ uint32 mail_id = 1;
+ MailTextContent mail_text_content = 4;
+ repeated MailItem item_list = 7;
+ uint32 send_time = 8;
+ uint32 expire_time = 9;
+ uint32 importance = 10;
+ bool is_read = 11;
+ bool is_attachment_got = 12;
+ uint32 config_id = 13;
+ repeated string argument_list = 14;
+ Unk2700_CBJEDMGOBPL Unk2700_NDPPGJKJOMH = 15;
+}
diff --git a/proto/MailItem.proto b/proto/MailItem.proto
new file mode 100644
index 00000000..3027c93f
--- /dev/null
+++ b/proto/MailItem.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EquipParam.proto";
+import "MaterialDeleteInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MailItem {
+ EquipParam equip_param = 1;
+ MaterialDeleteInfo delete_info = 2;
+}
diff --git a/proto/MailTextContent.proto b/proto/MailTextContent.proto
new file mode 100644
index 00000000..cb062396
--- /dev/null
+++ b/proto/MailTextContent.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MailTextContent {
+ string title = 1;
+ string content = 2;
+ string sender = 3;
+}
diff --git a/proto/MainCoop.proto b/proto/MainCoop.proto
new file mode 100644
index 00000000..9cbdce2d
--- /dev/null
+++ b/proto/MainCoop.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MainCoop {
+ map seen_ending_map = 13;
+ map normal_var_map = 4;
+ uint32 self_confidence = 5;
+ repeated uint32 save_point_id_list = 1;
+ Status status = 6;
+ map temp_var_map = 11;
+ uint32 id = 9;
+
+ enum Status {
+ STATUS_INVALID = 0;
+ STATUS_RUNNING = 1;
+ STATUS_FINISHED = 2;
+ }
+}
diff --git a/proto/MainCoopUpdateNotify.proto b/proto/MainCoopUpdateNotify.proto
new file mode 100644
index 00000000..14c5e05e
--- /dev/null
+++ b/proto/MainCoopUpdateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MainCoop.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1968
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MainCoopUpdateNotify {
+ repeated MainCoop main_coop_list = 5;
+}
diff --git a/proto/MapAreaChangeNotify.proto b/proto/MapAreaChangeNotify.proto
new file mode 100644
index 00000000..c59031a9
--- /dev/null
+++ b/proto/MapAreaChangeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MapAreaInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3378
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MapAreaChangeNotify {
+ repeated MapAreaInfo map_area_info_list = 3;
+}
diff --git a/proto/MapAreaInfo.proto b/proto/MapAreaInfo.proto
new file mode 100644
index 00000000..11a1eb67
--- /dev/null
+++ b/proto/MapAreaInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MapAreaInfo {
+ uint32 map_area_id = 1;
+ bool is_open = 2;
+}
diff --git a/proto/MapInfo.proto b/proto/MapInfo.proto
new file mode 100644
index 00000000..12d23eb3
--- /dev/null
+++ b/proto/MapInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CellInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MapInfo {
+ int32 minx = 1;
+ int32 maxx = 2;
+ int32 minz = 3;
+ int32 maxz = 4;
+ repeated CellInfo cells = 5;
+}
diff --git a/proto/MapMarkFromType.proto b/proto/MapMarkFromType.proto
new file mode 100644
index 00000000..2b4d7f15
--- /dev/null
+++ b/proto/MapMarkFromType.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum MapMarkFromType {
+ MAP_MARK_FROM_TYPE_NONE = 0;
+ MAP_MARK_FROM_TYPE_MONSTER = 1;
+ MAP_MARK_FROM_TYPE_QUEST = 2;
+}
diff --git a/proto/MapMarkPoint.proto b/proto/MapMarkPoint.proto
new file mode 100644
index 00000000..4d034249
--- /dev/null
+++ b/proto/MapMarkPoint.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MapMarkFromType.proto";
+import "MapMarkPointType.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MapMarkPoint {
+ uint32 scene_id = 1;
+ string name = 2;
+ Vector pos = 3;
+ MapMarkPointType point_type = 4;
+ uint32 monster_id = 5;
+ MapMarkFromType from_type = 6;
+ uint32 quest_id = 7;
+}
diff --git a/proto/MapMarkPointType.proto b/proto/MapMarkPointType.proto
new file mode 100644
index 00000000..33893185
--- /dev/null
+++ b/proto/MapMarkPointType.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum MapMarkPointType {
+ MAP_MARK_POINT_TYPE_NPC = 0;
+ MAP_MARK_POINT_TYPE_QUEST = 1;
+ MAP_MARK_POINT_TYPE_SPECIAL = 2;
+ MAP_MARK_POINT_TYPE_MINE = 3;
+ MAP_MARK_POINT_TYPE_COLLECTION = 4;
+ MAP_MARK_POINT_TYPE_MONSTER = 5;
+ MAP_MARK_POINT_TYPE_FISH_POOL = 6;
+}
diff --git a/proto/MapMarkTipsInfo.proto b/proto/MapMarkTipsInfo.proto
new file mode 100644
index 00000000..a5123b15
--- /dev/null
+++ b/proto/MapMarkTipsInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MapMarkTipsType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MapMarkTipsInfo {
+ MapMarkTipsType tips_type = 1;
+ repeated uint32 point_id_list = 2;
+}
diff --git a/proto/MapMarkTipsType.proto b/proto/MapMarkTipsType.proto
new file mode 100644
index 00000000..ab28531b
--- /dev/null
+++ b/proto/MapMarkTipsType.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum MapMarkTipsType {
+ MAP_MARK_TIPS_TYPE_DUNGEON_ELEMENT_TRIAL = 0;
+}
diff --git a/proto/MarkEntityInMinMapNotify.proto b/proto/MarkEntityInMinMapNotify.proto
new file mode 100644
index 00000000..3ab45cba
--- /dev/null
+++ b/proto/MarkEntityInMinMapNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 202
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MarkEntityInMinMapNotify {
+ Vector position = 4;
+ uint32 monster_id = 7;
+ uint32 entity_id = 14;
+}
diff --git a/proto/MarkMapReq.proto b/proto/MarkMapReq.proto
new file mode 100644
index 00000000..78853572
--- /dev/null
+++ b/proto/MarkMapReq.proto
@@ -0,0 +1,39 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MapMarkPoint.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3466
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MarkMapReq {
+ MapMarkPoint mark = 8;
+ MapMarkPoint old = 6;
+ Operation op = 9;
+
+ enum Operation {
+ OPERATION_ADD = 0;
+ OPERATION_MOD = 1;
+ OPERATION_DEL = 2;
+ OPERATION_GET = 3;
+ }
+}
diff --git a/proto/MarkMapRsp.proto b/proto/MarkMapRsp.proto
new file mode 100644
index 00000000..be7d9642
--- /dev/null
+++ b/proto/MarkMapRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MapMarkPoint.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3079
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MarkMapRsp {
+ repeated MapMarkPoint mark_list = 8;
+ int32 retcode = 11;
+}
diff --git a/proto/MarkNewNotify.proto b/proto/MarkNewNotify.proto
new file mode 100644
index 00000000..2af48420
--- /dev/null
+++ b/proto/MarkNewNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1275
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MarkNewNotify {
+ repeated uint32 id_list = 7;
+ uint32 mark_new_type = 11;
+}
diff --git a/proto/MarkTargetInvestigationMonsterNotify.proto b/proto/MarkTargetInvestigationMonsterNotify.proto
new file mode 100644
index 00000000..23ddd68f
--- /dev/null
+++ b/proto/MarkTargetInvestigationMonsterNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1915
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MarkTargetInvestigationMonsterNotify {
+ uint32 scene_id = 11;
+ uint32 monster_id = 4;
+ uint32 group_id = 5;
+ uint32 investigation_monster_id = 12;
+}
diff --git a/proto/MassiveBoxInfo.proto b/proto/MassiveBoxInfo.proto
new file mode 100644
index 00000000..9f09627f
--- /dev/null
+++ b/proto/MassiveBoxInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MassiveBoxInfo {
+ int32 id = 1;
+ uint32 config_id = 2;
+ Vector center = 3;
+ Vector extents = 4;
+ Vector up = 5;
+ Vector forward = 6;
+ Vector right = 7;
+}
diff --git a/proto/MassiveEntityElementOpBatchNotify.proto b/proto/MassiveEntityElementOpBatchNotify.proto
new file mode 100644
index 00000000..0e0bed0a
--- /dev/null
+++ b/proto/MassiveEntityElementOpBatchNotify.proto
@@ -0,0 +1,41 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ShapeBox.proto";
+import "ShapeSphere.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 357
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MassiveEntityElementOpBatchNotify {
+ int32 entity_type = 6;
+ uint32 op_idx = 9;
+ uint32 user_id = 11;
+ uint32 attacker_id = 3;
+ int32 source_element_type = 12;
+ int32 reaction_source_type = 4;
+ float attack_element_durability = 7;
+ oneof check_shape {
+ ShapeSphere shape_sphere = 10;
+ ShapeBox shape_box = 2;
+ }
+}
diff --git a/proto/MassiveEntityState.proto b/proto/MassiveEntityState.proto
new file mode 100644
index 00000000..5e8cf23d
--- /dev/null
+++ b/proto/MassiveEntityState.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MassiveEntityState {
+ uint32 entity_type = 1;
+ int64 obj_id = 2;
+ uint32 element_state = 3;
+}
diff --git a/proto/MassiveEntityStateChangedNotify.proto b/proto/MassiveEntityStateChangedNotify.proto
new file mode 100644
index 00000000..592e0dee
--- /dev/null
+++ b/proto/MassiveEntityStateChangedNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MassiveEntityState.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 370
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MassiveEntityStateChangedNotify {
+ repeated MassiveEntityState massive_entity_state_list = 4;
+}
diff --git a/proto/MassiveGrassInfo.proto b/proto/MassiveGrassInfo.proto
new file mode 100644
index 00000000..4dfa0f81
--- /dev/null
+++ b/proto/MassiveGrassInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MassiveGrassInfo {
+ uint32 id = 1;
+ Vector center = 2;
+ Vector size = 3;
+}
diff --git a/proto/MassivePropParam.proto b/proto/MassivePropParam.proto
new file mode 100644
index 00000000..d848b69b
--- /dev/null
+++ b/proto/MassivePropParam.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MassivePropParam {
+ int32 type = 1;
+ repeated uint32 reaction_info_list = 2;
+ repeated float param_list = 3;
+ uint32 sync_flag = 4;
+}
diff --git a/proto/MassivePropSyncInfo.proto b/proto/MassivePropSyncInfo.proto
new file mode 100644
index 00000000..9d571e70
--- /dev/null
+++ b/proto/MassivePropSyncInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MassivePropParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MassivePropSyncInfo {
+ int64 id = 1;
+ repeated MassivePropParam prop_list = 2;
+}
diff --git a/proto/MassiveWaterInfo.proto b/proto/MassiveWaterInfo.proto
new file mode 100644
index 00000000..54ec8919
--- /dev/null
+++ b/proto/MassiveWaterInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MassiveWaterInfo {
+ int64 id = 1;
+}
diff --git a/proto/MatchPlayerInfo.proto b/proto/MatchPlayerInfo.proto
new file mode 100644
index 00000000..d6529517
--- /dev/null
+++ b/proto/MatchPlayerInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "OnlinePlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MatchPlayerInfo {
+ bool is_agreed = 9;
+ OnlinePlayerInfo player_info = 2;
+}
diff --git a/proto/MatchReason.proto b/proto/MatchReason.proto
new file mode 100644
index 00000000..d0ffeefd
--- /dev/null
+++ b/proto/MatchReason.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum MatchReason {
+ MATCH_REASON_NONE = 0;
+ MATCH_REASON_FINISH = 1;
+ MATCH_REASON_PLAYER_CANCEL = 2;
+ MATCH_REASON_TIMEOUT = 3;
+ MATCH_REASON_PLAYER_CONFIRM = 4;
+ MATCH_REASON_FAILED = 5;
+ MATCH_REASON_SYSTEM_ERROR = 6;
+ MATCH_REASON_INTERRUPTED = 7;
+ MATCH_REASON_MP_UNAVAILABLE = 8;
+ MATCH_REASON_CONFIRM_TIMEOUT = 9;
+}
diff --git a/proto/MatchType.proto b/proto/MatchType.proto
new file mode 100644
index 00000000..e7f0efb8
--- /dev/null
+++ b/proto/MatchType.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum MatchType {
+ MATCH_TYPE_NONE = 0;
+ MATCH_TYPE_DUNGEON = 1;
+ MATCH_TYPE_MP_PLAY = 2;
+ MATCH_TYPE_MECHANICUS = 3;
+ MATCH_TYPE_GENERAL = 4;
+}
diff --git a/proto/Material.proto b/proto/Material.proto
new file mode 100644
index 00000000..91ab3cb6
--- /dev/null
+++ b/proto/Material.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MaterialDeleteInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Material {
+ uint32 count = 1;
+ MaterialDeleteInfo delete_info = 2;
+}
diff --git a/proto/MaterialDeleteInfo.proto b/proto/MaterialDeleteInfo.proto
new file mode 100644
index 00000000..fdfec23d
--- /dev/null
+++ b/proto/MaterialDeleteInfo.proto
@@ -0,0 +1,44 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MaterialDeleteInfo {
+ bool has_delete_config = 1;
+ oneof delete_info {
+ CountDownDelete count_down_delete = 2;
+ DateTimeDelete date_delete = 3;
+ DelayWeekCountDownDelete delay_week_count_down_delete = 4;
+ }
+
+ message CountDownDelete {
+ map delete_time_num_map = 1;
+ uint32 config_count_down_time = 2;
+ }
+
+ message DateTimeDelete {
+ uint32 delete_time = 1;
+ }
+
+ message DelayWeekCountDownDelete {
+ map delete_time_num_map = 1;
+ uint32 config_delay_week = 2;
+ uint32 config_count_down_time = 3;
+ }
+}
diff --git a/proto/MaterialDeleteReturnNotify.proto b/proto/MaterialDeleteReturnNotify.proto
new file mode 100644
index 00000000..b67010b3
--- /dev/null
+++ b/proto/MaterialDeleteReturnNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MaterialDeleteReturnType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 661
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MaterialDeleteReturnNotify {
+ map return_item_map = 5;
+ MaterialDeleteReturnType type = 8;
+ map delete_material_map = 6;
+}
diff --git a/proto/MaterialDeleteReturnType.proto b/proto/MaterialDeleteReturnType.proto
new file mode 100644
index 00000000..5aabd5f3
--- /dev/null
+++ b/proto/MaterialDeleteReturnType.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum MaterialDeleteReturnType {
+ MATERIAL_DELETE_RETURN_TYPE_BAG = 0;
+ MATERIAL_DELETE_RETURN_TYPE_SEED = 1;
+}
diff --git a/proto/MaterialDeleteUpdateNotify.proto b/proto/MaterialDeleteUpdateNotify.proto
new file mode 100644
index 00000000..c993af54
--- /dev/null
+++ b/proto/MaterialDeleteUpdateNotify.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 700
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MaterialDeleteUpdateNotify {}
diff --git a/proto/MaterialInfo.proto b/proto/MaterialInfo.proto
new file mode 100644
index 00000000..96bd4bf4
--- /dev/null
+++ b/proto/MaterialInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MaterialInfo {
+ uint32 count = 11;
+ uint64 guid = 5;
+}
diff --git a/proto/MathQuaternion.proto b/proto/MathQuaternion.proto
new file mode 100644
index 00000000..ce3b3570
--- /dev/null
+++ b/proto/MathQuaternion.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MathQuaternion {
+ float x = 1;
+ float y = 2;
+ float z = 3;
+ float w = 4;
+}
diff --git a/proto/McoinExchangeHcoinReq.proto b/proto/McoinExchangeHcoinReq.proto
new file mode 100644
index 00000000..b02cbcb9
--- /dev/null
+++ b/proto/McoinExchangeHcoinReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 616
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message McoinExchangeHcoinReq {
+ uint32 hcoin = 5;
+ uint32 mcoin_cost = 1;
+}
diff --git a/proto/McoinExchangeHcoinRsp.proto b/proto/McoinExchangeHcoinRsp.proto
new file mode 100644
index 00000000..2f593ff4
--- /dev/null
+++ b/proto/McoinExchangeHcoinRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 687
+// EnetChannelId: 0
+// EnetIsReliable: true
+message McoinExchangeHcoinRsp {
+ uint32 mcoin_cost = 8;
+ uint32 hcoin = 7;
+ int32 retcode = 4;
+}
diff --git a/proto/MechanicusCandidateTeamCreateReq.proto b/proto/MechanicusCandidateTeamCreateReq.proto
new file mode 100644
index 00000000..a7422008
--- /dev/null
+++ b/proto/MechanicusCandidateTeamCreateReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3981
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MechanicusCandidateTeamCreateReq {
+ uint32 difficult_level = 6;
+}
diff --git a/proto/MechanicusCandidateTeamCreateRsp.proto b/proto/MechanicusCandidateTeamCreateRsp.proto
new file mode 100644
index 00000000..631a0a6d
--- /dev/null
+++ b/proto/MechanicusCandidateTeamCreateRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3905
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MechanicusCandidateTeamCreateRsp {
+ uint32 dungeon_id = 1;
+ int32 retcode = 7;
+ uint32 difficult_level = 10;
+}
diff --git a/proto/MechanicusCloseNotify.proto b/proto/MechanicusCloseNotify.proto
new file mode 100644
index 00000000..89a8a638
--- /dev/null
+++ b/proto/MechanicusCloseNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3921
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MechanicusCloseNotify {
+ uint32 mechanicus_id = 6;
+}
diff --git a/proto/MechanicusCoinNotify.proto b/proto/MechanicusCoinNotify.proto
new file mode 100644
index 00000000..6027e3e2
--- /dev/null
+++ b/proto/MechanicusCoinNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3935
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MechanicusCoinNotify {
+ uint32 mechanicus_id = 7;
+ uint32 coin = 4;
+}
diff --git a/proto/MechanicusInfo.proto b/proto/MechanicusInfo.proto
new file mode 100644
index 00000000..1755bd40
--- /dev/null
+++ b/proto/MechanicusInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Uint32Pair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MechanicusInfo {
+ repeated Uint32Pair gear_level_pair_list = 14;
+ repeated uint32 open_sequence_id_list = 7;
+ uint32 coin = 8;
+ uint32 punish_over_time = 12;
+ uint32 mechanicus_id = 10;
+ repeated uint32 finish_difficult_level_list = 13;
+ bool is_finish_teach_dungeon = 4;
+}
diff --git a/proto/MechanicusLevelupGearReq.proto b/proto/MechanicusLevelupGearReq.proto
new file mode 100644
index 00000000..07ad533e
--- /dev/null
+++ b/proto/MechanicusLevelupGearReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3973
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MechanicusLevelupGearReq {
+ uint32 gear_id = 14;
+ uint32 mechanicus_id = 12;
+}
diff --git a/proto/MechanicusLevelupGearRsp.proto b/proto/MechanicusLevelupGearRsp.proto
new file mode 100644
index 00000000..7fee0aca
--- /dev/null
+++ b/proto/MechanicusLevelupGearRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3999
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MechanicusLevelupGearRsp {
+ uint32 gear_id = 7;
+ uint32 mechanicus_id = 2;
+ uint32 after_gear_level = 12;
+ int32 retcode = 8;
+}
diff --git a/proto/MechanicusOpenNotify.proto b/proto/MechanicusOpenNotify.proto
new file mode 100644
index 00000000..553e28fb
--- /dev/null
+++ b/proto/MechanicusOpenNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3907
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MechanicusOpenNotify {
+ uint32 mechanicus_id = 2;
+}
diff --git a/proto/MechanicusSequenceOpenNotify.proto b/proto/MechanicusSequenceOpenNotify.proto
new file mode 100644
index 00000000..970bfbeb
--- /dev/null
+++ b/proto/MechanicusSequenceOpenNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3912
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MechanicusSequenceOpenNotify {
+ uint32 mechanicus_id = 8;
+ uint32 sequence_id = 7;
+}
diff --git a/proto/MechanicusUnlockGearReq.proto b/proto/MechanicusUnlockGearReq.proto
new file mode 100644
index 00000000..943e0454
--- /dev/null
+++ b/proto/MechanicusUnlockGearReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3903
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MechanicusUnlockGearReq {
+ uint32 mechanicus_id = 7;
+ uint32 gear_id = 6;
+}
diff --git a/proto/MechanicusUnlockGearRsp.proto b/proto/MechanicusUnlockGearRsp.proto
new file mode 100644
index 00000000..61d6b345
--- /dev/null
+++ b/proto/MechanicusUnlockGearRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3990
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MechanicusUnlockGearRsp {
+ int32 retcode = 3;
+ uint32 mechanicus_id = 8;
+ uint32 gear_id = 14;
+}
diff --git a/proto/MeetNpcReq.proto b/proto/MeetNpcReq.proto
new file mode 100644
index 00000000..aaeaef68
--- /dev/null
+++ b/proto/MeetNpcReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 503
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MeetNpcReq {
+ uint32 npc_id = 4;
+}
diff --git a/proto/MeetNpcRsp.proto b/proto/MeetNpcRsp.proto
new file mode 100644
index 00000000..ad29af5e
--- /dev/null
+++ b/proto/MeetNpcRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 590
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MeetNpcRsp {
+ int32 retcode = 14;
+ uint32 npc_first_met_id = 8;
+}
diff --git a/proto/MetNpcIdListNotify.proto b/proto/MetNpcIdListNotify.proto
new file mode 100644
index 00000000..22430b44
--- /dev/null
+++ b/proto/MetNpcIdListNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 521
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MetNpcIdListNotify {
+ repeated uint32 npc_first_met_id_list = 9;
+}
diff --git a/proto/MichiaeMatsuriActivityDetailInfo.proto b/proto/MichiaeMatsuriActivityDetailInfo.proto
new file mode 100644
index 00000000..db54354f
--- /dev/null
+++ b/proto/MichiaeMatsuriActivityDetailInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MichiaeMatsuriStage.proto";
+import "Unk2700_HGFFGMCODNC.proto";
+import "Unk2700_NAFAIMHFEFG.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MichiaeMatsuriActivityDetailInfo {
+ repeated Unk2700_HGFFGMCODNC Unk2700_MPNNMCPOLAM = 6;
+ uint32 Unk2700_MAOAHHBCKIA = 13;
+ repeated uint32 Unk2700_BEHAAHHGCLK = 2;
+ repeated Unk2700_NAFAIMHFEFG Unk2700_LEKHKNKHIPO = 10;
+ repeated MichiaeMatsuriStage stage_list = 14;
+}
diff --git a/proto/MichiaeMatsuriStage.proto b/proto/MichiaeMatsuriStage.proto
new file mode 100644
index 00000000..756b9fbc
--- /dev/null
+++ b/proto/MichiaeMatsuriStage.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MichiaeMatsuriStage {
+ bool is_open = 11;
+ uint32 open_time = 5;
+ uint32 stage_id = 12;
+}
diff --git a/proto/MiracleRingDataNotify.proto b/proto/MiracleRingDataNotify.proto
new file mode 100644
index 00000000..2fc4fda9
--- /dev/null
+++ b/proto/MiracleRingDataNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5225
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MiracleRingDataNotify {
+ bool is_gadget_created = 8;
+ uint32 last_take_reward_time = 14;
+ uint32 gadget_entity_id = 12;
+ uint32 last_deliver_item_time = 10;
+ uint32 miracle_ring_cd = 7;
+}
diff --git a/proto/MiracleRingDeliverItemReq.proto b/proto/MiracleRingDeliverItemReq.proto
new file mode 100644
index 00000000..3d888b44
--- /dev/null
+++ b/proto/MiracleRingDeliverItemReq.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "InterOpType.proto";
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5229
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MiracleRingDeliverItemReq {
+ InterOpType op_type = 9;
+ repeated ItemParam item_param_list = 1;
+ repeated uint64 food_weapon_guid_list = 4;
+ uint32 gadget_id = 14;
+ uint32 gadget_entity_id = 5;
+}
diff --git a/proto/MiracleRingDeliverItemRsp.proto b/proto/MiracleRingDeliverItemRsp.proto
new file mode 100644
index 00000000..0fa6e4b5
--- /dev/null
+++ b/proto/MiracleRingDeliverItemRsp.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "InteractType.proto";
+import "InterOpType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5222
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MiracleRingDeliverItemRsp {
+ InteractType interact_type = 15;
+ int32 retcode = 11;
+ InterOpType op_type = 14;
+ uint32 gadget_id = 4;
+ uint32 gadget_entity_id = 9;
+}
diff --git a/proto/MiracleRingDestroyNotify.proto b/proto/MiracleRingDestroyNotify.proto
new file mode 100644
index 00000000..5aa64835
--- /dev/null
+++ b/proto/MiracleRingDestroyNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5244
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MiracleRingDestroyNotify {
+ uint32 entity_id = 7;
+}
diff --git a/proto/MiracleRingDropResultNotify.proto b/proto/MiracleRingDropResultNotify.proto
new file mode 100644
index 00000000..1ba4850e
--- /dev/null
+++ b/proto/MiracleRingDropResultNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5231
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MiracleRingDropResultNotify {
+ int32 last_take_reward_time = 5;
+ int32 drop_result = 9;
+}
diff --git a/proto/MiracleRingTakeRewardReq.proto b/proto/MiracleRingTakeRewardReq.proto
new file mode 100644
index 00000000..aa9d643d
--- /dev/null
+++ b/proto/MiracleRingTakeRewardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5207
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MiracleRingTakeRewardReq {
+ uint32 gadget_id = 11;
+ uint32 gadget_entity_id = 7;
+}
diff --git a/proto/MiracleRingTakeRewardRsp.proto b/proto/MiracleRingTakeRewardRsp.proto
new file mode 100644
index 00000000..a090f138
--- /dev/null
+++ b/proto/MiracleRingTakeRewardRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5202
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MiracleRingTakeRewardRsp {
+ int32 retcode = 14;
+}
diff --git a/proto/MistTrialActivityDetailInfo.proto b/proto/MistTrialActivityDetailInfo.proto
new file mode 100644
index 00000000..cc5fde03
--- /dev/null
+++ b/proto/MistTrialActivityDetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MistTrialLevelData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MistTrialActivityDetailInfo {
+ repeated MistTrialLevelData trial_level_data_list = 5;
+}
diff --git a/proto/MistTrialDunegonFailNotify.proto b/proto/MistTrialDunegonFailNotify.proto
new file mode 100644
index 00000000..e60ea919
--- /dev/null
+++ b/proto/MistTrialDunegonFailNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8135
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MistTrialDunegonFailNotify {
+ int32 dungeon_id = 9;
+}
diff --git a/proto/MistTrialGetChallengeMissionReq.proto b/proto/MistTrialGetChallengeMissionReq.proto
new file mode 100644
index 00000000..590e1e1e
--- /dev/null
+++ b/proto/MistTrialGetChallengeMissionReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8893
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MistTrialGetChallengeMissionReq {
+ uint32 trial_id = 9;
+}
diff --git a/proto/MistTrialGetChallengeMissionRsp.proto b/proto/MistTrialGetChallengeMissionRsp.proto
new file mode 100644
index 00000000..e62dd673
--- /dev/null
+++ b/proto/MistTrialGetChallengeMissionRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MistTrialMissionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8508
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MistTrialGetChallengeMissionRsp {
+ uint32 trial_id = 1;
+ repeated MistTrialMissionInfo mission_info_list = 15;
+ int32 retcode = 11;
+}
diff --git a/proto/MistTrialLevelData.proto b/proto/MistTrialLevelData.proto
new file mode 100644
index 00000000..5b55becd
--- /dev/null
+++ b/proto/MistTrialLevelData.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MistTrialLevelData {
+ uint32 open_time = 1;
+ bool is_open = 12;
+ uint32 level_id = 7;
+}
diff --git a/proto/MistTrialMissionInfo.proto b/proto/MistTrialMissionInfo.proto
new file mode 100644
index 00000000..0f09b441
--- /dev/null
+++ b/proto/MistTrialMissionInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MistTrialMissionInfo {
+ uint32 param = 9;
+ uint32 watcher_list_id = 13;
+}
diff --git a/proto/MistTrialSelectAvatarAndEnterDungeonReq.proto b/proto/MistTrialSelectAvatarAndEnterDungeonReq.proto
new file mode 100644
index 00000000..711b128e
--- /dev/null
+++ b/proto/MistTrialSelectAvatarAndEnterDungeonReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8666
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MistTrialSelectAvatarAndEnterDungeonReq {
+ uint32 trial_id = 4;
+ repeated uint32 select_trial_avatar_id_list = 10;
+ uint32 enter_point_id = 7;
+}
diff --git a/proto/MistTrialSelectAvatarAndEnterDungeonRsp.proto b/proto/MistTrialSelectAvatarAndEnterDungeonRsp.proto
new file mode 100644
index 00000000..42c065eb
--- /dev/null
+++ b/proto/MistTrialSelectAvatarAndEnterDungeonRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8239
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MistTrialSelectAvatarAndEnterDungeonRsp {
+ uint32 trial_id = 1;
+ int32 retcode = 2;
+}
diff --git a/proto/ModifierAction.proto b/proto/ModifierAction.proto
new file mode 100644
index 00000000..7ece1bba
--- /dev/null
+++ b/proto/ModifierAction.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum ModifierAction {
+ MODIFIER_ACTION_ADDED = 0;
+ MODIFIER_ACTION_REMOVED = 1;
+}
diff --git a/proto/ModifierDurability.proto b/proto/ModifierDurability.proto
new file mode 100644
index 00000000..80a78999
--- /dev/null
+++ b/proto/ModifierDurability.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ModifierDurability {
+ float reduce_ratio = 1;
+ float remaining_durability = 2;
+}
diff --git a/proto/ModifierProperty.proto b/proto/ModifierProperty.proto
new file mode 100644
index 00000000..ab235f75
--- /dev/null
+++ b/proto/ModifierProperty.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityString.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ModifierProperty {
+ AbilityString key = 15;
+ float value = 5;
+}
diff --git a/proto/MonsterAIConfigHashNotify.proto b/proto/MonsterAIConfigHashNotify.proto
new file mode 100644
index 00000000..fe392591
--- /dev/null
+++ b/proto/MonsterAIConfigHashNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3039
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MonsterAIConfigHashNotify {
+ uint32 job_id = 10;
+ uint32 entity_id = 15;
+ int32 hash_value = 11;
+}
diff --git a/proto/MonsterAlertChangeNotify.proto b/proto/MonsterAlertChangeNotify.proto
new file mode 100644
index 00000000..983ed236
--- /dev/null
+++ b/proto/MonsterAlertChangeNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 363
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MonsterAlertChangeNotify {
+ uint32 avatar_entity_id = 15;
+ repeated uint32 monster_entity_list = 5;
+ uint32 is_alert = 13;
+}
diff --git a/proto/MonsterBornType.proto b/proto/MonsterBornType.proto
new file mode 100644
index 00000000..50fc07b2
--- /dev/null
+++ b/proto/MonsterBornType.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum MonsterBornType {
+ MONSTER_BORN_TYPE_NONE = 0;
+ MONSTER_BORN_TYPE_DEFAULT = 1;
+ MONSTER_BORN_TYPE_RANDOM = 2;
+}
diff --git a/proto/MonsterForceAlertNotify.proto b/proto/MonsterForceAlertNotify.proto
new file mode 100644
index 00000000..82d367bb
--- /dev/null
+++ b/proto/MonsterForceAlertNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 395
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MonsterForceAlertNotify {
+ uint32 monster_entity_id = 13;
+}
diff --git a/proto/MonsterPointArrayRouteUpdateNotify.proto b/proto/MonsterPointArrayRouteUpdateNotify.proto
new file mode 100644
index 00000000..292113a1
--- /dev/null
+++ b/proto/MonsterPointArrayRouteUpdateNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MonsterRoute.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3410
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MonsterPointArrayRouteUpdateNotify {
+ uint32 entity_id = 7;
+ MonsterRoute monster_route = 5;
+}
diff --git a/proto/MonsterRoute.proto b/proto/MonsterRoute.proto
new file mode 100644
index 00000000..0162ce81
--- /dev/null
+++ b/proto/MonsterRoute.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RoutePoint.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MonsterRoute {
+ repeated RoutePoint route_points = 1;
+ uint32 speed_level = 2;
+ uint32 route_type = 3;
+ float arrive_range = 4;
+}
diff --git a/proto/MonsterSummonTagNotify.proto b/proto/MonsterSummonTagNotify.proto
new file mode 100644
index 00000000..a905627e
--- /dev/null
+++ b/proto/MonsterSummonTagNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1372
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MonsterSummonTagNotify {
+ map summon_tag_map = 1;
+ uint32 monster_entity_id = 8;
+}
diff --git a/proto/MoonfinTrialActivityDetailInfo.proto b/proto/MoonfinTrialActivityDetailInfo.proto
new file mode 100644
index 00000000..96780196
--- /dev/null
+++ b/proto/MoonfinTrialActivityDetailInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MoonfinTrialLevelInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MoonfinTrialActivityDetailInfo {
+ map level_info_map = 5;
+ uint32 special_fish_count = 11;
+}
diff --git a/proto/MoonfinTrialLevelInfo.proto b/proto/MoonfinTrialLevelInfo.proto
new file mode 100644
index 00000000..c460ade3
--- /dev/null
+++ b/proto/MoonfinTrialLevelInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MoonfinTrialLevelInfo {
+ uint32 best_record = 3;
+ uint32 open_time = 1;
+}
diff --git a/proto/MotionInfo.proto b/proto/MotionInfo.proto
new file mode 100644
index 00000000..9b9fb64b
--- /dev/null
+++ b/proto/MotionInfo.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MotionState.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MotionInfo {
+ Vector pos = 1;
+ Vector rot = 2;
+ Vector speed = 3;
+ MotionState state = 4;
+ repeated Vector params = 5;
+ Vector ref_pos = 6;
+ uint32 ref_id = 7;
+ uint32 scene_time = 8;
+ uint64 interval_velocity = 9;
+}
diff --git a/proto/MotionState.proto b/proto/MotionState.proto
new file mode 100644
index 00000000..d86e31ec
--- /dev/null
+++ b/proto/MotionState.proto
@@ -0,0 +1,80 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum MotionState {
+ MOTION_STATE_NONE = 0;
+ MOTION_STATE_RESET = 1;
+ MOTION_STATE_STANDBY = 2;
+ MOTION_STATE_STANDBY_MOVE = 3;
+ MOTION_STATE_WALK = 4;
+ MOTION_STATE_RUN = 5;
+ MOTION_STATE_DASH = 6;
+ MOTION_STATE_CLIMB = 7;
+ MOTION_STATE_CLIMB_JUMP = 8;
+ MOTION_STATE_STANDBY_TO_CLIMB = 9;
+ MOTION_STATE_FIGHT = 10;
+ MOTION_STATE_JUMP = 11;
+ MOTION_STATE_DROP = 12;
+ MOTION_STATE_FLY = 13;
+ MOTION_STATE_SWIM_MOVE = 14;
+ MOTION_STATE_SWIM_IDLE = 15;
+ MOTION_STATE_SWIM_DASH = 16;
+ MOTION_STATE_SWIM_JUMP = 17;
+ MOTION_STATE_SLIP = 18;
+ MOTION_STATE_GO_UPSTAIRS = 19;
+ MOTION_STATE_FALL_ON_GROUND = 20;
+ MOTION_STATE_JUMP_UP_WALL_FOR_STANDBY = 21;
+ MOTION_STATE_JUMP_OFF_WALL = 22;
+ MOTION_STATE_POWERED_FLY = 23;
+ MOTION_STATE_LADDER_IDLE = 24;
+ MOTION_STATE_LADDER_MOVE = 25;
+ MOTION_STATE_LADDER_SLIP = 26;
+ MOTION_STATE_STANDBY_TO_LADDER = 27;
+ MOTION_STATE_LADDER_TO_STANDBY = 28;
+ MOTION_STATE_DANGER_STANDBY = 29;
+ MOTION_STATE_DANGER_STANDBY_MOVE = 30;
+ MOTION_STATE_DANGER_WALK = 31;
+ MOTION_STATE_DANGER_RUN = 32;
+ MOTION_STATE_DANGER_DASH = 33;
+ MOTION_STATE_CROUCH_IDLE = 34;
+ MOTION_STATE_CROUCH_MOVE = 35;
+ MOTION_STATE_CROUCH_ROLL = 36;
+ MOTION_STATE_NOTIFY = 37;
+ MOTION_STATE_LAND_SPEED = 38;
+ MOTION_STATE_MOVE_FAIL_ACK = 39;
+ MOTION_STATE_WATERFALL = 40;
+ MOTION_STATE_DASH_BEFORE_SHAKE = 41;
+ MOTION_STATE_SIT_IDLE = 42;
+ MOTION_STATE_FORCE_SET_POS = 43;
+ MOTION_STATE_QUEST_FORCE_DRAG = 44;
+ MOTION_STATE_FOLLOW_ROUTE = 45;
+ MOTION_STATE_SKIFF_BOARDING = 46;
+ MOTION_STATE_SKIFF_NORMAL = 47;
+ MOTION_STATE_SKIFF_DASH = 48;
+ MOTION_STATE_SKIFF_POWERED_DASH = 49;
+ MOTION_STATE_DESTROY_VEHICLE = 50;
+ MOTION_STATE_FLY_IDLE = 51;
+ MOTION_STATE_FLY_SLOW = 52;
+ MOTION_STATE_FLY_FAST = 53;
+ MOTION_STATE_NUM = 54;
+ MOTION_STATE_Unk2700_OOFNNHKLEFE = 55;
+ MOTION_STATE_Unk2700_KMIGLMEGNOK = 56;
+}
diff --git a/proto/MovingPlatformType.proto b/proto/MovingPlatformType.proto
new file mode 100644
index 00000000..f832c5e5
--- /dev/null
+++ b/proto/MovingPlatformType.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum MovingPlatformType {
+ MOVING_PLATFORM_TYPE_NONE = 0;
+ MOVING_PLATFORM_TYPE_USE_CONFIG = 1;
+ MOVING_PLATFORM_TYPE_ABILITY = 2;
+ MOVING_PLATFORM_TYPE_ROUTE = 3;
+}
diff --git a/proto/MpBlockNotify.proto b/proto/MpBlockNotify.proto
new file mode 100644
index 00000000..059cfe04
--- /dev/null
+++ b/proto/MpBlockNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1801
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MpBlockNotify {
+ uint32 end_time = 13;
+}
diff --git a/proto/MpPlayGuestReplyInviteReq.proto b/proto/MpPlayGuestReplyInviteReq.proto
new file mode 100644
index 00000000..d199046a
--- /dev/null
+++ b/proto/MpPlayGuestReplyInviteReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1848
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MpPlayGuestReplyInviteReq {
+ uint32 mp_play_id = 3;
+ bool is_agree = 15;
+}
diff --git a/proto/MpPlayGuestReplyInviteRsp.proto b/proto/MpPlayGuestReplyInviteRsp.proto
new file mode 100644
index 00000000..fd945866
--- /dev/null
+++ b/proto/MpPlayGuestReplyInviteRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1850
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MpPlayGuestReplyInviteRsp {
+ int32 retcode = 4;
+ uint32 mp_play_id = 10;
+}
diff --git a/proto/MpPlayGuestReplyNotify.proto b/proto/MpPlayGuestReplyNotify.proto
new file mode 100644
index 00000000..b78671fd
--- /dev/null
+++ b/proto/MpPlayGuestReplyNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1812
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MpPlayGuestReplyNotify {
+ uint32 uid = 7;
+ bool is_agree = 4;
+ uint32 mp_play_id = 14;
+}
diff --git a/proto/MpPlayInviteResultNotify.proto b/proto/MpPlayInviteResultNotify.proto
new file mode 100644
index 00000000..f364b914
--- /dev/null
+++ b/proto/MpPlayInviteResultNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1815
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MpPlayInviteResultNotify {
+ uint32 mp_play_id = 11;
+ bool all_argee = 10;
+}
diff --git a/proto/MpPlayOwnerCheckReq.proto b/proto/MpPlayOwnerCheckReq.proto
new file mode 100644
index 00000000..82b0d9f7
--- /dev/null
+++ b/proto/MpPlayOwnerCheckReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1814
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MpPlayOwnerCheckReq {
+ uint32 mp_play_id = 9;
+ bool is_skip_match = 3;
+}
diff --git a/proto/MpPlayOwnerCheckRsp.proto b/proto/MpPlayOwnerCheckRsp.proto
new file mode 100644
index 00000000..9ff72782
--- /dev/null
+++ b/proto/MpPlayOwnerCheckRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1847
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MpPlayOwnerCheckRsp {
+ uint32 wrong_uid = 4;
+ bool is_skip_match = 15;
+ uint32 mp_play_id = 10;
+ int32 retcode = 12;
+}
diff --git a/proto/MpPlayOwnerInviteNotify.proto b/proto/MpPlayOwnerInviteNotify.proto
new file mode 100644
index 00000000..07752f4e
--- /dev/null
+++ b/proto/MpPlayOwnerInviteNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1835
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MpPlayOwnerInviteNotify {
+ uint32 cd = 12;
+ uint32 mp_play_id = 13;
+ bool is_remain_reward = 10;
+}
diff --git a/proto/MpPlayOwnerStartInviteReq.proto b/proto/MpPlayOwnerStartInviteReq.proto
new file mode 100644
index 00000000..6354ed12
--- /dev/null
+++ b/proto/MpPlayOwnerStartInviteReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1837
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MpPlayOwnerStartInviteReq {
+ uint32 mp_play_id = 3;
+ bool is_skip_match = 6;
+}
diff --git a/proto/MpPlayOwnerStartInviteRsp.proto b/proto/MpPlayOwnerStartInviteRsp.proto
new file mode 100644
index 00000000..1d79cd6c
--- /dev/null
+++ b/proto/MpPlayOwnerStartInviteRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1823
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MpPlayOwnerStartInviteRsp {
+ int32 retcode = 14;
+ uint32 mp_play_id = 3;
+ bool is_skip_match = 9;
+}
diff --git a/proto/MpPlayPrepareInterruptNotify.proto b/proto/MpPlayPrepareInterruptNotify.proto
new file mode 100644
index 00000000..689fd614
--- /dev/null
+++ b/proto/MpPlayPrepareInterruptNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1813
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MpPlayPrepareInterruptNotify {
+ uint32 mp_play_id = 12;
+}
diff --git a/proto/MpPlayPrepareNotify.proto b/proto/MpPlayPrepareNotify.proto
new file mode 100644
index 00000000..55914b93
--- /dev/null
+++ b/proto/MpPlayPrepareNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1833
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MpPlayPrepareNotify {
+ uint32 mp_play_id = 9;
+ uint32 prepare_end_time = 11;
+}
diff --git a/proto/MpPlayRewardInfo.proto b/proto/MpPlayRewardInfo.proto
new file mode 100644
index 00000000..67c0d65f
--- /dev/null
+++ b/proto/MpPlayRewardInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MpPlayRewardInfo {
+ uint32 resin = 1;
+ repeated uint32 remain_uid_list = 2;
+ repeated uint32 qualify_uid_list = 3;
+}
diff --git a/proto/MpSettingType.proto b/proto/MpSettingType.proto
new file mode 100644
index 00000000..39e914c7
--- /dev/null
+++ b/proto/MpSettingType.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum MpSettingType {
+ MP_SETTING_TYPE_NO_ENTER = 0;
+ MP_SETTING_TYPE_ENTER_FREELY = 1;
+ MP_SETTING_TYPE_ENTER_AFTER_APPLY = 2;
+}
diff --git a/proto/MsgParam.proto b/proto/MsgParam.proto
new file mode 100644
index 00000000..1ec1a621
--- /dev/null
+++ b/proto/MsgParam.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MsgParam {
+ oneof param {
+ uint32 int_param = 9;
+ float flt_param = 7;
+ string str_param = 4;
+ }
+}
diff --git a/proto/MultistagePlayEndNotify.proto b/proto/MultistagePlayEndNotify.proto
new file mode 100644
index 00000000..15a1efb2
--- /dev/null
+++ b/proto/MultistagePlayEndNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5355
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MultistagePlayEndNotify {
+ uint32 group_id = 5;
+ uint32 play_index = 13;
+}
diff --git a/proto/MultistagePlayFinishStageReq.proto b/proto/MultistagePlayFinishStageReq.proto
new file mode 100644
index 00000000..4cc83939
--- /dev/null
+++ b/proto/MultistagePlayFinishStageReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5398
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MultistagePlayFinishStageReq {
+ uint32 group_id = 12;
+ uint32 play_index = 15;
+}
diff --git a/proto/MultistagePlayFinishStageRsp.proto b/proto/MultistagePlayFinishStageRsp.proto
new file mode 100644
index 00000000..1ed6bd3f
--- /dev/null
+++ b/proto/MultistagePlayFinishStageRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5381
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MultistagePlayFinishStageRsp {
+ int32 retcode = 11;
+ uint32 group_id = 12;
+ uint32 play_index = 6;
+}
diff --git a/proto/MultistagePlayInfo.proto b/proto/MultistagePlayInfo.proto
new file mode 100644
index 00000000..937e5c90
--- /dev/null
+++ b/proto/MultistagePlayInfo.proto
@@ -0,0 +1,43 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HideAndSeekStageInfo.proto";
+import "InBattleChessInfo.proto";
+import "InBattleFleurFairInfo.proto";
+import "InBattleMechanicusInfo.proto";
+import "IrodoriChessInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MultistagePlayInfo {
+ uint32 play_index = 13;
+ uint32 play_type = 11;
+ uint32 stage_type = 10;
+ uint32 duration = 8;
+ uint32 group_id = 12;
+ uint32 begin_time = 9;
+ uint32 stage_index = 1;
+ oneof detail {
+ InBattleMechanicusInfo mechanicus_info = 1334;
+ InBattleFleurFairInfo fleur_fair_info = 1064;
+ HideAndSeekStageInfo hide_and_seek_info = 108;
+ InBattleChessInfo chess_info = 1758;
+ IrodoriChessInfo irodori_chess_info = 531;
+ }
+}
diff --git a/proto/MultistagePlayInfoNotify.proto b/proto/MultistagePlayInfoNotify.proto
new file mode 100644
index 00000000..b892507d
--- /dev/null
+++ b/proto/MultistagePlayInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MultistagePlayInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5372
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MultistagePlayInfoNotify {
+ MultistagePlayInfo info = 13;
+}
diff --git a/proto/MultistagePlaySettleNotify.proto b/proto/MultistagePlaySettleNotify.proto
new file mode 100644
index 00000000..b26731fc
--- /dev/null
+++ b/proto/MultistagePlaySettleNotify.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "InBattleChessSettleInfo.proto";
+import "InBattleMechanicusSettleInfo.proto";
+import "IrodoriChessSettleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5313
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MultistagePlaySettleNotify {
+ uint32 play_index = 14;
+ uint32 group_id = 4;
+ oneof detail {
+ InBattleMechanicusSettleInfo mechanicus_settle_info = 1402;
+ InBattleChessSettleInfo chess_settle_info = 1283;
+ IrodoriChessSettleInfo irodori_chess_settle_info = 612;
+ }
+}
diff --git a/proto/MultistagePlayStageEndNotify.proto b/proto/MultistagePlayStageEndNotify.proto
new file mode 100644
index 00000000..ea24fc09
--- /dev/null
+++ b/proto/MultistagePlayStageEndNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5379
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MultistagePlayStageEndNotify {
+ uint32 group_id = 15;
+ uint32 play_index = 9;
+}
diff --git a/proto/MultistageSettleWatcherInfo.proto b/proto/MultistageSettleWatcherInfo.proto
new file mode 100644
index 00000000..8eaa1847
--- /dev/null
+++ b/proto/MultistageSettleWatcherInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MultistageSettleWatcherInfo {
+ uint32 total_progress = 13;
+ uint32 cur_progress = 5;
+ uint32 watcher_id = 7;
+ bool is_inverse = 12;
+}
diff --git a/proto/MuqadasPotionDetailInfo.proto b/proto/MuqadasPotionDetailInfo.proto
new file mode 100644
index 00000000..b840574a
--- /dev/null
+++ b/proto/MuqadasPotionDetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_IIBHKLNAHHC.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MuqadasPotionDetailInfo {
+ repeated Unk3000_IIBHKLNAHHC Unk3000_IBEFNBFGAOP = 8;
+}
diff --git a/proto/MusicBeatmap.proto b/proto/MusicBeatmap.proto
new file mode 100644
index 00000000..399286e2
--- /dev/null
+++ b/proto/MusicBeatmap.proto
@@ -0,0 +1,11 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+import "MusicBeatmapList.proto";
+
+message MusicBeatmap {
+ uint32 music_id = 1;
+ repeated MusicBeatmapList beatmap_item_list = 2;
+}
diff --git a/proto/MusicBeatmapList.proto b/proto/MusicBeatmapList.proto
new file mode 100644
index 00000000..13b01cf0
--- /dev/null
+++ b/proto/MusicBeatmapList.proto
@@ -0,0 +1,10 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+import "MusicBeatmapNote.proto";
+
+message MusicBeatmapList {
+ repeated MusicBeatmapNote beatmap_note_list = 1;
+}
diff --git a/proto/MusicBeatmapNote.proto b/proto/MusicBeatmapNote.proto
new file mode 100644
index 00000000..cde64d3a
--- /dev/null
+++ b/proto/MusicBeatmapNote.proto
@@ -0,0 +1,9 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MusicBeatmapNote {
+ uint32 start_time = 1;
+ uint32 end_time = 2;
+}
diff --git a/proto/MusicBriefInfo.proto b/proto/MusicBriefInfo.proto
new file mode 100644
index 00000000..deba0f42
--- /dev/null
+++ b/proto/MusicBriefInfo.proto
@@ -0,0 +1,43 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MusicBriefInfo {
+ uint64 Unk2700_JNENCBCGPGO = 5;
+ bool Unk2700_OJBPHCIDAEB = 8;
+ bool Unk2700_FGCJEGHOKPG = 1;
+ uint32 Unk2700_DFIBAIILJHN = 2;
+ uint32 Unk2700_MKBNLEKMIMD = 1182;
+ uint32 Unk2700_PINGIIAANMO = 12;
+ string Unk2700_MONNIDCNDFI = 10;
+ uint32 version = 15;
+ uint32 Unk2700_GGHNLPMAGME = 3;
+ repeated uint32 Unk2700_GDCGOMNBMEO = 1002;
+ repeated uint32 Unk2700_JAEONBMBFJJ = 982;
+ bool Unk2700_GBCGGDONMCD = 9;
+ uint32 Unk2700_LPEKFJBNEJM = 1822;
+ bool Unk2700_DNLEGADDHKM = 11;
+ uint32 Unk2700_BFMNMPPNBHH = 13;
+ uint32 max_score = 14;
+ uint32 Unk2700_KAMOCHAKPGP = 576;
+ uint32 Unk2700_KLPHBLCIOEC = 7;
+ uint64 Unk2700_CEPGMKAHHCD = 4;
+ uint32 Unk2700_PMCPLPMJCEC = 6;
+}
diff --git a/proto/MusicGameActivityDetailInfo.proto b/proto/MusicGameActivityDetailInfo.proto
new file mode 100644
index 00000000..5dc1bd2b
--- /dev/null
+++ b/proto/MusicGameActivityDetailInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MusicBriefInfo.proto";
+import "MusicGameRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MusicGameActivityDetailInfo {
+ repeated MusicBriefInfo Unk2700_HMNHCPMFDCP = 4;
+ repeated MusicBriefInfo Unk2700_FOFAFGKAEJM = 7;
+ map music_game_record_map = 8;
+}
diff --git a/proto/MusicGameCreateBeatmapReq.proto b/proto/MusicGameCreateBeatmapReq.proto
new file mode 100644
index 00000000..4a87f750
--- /dev/null
+++ b/proto/MusicGameCreateBeatmapReq.proto
@@ -0,0 +1,22 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+import "MusicBeatmap.proto";
+import "MusicBriefInfo.proto";
+import "MusicGameUnknown1Enum.proto";
+
+// CmdId: 6326
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MusicGameCreateBeatmapReq {
+ MusicGameUnknown1Enum unknown_enum1 = 12;
+ oneof beatmap {
+ MusicBeatmap music_record = 10;
+ }
+ oneof brief_info {
+ MusicBriefInfo music_brief_info = 1021;
+ }
+}
diff --git a/proto/MusicGameCreateBeatmapRsp.proto b/proto/MusicGameCreateBeatmapRsp.proto
new file mode 100644
index 00000000..99a7231b
--- /dev/null
+++ b/proto/MusicGameCreateBeatmapRsp.proto
@@ -0,0 +1,16 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+import "MusicGameUnknown1Enum.proto";
+
+// CmdId: 6347
+// EnetChannelId: 0
+// EnetIsReliable: true
+
+message MusicGameCreateBeatmapRsp {
+ int32 retcode = 10;
+ MusicGameUnknown1Enum unknown_enum1 = 12;
+ uint64 music_share_id = 5;
+}
diff --git a/proto/MusicGameGetBeatmapReq.proto b/proto/MusicGameGetBeatmapReq.proto
new file mode 100644
index 00000000..e33bbb68
--- /dev/null
+++ b/proto/MusicGameGetBeatmapReq.proto
@@ -0,0 +1,20 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+import "MusicGameUnknown2Enum.proto";
+import "MusicGameGetBeatmapReqType.proto";
+import "MusicGameUnknown1Enum.proto";
+
+// CmdId: 6318
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MusicGameGetBeatmapReq {
+ MusicGameUnknown1Enum unknown_enum1 = 1;
+ uint64 music_share_id = 10;
+ MusicGameUnknown2Enum unknown_enum2 = 12;
+ bool CDFOGGDLKNA = 15;
+ MusicGameGetBeatmapReqType req_type = 11;
+}
diff --git a/proto/MusicGameGetBeatmapReqType.proto b/proto/MusicGameGetBeatmapReqType.proto
new file mode 100644
index 00000000..efad4a34
--- /dev/null
+++ b/proto/MusicGameGetBeatmapReqType.proto
@@ -0,0 +1,15 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum MusicGameGetBeatmapReqType {
+ MusicGameGetBeatmapReqType_u1 = 0;
+ // edit_beatmap
+ MusicGameGetBeatmapReqType_u2 = 1;
+ // play_others
+ MusicGameGetBeatmapReqType_u3 = 2;
+ // try
+ MusicGameGetBeatmapReqType_u4 = 3;
+ MusicGameGetBeatmapReqType_u5 = 4;
+}
diff --git a/proto/MusicGameGetBeatmapRsp.proto b/proto/MusicGameGetBeatmapRsp.proto
new file mode 100644
index 00000000..fa355f96
--- /dev/null
+++ b/proto/MusicGameGetBeatmapRsp.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+import "MusicGameGetBeatmapReqType.proto";
+import "MusicBeatmap.proto";
+import "MusicBriefInfo.proto";
+import "MusicGameUnknown1Enum.proto";
+
+// CmdId: 6309
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MusicGameGetBeatmapRsp {
+ int32 retcode = 13;
+ MusicGameUnknown1Enum unknown_enum1 = 1;
+ uint64 music_share_id = 5;
+ MusicGameGetBeatmapReqType req_type = 2;
+ oneof beatmap {
+ MusicBeatmap music_record = 9;
+ }
+ oneof brief_info {
+ MusicBriefInfo music_brief_info = 953;
+ }
+}
diff --git a/proto/MusicGameRecord.proto b/proto/MusicGameRecord.proto
new file mode 100644
index 00000000..9d679af7
--- /dev/null
+++ b/proto/MusicGameRecord.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MusicGameRecord {
+ bool is_unlock = 9;
+ uint32 max_score = 11;
+ uint32 max_combo = 6;
+}
diff --git a/proto/MusicGameSearchBeatmapReq.proto b/proto/MusicGameSearchBeatmapReq.proto
new file mode 100644
index 00000000..9de25162
--- /dev/null
+++ b/proto/MusicGameSearchBeatmapReq.proto
@@ -0,0 +1,15 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+import "MusicGameUnknown1Enum.proto";
+
+// CmdId: 6343
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MusicGameSearchBeatmapReq {
+ MusicGameUnknown1Enum unknown_enum1 = 10;
+ uint64 music_share_id = 6;
+}
diff --git a/proto/MusicGameSearchBeatmapRsp.proto b/proto/MusicGameSearchBeatmapRsp.proto
new file mode 100644
index 00000000..4f377e07
--- /dev/null
+++ b/proto/MusicGameSearchBeatmapRsp.proto
@@ -0,0 +1,19 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+import "MusicBriefInfo.proto";
+import "MusicGameUnknown1Enum.proto";
+
+// CmdId: 6304
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MusicGameSearchBeatmapRsp {
+ int32 retcode = 9;
+ MusicGameUnknown1Enum unknown_enum1 = 3;
+ uint64 music_share_id = 4;
+ oneof ELBEIFGDBMM {
+ MusicBriefInfo music_brief_info = 11;
+ }
+}
diff --git a/proto/MusicGameSettleReq.proto b/proto/MusicGameSettleReq.proto
new file mode 100644
index 00000000..3036ea64
--- /dev/null
+++ b/proto/MusicGameSettleReq.proto
@@ -0,0 +1,45 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8892
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MusicGameSettleReq {
+ repeated uint32 Unk2700_GDPKOANEDEB = 384;
+ uint32 Unk2700_NMHGADLANMM = 795;
+ repeated uint32 Unk2700_NNHGOCJLKFH = 4;
+ uint32 Unk2700_NCHHEJNFECG = 15;
+ uint32 score = 9;
+ uint64 Unk2700_CEPGMKAHHCD = 6;
+ uint32 Unk2700_MMHHGALFHGA = 13;
+ bool Unk2700_CBLIJHDFKHA = 422;
+ uint32 max_combo = 5;
+ uint32 Unk2700_FBLBGPHMLAL = 1058;
+ float speed = 409;
+ bool Unk2700_IOKPIKJDEHG = 3;
+ uint32 combo = 1;
+ uint32 music_basic_id = 7;
+ uint32 Unk2700_DIMBABOGNEM = 2;
+ uint32 Unk2700_IOMOHEKJJLJ = 1953;
+ uint32 correct_hit = 14;
+ bool Unk2700_LKJNLDJAGGL = 1285;
+}
diff --git a/proto/MusicGameSettleRsp.proto b/proto/MusicGameSettleRsp.proto
new file mode 100644
index 00000000..b34b30c2
--- /dev/null
+++ b/proto/MusicGameSettleRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8673
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MusicGameSettleRsp {
+ int32 retcode = 11;
+ uint32 music_basic_id = 5;
+ bool is_new_record = 6;
+ bool is_unlock_next_level = 2;
+ uint64 Unk2700_CEPGMKAHHCD = 10;
+}
diff --git a/proto/MusicGameStartReq.proto b/proto/MusicGameStartReq.proto
new file mode 100644
index 00000000..2c9a76c0
--- /dev/null
+++ b/proto/MusicGameStartReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8406
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MusicGameStartReq {
+ uint32 music_basic_id = 2;
+ bool Unk2700_IOKPIKJDEHG = 11;
+ uint64 Unk2700_CEPGMKAHHCD = 3;
+}
diff --git a/proto/MusicGameStartRsp.proto b/proto/MusicGameStartRsp.proto
new file mode 100644
index 00000000..f23845ef
--- /dev/null
+++ b/proto/MusicGameStartRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8326
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MusicGameStartRsp {
+ uint32 music_basic_id = 4;
+ int32 retcode = 1;
+ uint64 Unk2700_CEPGMKAHHCD = 15;
+}
diff --git a/proto/MusicGameStartToPlayOthersBeatmapReq.proto b/proto/MusicGameStartToPlayOthersBeatmapReq.proto
new file mode 100644
index 00000000..25fcad8a
--- /dev/null
+++ b/proto/MusicGameStartToPlayOthersBeatmapReq.proto
@@ -0,0 +1,14 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+import "MusicGameUnknown1Enum.proto";
+
+// CmdId: 6302
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message MusicGameStartToPlayOthersBeatmapReq {
+ MusicGameUnknown1Enum unknown_enum1 = 12;
+}
diff --git a/proto/MusicGameStartToPlayOthersBeatmapRsp.proto b/proto/MusicGameStartToPlayOthersBeatmapRsp.proto
new file mode 100644
index 00000000..8f935b9e
--- /dev/null
+++ b/proto/MusicGameStartToPlayOthersBeatmapRsp.proto
@@ -0,0 +1,15 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+import "MusicGameUnknown1Enum.proto";
+
+// CmdId: 6313
+// EnetChannelId: 0
+// EnetIsReliable: true
+message MusicGameStartToPlayOthersBeatmapRsp {
+ int32 retcode = 2;
+ MusicGameUnknown1Enum unknown_enum1 = 11;
+ repeated uint64 AMNODOLNOIM = 6;
+}
diff --git a/proto/MusicGameUnknown1Enum.proto b/proto/MusicGameUnknown1Enum.proto
new file mode 100644
index 00000000..38fca4a4
--- /dev/null
+++ b/proto/MusicGameUnknown1Enum.proto
@@ -0,0 +1,9 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum MusicGameUnknown1Enum {
+ MusicGameUnknown1Enum_NONE = 0;
+ MusicGameUnknown1Enum_u2 = 1;
+}
diff --git a/proto/MusicGameUnknown2Enum.proto b/proto/MusicGameUnknown2Enum.proto
new file mode 100644
index 00000000..4c61a1d3
--- /dev/null
+++ b/proto/MusicGameUnknown2Enum.proto
@@ -0,0 +1,10 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum MusicGameUnknown2Enum {
+ MusicGameUnknown2Enum_u1 = 0;
+ MusicGameUnknown2Enum_MINE = 1;
+ MusicGameUnknown2Enum_u3 = 2;
+}
diff --git a/proto/MusicRecord.proto b/proto/MusicRecord.proto
new file mode 100644
index 00000000..2c4015ec
--- /dev/null
+++ b/proto/MusicRecord.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_AAAMOFPACEA.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MusicRecord {
+ repeated Unk2700_AAAMOFPACEA Unk2700_MBJFOAGKKDJ = 4;
+ uint32 Unk2700_DFIBAIILJHN = 13;
+}
diff --git a/proto/NavMeshStatsNotify.proto b/proto/NavMeshStatsNotify.proto
new file mode 100644
index 00000000..5b26956b
--- /dev/null
+++ b/proto/NavMeshStatsNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PbNavMeshStatsInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2316
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message NavMeshStatsNotify {
+ repeated PbNavMeshStatsInfo infos = 4;
+}
diff --git a/proto/NightCrowGadgetInfo.proto b/proto/NightCrowGadgetInfo.proto
new file mode 100644
index 00000000..2d1693d7
--- /dev/null
+++ b/proto/NightCrowGadgetInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message NightCrowGadgetInfo {
+ repeated uint32 argument_list = 1;
+}
diff --git a/proto/NormalUidOpNotify.proto b/proto/NormalUidOpNotify.proto
new file mode 100644
index 00000000..2efc34b8
--- /dev/null
+++ b/proto/NormalUidOpNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5726
+// EnetChannelId: 0
+// EnetIsReliable: true
+message NormalUidOpNotify {
+ uint32 duration = 6;
+ repeated uint32 param_list = 4;
+ repeated uint32 param_uid_list = 5;
+ uint32 param_index = 8;
+}
diff --git a/proto/NpcPositionInfo.proto b/proto/NpcPositionInfo.proto
new file mode 100644
index 00000000..5207d0e1
--- /dev/null
+++ b/proto/NpcPositionInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message NpcPositionInfo {
+ uint32 npc_id = 1;
+ Vector pos = 2;
+}
diff --git a/proto/NpcTalkReq.proto b/proto/NpcTalkReq.proto
new file mode 100644
index 00000000..1a35263b
--- /dev/null
+++ b/proto/NpcTalkReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 572
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message NpcTalkReq {
+ uint32 entity_id = 8;
+ uint32 npc_entity_id = 9;
+ uint32 talk_id = 7;
+}
diff --git a/proto/NpcTalkRsp.proto b/proto/NpcTalkRsp.proto
new file mode 100644
index 00000000..66491090
--- /dev/null
+++ b/proto/NpcTalkRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 598
+// EnetChannelId: 0
+// EnetIsReliable: true
+message NpcTalkRsp {
+ uint32 cur_talk_id = 9;
+ uint32 npc_entity_id = 6;
+ int32 retcode = 3;
+ uint32 entity_id = 13;
+}
diff --git a/proto/ObstacleInfo.proto b/proto/ObstacleInfo.proto
new file mode 100644
index 00000000..67d720f3
--- /dev/null
+++ b/proto/ObstacleInfo.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MathQuaternion.proto";
+import "Vector.proto";
+import "Vector3Int.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ObstacleInfo {
+ MathQuaternion rotation = 4;
+ int32 obstacle_id = 2;
+ Vector center = 14;
+ ShapeType shape = 6;
+ Vector3Int extents = 12;
+
+ enum ShapeType {
+ SHAPE_TYPE_OBSTACLE_SHAPE_CAPSULE = 0;
+ SHAPE_TYPE_OBSTACLE_SHAPE_BOX = 1;
+ }
+}
diff --git a/proto/ObstacleModifyNotify.proto b/proto/ObstacleModifyNotify.proto
new file mode 100644
index 00000000..221ecd14
--- /dev/null
+++ b/proto/ObstacleModifyNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ObstacleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2312
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ObstacleModifyNotify {
+ repeated int32 remove_obstacle_ids = 9;
+ repeated ObstacleInfo add_obstacles = 6;
+ uint32 scene_id = 5;
+}
diff --git a/proto/OfferingInfo.proto b/proto/OfferingInfo.proto
new file mode 100644
index 00000000..3eb70087
--- /dev/null
+++ b/proto/OfferingInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message OfferingInfo {
+ uint32 offering_id = 1;
+}
diff --git a/proto/OfferingInteractReq.proto b/proto/OfferingInteractReq.proto
new file mode 100644
index 00000000..1e57a41e
--- /dev/null
+++ b/proto/OfferingInteractReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2918
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message OfferingInteractReq {
+ uint32 offering_id = 9;
+}
diff --git a/proto/OfferingInteractRsp.proto b/proto/OfferingInteractRsp.proto
new file mode 100644
index 00000000..f1c0ce6b
--- /dev/null
+++ b/proto/OfferingInteractRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayerOfferingData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2908
+// EnetChannelId: 0
+// EnetIsReliable: true
+message OfferingInteractRsp {
+ PlayerOfferingData offering_data = 11;
+ int32 retcode = 12;
+}
diff --git a/proto/OneofGatherPointDetectorData.proto b/proto/OneofGatherPointDetectorData.proto
new file mode 100644
index 00000000..9feb5bc0
--- /dev/null
+++ b/proto/OneofGatherPointDetectorData.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message OneofGatherPointDetectorData {
+ Vector hint_center_pos = 7;
+ uint32 hint_radius = 14;
+ uint32 material_id = 10;
+ uint32 config_id = 6;
+ uint32 group_id = 13;
+ bool is_all_collected = 4;
+ bool is_hint_valid = 15;
+}
diff --git a/proto/OneofGatherPointDetectorDataNotify.proto b/proto/OneofGatherPointDetectorDataNotify.proto
new file mode 100644
index 00000000..47622173
--- /dev/null
+++ b/proto/OneofGatherPointDetectorDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "OneofGatherPointDetectorData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4297
+// EnetChannelId: 0
+// EnetIsReliable: true
+message OneofGatherPointDetectorDataNotify {
+ repeated OneofGatherPointDetectorData oneof_gather_point_detector_data_list = 3;
+}
diff --git a/proto/OnlinePlayerInfo.proto b/proto/OnlinePlayerInfo.proto
new file mode 100644
index 00000000..3ffe7831
--- /dev/null
+++ b/proto/OnlinePlayerInfo.proto
@@ -0,0 +1,39 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MpSettingType.proto";
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message OnlinePlayerInfo {
+ uint32 uid = 1;
+ string nickname = 2;
+ uint32 player_level = 3;
+ uint32 avatar_id = 4;
+ MpSettingType mp_setting_type = 5;
+ uint32 cur_player_num_in_world = 6;
+ uint32 world_level = 7;
+ string online_id = 8;
+ uint32 name_card_id = 9;
+ repeated uint32 blacklist_uid_list = 10;
+ string signature = 11;
+ ProfilePicture profile_picture = 12;
+ string psn_id = 13;
+}
diff --git a/proto/OpActivityDataNotify.proto b/proto/OpActivityDataNotify.proto
new file mode 100644
index 00000000..28ee8c78
--- /dev/null
+++ b/proto/OpActivityDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "OpActivityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5112
+// EnetChannelId: 0
+// EnetIsReliable: true
+message OpActivityDataNotify {
+ repeated OpActivityInfo op_activity_info_list = 15;
+}
diff --git a/proto/OpActivityInfo.proto b/proto/OpActivityInfo.proto
new file mode 100644
index 00000000..a0205f9a
--- /dev/null
+++ b/proto/OpActivityInfo.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BonusOpActivityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message OpActivityInfo {
+ uint32 activity_id = 2;
+ uint32 end_time = 6;
+ uint32 begin_time = 5;
+ bool is_has_change = 1;
+ uint32 schedule_id = 13;
+ oneof detail {
+ BonusOpActivityInfo bonus_info = 12;
+ }
+}
diff --git a/proto/OpActivityStateNotify.proto b/proto/OpActivityStateNotify.proto
new file mode 100644
index 00000000..f844f918
--- /dev/null
+++ b/proto/OpActivityStateNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "OpActivityTagBriefInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2572
+// EnetChannelId: 0
+// EnetIsReliable: true
+message OpActivityStateNotify {
+ repeated uint32 finished_bonus_activity_id_list = 14;
+ repeated OpActivityTagBriefInfo opened_op_activity_info_list = 13;
+}
diff --git a/proto/OpActivityTagBriefInfo.proto b/proto/OpActivityTagBriefInfo.proto
new file mode 100644
index 00000000..998cbc56
--- /dev/null
+++ b/proto/OpActivityTagBriefInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message OpActivityTagBriefInfo {
+ uint32 config_id = 2;
+ bool has_reward = 3;
+ uint32 op_activity_type = 11;
+}
diff --git a/proto/OpActivityUpdateNotify.proto b/proto/OpActivityUpdateNotify.proto
new file mode 100644
index 00000000..df8c3a2e
--- /dev/null
+++ b/proto/OpActivityUpdateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "OpActivityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5135
+// EnetChannelId: 0
+// EnetIsReliable: true
+message OpActivityUpdateNotify {
+ OpActivityInfo op_activity_info = 6;
+}
diff --git a/proto/OpenBlossomCircleCampGuideNotify.proto b/proto/OpenBlossomCircleCampGuideNotify.proto
new file mode 100644
index 00000000..79bf20e3
--- /dev/null
+++ b/proto/OpenBlossomCircleCampGuideNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2703
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message OpenBlossomCircleCampGuideNotify {
+ uint32 refresh_id = 7;
+ repeated uint32 circle_camp_id_list = 11;
+}
diff --git a/proto/OpenStateChangeNotify.proto b/proto/OpenStateChangeNotify.proto
new file mode 100644
index 00000000..11357153
--- /dev/null
+++ b/proto/OpenStateChangeNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 127
+// EnetChannelId: 0
+// EnetIsReliable: true
+message OpenStateChangeNotify {
+ map open_state_map = 4;
+}
diff --git a/proto/OpenStateUpdateNotify.proto b/proto/OpenStateUpdateNotify.proto
new file mode 100644
index 00000000..04f2e034
--- /dev/null
+++ b/proto/OpenStateUpdateNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 193
+// EnetChannelId: 0
+// EnetIsReliable: true
+message OpenStateUpdateNotify {
+ map open_state_map = 6;
+}
diff --git a/proto/OrderDisplayNotify.proto b/proto/OrderDisplayNotify.proto
new file mode 100644
index 00000000..82493a3e
--- /dev/null
+++ b/proto/OrderDisplayNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4131
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message OrderDisplayNotify {
+ uint32 order_id = 1;
+}
diff --git a/proto/OrderFinishNotify.proto b/proto/OrderFinishNotify.proto
new file mode 100644
index 00000000..2600e1ce
--- /dev/null
+++ b/proto/OrderFinishNotify.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4125
+// EnetChannelId: 0
+// EnetIsReliable: true
+message OrderFinishNotify {
+ uint32 order_id = 3;
+ uint32 card_product_remain_days = 15;
+ repeated ItemParam item_list = 9;
+ uint32 add_mcoin = 7;
+ string product_id = 6;
+}
diff --git a/proto/OtherPlayerEnterHomeNotify.proto b/proto/OtherPlayerEnterHomeNotify.proto
new file mode 100644
index 00000000..258d2cbd
--- /dev/null
+++ b/proto/OtherPlayerEnterHomeNotify.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4628
+// EnetChannelId: 0
+// EnetIsReliable: true
+message OtherPlayerEnterHomeNotify {
+ string nickname = 7;
+ Reason reason = 3;
+
+ enum Reason {
+ REASON_INVALID = 0;
+ REASON_ENTER = 1;
+ REASON_LEAVE = 2;
+ }
+}
diff --git a/proto/PBNavMeshPoly.proto b/proto/PBNavMeshPoly.proto
new file mode 100644
index 00000000..913f8815
--- /dev/null
+++ b/proto/PBNavMeshPoly.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PBNavMeshPoly {
+ repeated EdgeType edge_types = 10;
+ int32 area = 6;
+ repeated int32 vects = 7;
+
+ enum EdgeType {
+ EDGE_TYPE_INNER = 0;
+ EDGE_TYPE_TILE_BOUND = 1;
+ EDGE_TYPE_TILE_BOUND_UNCONNECT = 2;
+ EDGE_TYPE_Unk2700_BFOKBOEBPJF = 3;
+ }
+}
diff --git a/proto/PBNavMeshTile.proto b/proto/PBNavMeshTile.proto
new file mode 100644
index 00000000..b6b8fddf
--- /dev/null
+++ b/proto/PBNavMeshTile.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PBNavMeshPoly.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PBNavMeshTile {
+ repeated Vector vecs = 4;
+ repeated PBNavMeshPoly polys = 8;
+}
diff --git a/proto/PSNBlackListNotify.proto b/proto/PSNBlackListNotify.proto
new file mode 100644
index 00000000..a770db4d
--- /dev/null
+++ b/proto/PSNBlackListNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FriendBrief.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4040
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PSNBlackListNotify {
+ repeated FriendBrief psn_blacklist = 11;
+}
diff --git a/proto/PSNFriendListNotify.proto b/proto/PSNFriendListNotify.proto
new file mode 100644
index 00000000..b5eb313c
--- /dev/null
+++ b/proto/PSNFriendListNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FriendBrief.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4087
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PSNFriendListNotify {
+ repeated FriendBrief psn_friend_list = 8;
+}
diff --git a/proto/PSPlayerApplyEnterMpReq.proto b/proto/PSPlayerApplyEnterMpReq.proto
new file mode 100644
index 00000000..56bcc8a6
--- /dev/null
+++ b/proto/PSPlayerApplyEnterMpReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1841
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PSPlayerApplyEnterMpReq {
+ string target_psn_id = 5;
+}
diff --git a/proto/PSPlayerApplyEnterMpRsp.proto b/proto/PSPlayerApplyEnterMpRsp.proto
new file mode 100644
index 00000000..d36f2236
--- /dev/null
+++ b/proto/PSPlayerApplyEnterMpRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1842
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PSPlayerApplyEnterMpRsp {
+ string target_psn_id = 2;
+ int32 retcode = 6;
+ uint32 param = 10;
+}
diff --git a/proto/PacketHead.proto b/proto/PacketHead.proto
new file mode 100644
index 00000000..ae302a3e
--- /dev/null
+++ b/proto/PacketHead.proto
@@ -0,0 +1,41 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PacketHead {
+ uint32 packet_id = 1;
+ uint32 rpc_id = 2;
+ uint32 client_sequence_id = 3;
+ uint32 enet_channel_id = 4;
+ uint32 enet_is_reliable = 5;
+ uint64 sent_ms = 6;
+ uint32 user_id = 11;
+ uint32 user_ip = 12;
+ uint32 user_session_id = 13;
+ uint64 recv_time_ms = 21;
+ uint32 rpc_begin_time_ms = 22;
+ map ext_map = 23;
+ uint32 sender_app_id = 24;
+ uint32 source_service = 31;
+ uint32 target_service = 32;
+ map service_app_id_map = 33;
+ bool is_set_game_thread = 34;
+ uint32 game_thread_index = 35;
+}
diff --git a/proto/ParamList.proto b/proto/ParamList.proto
new file mode 100644
index 00000000..ffa9a99f
--- /dev/null
+++ b/proto/ParamList.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ParamList {
+ repeated uint32 param_list_ = 1;
+}
diff --git a/proto/ParentQuest.proto b/proto/ParentQuest.proto
new file mode 100644
index 00000000..451ead29
--- /dev/null
+++ b/proto/ParentQuest.proto
@@ -0,0 +1,38 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChildQuest.proto";
+import "ParentQuestRandomInfo.proto";
+import "Unk3000_ENLDIHLGNCK.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ParentQuest {
+ repeated int32 quest_var = 14;
+ map time_var_map = 8;
+ uint32 parent_quest_state = 1;
+ bool is_finished = 7;
+ repeated Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;
+ ParentQuestRandomInfo random_info = 12;
+ uint32 parent_quest_id = 3;
+ bool is_random = 13;
+ uint64 Unk2700_KHDDIJNOICK = 6;
+ uint32 quest_var_seq = 11;
+ repeated ChildQuest child_quest_list = 9;
+}
diff --git a/proto/ParentQuestRandomInfo.proto b/proto/ParentQuestRandomInfo.proto
new file mode 100644
index 00000000..60ed2343
--- /dev/null
+++ b/proto/ParentQuestRandomInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ParentQuestRandomInfo {
+ repeated uint32 factor_list = 1;
+ uint32 template_id = 8;
+ uint32 entrance_id = 2;
+}
diff --git a/proto/ParkourLevelInfo.proto b/proto/ParkourLevelInfo.proto
new file mode 100644
index 00000000..f450d917
--- /dev/null
+++ b/proto/ParkourLevelInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ParkourLevelInfo {
+ uint32 best_record = 12;
+ bool is_open = 9;
+ uint32 open_time = 7;
+ Vector pos = 2;
+}
diff --git a/proto/PathfindingEnterSceneReq.proto b/proto/PathfindingEnterSceneReq.proto
new file mode 100644
index 00000000..8903cb34
--- /dev/null
+++ b/proto/PathfindingEnterSceneReq.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ObstacleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2307
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PathfindingEnterSceneReq {
+ uint32 scene_id = 12;
+ repeated uint32 activity_id = 14;
+ uint32 Unk2800_NCDFAFMGMIG = 15;
+ uint32 version = 6;
+ bool is_editor = 11;
+ repeated ObstacleInfo obstacles = 13;
+ uint32 Unk2800_MBDFGODMPFN = 4;
+}
diff --git a/proto/PathfindingEnterSceneRsp.proto b/proto/PathfindingEnterSceneRsp.proto
new file mode 100644
index 00000000..8fac5ba0
--- /dev/null
+++ b/proto/PathfindingEnterSceneRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2321
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PathfindingEnterSceneRsp {
+ int32 retcode = 9;
+}
diff --git a/proto/PathfindingPingNotify.proto b/proto/PathfindingPingNotify.proto
new file mode 100644
index 00000000..9cd89ec8
--- /dev/null
+++ b/proto/PathfindingPingNotify.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2335
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PathfindingPingNotify {}
diff --git a/proto/PbNavMeshStatsInfo.proto b/proto/PbNavMeshStatsInfo.proto
new file mode 100644
index 00000000..8137b978
--- /dev/null
+++ b/proto/PbNavMeshStatsInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PbNavMeshStatsInfo {
+ int32 authority_ai_in_combat = 10;
+ int32 no_authority_ai_in_combat = 11;
+ int32 total_authority_ai = 8;
+ int32 total_no_authority_ai = 13;
+}
diff --git a/proto/PersonalLineAllDataReq.proto b/proto/PersonalLineAllDataReq.proto
new file mode 100644
index 00000000..9061d721
--- /dev/null
+++ b/proto/PersonalLineAllDataReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 474
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PersonalLineAllDataReq {}
diff --git a/proto/PersonalLineAllDataRsp.proto b/proto/PersonalLineAllDataRsp.proto
new file mode 100644
index 00000000..319bb84c
--- /dev/null
+++ b/proto/PersonalLineAllDataRsp.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "LockedPersonallineData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 476
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PersonalLineAllDataRsp {
+ uint32 cur_finished_daily_task_count = 5;
+ repeated uint32 can_be_unlocked_personal_line_list = 13;
+ int32 retcode = 15;
+ repeated uint32 ongoing_personal_line_list = 8;
+ uint32 legendary_key_count = 11;
+ repeated LockedPersonallineData locked_personal_line_list = 10;
+}
diff --git a/proto/PersonalLineNewUnlockNotify.proto b/proto/PersonalLineNewUnlockNotify.proto
new file mode 100644
index 00000000..a3f8d5aa
--- /dev/null
+++ b/proto/PersonalLineNewUnlockNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 442
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PersonalLineNewUnlockNotify {
+ repeated uint32 personal_line_id_list = 9;
+}
diff --git a/proto/PersonalSceneJumpReq.proto b/proto/PersonalSceneJumpReq.proto
new file mode 100644
index 00000000..c1dc01e4
--- /dev/null
+++ b/proto/PersonalSceneJumpReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 284
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PersonalSceneJumpReq {
+ uint32 point_id = 4;
+}
diff --git a/proto/PersonalSceneJumpRsp.proto b/proto/PersonalSceneJumpRsp.proto
new file mode 100644
index 00000000..0b80c14a
--- /dev/null
+++ b/proto/PersonalSceneJumpRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 280
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PersonalSceneJumpRsp {
+ uint32 dest_scene_id = 5;
+ int32 retcode = 8;
+ Vector dest_pos = 11;
+}
diff --git a/proto/PhotoActivityDetailInfo.proto b/proto/PhotoActivityDetailInfo.proto
new file mode 100644
index 00000000..984ffdae
--- /dev/null
+++ b/proto/PhotoActivityDetailInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PhotoStage.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PhotoActivityDetailInfo {
+ bool is_content_closed = 4;
+ repeated PhotoStage photo_stage_list = 12;
+}
diff --git a/proto/PhotoStage.proto b/proto/PhotoStage.proto
new file mode 100644
index 00000000..b09a916e
--- /dev/null
+++ b/proto/PhotoStage.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PhotoStage {
+ Vector center = 15;
+ uint32 open_time = 2;
+ bool Unk2700_DDOBNKLLLDF = 4;
+ uint32 Unk2700_CKGJEOOKFIF = 9;
+ bool is_open = 6;
+}
diff --git a/proto/PingReq.proto b/proto/PingReq.proto
new file mode 100644
index 00000000..9b8845d6
--- /dev/null
+++ b/proto/PingReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PingReq {
+ uint32 client_time = 12;
+ float ue_time = 14;
+ double total_tick_time = 6;
+ bytes sc_data = 10;
+ uint32 seq = 3;
+}
diff --git a/proto/PingRsp.proto b/proto/PingRsp.proto
new file mode 100644
index 00000000..c1f83219
--- /dev/null
+++ b/proto/PingRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PingRsp {
+ uint32 client_time = 15;
+ int32 retcode = 6;
+ uint32 seq = 13;
+}
diff --git a/proto/PlaceInfo.proto b/proto/PlaceInfo.proto
new file mode 100644
index 00000000..8eeddcbb
--- /dev/null
+++ b/proto/PlaceInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PlaceInfo {
+ Vector pos = 1;
+ Vector rot = 2;
+}
diff --git a/proto/PlantFlowerAcceptAllGiveFlowerReq.proto b/proto/PlantFlowerAcceptAllGiveFlowerReq.proto
new file mode 100644
index 00000000..2f7a3de6
--- /dev/null
+++ b/proto/PlantFlowerAcceptAllGiveFlowerReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8808
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlantFlowerAcceptAllGiveFlowerReq {
+ uint32 schedule_id = 11;
+}
diff --git a/proto/PlantFlowerAcceptAllGiveFlowerRsp.proto b/proto/PlantFlowerAcceptAllGiveFlowerRsp.proto
new file mode 100644
index 00000000..639c44a0
--- /dev/null
+++ b/proto/PlantFlowerAcceptAllGiveFlowerRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlantFlowerAcceptFlowerResultInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8888
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlantFlowerAcceptAllGiveFlowerRsp {
+ uint32 schedule_id = 10;
+ int32 retcode = 11;
+ repeated PlantFlowerAcceptFlowerResultInfo accept_flower_result_info_list = 13;
+}
diff --git a/proto/PlantFlowerAcceptFlowerResultInfo.proto b/proto/PlantFlowerAcceptFlowerResultInfo.proto
new file mode 100644
index 00000000..24f25933
--- /dev/null
+++ b/proto/PlantFlowerAcceptFlowerResultInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PlantFlowerAcceptFlowerResultInfo {
+ map unaccept_flower_num_map = 4;
+ uint32 uid = 7;
+ map accept_flower_num_map = 10;
+}
diff --git a/proto/PlantFlowerAcceptGiveFlowerReq.proto b/proto/PlantFlowerAcceptGiveFlowerReq.proto
new file mode 100644
index 00000000..1a5d1432
--- /dev/null
+++ b/proto/PlantFlowerAcceptGiveFlowerReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8383
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlantFlowerAcceptGiveFlowerReq {
+ uint32 schedule_id = 2;
+ uint32 uid = 12;
+}
diff --git a/proto/PlantFlowerAcceptGiveFlowerRsp.proto b/proto/PlantFlowerAcceptGiveFlowerRsp.proto
new file mode 100644
index 00000000..7f6b4521
--- /dev/null
+++ b/proto/PlantFlowerAcceptGiveFlowerRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlantFlowerAcceptFlowerResultInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8567
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlantFlowerAcceptGiveFlowerRsp {
+ uint32 schedule_id = 1;
+ PlantFlowerAcceptFlowerResultInfo accept_flower_result_info = 15;
+ int32 retcode = 12;
+}
diff --git a/proto/PlantFlowerActivityDetailInfo.proto b/proto/PlantFlowerActivityDetailInfo.proto
new file mode 100644
index 00000000..10828271
--- /dev/null
+++ b/proto/PlantFlowerActivityDetailInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PlantFlowerActivityDetailInfo {
+ bool is_content_closed = 3;
+ map wish_flower_num_map = 10;
+ uint32 today_seed_reward_id = 11;
+ uint32 day_index = 1;
+ bool is_today_has_awarded = 13;
+ map used_flower_num_map = 7;
+}
diff --git a/proto/PlantFlowerEditFlowerCombinationReq.proto b/proto/PlantFlowerEditFlowerCombinationReq.proto
new file mode 100644
index 00000000..4ed79679
--- /dev/null
+++ b/proto/PlantFlowerEditFlowerCombinationReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CustomGadgetTreeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8843
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlantFlowerEditFlowerCombinationReq {
+ CustomGadgetTreeInfo flower_combination_info = 10;
+ uint32 entity_id = 14;
+ uint32 schedule_id = 9;
+}
diff --git a/proto/PlantFlowerEditFlowerCombinationRsp.proto b/proto/PlantFlowerEditFlowerCombinationRsp.proto
new file mode 100644
index 00000000..0149ecab
--- /dev/null
+++ b/proto/PlantFlowerEditFlowerCombinationRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8788
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlantFlowerEditFlowerCombinationRsp {
+ uint32 schedule_id = 13;
+ int32 retcode = 6;
+}
diff --git a/proto/PlantFlowerFriendFlowerWishData.proto b/proto/PlantFlowerFriendFlowerWishData.proto
new file mode 100644
index 00000000..ec937eff
--- /dev/null
+++ b/proto/PlantFlowerFriendFlowerWishData.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PlantFlowerFriendFlowerWishData {
+ ProfilePicture profile_picture = 3;
+ uint32 uid = 5;
+ string nickname = 14;
+ map flower_num_map = 12;
+}
diff --git a/proto/PlantFlowerGetCanGiveFriendFlowerReq.proto b/proto/PlantFlowerGetCanGiveFriendFlowerReq.proto
new file mode 100644
index 00000000..6252c2c6
--- /dev/null
+++ b/proto/PlantFlowerGetCanGiveFriendFlowerReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8716
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlantFlowerGetCanGiveFriendFlowerReq {
+ uint32 schedule_id = 15;
+}
diff --git a/proto/PlantFlowerGetCanGiveFriendFlowerRsp.proto b/proto/PlantFlowerGetCanGiveFriendFlowerRsp.proto
new file mode 100644
index 00000000..0a7bd9df
--- /dev/null
+++ b/proto/PlantFlowerGetCanGiveFriendFlowerRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8766
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlantFlowerGetCanGiveFriendFlowerRsp {
+ map flower_num_map = 6;
+ uint32 schedule_id = 4;
+ int32 retcode = 3;
+}
diff --git a/proto/PlantFlowerGetFriendFlowerWishListReq.proto b/proto/PlantFlowerGetFriendFlowerWishListReq.proto
new file mode 100644
index 00000000..c93b9165
--- /dev/null
+++ b/proto/PlantFlowerGetFriendFlowerWishListReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8126
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlantFlowerGetFriendFlowerWishListReq {
+ uint32 schedule_id = 7;
+}
diff --git a/proto/PlantFlowerGetFriendFlowerWishListRsp.proto b/proto/PlantFlowerGetFriendFlowerWishListRsp.proto
new file mode 100644
index 00000000..968694ee
--- /dev/null
+++ b/proto/PlantFlowerGetFriendFlowerWishListRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlantFlowerFriendFlowerWishData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8511
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlantFlowerGetFriendFlowerWishListRsp {
+ int32 retcode = 6;
+ uint32 schedule_id = 2;
+ repeated PlantFlowerFriendFlowerWishData friend_flower_wish_list = 9;
+}
diff --git a/proto/PlantFlowerGetRecvFlowerListReq.proto b/proto/PlantFlowerGetRecvFlowerListReq.proto
new file mode 100644
index 00000000..6090cae4
--- /dev/null
+++ b/proto/PlantFlowerGetRecvFlowerListReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8270
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlantFlowerGetRecvFlowerListReq {
+ uint32 schedule_id = 1;
+}
diff --git a/proto/PlantFlowerGetRecvFlowerListRsp.proto b/proto/PlantFlowerGetRecvFlowerListRsp.proto
new file mode 100644
index 00000000..aacb1b5d
--- /dev/null
+++ b/proto/PlantFlowerGetRecvFlowerListRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlantFlowerRecvFlowerData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8374
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlantFlowerGetRecvFlowerListRsp {
+ uint32 schedule_id = 6;
+ int32 retcode = 1;
+ repeated PlantFlowerRecvFlowerData recv_flower_list = 4;
+}
diff --git a/proto/PlantFlowerGetSeedInfoReq.proto b/proto/PlantFlowerGetSeedInfoReq.proto
new file mode 100644
index 00000000..cd46369d
--- /dev/null
+++ b/proto/PlantFlowerGetSeedInfoReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8560
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlantFlowerGetSeedInfoReq {
+ uint32 schedule_id = 6;
+}
diff --git a/proto/PlantFlowerGetSeedInfoRsp.proto b/proto/PlantFlowerGetSeedInfoRsp.proto
new file mode 100644
index 00000000..9d1d13cb
--- /dev/null
+++ b/proto/PlantFlowerGetSeedInfoRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8764
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlantFlowerGetSeedInfoRsp {
+ int32 retcode = 15;
+ uint32 schedule_id = 12;
+ uint32 seed_reward_id = 5;
+}
diff --git a/proto/PlantFlowerGiveFriendFlowerReq.proto b/proto/PlantFlowerGiveFriendFlowerReq.proto
new file mode 100644
index 00000000..d74af7dc
--- /dev/null
+++ b/proto/PlantFlowerGiveFriendFlowerReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8846
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlantFlowerGiveFriendFlowerReq {
+ uint32 schedule_id = 11;
+ uint32 uid = 13;
+ map flower_num_map = 12;
+}
diff --git a/proto/PlantFlowerGiveFriendFlowerRsp.proto b/proto/PlantFlowerGiveFriendFlowerRsp.proto
new file mode 100644
index 00000000..95719136
--- /dev/null
+++ b/proto/PlantFlowerGiveFriendFlowerRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8386
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlantFlowerGiveFriendFlowerRsp {
+ repeated uint32 limit_flower_list = 5;
+ int32 retcode = 3;
+ uint32 schedule_id = 14;
+}
diff --git a/proto/PlantFlowerHaveRecvFlowerNotify.proto b/proto/PlantFlowerHaveRecvFlowerNotify.proto
new file mode 100644
index 00000000..627f3886
--- /dev/null
+++ b/proto/PlantFlowerHaveRecvFlowerNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8078
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlantFlowerHaveRecvFlowerNotify {
+ uint32 schedule_id = 10;
+}
diff --git a/proto/PlantFlowerRecvFlowerData.proto b/proto/PlantFlowerRecvFlowerData.proto
new file mode 100644
index 00000000..7ed4938d
--- /dev/null
+++ b/proto/PlantFlowerRecvFlowerData.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PlantFlowerRecvFlowerData {
+ ProfilePicture profile_picture = 13;
+ string nickname = 5;
+ uint32 uid = 9;
+ map flower_num_map = 14;
+}
diff --git a/proto/PlantFlowerSetFlowerWishReq.proto b/proto/PlantFlowerSetFlowerWishReq.proto
new file mode 100644
index 00000000..cf88ed6c
--- /dev/null
+++ b/proto/PlantFlowerSetFlowerWishReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8547
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlantFlowerSetFlowerWishReq {
+ map flower_num_map = 12;
+ uint32 schedule_id = 5;
+}
diff --git a/proto/PlantFlowerSetFlowerWishRsp.proto b/proto/PlantFlowerSetFlowerWishRsp.proto
new file mode 100644
index 00000000..e9f6f93d
--- /dev/null
+++ b/proto/PlantFlowerSetFlowerWishRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8910
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlantFlowerSetFlowerWishRsp {
+ uint32 schedule_id = 7;
+ int32 retcode = 8;
+}
diff --git a/proto/PlantFlowerTakeSeedRewardReq.proto b/proto/PlantFlowerTakeSeedRewardReq.proto
new file mode 100644
index 00000000..3c4bfed2
--- /dev/null
+++ b/proto/PlantFlowerTakeSeedRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8968
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlantFlowerTakeSeedRewardReq {
+ uint32 schedule_id = 12;
+}
diff --git a/proto/PlantFlowerTakeSeedRewardRsp.proto b/proto/PlantFlowerTakeSeedRewardRsp.proto
new file mode 100644
index 00000000..3f0eda64
--- /dev/null
+++ b/proto/PlantFlowerTakeSeedRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8860
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlantFlowerTakeSeedRewardRsp {
+ int32 retcode = 2;
+ uint32 schedule_id = 13;
+}
diff --git a/proto/PlatformChangeRouteNotify.proto b/proto/PlatformChangeRouteNotify.proto
new file mode 100644
index 00000000..5197361f
--- /dev/null
+++ b/proto/PlatformChangeRouteNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlatformInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 268
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlatformChangeRouteNotify {
+ uint32 entity_id = 2;
+ PlatformInfo platform = 1;
+ uint32 scene_time = 8;
+}
diff --git a/proto/PlatformInfo.proto b/proto/PlatformInfo.proto
new file mode 100644
index 00000000..34a06e7d
--- /dev/null
+++ b/proto/PlatformInfo.proto
@@ -0,0 +1,42 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MathQuaternion.proto";
+import "MovingPlatformType.proto";
+import "Route.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PlatformInfo {
+ uint32 route_id = 1;
+ int32 start_index = 2;
+ uint32 start_route_time = 3;
+ uint32 start_scene_time = 4;
+ Vector start_pos = 7;
+ bool is_started = 8;
+ MathQuaternion start_rot = 9;
+ uint32 stop_scene_time = 10;
+ Vector pos_offset = 11;
+ MathQuaternion rot_offset = 12;
+ MovingPlatformType moving_platform_type = 13;
+ bool is_active = 14;
+ Route route = 15;
+ uint32 point_id = 16;
+}
diff --git a/proto/PlatformStartRouteNotify.proto b/proto/PlatformStartRouteNotify.proto
new file mode 100644
index 00000000..7ef6a7c7
--- /dev/null
+++ b/proto/PlatformStartRouteNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlatformInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 218
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlatformStartRouteNotify {
+ PlatformInfo platform = 15;
+ uint32 scene_time = 12;
+ uint32 entity_id = 8;
+}
diff --git a/proto/PlatformStopRouteNotify.proto b/proto/PlatformStopRouteNotify.proto
new file mode 100644
index 00000000..1f453f3d
--- /dev/null
+++ b/proto/PlatformStopRouteNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlatformInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 266
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlatformStopRouteNotify {
+ uint32 scene_time = 9;
+ uint32 entity_id = 12;
+ PlatformInfo platform = 8;
+}
diff --git a/proto/PlatformType.proto b/proto/PlatformType.proto
new file mode 100644
index 00000000..db77e8cd
--- /dev/null
+++ b/proto/PlatformType.proto
@@ -0,0 +1,38 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum PlatformType {
+ PLATFORM_TYPE_EDITOR = 0;
+ PLATFORM_TYPE_IOS = 1;
+ PLATFORM_TYPE_ANDROID = 2;
+ PLATFORM_TYPE_PC = 3;
+ PLATFORM_TYPE_PS4 = 4;
+ PLATFORM_TYPE_SERVER = 5;
+ PLATFORM_TYPE_CLOUD_ANDROID = 6;
+ PLATFORM_TYPE_CLOUD_IOS = 7;
+ PLATFORM_TYPE_PS5 = 8;
+ PLATFORM_TYPE_CLOUD_WEB = 9;
+ PLATFORM_TYPE_CLOUD_TV = 10;
+ PLATFORM_TYPE_Unk2700_IBBEKBJLMAJ = 11;
+ PLATFORM_TYPE_Unk2700_BCEICMDNIIG = 12;
+ PLATFORM_TYPE_Unk2800_EFNGHFNPMKM = 13;
+ PLATFORM_TYPE_Unk2800_FNFHGPABLFB = 14;
+}
diff --git a/proto/PlayProduct.proto b/proto/PlayProduct.proto
new file mode 100644
index 00000000..44f2a8dd
--- /dev/null
+++ b/proto/PlayProduct.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PlayProduct {
+ string product_id = 1;
+ string price_tier = 2;
+ uint32 schedule_id = 3;
+}
diff --git a/proto/PlayTeamEntityInfo.proto b/proto/PlayTeamEntityInfo.proto
new file mode 100644
index 00000000..5c2c3f46
--- /dev/null
+++ b/proto/PlayTeamEntityInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilitySyncStateInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PlayTeamEntityInfo {
+ uint32 entity_id = 1;
+ uint32 player_uid = 2;
+ uint32 authority_peer_id = 3;
+ uint32 gadget_config_id = 5;
+ AbilitySyncStateInfo ability_info = 6;
+}
diff --git a/proto/PlayerAllowEnterMpAfterAgreeMatchNotify.proto b/proto/PlayerAllowEnterMpAfterAgreeMatchNotify.proto
new file mode 100644
index 00000000..f6adec48
--- /dev/null
+++ b/proto/PlayerAllowEnterMpAfterAgreeMatchNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4199
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerAllowEnterMpAfterAgreeMatchNotify {
+ uint32 target_uid = 1;
+}
diff --git a/proto/PlayerApplyEnterHomeNotify.proto b/proto/PlayerApplyEnterHomeNotify.proto
new file mode 100644
index 00000000..88bcfd23
--- /dev/null
+++ b/proto/PlayerApplyEnterHomeNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "OnlinePlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4533
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerApplyEnterHomeNotify {
+ OnlinePlayerInfo src_player_info = 9;
+ uint32 src_app_id = 10;
+}
diff --git a/proto/PlayerApplyEnterHomeResultNotify.proto b/proto/PlayerApplyEnterHomeResultNotify.proto
new file mode 100644
index 00000000..d3e17f6d
--- /dev/null
+++ b/proto/PlayerApplyEnterHomeResultNotify.proto
@@ -0,0 +1,42 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4468
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerApplyEnterHomeResultNotify {
+ string target_nickname = 7;
+ Reason reason = 5;
+ uint32 target_uid = 12;
+ bool is_agreed = 9;
+
+ enum Reason {
+ REASON_PLAYER_JUDGE = 0;
+ REASON_PLAYER_ENTER_OPTION_REFUSE = 1;
+ REASON_PLAYER_ENTER_OPTION_DIRECT = 2;
+ REASON_SYSTEM_JUDGE = 3;
+ REASON_HOST_IN_MATCH = 4;
+ REASON_PS_PLAYER_NOT_ACCEPT_OTHERS = 5;
+ REASON_OPEN_STATE_NOT_OPEN = 6;
+ REASON_HOST_IN_EDIT_MODE = 7;
+ REASON_PRIOR_CHECK = 8;
+ }
+}
diff --git a/proto/PlayerApplyEnterHomeResultReq.proto b/proto/PlayerApplyEnterHomeResultReq.proto
new file mode 100644
index 00000000..e4724941
--- /dev/null
+++ b/proto/PlayerApplyEnterHomeResultReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4693
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerApplyEnterHomeResultReq {
+ uint32 apply_uid = 14;
+ bool is_agreed = 10;
+}
diff --git a/proto/PlayerApplyEnterHomeResultRsp.proto b/proto/PlayerApplyEnterHomeResultRsp.proto
new file mode 100644
index 00000000..5aa11212
--- /dev/null
+++ b/proto/PlayerApplyEnterHomeResultRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4706
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerApplyEnterHomeResultRsp {
+ bool is_agreed = 2;
+ uint32 apply_uid = 11;
+ int32 retcode = 3;
+ uint32 param = 10;
+}
diff --git a/proto/PlayerApplyEnterMpAfterMatchAgreedNotify.proto b/proto/PlayerApplyEnterMpAfterMatchAgreedNotify.proto
new file mode 100644
index 00000000..46fcb399
--- /dev/null
+++ b/proto/PlayerApplyEnterMpAfterMatchAgreedNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MatchType.proto";
+import "OnlinePlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4195
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerApplyEnterMpAfterMatchAgreedNotify {
+ OnlinePlayerInfo src_player_info = 11;
+ uint32 matchserver_id = 10;
+ MatchType match_type = 3;
+}
diff --git a/proto/PlayerApplyEnterMpNotify.proto b/proto/PlayerApplyEnterMpNotify.proto
new file mode 100644
index 00000000..feabd28e
--- /dev/null
+++ b/proto/PlayerApplyEnterMpNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "OnlinePlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1826
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerApplyEnterMpNotify {
+ uint32 src_thread_index = 5;
+ uint32 src_app_id = 6;
+ OnlinePlayerInfo src_player_info = 2;
+}
diff --git a/proto/PlayerApplyEnterMpReq.proto b/proto/PlayerApplyEnterMpReq.proto
new file mode 100644
index 00000000..2d14088f
--- /dev/null
+++ b/proto/PlayerApplyEnterMpReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1818
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerApplyEnterMpReq {
+ uint32 target_uid = 4;
+}
diff --git a/proto/PlayerApplyEnterMpResultNotify.proto b/proto/PlayerApplyEnterMpResultNotify.proto
new file mode 100644
index 00000000..eecbdeba
--- /dev/null
+++ b/proto/PlayerApplyEnterMpResultNotify.proto
@@ -0,0 +1,47 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1807
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerApplyEnterMpResultNotify {
+ bool is_agreed = 2;
+ string target_nickname = 12;
+ Reason reason = 13;
+ uint32 target_uid = 1;
+
+ enum Reason {
+ REASON_PLAYER_JUDGE = 0;
+ REASON_SCENE_CANNOT_ENTER = 1;
+ REASON_PLAYER_CANNOT_ENTER_MP = 2;
+ REASON_SYSTEM_JUDGE = 3;
+ REASON_ALLOW_ENTER_PLAYER_FULL = 4;
+ REASON_WORLD_LEVEL_LOWER_THAN_HOST = 5;
+ REASON_HOST_IN_MATCH = 6;
+ REASON_PLAYER_IN_BLACKLIST = 7;
+ REASON_PS_PLAYER_NOT_ACCEPT_OTHERS = 8;
+ REASON_HOST_IS_BLOCKED = 9;
+ REASON_OTHER_DATA_VERSION_NOT_LATEST = 10;
+ REASON_DATA_VERSION_NOT_LATEST = 11;
+ REASON_PLAYER_NOT_IN_PLAYER_WORLD = 12;
+ REASON_MAX_PLAYER = 13;
+ }
+}
diff --git a/proto/PlayerApplyEnterMpResultReq.proto b/proto/PlayerApplyEnterMpResultReq.proto
new file mode 100644
index 00000000..888d1195
--- /dev/null
+++ b/proto/PlayerApplyEnterMpResultReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1802
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerApplyEnterMpResultReq {
+ uint32 apply_uid = 2;
+ bool is_agreed = 12;
+}
diff --git a/proto/PlayerApplyEnterMpResultRsp.proto b/proto/PlayerApplyEnterMpResultRsp.proto
new file mode 100644
index 00000000..605069aa
--- /dev/null
+++ b/proto/PlayerApplyEnterMpResultRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1831
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerApplyEnterMpResultRsp {
+ int32 retcode = 1;
+ bool is_agreed = 3;
+ uint32 apply_uid = 10;
+ uint32 param = 12;
+}
diff --git a/proto/PlayerApplyEnterMpRsp.proto b/proto/PlayerApplyEnterMpRsp.proto
new file mode 100644
index 00000000..5fb5dc48
--- /dev/null
+++ b/proto/PlayerApplyEnterMpRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1825
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerApplyEnterMpRsp {
+ int32 retcode = 5;
+ uint32 target_uid = 3;
+ uint32 param = 4;
+}
diff --git a/proto/PlayerCancelMatchReq.proto b/proto/PlayerCancelMatchReq.proto
new file mode 100644
index 00000000..b4fb58d0
--- /dev/null
+++ b/proto/PlayerCancelMatchReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MatchType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4157
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerCancelMatchReq {
+ MatchType match_type = 11;
+}
diff --git a/proto/PlayerCancelMatchRsp.proto b/proto/PlayerCancelMatchRsp.proto
new file mode 100644
index 00000000..df0b1feb
--- /dev/null
+++ b/proto/PlayerCancelMatchRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MatchType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4152
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerCancelMatchRsp {
+ int32 retcode = 6;
+ MatchType match_type = 7;
+}
diff --git a/proto/PlayerChatCDNotify.proto b/proto/PlayerChatCDNotify.proto
new file mode 100644
index 00000000..c9d4b383
--- /dev/null
+++ b/proto/PlayerChatCDNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3367
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerChatCDNotify {
+ uint32 over_time = 15;
+}
diff --git a/proto/PlayerChatNotify.proto b/proto/PlayerChatNotify.proto
new file mode 100644
index 00000000..014d11c8
--- /dev/null
+++ b/proto/PlayerChatNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChatInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3010
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerChatNotify {
+ ChatInfo chat_info = 3;
+ uint32 channel_id = 6;
+}
diff --git a/proto/PlayerChatReq.proto b/proto/PlayerChatReq.proto
new file mode 100644
index 00000000..5f6dbeeb
--- /dev/null
+++ b/proto/PlayerChatReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChatInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3185
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerChatReq {
+ uint32 channel_id = 13;
+ ChatInfo chat_info = 15;
+}
diff --git a/proto/PlayerChatRsp.proto b/proto/PlayerChatRsp.proto
new file mode 100644
index 00000000..b791519a
--- /dev/null
+++ b/proto/PlayerChatRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3228
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerChatRsp {
+ uint32 chat_forbidden_endtime = 15;
+ int32 retcode = 2;
+}
diff --git a/proto/PlayerCompoundMaterialReq.proto b/proto/PlayerCompoundMaterialReq.proto
new file mode 100644
index 00000000..7cc354e6
--- /dev/null
+++ b/proto/PlayerCompoundMaterialReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 150
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerCompoundMaterialReq {
+ uint32 count = 11;
+ uint32 compound_id = 3;
+}
diff --git a/proto/PlayerCompoundMaterialRsp.proto b/proto/PlayerCompoundMaterialRsp.proto
new file mode 100644
index 00000000..4defc484
--- /dev/null
+++ b/proto/PlayerCompoundMaterialRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CompoundQueueData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 143
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerCompoundMaterialRsp {
+ CompoundQueueData compound_que_data = 5;
+ int32 retcode = 12;
+}
diff --git a/proto/PlayerConfirmMatchReq.proto b/proto/PlayerConfirmMatchReq.proto
new file mode 100644
index 00000000..f0a6d0d0
--- /dev/null
+++ b/proto/PlayerConfirmMatchReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MatchType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4172
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerConfirmMatchReq {
+ MatchType match_type = 12;
+ bool is_agreed = 10;
+}
diff --git a/proto/PlayerConfirmMatchRsp.proto b/proto/PlayerConfirmMatchRsp.proto
new file mode 100644
index 00000000..b9ead572
--- /dev/null
+++ b/proto/PlayerConfirmMatchRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MatchType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4194
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerConfirmMatchRsp {
+ MatchType match_type = 9;
+ uint32 match_id = 4;
+ bool is_agreed = 11;
+ int32 retcode = 10;
+}
diff --git a/proto/PlayerCookArgsReq.proto b/proto/PlayerCookArgsReq.proto
new file mode 100644
index 00000000..94360cea
--- /dev/null
+++ b/proto/PlayerCookArgsReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 166
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerCookArgsReq {
+ uint32 assist_avatar = 10;
+ uint32 recipe_id = 11;
+}
diff --git a/proto/PlayerCookArgsRsp.proto b/proto/PlayerCookArgsRsp.proto
new file mode 100644
index 00000000..2a8c46a4
--- /dev/null
+++ b/proto/PlayerCookArgsRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 168
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerCookArgsRsp {
+ int32 retcode = 4;
+ float qte_range_ratio = 12;
+}
diff --git a/proto/PlayerCookReq.proto b/proto/PlayerCookReq.proto
new file mode 100644
index 00000000..aa90a92f
--- /dev/null
+++ b/proto/PlayerCookReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 194
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerCookReq {
+ uint32 cook_count = 1;
+ uint32 qte_quality = 12;
+ uint32 recipe_id = 8;
+ uint32 assist_avatar = 14;
+}
diff --git a/proto/PlayerCookRsp.proto b/proto/PlayerCookRsp.proto
new file mode 100644
index 00000000..74149ca1
--- /dev/null
+++ b/proto/PlayerCookRsp.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CookRecipeData.proto";
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 188
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerCookRsp {
+ repeated ItemParam extral_item_list = 15;
+ uint32 cook_count = 12;
+ repeated ItemParam item_list = 11;
+ int32 retcode = 3;
+ uint32 qte_quality = 5;
+ CookRecipeData recipe_data = 7;
+}
diff --git a/proto/PlayerDataNotify.proto b/proto/PlayerDataNotify.proto
new file mode 100644
index 00000000..e63ec532
--- /dev/null
+++ b/proto/PlayerDataNotify.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PropValue.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 190
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerDataNotify {
+ uint64 server_time = 7;
+ string nick_name = 8;
+ bool is_first_login_today = 12;
+ uint32 region_id = 6;
+ map prop_map = 15;
+}
diff --git a/proto/PlayerDieOption.proto b/proto/PlayerDieOption.proto
new file mode 100644
index 00000000..88ada092
--- /dev/null
+++ b/proto/PlayerDieOption.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum PlayerDieOption {
+ PLAYER_DIE_OPTION_OPT_NONE = 0;
+ PLAYER_DIE_OPTION_OPT_REPLAY = 1;
+ PLAYER_DIE_OPTION_OPT_CANCEL = 2;
+ PLAYER_DIE_OPTION_OPT_REVIVE = 3;
+}
diff --git a/proto/PlayerDieType.proto b/proto/PlayerDieType.proto
new file mode 100644
index 00000000..fa656099
--- /dev/null
+++ b/proto/PlayerDieType.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum PlayerDieType {
+ PLAYER_DIE_TYPE_NONE = 0;
+ PLAYER_DIE_TYPE_KILL_BY_MONSTER = 1;
+ PLAYER_DIE_TYPE_KILL_BY_GEAR = 2;
+ PLAYER_DIE_TYPE_FALL = 3;
+ PLAYER_DIE_TYPE_DRAWN = 4;
+ PLAYER_DIE_TYPE_ABYSS = 5;
+ PLAYER_DIE_TYPE_GM = 6;
+ PLAYER_DIE_TYPE_CLIMATE_COLD = 7;
+ PLAYER_DIE_TYPE_STORM_LIGHTING = 8;
+}
diff --git a/proto/PlayerEnterDungeonReq.proto b/proto/PlayerEnterDungeonReq.proto
new file mode 100644
index 00000000..fb91f1d2
--- /dev/null
+++ b/proto/PlayerEnterDungeonReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2800_JKLFAJKDLDG.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 912
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerEnterDungeonReq {
+ Unk2800_JKLFAJKDLDG Unk2800_ANJAHBGBIFD = 2;
+ uint32 point_id = 13;
+ uint32 dungeon_id = 7;
+}
diff --git a/proto/PlayerEnterDungeonRsp.proto b/proto/PlayerEnterDungeonRsp.proto
new file mode 100644
index 00000000..d7afd965
--- /dev/null
+++ b/proto/PlayerEnterDungeonRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 935
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerEnterDungeonRsp {
+ uint32 dungeon_id = 2;
+ uint32 point_id = 6;
+ int32 retcode = 5;
+}
diff --git a/proto/PlayerEnterSceneInfoNotify.proto b/proto/PlayerEnterSceneInfoNotify.proto
new file mode 100644
index 00000000..c6aa8998
--- /dev/null
+++ b/proto/PlayerEnterSceneInfoNotify.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarEnterSceneInfo.proto";
+import "MPLevelEntityInfo.proto";
+import "TeamEnterSceneInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 214
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerEnterSceneInfoNotify {
+ TeamEnterSceneInfo team_enter_info = 8;
+ uint32 enter_scene_token = 12;
+ repeated AvatarEnterSceneInfo avatar_enter_info = 7;
+ uint32 cur_avatar_entity_id = 6;
+ MPLevelEntityInfo mp_level_entity_info = 5;
+}
diff --git a/proto/PlayerEnterSceneNotify.proto b/proto/PlayerEnterSceneNotify.proto
new file mode 100644
index 00000000..3675c6e7
--- /dev/null
+++ b/proto/PlayerEnterSceneNotify.proto
@@ -0,0 +1,45 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EnterType.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 272
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerEnterSceneNotify {
+ uint32 prev_scene_id = 6;
+ uint32 dungeon_id = 12;
+ bool is_skip_ui = 1732;
+ uint32 scene_id = 15;
+ EnterType type = 13;
+ uint64 scene_begin_time = 14;
+ uint32 world_level = 11;
+ uint32 world_type = 1490;
+ uint32 target_uid = 4;
+ bool is_first_login_enter_scene = 3;
+ repeated uint32 scene_tag_id_list = 5;
+ string scene_transaction = 1842;
+ Vector prev_pos = 8;
+ uint32 enter_reason = 1828;
+ Vector pos = 7;
+ uint32 enter_scene_token = 2;
+}
diff --git a/proto/PlayerEyePointStateNotify.proto b/proto/PlayerEyePointStateNotify.proto
new file mode 100644
index 00000000..e04ddece
--- /dev/null
+++ b/proto/PlayerEyePointStateNotify.proto
@@ -0,0 +1,44 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CylinderRegionSize.proto";
+import "PolygonRegionSize.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3051
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerEyePointStateNotify {
+ uint32 region_entity_id = 15;
+ Vector eye_point_pos = 1;
+ bool is_use_eye_point = 3;
+ uint32 region_config_id = 7;
+ uint32 region_shape = 12;
+ bool is_filter_stream_pos = 2;
+ int32 Unk2800_GBBMMIGJFCF = 5;
+ uint32 region_group_id = 4;
+ oneof region_size {
+ float sphere_radius = 255;
+ Vector cubic_size = 1823;
+ CylinderRegionSize cylinder_size = 1862;
+ PolygonRegionSize polygon_size = 877;
+ }
+}
diff --git a/proto/PlayerFishingDataNotify.proto b/proto/PlayerFishingDataNotify.proto
new file mode 100644
index 00000000..7b45268b
--- /dev/null
+++ b/proto/PlayerFishingDataNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5835
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerFishingDataNotify {
+ uint32 last_fish_rod_id = 8;
+}
diff --git a/proto/PlayerForceExitReq.proto b/proto/PlayerForceExitReq.proto
new file mode 100644
index 00000000..0974437a
--- /dev/null
+++ b/proto/PlayerForceExitReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 189
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerForceExitReq {}
diff --git a/proto/PlayerForceExitRsp.proto b/proto/PlayerForceExitRsp.proto
new file mode 100644
index 00000000..89538baf
--- /dev/null
+++ b/proto/PlayerForceExitRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 159
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerForceExitRsp {
+ int32 retcode = 15;
+}
diff --git a/proto/PlayerGameTimeNotify.proto b/proto/PlayerGameTimeNotify.proto
new file mode 100644
index 00000000..b9b906c4
--- /dev/null
+++ b/proto/PlayerGameTimeNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 131
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerGameTimeNotify {
+ uint32 uid = 7;
+ uint32 game_time = 3;
+ bool is_home = 13;
+}
diff --git a/proto/PlayerGeneralMatchConfirmNotify.proto b/proto/PlayerGeneralMatchConfirmNotify.proto
new file mode 100644
index 00000000..0b5f4262
--- /dev/null
+++ b/proto/PlayerGeneralMatchConfirmNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4192
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerGeneralMatchConfirmNotify {
+ uint32 match_id = 8;
+ bool is_agree = 13;
+ uint32 uid = 14;
+}
diff --git a/proto/PlayerGeneralMatchDismissNotify.proto b/proto/PlayerGeneralMatchDismissNotify.proto
new file mode 100644
index 00000000..7f41d1c2
--- /dev/null
+++ b/proto/PlayerGeneralMatchDismissNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MatchReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4191
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerGeneralMatchDismissNotify {
+ repeated uint32 uid_list = 3;
+ MatchReason reason = 13;
+ uint32 match_id = 1;
+}
diff --git a/proto/PlayerGetForceQuitBanInfoReq.proto b/proto/PlayerGetForceQuitBanInfoReq.proto
new file mode 100644
index 00000000..a0d88270
--- /dev/null
+++ b/proto/PlayerGetForceQuitBanInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4164
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerGetForceQuitBanInfoReq {}
diff --git a/proto/PlayerGetForceQuitBanInfoRsp.proto b/proto/PlayerGetForceQuitBanInfoRsp.proto
new file mode 100644
index 00000000..3f9b7471
--- /dev/null
+++ b/proto/PlayerGetForceQuitBanInfoRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4197
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerGetForceQuitBanInfoRsp {
+ int32 retcode = 4;
+ uint32 match_id = 8;
+ uint32 expire_time = 13;
+}
diff --git a/proto/PlayerHomeCompInfo.proto b/proto/PlayerHomeCompInfo.proto
new file mode 100644
index 00000000..42eb2590
--- /dev/null
+++ b/proto/PlayerHomeCompInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FriendEnterHomeOption.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PlayerHomeCompInfo {
+ repeated uint32 unlocked_module_id_list = 4;
+ repeated uint32 seen_module_id_list = 2;
+ repeated uint32 levelup_reward_got_level_list = 7;
+ FriendEnterHomeOption friend_enter_home_option = 8;
+}
diff --git a/proto/PlayerHomeCompInfoNotify.proto b/proto/PlayerHomeCompInfoNotify.proto
new file mode 100644
index 00000000..84dcb0af
--- /dev/null
+++ b/proto/PlayerHomeCompInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayerHomeCompInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4880
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerHomeCompInfoNotify {
+ PlayerHomeCompInfo comp_info = 4;
+}
diff --git a/proto/PlayerInjectFixNotify.proto b/proto/PlayerInjectFixNotify.proto
new file mode 100644
index 00000000..a277a76a
--- /dev/null
+++ b/proto/PlayerInjectFixNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 132
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerInjectFixNotify {
+ uint32 id = 13;
+ bytes inject_fix = 10;
+}
diff --git a/proto/PlayerInvestigationAllInfoNotify.proto b/proto/PlayerInvestigationAllInfoNotify.proto
new file mode 100644
index 00000000..3eb7eb4f
--- /dev/null
+++ b/proto/PlayerInvestigationAllInfoNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Investigation.proto";
+import "InvestigationTarget.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1928
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerInvestigationAllInfoNotify {
+ repeated Investigation investigation_list = 15;
+ repeated InvestigationTarget investigation_target_list = 12;
+}
diff --git a/proto/PlayerInvestigationNotify.proto b/proto/PlayerInvestigationNotify.proto
new file mode 100644
index 00000000..9e5ef91d
--- /dev/null
+++ b/proto/PlayerInvestigationNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Investigation.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1911
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerInvestigationNotify {
+ repeated Investigation investigation_list = 1;
+}
diff --git a/proto/PlayerInvestigationTargetNotify.proto b/proto/PlayerInvestigationTargetNotify.proto
new file mode 100644
index 00000000..27c30234
--- /dev/null
+++ b/proto/PlayerInvestigationTargetNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "InvestigationTarget.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1929
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerInvestigationTargetNotify {
+ repeated InvestigationTarget investigation_target_list = 1;
+}
diff --git a/proto/PlayerLevelRewardUpdateNotify.proto b/proto/PlayerLevelRewardUpdateNotify.proto
new file mode 100644
index 00000000..6a7eac59
--- /dev/null
+++ b/proto/PlayerLevelRewardUpdateNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 200
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerLevelRewardUpdateNotify {
+ repeated uint32 level_list = 9;
+}
diff --git a/proto/PlayerLocationInfo.proto b/proto/PlayerLocationInfo.proto
new file mode 100644
index 00000000..d834a795
--- /dev/null
+++ b/proto/PlayerLocationInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PlayerLocationInfo {
+ uint32 uid = 15;
+ Vector pos = 3;
+ Vector rot = 13;
+}
diff --git a/proto/PlayerLoginReq.proto b/proto/PlayerLoginReq.proto
new file mode 100644
index 00000000..06427672
--- /dev/null
+++ b/proto/PlayerLoginReq.proto
@@ -0,0 +1,72 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AdjustTrackingInfo.proto";
+import "TrackingIOInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 112
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerLoginReq {
+ uint32 language_type = 6;
+ uint32 reg_platform = 615;
+ TrackingIOInfo tracking_io_info = 1660;
+ uint32 account_type = 13;
+ string token = 15;
+ bytes extra_bin_data = 1458;
+ uint32 channel_id = 1314;
+ uint32 client_data_version = 688;
+ string account_uid = 2;
+ string client_version = 12;
+ string Unk2700_NGKCNPKKIKB = 772;
+ string country_code = 2000;
+ string psn_id = 1268;
+ uint32 Unk2700_GPPBEMDGEHH = 431;
+ string device_name = 9;
+ string cps = 1163;
+ uint64 login_rand = 3;
+ uint32 target_home_param = 984;
+ AdjustTrackingInfo adjust_tracking_info = 1816;
+ bool is_transfer = 908;
+ uint32 tag = 1787;
+ bool is_guest = 5;
+ bytes environment_error_code = 2026;
+ string online_id = 903;
+ bool is_editor = 8;
+ string checksum_client_version = 861;
+ bytes security_cmd_reply = 1995;
+ string Unk2700_JNDKPBBCACB = 1213;
+ string birthday = 1652;
+ string device_uuid = 4;
+ uint32 client_token = 1546;
+ uint32 sub_channel_id = 23;
+ uint32 target_uid = 11;
+ string device_info = 1;
+ string client_verison_hash = 1707;
+ string checksum = 1532;
+ uint32 platform_type = 14;
+ uint32 target_home_owner_uid = 1864;
+ uint32 cloud_client_ip = 1335;
+ uint32 gm_uid = 612;
+ string system_version = 10;
+ string platform = 7;
+}
diff --git a/proto/PlayerLoginRsp.proto b/proto/PlayerLoginRsp.proto
new file mode 100644
index 00000000..fa8da164
--- /dev/null
+++ b/proto/PlayerLoginRsp.proto
@@ -0,0 +1,66 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BlockInfo.proto";
+import "FeatureBlockInfo.proto";
+import "ResVersionConfig.proto";
+import "ShortAbilityHashPair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 135
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerLoginRsp {
+ uint32 client_data_version = 1;
+ bool is_sc_open = 1429;
+ int32 retcode = 15;
+ map block_info_map = 571;
+ bool is_audit = 1685;
+ bool is_transfer = 2018;
+ string client_silence_md5 = 1746;
+ ResVersionConfig next_res_version_config = 1573;
+ uint32 client_silence_data_version = 6;
+ uint64 login_rand = 4;
+ bool is_new_player = 8;
+ string client_version_suffix = 1047;
+ string game_biz = 5;
+ string next_resource_url = 621;
+ bool is_relogin = 10;
+ double total_tick_time = 125;
+ bool is_enable_client_hash_debug = 932;
+ bytes sc_info = 2024;
+ int32 ability_hash_code = 12;
+ string register_cps = 2040;
+ bool Unk3100_EDIDPOKBKHG = 1649;
+ bool is_use_ability_hash = 2;
+ map ability_hash_map = 11;
+ repeated ShortAbilityHashPair short_ability_hash_map = 250;
+ string client_md5 = 1830;
+ string country_code = 1900;
+ bool is_data_need_relogin = 951;
+ ResVersionConfig res_version_config = 1969;
+ repeated FeatureBlockInfo feature_block_info_list = 1352;
+ string birthday = 624;
+ uint32 target_uid = 14;
+ bytes player_data = 13;
+ string client_silence_version_suffix = 1299;
+ uint32 target_home_owner_uid = 553;
+ uint32 player_data_version = 7;
+}
diff --git a/proto/PlayerLogoutNotify.proto b/proto/PlayerLogoutNotify.proto
new file mode 100644
index 00000000..88a71c0a
--- /dev/null
+++ b/proto/PlayerLogoutNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 103
+// EnetChannelId: 0
+// EnetIsReliable: false
+message PlayerLogoutNotify {
+ int32 retcode = 13;
+}
diff --git a/proto/PlayerLogoutReq.proto b/proto/PlayerLogoutReq.proto
new file mode 100644
index 00000000..016c6114
--- /dev/null
+++ b/proto/PlayerLogoutReq.proto
@@ -0,0 +1,39 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 107
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerLogoutReq {
+ Reason reason = 6;
+
+ enum Reason {
+ REASON_DISCONNECT = 0;
+ REASON_CLIENT_REQ = 1;
+ REASON_TIMEOUT = 2;
+ REASON_ADMIN_REQ = 3;
+ REASON_SERVER_CLOSE = 4;
+ REASON_GM_CLEAR = 5;
+ REASON_PLAYER_TRANSFER = 6;
+ REASON_CLIENT_CHECKSUM_INVALID = 7;
+ }
+}
diff --git a/proto/PlayerLogoutRsp.proto b/proto/PlayerLogoutRsp.proto
new file mode 100644
index 00000000..2175e857
--- /dev/null
+++ b/proto/PlayerLogoutRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 121
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerLogoutRsp {
+ int32 retcode = 12;
+}
diff --git a/proto/PlayerLuaShellNotify.proto b/proto/PlayerLuaShellNotify.proto
new file mode 100644
index 00000000..6ee34c63
--- /dev/null
+++ b/proto/PlayerLuaShellNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_JOEPIGNPDGH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 133
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerLuaShellNotify {
+ Unk2700_JOEPIGNPDGH Unk2700_JJMHFFHNJJO = 7;
+ uint32 id = 5;
+ bytes lua_shell = 12;
+ uint32 use_type = 10;
+}
diff --git a/proto/PlayerMatchAgreedResultNotify.proto b/proto/PlayerMatchAgreedResultNotify.proto
new file mode 100644
index 00000000..be0940f9
--- /dev/null
+++ b/proto/PlayerMatchAgreedResultNotify.proto
@@ -0,0 +1,39 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MatchType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4170
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerMatchAgreedResultNotify {
+ uint32 target_uid = 14;
+ MatchType match_type = 3;
+ Reason reason = 8;
+
+ enum Reason {
+ REASON_SUCC = 0;
+ REASON_TARGET_SCENE_CANNOT_ENTER = 1;
+ REASON_SELF_MP_UNAVAILABLE = 2;
+ REASON_OTHER_DATA_VERSION_NOT_LATEST = 3;
+ REASON_DATA_VERSION_NOT_LATEST = 4;
+ }
+}
diff --git a/proto/PlayerMatchInfoNotify.proto b/proto/PlayerMatchInfoNotify.proto
new file mode 100644
index 00000000..bde16ab0
--- /dev/null
+++ b/proto/PlayerMatchInfoNotify.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MatchType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4175
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerMatchInfoNotify {
+ uint32 mechanicus_difficult_level = 12;
+ uint32 estimate_match_cost_time = 3;
+ MatchType match_type = 11;
+ uint32 mp_play_id = 5;
+ uint32 match_id = 8;
+ uint32 match_begin_time = 4;
+ uint32 dungeon_id = 10;
+ uint32 host_uid = 13;
+}
diff --git a/proto/PlayerMatchStopNotify.proto b/proto/PlayerMatchStopNotify.proto
new file mode 100644
index 00000000..9373c19f
--- /dev/null
+++ b/proto/PlayerMatchStopNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MatchReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4181
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerMatchStopNotify {
+ MatchReason reason = 1;
+ uint32 host_uid = 12;
+}
diff --git a/proto/PlayerMatchSuccNotify.proto b/proto/PlayerMatchSuccNotify.proto
new file mode 100644
index 00000000..4b40b831
--- /dev/null
+++ b/proto/PlayerMatchSuccNotify.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GeneralMatchInfo.proto";
+import "MatchType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4179
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerMatchSuccNotify {
+ uint32 mechanicus_difficult_level = 1;
+ uint32 dungeon_id = 6;
+ MatchType match_type = 5;
+ uint32 mp_play_id = 15;
+ GeneralMatchInfo general_match_info = 7;
+ uint32 host_uid = 3;
+ uint32 confirm_end_time = 2;
+}
diff --git a/proto/PlayerOfferingData.proto b/proto/PlayerOfferingData.proto
new file mode 100644
index 00000000..46acb563
--- /dev/null
+++ b/proto/PlayerOfferingData.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PlayerOfferingData {
+ uint32 offering_id = 1;
+ bool is_first_interact = 15;
+ uint32 level = 12;
+ repeated uint32 taken_level_reward_list = 8;
+ bool is_new_max_level = 6;
+}
diff --git a/proto/PlayerOfferingDataNotify.proto b/proto/PlayerOfferingDataNotify.proto
new file mode 100644
index 00000000..2763c00d
--- /dev/null
+++ b/proto/PlayerOfferingDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayerOfferingData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2923
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerOfferingDataNotify {
+ repeated PlayerOfferingData offering_data_list = 2;
+}
diff --git a/proto/PlayerOfferingReq.proto b/proto/PlayerOfferingReq.proto
new file mode 100644
index 00000000..bbb31082
--- /dev/null
+++ b/proto/PlayerOfferingReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2907
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerOfferingReq {
+ uint32 offering_id = 6;
+}
diff --git a/proto/PlayerOfferingRsp.proto b/proto/PlayerOfferingRsp.proto
new file mode 100644
index 00000000..52fe7c8b
--- /dev/null
+++ b/proto/PlayerOfferingRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+import "PlayerOfferingData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2917
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerOfferingRsp {
+ repeated ItemParam item_list = 7;
+ int32 retcode = 4;
+ PlayerOfferingData offering_data = 10;
+}
diff --git a/proto/PlayerPreEnterMpNotify.proto b/proto/PlayerPreEnterMpNotify.proto
new file mode 100644
index 00000000..4ba0e55a
--- /dev/null
+++ b/proto/PlayerPreEnterMpNotify.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1822
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerPreEnterMpNotify {
+ State state = 2;
+ uint32 uid = 14;
+ string nickname = 6;
+
+ enum State {
+ STATE_INVALID = 0;
+ STATE_START = 1;
+ STATE_TIMEOUT = 2;
+ }
+}
diff --git a/proto/PlayerPropChangeNotify.proto b/proto/PlayerPropChangeNotify.proto
new file mode 100644
index 00000000..09b5d2e0
--- /dev/null
+++ b/proto/PlayerPropChangeNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 139
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerPropChangeNotify {
+ uint32 prop_delta = 13;
+ uint32 prop_type = 12;
+}
diff --git a/proto/PlayerPropChangeReasonNotify.proto b/proto/PlayerPropChangeReasonNotify.proto
new file mode 100644
index 00000000..419679a3
--- /dev/null
+++ b/proto/PlayerPropChangeReasonNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PropChangeReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1299
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerPropChangeReasonNotify {
+ uint32 prop_type = 6;
+ float old_value = 12;
+ PropChangeReason reason = 1;
+ float cur_value = 11;
+}
diff --git a/proto/PlayerPropNotify.proto b/proto/PlayerPropNotify.proto
new file mode 100644
index 00000000..642445c5
--- /dev/null
+++ b/proto/PlayerPropNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PropValue.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 175
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerPropNotify {
+ map prop_map = 13;
+}
diff --git a/proto/PlayerQuitDungeonReq.proto b/proto/PlayerQuitDungeonReq.proto
new file mode 100644
index 00000000..e157276a
--- /dev/null
+++ b/proto/PlayerQuitDungeonReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 907
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerQuitDungeonReq {
+ bool is_quit_immediately = 10;
+ uint32 point_id = 7;
+}
diff --git a/proto/PlayerQuitDungeonRsp.proto b/proto/PlayerQuitDungeonRsp.proto
new file mode 100644
index 00000000..a4ebb505
--- /dev/null
+++ b/proto/PlayerQuitDungeonRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 921
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerQuitDungeonRsp {
+ uint32 point_id = 11;
+ int32 retcode = 7;
+}
diff --git a/proto/PlayerQuitFromHomeNotify.proto b/proto/PlayerQuitFromHomeNotify.proto
new file mode 100644
index 00000000..8938a75c
--- /dev/null
+++ b/proto/PlayerQuitFromHomeNotify.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4656
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerQuitFromHomeNotify {
+ QuitReason reason = 6;
+
+ enum QuitReason {
+ QUIT_REASON_INVALID = 0;
+ QUIT_REASON_KICK_BY_HOST = 1;
+ QUIT_REASON_BACK_TO_MY_WORLD = 2;
+ QUIT_REASON_HOME_BLOCKED = 3;
+ QUIT_REASON_HOME_IN_EDIT_MODE = 4;
+ QUIT_REASON_BY_MUIP = 5;
+ QUIT_REASON_CUR_MODULE_CLOSED = 6;
+ }
+}
diff --git a/proto/PlayerQuitFromMpNotify.proto b/proto/PlayerQuitFromMpNotify.proto
new file mode 100644
index 00000000..6b37c86d
--- /dev/null
+++ b/proto/PlayerQuitFromMpNotify.proto
@@ -0,0 +1,41 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1829
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerQuitFromMpNotify {
+ QuitReason reason = 11;
+
+ enum QuitReason {
+ QUIT_REASON_INVALID = 0;
+ QUIT_REASON_HOST_NO_OTHER_PLAYER = 1;
+ QUIT_REASON_KICK_BY_HOST = 2;
+ QUIT_REASON_BACK_TO_MY_WORLD = 3;
+ QUIT_REASON_KICK_BY_HOST_LOGOUT = 4;
+ QUIT_REASON_KICK_BY_HOST_BLOCK = 5;
+ QUIT_REASON_BE_BLOCKED = 6;
+ QUIT_REASON_KICK_BY_HOST_ENTER_HOME = 7;
+ QUIT_REASON_HOST_SCENE_INVALID = 8;
+ QUIT_REASON_KICK_BY_PLAY = 9;
+ QUIT_REASON_Unk2800_FDECHAHJFDA = 10;
+ }
+}
diff --git a/proto/PlayerRTTInfo.proto b/proto/PlayerRTTInfo.proto
new file mode 100644
index 00000000..0539f02f
--- /dev/null
+++ b/proto/PlayerRTTInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PlayerRTTInfo {
+ uint32 rtt = 2;
+ uint32 uid = 1;
+}
diff --git a/proto/PlayerRandomCookReq.proto b/proto/PlayerRandomCookReq.proto
new file mode 100644
index 00000000..8c669b76
--- /dev/null
+++ b/proto/PlayerRandomCookReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 126
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerRandomCookReq {
+ repeated ItemParam material_list = 13;
+}
diff --git a/proto/PlayerRandomCookRsp.proto b/proto/PlayerRandomCookRsp.proto
new file mode 100644
index 00000000..d2ec02c3
--- /dev/null
+++ b/proto/PlayerRandomCookRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 163
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerRandomCookRsp {
+ int32 retcode = 4;
+}
diff --git a/proto/PlayerRechargeDataNotify.proto b/proto/PlayerRechargeDataNotify.proto
new file mode 100644
index 00000000..6d6c168d
--- /dev/null
+++ b/proto/PlayerRechargeDataNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ProductPriceTier.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4102
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerRechargeDataNotify {
+ uint32 card_product_remain_days = 12;
+ repeated ProductPriceTier product_price_tier_list = 11;
+}
diff --git a/proto/PlayerReportReq.proto b/proto/PlayerReportReq.proto
new file mode 100644
index 00000000..8cce1732
--- /dev/null
+++ b/proto/PlayerReportReq.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ReportReasonType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4024
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerReportReq {
+ ReportReasonType reason = 12;
+ string content = 8;
+ uint32 target_home_module_id = 5;
+ string target_home_module_name = 6;
+ uint32 target_uid = 14;
+}
diff --git a/proto/PlayerReportRsp.proto b/proto/PlayerReportRsp.proto
new file mode 100644
index 00000000..e25ed86f
--- /dev/null
+++ b/proto/PlayerReportRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4056
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerReportRsp {
+ uint32 cd_time = 11;
+ uint32 target_uid = 6;
+ int32 retcode = 12;
+}
diff --git a/proto/PlayerRoutineDataNotify.proto b/proto/PlayerRoutineDataNotify.proto
new file mode 100644
index 00000000..7bd203ee
--- /dev/null
+++ b/proto/PlayerRoutineDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayerRoutineInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3526
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerRoutineDataNotify {
+ repeated PlayerRoutineInfo routine_info_list = 11;
+}
diff --git a/proto/PlayerRoutineInfo.proto b/proto/PlayerRoutineInfo.proto
new file mode 100644
index 00000000..cd0538b4
--- /dev/null
+++ b/proto/PlayerRoutineInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PlayerRoutineInfo {
+ uint32 routine_type = 8;
+ uint32 finished_num = 15;
+}
diff --git a/proto/PlayerSetLanguageReq.proto b/proto/PlayerSetLanguageReq.proto
new file mode 100644
index 00000000..b401c6a0
--- /dev/null
+++ b/proto/PlayerSetLanguageReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 142
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerSetLanguageReq {
+ uint32 language_type = 5;
+}
diff --git a/proto/PlayerSetLanguageRsp.proto b/proto/PlayerSetLanguageRsp.proto
new file mode 100644
index 00000000..1c871168
--- /dev/null
+++ b/proto/PlayerSetLanguageRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 130
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerSetLanguageRsp {
+ int32 retcode = 11;
+}
diff --git a/proto/PlayerSetOnlyMPWithPSPlayerReq.proto b/proto/PlayerSetOnlyMPWithPSPlayerReq.proto
new file mode 100644
index 00000000..e66394cb
--- /dev/null
+++ b/proto/PlayerSetOnlyMPWithPSPlayerReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1820
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerSetOnlyMPWithPSPlayerReq {
+ bool is_only = 13;
+}
diff --git a/proto/PlayerSetOnlyMPWithPSPlayerRsp.proto b/proto/PlayerSetOnlyMPWithPSPlayerRsp.proto
new file mode 100644
index 00000000..2454b05b
--- /dev/null
+++ b/proto/PlayerSetOnlyMPWithPSPlayerRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1845
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerSetOnlyMPWithPSPlayerRsp {
+ int32 retcode = 5;
+ bool is_only = 8;
+}
diff --git a/proto/PlayerSetPauseReq.proto b/proto/PlayerSetPauseReq.proto
new file mode 100644
index 00000000..e1bbb531
--- /dev/null
+++ b/proto/PlayerSetPauseReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 124
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerSetPauseReq {
+ bool is_paused = 1;
+}
diff --git a/proto/PlayerSetPauseRsp.proto b/proto/PlayerSetPauseRsp.proto
new file mode 100644
index 00000000..516a529f
--- /dev/null
+++ b/proto/PlayerSetPauseRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 156
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerSetPauseRsp {
+ int32 retcode = 15;
+}
diff --git a/proto/PlayerStartMatchReq.proto b/proto/PlayerStartMatchReq.proto
new file mode 100644
index 00000000..4ab2d1d4
--- /dev/null
+++ b/proto/PlayerStartMatchReq.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MatchType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4176
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PlayerStartMatchReq {
+ MatchType match_type = 3;
+ uint32 mechanicus_difficult_level = 12;
+ repeated uint32 match_param_list = 11;
+ uint32 dungeon_id = 1;
+ uint32 mp_play_id = 15;
+ uint32 match_id = 6;
+}
diff --git a/proto/PlayerStartMatchRsp.proto b/proto/PlayerStartMatchRsp.proto
new file mode 100644
index 00000000..dfefc745
--- /dev/null
+++ b/proto/PlayerStartMatchRsp.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MatchType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4168
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerStartMatchRsp {
+ int32 retcode = 1;
+ uint32 punish_end_time = 5;
+ uint32 param = 4;
+ uint32 mp_play_id = 13;
+ uint32 mechanicus_difficult_level = 2;
+ uint32 dungeon_id = 3;
+ uint32 match_id = 8;
+ MatchType match_type = 7;
+}
diff --git a/proto/PlayerStoreNotify.proto b/proto/PlayerStoreNotify.proto
new file mode 100644
index 00000000..89120821
--- /dev/null
+++ b/proto/PlayerStoreNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Item.proto";
+import "StoreType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 672
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerStoreNotify {
+ repeated Item item_list = 15;
+ uint32 weight_limit = 8;
+ StoreType store_type = 2;
+}
diff --git a/proto/PlayerTimeNotify.proto b/proto/PlayerTimeNotify.proto
new file mode 100644
index 00000000..4f89f7cd
--- /dev/null
+++ b/proto/PlayerTimeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 191
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerTimeNotify {
+ uint64 server_time = 5;
+ uint64 player_time = 11;
+ bool is_paused = 14;
+}
diff --git a/proto/PlayerUidExtInfo.proto b/proto/PlayerUidExtInfo.proto
new file mode 100644
index 00000000..870f117e
--- /dev/null
+++ b/proto/PlayerUidExtInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PlayerUidExtInfo {
+ uint32 reg_platform = 1;
+}
diff --git a/proto/PlayerWorldLocationInfo.proto b/proto/PlayerWorldLocationInfo.proto
new file mode 100644
index 00000000..e4074b37
--- /dev/null
+++ b/proto/PlayerWorldLocationInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayerLocationInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PlayerWorldLocationInfo {
+ uint32 scene_id = 1;
+ PlayerLocationInfo player_loc = 12;
+}
diff --git a/proto/PlayerWorldSceneInfo.proto b/proto/PlayerWorldSceneInfo.proto
new file mode 100644
index 00000000..fec560b0
--- /dev/null
+++ b/proto/PlayerWorldSceneInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PlayerWorldSceneInfo {
+ uint32 scene_id = 11;
+ repeated uint32 scene_tag_id_list = 8;
+ bool is_locked = 12;
+}
diff --git a/proto/PlayerWorldSceneInfoListNotify.proto b/proto/PlayerWorldSceneInfoListNotify.proto
new file mode 100644
index 00000000..52af74e7
--- /dev/null
+++ b/proto/PlayerWorldSceneInfoListNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayerWorldSceneInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3129
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerWorldSceneInfoListNotify {
+ repeated PlayerWorldSceneInfo info_list = 5;
+}
diff --git a/proto/PolygonRegionSize.proto b/proto/PolygonRegionSize.proto
new file mode 100644
index 00000000..e9ff4ce5
--- /dev/null
+++ b/proto/PolygonRegionSize.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "VectorPlane.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PolygonRegionSize {
+ repeated VectorPlane point_list = 5;
+ float height = 9;
+}
diff --git a/proto/PostEnterSceneReq.proto b/proto/PostEnterSceneReq.proto
new file mode 100644
index 00000000..0658f04f
--- /dev/null
+++ b/proto/PostEnterSceneReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3312
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PostEnterSceneReq {
+ uint32 enter_scene_token = 12;
+}
diff --git a/proto/PostEnterSceneRsp.proto b/proto/PostEnterSceneRsp.proto
new file mode 100644
index 00000000..42862312
--- /dev/null
+++ b/proto/PostEnterSceneRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3184
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PostEnterSceneRsp {
+ int32 retcode = 4;
+ uint32 enter_scene_token = 12;
+}
diff --git a/proto/PotionActivityDetailInfo.proto b/proto/PotionActivityDetailInfo.proto
new file mode 100644
index 00000000..61a386a8
--- /dev/null
+++ b/proto/PotionActivityDetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PotionStage.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PotionActivityDetailInfo {
+ repeated PotionStage stage_list = 10;
+}
diff --git a/proto/PotionDungeonResultInfo.proto b/proto/PotionDungeonResultInfo.proto
new file mode 100644
index 00000000..b7d0e4fc
--- /dev/null
+++ b/proto/PotionDungeonResultInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PotionDungeonResultInfo {
+ uint32 final_score = 8;
+ uint32 left_time = 9;
+ uint32 Unk2700_FHEHGDABALE = 14;
+ uint32 Unk2700_HKFEBBCMBHL = 11;
+ uint32 level_id = 4;
+ uint32 stage_id = 2;
+}
diff --git a/proto/PotionStage.proto b/proto/PotionStage.proto
new file mode 100644
index 00000000..17454e5f
--- /dev/null
+++ b/proto/PotionStage.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_JLHKOLGFAMI.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PotionStage {
+ uint32 stage_id = 11;
+ repeated uint32 Unk2700_HFHCCJFDOKA = 2;
+ bool is_open = 15;
+ repeated Unk2700_JLHKOLGFAMI level_list = 14;
+ repeated uint32 Unk2700_LONIJGBDPIG = 13;
+}
diff --git a/proto/PrivateChatNotify.proto b/proto/PrivateChatNotify.proto
new file mode 100644
index 00000000..3782a4e8
--- /dev/null
+++ b/proto/PrivateChatNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChatInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4962
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PrivateChatNotify {
+ ChatInfo chat_info = 7;
+}
diff --git a/proto/PrivateChatReq.proto b/proto/PrivateChatReq.proto
new file mode 100644
index 00000000..1c26ead5
--- /dev/null
+++ b/proto/PrivateChatReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5022
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PrivateChatReq {
+ uint32 target_uid = 7;
+ oneof content {
+ string text = 3;
+ uint32 icon = 4;
+ }
+}
diff --git a/proto/PrivateChatRsp.proto b/proto/PrivateChatRsp.proto
new file mode 100644
index 00000000..32661a81
--- /dev/null
+++ b/proto/PrivateChatRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5048
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PrivateChatRsp {
+ uint32 chat_forbidden_endtime = 12;
+ int32 retcode = 14;
+}
diff --git a/proto/PrivateChatSetSequenceReq.proto b/proto/PrivateChatSetSequenceReq.proto
new file mode 100644
index 00000000..d45c433d
--- /dev/null
+++ b/proto/PrivateChatSetSequenceReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4985
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PrivateChatSetSequenceReq {
+ uint32 target_uid = 11;
+ uint32 sequence = 15;
+}
diff --git a/proto/PrivateChatSetSequenceRsp.proto b/proto/PrivateChatSetSequenceRsp.proto
new file mode 100644
index 00000000..0fcbe07c
--- /dev/null
+++ b/proto/PrivateChatSetSequenceRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4957
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PrivateChatSetSequenceRsp {
+ int32 retcode = 13;
+}
diff --git a/proto/ProductPriceTier.proto b/proto/ProductPriceTier.proto
new file mode 100644
index 00000000..448f6d05
--- /dev/null
+++ b/proto/ProductPriceTier.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ProductPriceTier {
+ string product_id = 6;
+ string price_tier = 12;
+}
diff --git a/proto/ProfilePicture.proto b/proto/ProfilePicture.proto
new file mode 100644
index 00000000..60244751
--- /dev/null
+++ b/proto/ProfilePicture.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ProfilePicture {
+ uint32 avatar_id = 1;
+ uint32 costume_id = 2;
+}
diff --git a/proto/ProfilePictureChangeNotify.proto b/proto/ProfilePictureChangeNotify.proto
new file mode 100644
index 00000000..de978841
--- /dev/null
+++ b/proto/ProfilePictureChangeNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4016
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ProfilePictureChangeNotify {
+ ProfilePicture profile_picture = 12;
+}
diff --git a/proto/ProjectorOptionReq.proto b/proto/ProjectorOptionReq.proto
new file mode 100644
index 00000000..a48e9ab7
--- /dev/null
+++ b/proto/ProjectorOptionReq.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 863
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ProjectorOptionReq {
+ uint32 op_type = 7;
+ uint32 entity_id = 10;
+
+ enum ProjectorOpType {
+ PROJECTOR_OP_TYPE_NONE = 0;
+ PROJECTOR_OP_TYPE_CREATE = 1;
+ PROJECTOR_OP_TYPE_DESTROY = 2;
+ }
+}
diff --git a/proto/ProjectorOptionRsp.proto b/proto/ProjectorOptionRsp.proto
new file mode 100644
index 00000000..b35ad960
--- /dev/null
+++ b/proto/ProjectorOptionRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 895
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ProjectorOptionRsp {
+ uint32 entity_id = 10;
+ int32 retcode = 12;
+ uint32 op_type = 13;
+}
diff --git a/proto/PropChangeReason.proto b/proto/PropChangeReason.proto
new file mode 100644
index 00000000..c78501f6
--- /dev/null
+++ b/proto/PropChangeReason.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum PropChangeReason {
+ PROP_CHANGE_REASON_NONE = 0;
+ PROP_CHANGE_REASON_STATUE_RECOVER = 1;
+ PROP_CHANGE_REASON_ENERGY_BALL = 2;
+ PROP_CHANGE_REASON_ABILITY = 3;
+ PROP_CHANGE_REASON_LEVELUP = 4;
+ PROP_CHANGE_REASON_ITEM = 5;
+ PROP_CHANGE_REASON_AVATAR_CARD = 6;
+ PROP_CHANGE_REASON_CITY_LEVELUP = 7;
+ PROP_CHANGE_REASON_AVATAR_UPGRADE = 8;
+ PROP_CHANGE_REASON_AVATAR_PROMOTE = 9;
+ PROP_CHANGE_REASON_PLAYER_ADD_EXP = 10;
+ PROP_CHANGE_REASON_FINISH_QUEST = 11;
+ PROP_CHANGE_REASON_GM = 12;
+ PROP_CHANGE_REASON_MANUAL_ADJUST_WORLD_LEVEL = 13;
+}
diff --git a/proto/PropPair.proto b/proto/PropPair.proto
new file mode 100644
index 00000000..c251ed18
--- /dev/null
+++ b/proto/PropPair.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PropValue.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PropPair {
+ uint32 type = 1;
+ PropValue prop_value = 2;
+}
diff --git a/proto/PropValue.proto b/proto/PropValue.proto
new file mode 100644
index 00000000..6dd23f5a
--- /dev/null
+++ b/proto/PropValue.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PropValue {
+ uint32 type = 1;
+ int64 val = 4;
+ oneof value {
+ int64 ival = 2;
+ float fval = 3;
+ }
+}
diff --git a/proto/ProtEntityType.proto b/proto/ProtEntityType.proto
new file mode 100644
index 00000000..dace05cb
--- /dev/null
+++ b/proto/ProtEntityType.proto
@@ -0,0 +1,38 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum ProtEntityType {
+ PROT_ENTITY_TYPE_NONE = 0;
+ PROT_ENTITY_TYPE_AVATAR = 1;
+ PROT_ENTITY_TYPE_MONSTER = 2;
+ PROT_ENTITY_TYPE_NPC = 3;
+ PROT_ENTITY_TYPE_GADGET = 4;
+ PROT_ENTITY_TYPE_REGION = 5;
+ PROT_ENTITY_TYPE_WEAPON = 6;
+ PROT_ENTITY_TYPE_WEATHER = 7;
+ PROT_ENTITY_TYPE_SCENE = 8;
+ PROT_ENTITY_TYPE_TEAM = 9;
+ PROT_ENTITY_TYPE_MASSIVE_ENTITY = 10;
+ PROT_ENTITY_TYPE_MP_LEVEL = 11;
+ PROT_ENTITY_TYPE_PLAY_TEAM_ENTITY = 12;
+ PROT_ENTITY_TYPE_EYE_POINT = 13;
+ PROT_ENTITY_TYPE_MAX = 14;
+}
diff --git a/proto/ProudSkillChangeNotify.proto b/proto/ProudSkillChangeNotify.proto
new file mode 100644
index 00000000..6c60462b
--- /dev/null
+++ b/proto/ProudSkillChangeNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1031
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ProudSkillChangeNotify {
+ uint64 avatar_guid = 11;
+ uint32 entity_id = 4;
+ uint32 skill_depot_id = 8;
+ repeated uint32 proud_skill_list = 12;
+}
diff --git a/proto/ProudSkillExtraLevelNotify.proto b/proto/ProudSkillExtraLevelNotify.proto
new file mode 100644
index 00000000..efb09ee2
--- /dev/null
+++ b/proto/ProudSkillExtraLevelNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1081
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ProudSkillExtraLevelNotify {
+ uint32 talent_type = 11;
+ uint32 talent_index = 8;
+ uint64 avatar_guid = 15;
+ uint32 extra_level = 3;
+}
diff --git a/proto/ProudSkillUpgradeReq.proto b/proto/ProudSkillUpgradeReq.proto
new file mode 100644
index 00000000..5d86137e
--- /dev/null
+++ b/proto/ProudSkillUpgradeReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1073
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ProudSkillUpgradeReq {
+ uint64 avatar_guid = 5;
+ uint32 old_proud_skill_level = 4;
+ uint32 proud_skill_id = 14;
+}
diff --git a/proto/ProudSkillUpgradeRsp.proto b/proto/ProudSkillUpgradeRsp.proto
new file mode 100644
index 00000000..ae2f2cee
--- /dev/null
+++ b/proto/ProudSkillUpgradeRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1099
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ProudSkillUpgradeRsp {
+ uint64 avatar_guid = 6;
+ uint32 proud_skill_id = 10;
+ int32 retcode = 15;
+}
diff --git a/proto/PullPrivateChatReq.proto b/proto/PullPrivateChatReq.proto
new file mode 100644
index 00000000..8b293c87
--- /dev/null
+++ b/proto/PullPrivateChatReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4971
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PullPrivateChatReq {
+ uint32 target_uid = 5;
+ uint32 pull_num = 7;
+ uint32 from_sequence = 12;
+}
diff --git a/proto/PullPrivateChatRsp.proto b/proto/PullPrivateChatRsp.proto
new file mode 100644
index 00000000..ccdef7b0
--- /dev/null
+++ b/proto/PullPrivateChatRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChatInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4953
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PullPrivateChatRsp {
+ repeated ChatInfo chat_info = 15;
+ int32 retcode = 11;
+}
diff --git a/proto/PullRecentChatReq.proto b/proto/PullRecentChatReq.proto
new file mode 100644
index 00000000..45dad3ea
--- /dev/null
+++ b/proto/PullRecentChatReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5040
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PullRecentChatReq {
+ uint32 pull_num = 6;
+ uint32 begin_sequence = 15;
+}
diff --git a/proto/PullRecentChatRsp.proto b/proto/PullRecentChatRsp.proto
new file mode 100644
index 00000000..65228bde
--- /dev/null
+++ b/proto/PullRecentChatRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChatInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5023
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PullRecentChatRsp {
+ repeated ChatInfo chat_info = 15;
+ int32 retcode = 3;
+}
diff --git a/proto/PushTipsAllDataNotify.proto b/proto/PushTipsAllDataNotify.proto
new file mode 100644
index 00000000..1ac11b9f
--- /dev/null
+++ b/proto/PushTipsAllDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PushTipsData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2222
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PushTipsAllDataNotify {
+ repeated PushTipsData push_tips_list = 4;
+}
diff --git a/proto/PushTipsChangeNotify.proto b/proto/PushTipsChangeNotify.proto
new file mode 100644
index 00000000..bad21cfb
--- /dev/null
+++ b/proto/PushTipsChangeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PushTipsData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2265
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PushTipsChangeNotify {
+ repeated PushTipsData push_tips_list = 9;
+}
diff --git a/proto/PushTipsData.proto b/proto/PushTipsData.proto
new file mode 100644
index 00000000..968bf342
--- /dev/null
+++ b/proto/PushTipsData.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PushTipsData {
+ uint32 push_tips_id = 13;
+ uint32 state = 4;
+}
diff --git a/proto/PushTipsReadFinishReq.proto b/proto/PushTipsReadFinishReq.proto
new file mode 100644
index 00000000..6a5ea7c5
--- /dev/null
+++ b/proto/PushTipsReadFinishReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2204
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PushTipsReadFinishReq {
+ uint32 push_tips_id = 11;
+}
diff --git a/proto/PushTipsReadFinishRsp.proto b/proto/PushTipsReadFinishRsp.proto
new file mode 100644
index 00000000..cfa72f4a
--- /dev/null
+++ b/proto/PushTipsReadFinishRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2293
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PushTipsReadFinishRsp {
+ uint32 push_tips_id = 3;
+ int32 retcode = 9;
+}
diff --git a/proto/QueryCodexMonsterBeKilledNumReq.proto b/proto/QueryCodexMonsterBeKilledNumReq.proto
new file mode 100644
index 00000000..95585153
--- /dev/null
+++ b/proto/QueryCodexMonsterBeKilledNumReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4203
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message QueryCodexMonsterBeKilledNumReq {
+ repeated uint32 codex_id_list = 14;
+}
diff --git a/proto/QueryCodexMonsterBeKilledNumRsp.proto b/proto/QueryCodexMonsterBeKilledNumRsp.proto
new file mode 100644
index 00000000..e0be5ae8
--- /dev/null
+++ b/proto/QueryCodexMonsterBeKilledNumRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4209
+// EnetChannelId: 0
+// EnetIsReliable: true
+message QueryCodexMonsterBeKilledNumRsp {
+ repeated uint32 codex_id_list = 4;
+ repeated uint32 Unk2700_MKOBMGGPNMI = 6;
+ repeated uint32 be_killed_num_list = 12;
+ int32 retcode = 5;
+}
diff --git a/proto/QueryCurrRegionHttpRsp.proto b/proto/QueryCurrRegionHttpRsp.proto
new file mode 100644
index 00000000..7dc73d8e
--- /dev/null
+++ b/proto/QueryCurrRegionHttpRsp.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ForceUpdateInfo.proto";
+import "RegionInfo.proto";
+import "StopServerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message QueryCurrRegionHttpRsp {
+ int32 retcode = 1;
+ string msg = 2;
+ RegionInfo region_info = 3;
+ bytes client_secret_key = 11;
+ bytes region_custom_config_encrypted = 12;
+ bytes client_region_custom_config_encrypted = 13;
+ oneof detail {
+ ForceUpdateInfo force_udpate = 4;
+ StopServerInfo stop_server = 5;
+ }
+}
diff --git a/proto/QueryFilter.proto b/proto/QueryFilter.proto
new file mode 100644
index 00000000..48f3de1c
--- /dev/null
+++ b/proto/QueryFilter.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message QueryFilter {
+ int32 type_id = 9;
+ int32 area_mask = 13;
+}
diff --git a/proto/QueryPathReq.proto b/proto/QueryPathReq.proto
new file mode 100644
index 00000000..673047ec
--- /dev/null
+++ b/proto/QueryPathReq.proto
@@ -0,0 +1,45 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "QueryFilter.proto";
+import "Vector.proto";
+import "Vector3Int.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2372
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message QueryPathReq {
+ OptionType query_type = 13;
+ Vector3Int source_extend = 6;
+ Vector source_pos = 2;
+ QueryFilter filter = 12;
+ int32 query_id = 15;
+ Vector3Int destination_extend = 4;
+ repeated Vector destination_pos = 10;
+ uint32 scene_id = 11;
+
+ enum OptionType {
+ OPTION_TYPE_NONE = 0;
+ OPTION_TYPE_NORMAL = 1;
+ OPTION_TYPE_FIRST_CAN_GO = 2;
+ }
+}
diff --git a/proto/QueryPathRsp.proto b/proto/QueryPathRsp.proto
new file mode 100644
index 00000000..b310598f
--- /dev/null
+++ b/proto/QueryPathRsp.proto
@@ -0,0 +1,38 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2398
+// EnetChannelId: 0
+// EnetIsReliable: true
+message QueryPathRsp {
+ int32 query_id = 12;
+ repeated Vector corners = 6;
+ PathStatusType query_status = 8;
+ int32 retcode = 1;
+
+ enum PathStatusType {
+ PATH_STATUS_TYPE_FAIL = 0;
+ PATH_STATUS_TYPE_SUCC = 1;
+ PATH_STATUS_TYPE_PARTIAL = 2;
+ }
+}
diff --git a/proto/QueryRegionListHttpRsp.proto b/proto/QueryRegionListHttpRsp.proto
new file mode 100644
index 00000000..8845cf11
--- /dev/null
+++ b/proto/QueryRegionListHttpRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RegionSimpleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message QueryRegionListHttpRsp {
+ int32 retcode = 1;
+ repeated RegionSimpleInfo region_list = 2;
+ bytes client_secret_key = 5;
+ bytes client_custom_config_encrypted = 6;
+ bool enable_login_pc = 7;
+}
diff --git a/proto/Quest.proto b/proto/Quest.proto
new file mode 100644
index 00000000..2edc76b5
--- /dev/null
+++ b/proto/Quest.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Quest {
+ uint32 quest_id = 1;
+ uint32 state = 2;
+ uint32 start_time = 4;
+ bool is_random = 5;
+ uint32 parent_quest_id = 6;
+ uint32 quest_config_id = 7;
+ uint32 start_game_time = 8;
+ uint32 accept_time = 9;
+ repeated uint32 lacked_npc_list = 10;
+ repeated uint32 finish_progress_list = 11;
+ repeated uint32 fail_progress_list = 12;
+ map lacked_npc_map = 13;
+ repeated uint32 lacked_place_list = 14;
+ map lacked_place_map = 15;
+}
diff --git a/proto/QuestCreateEntityReq.proto b/proto/QuestCreateEntityReq.proto
new file mode 100644
index 00000000..6f01f2b9
--- /dev/null
+++ b/proto/QuestCreateEntityReq.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CreateEntityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 499
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message QuestCreateEntityReq {
+ uint32 parent_quest_id = 9;
+ bool is_rewind = 3;
+ uint32 quest_id = 2;
+ CreateEntityInfo entity = 13;
+}
diff --git a/proto/QuestCreateEntityRsp.proto b/proto/QuestCreateEntityRsp.proto
new file mode 100644
index 00000000..1cb69c3f
--- /dev/null
+++ b/proto/QuestCreateEntityRsp.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CreateEntityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 431
+// EnetChannelId: 0
+// EnetIsReliable: true
+message QuestCreateEntityRsp {
+ uint32 quest_id = 13;
+ int32 retcode = 8;
+ uint32 entity_id = 7;
+ CreateEntityInfo entity = 11;
+ uint32 parent_quest_id = 1;
+ bool is_rewind = 14;
+}
diff --git a/proto/QuestDelNotify.proto b/proto/QuestDelNotify.proto
new file mode 100644
index 00000000..efa81752
--- /dev/null
+++ b/proto/QuestDelNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 412
+// EnetChannelId: 0
+// EnetIsReliable: true
+message QuestDelNotify {
+ uint32 quest_id = 1;
+}
diff --git a/proto/QuestDestroyEntityReq.proto b/proto/QuestDestroyEntityReq.proto
new file mode 100644
index 00000000..cceda2b9
--- /dev/null
+++ b/proto/QuestDestroyEntityReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 475
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message QuestDestroyEntityReq {
+ uint32 scene_id = 2;
+ uint32 entity_id = 9;
+ uint32 quest_id = 8;
+}
diff --git a/proto/QuestDestroyEntityRsp.proto b/proto/QuestDestroyEntityRsp.proto
new file mode 100644
index 00000000..dbf45f55
--- /dev/null
+++ b/proto/QuestDestroyEntityRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 448
+// EnetChannelId: 0
+// EnetIsReliable: true
+message QuestDestroyEntityRsp {
+ uint32 quest_id = 14;
+ uint32 scene_id = 9;
+ uint32 entity_id = 12;
+ int32 retcode = 1;
+}
diff --git a/proto/QuestDestroyNpcReq.proto b/proto/QuestDestroyNpcReq.proto
new file mode 100644
index 00000000..2fd020c9
--- /dev/null
+++ b/proto/QuestDestroyNpcReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 422
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message QuestDestroyNpcReq {
+ uint32 npc_id = 1;
+ uint32 parent_quest_id = 12;
+}
diff --git a/proto/QuestDestroyNpcRsp.proto b/proto/QuestDestroyNpcRsp.proto
new file mode 100644
index 00000000..c834779d
--- /dev/null
+++ b/proto/QuestDestroyNpcRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 465
+// EnetChannelId: 0
+// EnetIsReliable: true
+message QuestDestroyNpcRsp {
+ uint32 npc_id = 12;
+ uint32 parent_quest_id = 4;
+ int32 retcode = 5;
+}
diff --git a/proto/QuestGlobalVar.proto b/proto/QuestGlobalVar.proto
new file mode 100644
index 00000000..acf86fa4
--- /dev/null
+++ b/proto/QuestGlobalVar.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message QuestGlobalVar {
+ int32 value = 8;
+ uint32 key = 4;
+}
diff --git a/proto/QuestGlobalVarNotify.proto b/proto/QuestGlobalVarNotify.proto
new file mode 100644
index 00000000..02671441
--- /dev/null
+++ b/proto/QuestGlobalVarNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "QuestGlobalVar.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 434
+// EnetChannelId: 0
+// EnetIsReliable: true
+message QuestGlobalVarNotify {
+ repeated QuestGlobalVar var_list = 1;
+}
diff --git a/proto/QuestListNotify.proto b/proto/QuestListNotify.proto
new file mode 100644
index 00000000..c7f3a2bc
--- /dev/null
+++ b/proto/QuestListNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Quest.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 472
+// EnetChannelId: 0
+// EnetIsReliable: true
+message QuestListNotify {
+ repeated Quest quest_list = 1;
+}
diff --git a/proto/QuestListUpdateNotify.proto b/proto/QuestListUpdateNotify.proto
new file mode 100644
index 00000000..9c58396d
--- /dev/null
+++ b/proto/QuestListUpdateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Quest.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 498
+// EnetChannelId: 0
+// EnetIsReliable: true
+message QuestListUpdateNotify {
+ repeated Quest quest_list = 6;
+}
diff --git a/proto/QuestProgressUpdateNotify.proto b/proto/QuestProgressUpdateNotify.proto
new file mode 100644
index 00000000..41e8532b
--- /dev/null
+++ b/proto/QuestProgressUpdateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 482
+// EnetChannelId: 0
+// EnetIsReliable: true
+message QuestProgressUpdateNotify {
+ uint32 quest_id = 12;
+ repeated uint32 fail_progress_list = 6;
+ repeated uint32 finish_progress_list = 13;
+}
diff --git a/proto/QuestTransmitReq.proto b/proto/QuestTransmitReq.proto
new file mode 100644
index 00000000..767ae86a
--- /dev/null
+++ b/proto/QuestTransmitReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 450
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message QuestTransmitReq {
+ uint32 point_id = 15;
+ uint32 quest_id = 5;
+}
diff --git a/proto/QuestTransmitRsp.proto b/proto/QuestTransmitRsp.proto
new file mode 100644
index 00000000..ff702a01
--- /dev/null
+++ b/proto/QuestTransmitRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 443
+// EnetChannelId: 0
+// EnetIsReliable: true
+message QuestTransmitRsp {
+ uint32 point_id = 12;
+ int32 retcode = 5;
+ uint32 quest_id = 3;
+}
diff --git a/proto/QuestUpdateQuestTimeVarNotify.proto b/proto/QuestUpdateQuestTimeVarNotify.proto
new file mode 100644
index 00000000..bb3e9aff
--- /dev/null
+++ b/proto/QuestUpdateQuestTimeVarNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 456
+// EnetChannelId: 0
+// EnetIsReliable: true
+message QuestUpdateQuestTimeVarNotify {
+ map time_var_map = 1;
+ uint32 parent_quest_id = 3;
+}
diff --git a/proto/QuestUpdateQuestVarNotify.proto b/proto/QuestUpdateQuestVarNotify.proto
new file mode 100644
index 00000000..09b0a8aa
--- /dev/null
+++ b/proto/QuestUpdateQuestVarNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 453
+// EnetChannelId: 0
+// EnetIsReliable: true
+message QuestUpdateQuestVarNotify {
+ repeated int32 quest_var = 1;
+ uint32 parent_quest_id = 12;
+ uint32 parent_quest_var_seq = 8;
+}
diff --git a/proto/QuestUpdateQuestVarReq.proto b/proto/QuestUpdateQuestVarReq.proto
new file mode 100644
index 00000000..72c54db4
--- /dev/null
+++ b/proto/QuestUpdateQuestVarReq.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "QuestVarOp.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 447
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message QuestUpdateQuestVarReq {
+ uint32 parent_quest_id = 9;
+ repeated QuestVarOp quest_var_op_list = 4;
+ uint32 quest_id = 11;
+ uint32 parent_quest_var_seq = 1;
+}
diff --git a/proto/QuestUpdateQuestVarRsp.proto b/proto/QuestUpdateQuestVarRsp.proto
new file mode 100644
index 00000000..59d73195
--- /dev/null
+++ b/proto/QuestUpdateQuestVarRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 439
+// EnetChannelId: 0
+// EnetIsReliable: true
+message QuestUpdateQuestVarRsp {
+ int32 retcode = 10;
+ uint32 parent_quest_var_seq = 2;
+ uint32 parent_quest_id = 8;
+ uint32 quest_id = 15;
+}
diff --git a/proto/QuestVarOp.proto b/proto/QuestVarOp.proto
new file mode 100644
index 00000000..b532d5cf
--- /dev/null
+++ b/proto/QuestVarOp.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message QuestVarOp {
+ uint32 index = 9;
+ int32 value = 5;
+ bool is_add = 6;
+}
diff --git a/proto/QuickUseWidgetReq.proto b/proto/QuickUseWidgetReq.proto
new file mode 100644
index 00000000..7f36fdde
--- /dev/null
+++ b/proto/QuickUseWidgetReq.proto
@@ -0,0 +1,38 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WidgetCameraInfo.proto";
+import "WidgetCreateLocationInfo.proto";
+import "WidgetCreatorInfo.proto";
+import "WidgetThunderBirdFeatherInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4299
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message QuickUseWidgetReq {
+ oneof param {
+ WidgetCreateLocationInfo location_info = 676;
+ WidgetCameraInfo camera_info = 478;
+ WidgetCreatorInfo creator_info = 812;
+ WidgetThunderBirdFeatherInfo thunder_bird_feather_info = 1859;
+ }
+}
diff --git a/proto/QuickUseWidgetRsp.proto b/proto/QuickUseWidgetRsp.proto
new file mode 100644
index 00000000..9da852bb
--- /dev/null
+++ b/proto/QuickUseWidgetRsp.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ClientCollectorData.proto";
+import "OneofGatherPointDetectorData.proto";
+import "SkyCrystalDetectorQuickUseResult.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4270
+// EnetChannelId: 0
+// EnetIsReliable: true
+message QuickUseWidgetRsp {
+ uint32 material_id = 6;
+ int32 retcode = 5;
+ oneof param {
+ OneofGatherPointDetectorData detector_data = 3;
+ ClientCollectorData client_collector_data = 15;
+ SkyCrystalDetectorQuickUseResult sky_crystal_detector_quick_use_result = 168922;
+ }
+}
diff --git a/proto/RacingGalleryInfo.proto b/proto/RacingGalleryInfo.proto
new file mode 100644
index 00000000..30f73259
--- /dev/null
+++ b/proto/RacingGalleryInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_OJJNGIHDJEH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RacingGalleryInfo {
+ repeated Unk2700_OJJNGIHDJEH record_list = 7;
+}
diff --git a/proto/ReadMailNotify.proto b/proto/ReadMailNotify.proto
new file mode 100644
index 00000000..76b7dec4
--- /dev/null
+++ b/proto/ReadMailNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1412
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ReadMailNotify {
+ repeated uint32 mail_id_list = 2;
+}
diff --git a/proto/ReadPrivateChatReq.proto b/proto/ReadPrivateChatReq.proto
new file mode 100644
index 00000000..b6318b64
--- /dev/null
+++ b/proto/ReadPrivateChatReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5049
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ReadPrivateChatReq {
+ uint32 target_uid = 1;
+}
diff --git a/proto/ReadPrivateChatRsp.proto b/proto/ReadPrivateChatRsp.proto
new file mode 100644
index 00000000..6cfece7e
--- /dev/null
+++ b/proto/ReadPrivateChatRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4981
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ReadPrivateChatRsp {
+ int32 retcode = 1;
+}
diff --git a/proto/ReceivedTrialAvatarActivityRewardReq.proto b/proto/ReceivedTrialAvatarActivityRewardReq.proto
new file mode 100644
index 00000000..f1d69386
--- /dev/null
+++ b/proto/ReceivedTrialAvatarActivityRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2130
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ReceivedTrialAvatarActivityRewardReq {
+ uint32 trial_avatar_index_id = 4;
+}
diff --git a/proto/ReceivedTrialAvatarActivityRewardRsp.proto b/proto/ReceivedTrialAvatarActivityRewardRsp.proto
new file mode 100644
index 00000000..d24144bb
--- /dev/null
+++ b/proto/ReceivedTrialAvatarActivityRewardRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2076
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ReceivedTrialAvatarActivityRewardRsp {
+ uint32 activity_id = 13;
+ int32 retcode = 3;
+ uint32 trial_avatar_index_id = 9;
+}
diff --git a/proto/RechargeReq.proto b/proto/RechargeReq.proto
new file mode 100644
index 00000000..70b8e3f0
--- /dev/null
+++ b/proto/RechargeReq.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayProduct.proto";
+import "ShopCardProduct.proto";
+import "ShopConcertProduct.proto";
+import "ShopMcoinProduct.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4126
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message RechargeReq {
+ PlayProduct play_product = 10;
+ ShopCardProduct card_product = 8;
+ ShopMcoinProduct mcoin_product = 14;
+ ShopConcertProduct concert_product = 7;
+}
diff --git a/proto/RechargeRsp.proto b/proto/RechargeRsp.proto
new file mode 100644
index 00000000..bdabf611
--- /dev/null
+++ b/proto/RechargeRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4118
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RechargeRsp {
+ int32 retcode = 12;
+ bool Unk2700_FGENAOBDIEA = 6;
+ string product_id = 2;
+}
diff --git a/proto/RedPointData.proto b/proto/RedPointData.proto
new file mode 100644
index 00000000..ccd65a47
--- /dev/null
+++ b/proto/RedPointData.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RedPointData {
+ uint32 red_point_type = 1;
+ bool is_show = 2;
+ uint32 content_id = 3;
+}
diff --git a/proto/RedeemLegendaryKeyReq.proto b/proto/RedeemLegendaryKeyReq.proto
new file mode 100644
index 00000000..023eb6e7
--- /dev/null
+++ b/proto/RedeemLegendaryKeyReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 446
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message RedeemLegendaryKeyReq {}
diff --git a/proto/RedeemLegendaryKeyRsp.proto b/proto/RedeemLegendaryKeyRsp.proto
new file mode 100644
index 00000000..d571ca20
--- /dev/null
+++ b/proto/RedeemLegendaryKeyRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 441
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RedeemLegendaryKeyRsp {
+ uint32 legendary_key_count = 11;
+ int32 retcode = 14;
+}
diff --git a/proto/RefreshBackgroundAvatarReq.proto b/proto/RefreshBackgroundAvatarReq.proto
new file mode 100644
index 00000000..ad13ab35
--- /dev/null
+++ b/proto/RefreshBackgroundAvatarReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1743
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message RefreshBackgroundAvatarReq {}
diff --git a/proto/RefreshBackgroundAvatarRsp.proto b/proto/RefreshBackgroundAvatarRsp.proto
new file mode 100644
index 00000000..13d76c84
--- /dev/null
+++ b/proto/RefreshBackgroundAvatarRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1800
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RefreshBackgroundAvatarRsp {
+ map hp_full_time_map = 15;
+ int32 retcode = 3;
+}
diff --git a/proto/RefreshRoguelikeDungeonCardReq.proto b/proto/RefreshRoguelikeDungeonCardReq.proto
new file mode 100644
index 00000000..a18e693d
--- /dev/null
+++ b/proto/RefreshRoguelikeDungeonCardReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8279
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message RefreshRoguelikeDungeonCardReq {}
diff --git a/proto/RefreshRoguelikeDungeonCardRsp.proto b/proto/RefreshRoguelikeDungeonCardRsp.proto
new file mode 100644
index 00000000..8b729d8e
--- /dev/null
+++ b/proto/RefreshRoguelikeDungeonCardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8349
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RefreshRoguelikeDungeonCardRsp {
+ int32 retcode = 3;
+ repeated uint32 res_card_list = 9;
+}
diff --git a/proto/RegionInfo.proto b/proto/RegionInfo.proto
new file mode 100644
index 00000000..2928de78
--- /dev/null
+++ b/proto/RegionInfo.proto
@@ -0,0 +1,53 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ResVersionConfig.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RegionInfo {
+ string gateserver_ip = 1;
+ uint32 gateserver_port = 2;
+ string pay_callback_url = 3;
+ string area_type = 7;
+ string resource_url = 8;
+ string data_url = 9;
+ string feedback_url = 10;
+ string bulletin_url = 11;
+ string resource_url_bak = 12;
+ string data_url_bak = 13;
+ uint32 client_data_version = 14;
+ string handbook_url = 16;
+ uint32 client_silence_data_version = 18;
+ string client_data_md5 = 19;
+ string client_silence_data_md5 = 20;
+ ResVersionConfig res_version_config = 22;
+ bytes secret_key = 23;
+ string official_community_url = 24;
+ string client_version_suffix = 26;
+ string client_silence_version_suffix = 27;
+ bool use_gateserver_domain_name = 28;
+ string gateserver_domain_name = 29;
+ string user_center_url = 30;
+ string account_bind_url = 31;
+ string cdkey_url = 32;
+ string privacy_policy_url = 33;
+ string next_resource_url = 34;
+ ResVersionConfig next_res_version_config = 35;
+}
diff --git a/proto/RegionSearch.proto b/proto/RegionSearch.proto
new file mode 100644
index 00000000..c22d196b
--- /dev/null
+++ b/proto/RegionSearch.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RegionSearchState.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RegionSearch {
+ bool is_entered = 13;
+ uint32 progress = 5;
+ RegionSearchState state = 2;
+ uint32 region_search_id = 8;
+}
diff --git a/proto/RegionSearchChangeRegionNotify.proto b/proto/RegionSearchChangeRegionNotify.proto
new file mode 100644
index 00000000..73056e88
--- /dev/null
+++ b/proto/RegionSearchChangeRegionNotify.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5618
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message RegionSearchChangeRegionNotify {
+ RegionEvent event = 1;
+ uint32 region_id = 10;
+
+ enum RegionEvent {
+ REGION_EVENT_NONE = 0;
+ REGION_EVENT_ENTER = 1;
+ REGION_EVENT_LEAVE = 2;
+ }
+}
diff --git a/proto/RegionSearchInfo.proto b/proto/RegionSearchInfo.proto
new file mode 100644
index 00000000..22891eeb
--- /dev/null
+++ b/proto/RegionSearchInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RegionSearch.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RegionSearchInfo {
+ uint32 id = 5;
+ repeated RegionSearch region_search_list = 1;
+ bool is_entered = 7;
+}
diff --git a/proto/RegionSearchNotify.proto b/proto/RegionSearchNotify.proto
new file mode 100644
index 00000000..59ed8530
--- /dev/null
+++ b/proto/RegionSearchNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RegionSearchInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5626
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RegionSearchNotify {
+ repeated RegionSearchInfo region_search_list = 1;
+ uint32 uid = 8;
+}
diff --git a/proto/RegionSearchState.proto b/proto/RegionSearchState.proto
new file mode 100644
index 00000000..91b3dd27
--- /dev/null
+++ b/proto/RegionSearchState.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum RegionSearchState {
+ REGION_SEARCH_STATE_NONE = 0;
+ REGION_SEARCH_STATE_UNSTARTED = 1;
+ REGION_SEARCH_STATE_STARTED = 2;
+ REGION_SEARCH_STATE_WAIT_REWARD = 3;
+ REGION_SEARCH_STATE_FINISHED = 4;
+}
diff --git a/proto/RegionSimpleInfo.proto b/proto/RegionSimpleInfo.proto
new file mode 100644
index 00000000..6d48b932
--- /dev/null
+++ b/proto/RegionSimpleInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RegionSimpleInfo {
+ string name = 1;
+ string title = 2;
+ string type = 3;
+ string dispatch_url = 4;
+}
diff --git a/proto/Reliquary.proto b/proto/Reliquary.proto
new file mode 100644
index 00000000..cef3d7f1
--- /dev/null
+++ b/proto/Reliquary.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Reliquary {
+ uint32 level = 1;
+ uint32 exp = 2;
+ uint32 promote_level = 3;
+ uint32 main_prop_id = 4;
+ repeated uint32 append_prop_id_list = 5;
+}
diff --git a/proto/ReliquaryDecomposeReq.proto b/proto/ReliquaryDecomposeReq.proto
new file mode 100644
index 00000000..cfbfd9c1
--- /dev/null
+++ b/proto/ReliquaryDecomposeReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 638
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ReliquaryDecomposeReq {
+ uint32 config_id = 13;
+ uint32 target_count = 9;
+ repeated uint64 guid_list = 8;
+}
diff --git a/proto/ReliquaryDecomposeRsp.proto b/proto/ReliquaryDecomposeRsp.proto
new file mode 100644
index 00000000..c71b8496
--- /dev/null
+++ b/proto/ReliquaryDecomposeRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 611
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ReliquaryDecomposeRsp {
+ int32 retcode = 3;
+ repeated uint64 guid_list = 14;
+}
diff --git a/proto/ReliquaryPromoteReq.proto b/proto/ReliquaryPromoteReq.proto
new file mode 100644
index 00000000..4b2fe862
--- /dev/null
+++ b/proto/ReliquaryPromoteReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 627
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ReliquaryPromoteReq {
+ uint64 item_guid = 10;
+ uint64 target_guid = 13;
+}
diff --git a/proto/ReliquaryPromoteRsp.proto b/proto/ReliquaryPromoteRsp.proto
new file mode 100644
index 00000000..70a1d453
--- /dev/null
+++ b/proto/ReliquaryPromoteRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 694
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ReliquaryPromoteRsp {
+ uint32 old_promote_level = 10;
+ uint64 target_reliquary_guid = 6;
+ repeated uint32 cur_append_prop_list = 9;
+ int32 retcode = 12;
+ uint32 cur_promote_level = 2;
+ repeated uint32 old_append_prop_list = 8;
+}
diff --git a/proto/ReliquaryRequest.proto b/proto/ReliquaryRequest.proto
new file mode 100644
index 00000000..39e7e895
--- /dev/null
+++ b/proto/ReliquaryRequest.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ReliquaryRequest {
+ uint32 equip_type = 6;
+}
diff --git a/proto/ReliquaryResponse.proto b/proto/ReliquaryResponse.proto
new file mode 100644
index 00000000..5a674104
--- /dev/null
+++ b/proto/ReliquaryResponse.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_GBBDJMDIDEI.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ReliquaryResponse {
+ repeated Unk2700_GBBDJMDIDEI Unk2700_DMDHDIHGPFA = 8;
+ uint32 equip_type = 3;
+}
diff --git a/proto/ReliquaryUpgradeReq.proto b/proto/ReliquaryUpgradeReq.proto
new file mode 100644
index 00000000..7968549c
--- /dev/null
+++ b/proto/ReliquaryUpgradeReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 604
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ReliquaryUpgradeReq {
+ repeated ItemParam item_param_list = 11;
+ uint64 target_reliquary_guid = 6;
+ repeated uint64 food_reliquary_guid_list = 12;
+}
diff --git a/proto/ReliquaryUpgradeRsp.proto b/proto/ReliquaryUpgradeRsp.proto
new file mode 100644
index 00000000..380b1ae2
--- /dev/null
+++ b/proto/ReliquaryUpgradeRsp.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 693
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ReliquaryUpgradeRsp {
+ uint32 old_level = 4;
+ uint32 cur_level = 13;
+ uint64 target_reliquary_guid = 9;
+ repeated uint32 cur_append_prop_list = 2;
+ uint32 power_up_rate = 6;
+ repeated uint32 old_append_prop_list = 15;
+ int32 retcode = 5;
+}
diff --git a/proto/RemoveBlacklistReq.proto b/proto/RemoveBlacklistReq.proto
new file mode 100644
index 00000000..c34962fc
--- /dev/null
+++ b/proto/RemoveBlacklistReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4063
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message RemoveBlacklistReq {
+ uint32 target_uid = 13;
+}
diff --git a/proto/RemoveBlacklistRsp.proto b/proto/RemoveBlacklistRsp.proto
new file mode 100644
index 00000000..dbeafd7b
--- /dev/null
+++ b/proto/RemoveBlacklistRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4095
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RemoveBlacklistRsp {
+ int32 retcode = 12;
+ uint32 target_uid = 7;
+}
diff --git a/proto/RemoveRandTaskInfoNotify.proto b/proto/RemoveRandTaskInfoNotify.proto
new file mode 100644
index 00000000..7ca29291
--- /dev/null
+++ b/proto/RemoveRandTaskInfoNotify.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 161
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RemoveRandTaskInfoNotify {
+ bool is_succ = 9;
+ FinishReason reason = 10;
+ uint32 rand_task_id = 13;
+
+ enum FinishReason {
+ FINISH_REASON_DEFAULT = 0;
+ FINISH_REASON_CLEAR = 1;
+ FINISH_REASON_DISTANCE = 2;
+ FINISH_REASON_FINISH = 3;
+ }
+}
diff --git a/proto/ReportFightAntiCheatNotify.proto b/proto/ReportFightAntiCheatNotify.proto
new file mode 100644
index 00000000..45a77b3a
--- /dev/null
+++ b/proto/ReportFightAntiCheatNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 368
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ReportFightAntiCheatNotify {
+ uint32 cheat_count = 8;
+ uint32 cheat_type = 12;
+}
diff --git a/proto/ReportReasonType.proto b/proto/ReportReasonType.proto
new file mode 100644
index 00000000..536b8acb
--- /dev/null
+++ b/proto/ReportReasonType.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum ReportReasonType {
+ REPORT_REASON_TYPE_NONE = 0;
+ REPORT_REASON_TYPE_DECEPTIVE_ADS = 1;
+ REPORT_REASON_TYPE_ABUSING = 2;
+ REPORT_REASON_TYPE_CHEAT = 3;
+ REPORT_REASON_TYPE_POLITICAL = 4;
+ REPORT_REASON_TYPE_OTHER = 5;
+ REPORT_REASON_TYPE_HOME = 6;
+}
diff --git a/proto/ReportTrackingIOInfoNotify.proto b/proto/ReportTrackingIOInfoNotify.proto
new file mode 100644
index 00000000..aa054647
--- /dev/null
+++ b/proto/ReportTrackingIOInfoNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4129
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ReportTrackingIOInfoNotify {
+ string rydevicetype = 12;
+ string deviceid = 1;
+ string client_tz = 13;
+ string appid = 14;
+ string mac = 15;
+}
diff --git a/proto/RequestLiveInfoReq.proto b/proto/RequestLiveInfoReq.proto
new file mode 100644
index 00000000..fbcf5990
--- /dev/null
+++ b/proto/RequestLiveInfoReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 894
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message RequestLiveInfoReq {
+ uint32 live_id = 6;
+}
diff --git a/proto/RequestLiveInfoRsp.proto b/proto/RequestLiveInfoRsp.proto
new file mode 100644
index 00000000..328727e5
--- /dev/null
+++ b/proto/RequestLiveInfoRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 888
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RequestLiveInfoRsp {
+ string spare_live_url = 14;
+ int32 retcode = 9;
+ string live_url = 12;
+ uint32 live_id = 2;
+}
diff --git a/proto/ResVersionConfig.proto b/proto/ResVersionConfig.proto
new file mode 100644
index 00000000..328dfd00
--- /dev/null
+++ b/proto/ResVersionConfig.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ResVersionConfig {
+ uint32 version = 1;
+ bool relogin = 2;
+ string md5 = 3;
+ string release_total_size = 4;
+ string version_suffix = 5;
+ string branch = 6;
+ string next_script_version = 7;
+}
diff --git a/proto/ResinCardData.proto b/proto/ResinCardData.proto
new file mode 100644
index 00000000..fde456ae
--- /dev/null
+++ b/proto/ResinCardData.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ResinCardData {
+ uint32 remain_reward_days = 3;
+ uint32 expire_time = 12;
+ uint32 last_daily_reward_time = 2;
+ uint32 config_id = 7;
+}
diff --git a/proto/ResinCardDataUpdateNotify.proto b/proto/ResinCardDataUpdateNotify.proto
new file mode 100644
index 00000000..77ebfe25
--- /dev/null
+++ b/proto/ResinCardDataUpdateNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ResinCardData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4149
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ResinCardDataUpdateNotify {
+ uint32 today_start_time = 6;
+ repeated ResinCardData card_data_list = 2;
+}
diff --git a/proto/ResinChangeNotify.proto b/proto/ResinChangeNotify.proto
new file mode 100644
index 00000000..dd1587d3
--- /dev/null
+++ b/proto/ResinChangeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 642
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ResinChangeNotify {
+ uint32 next_add_timestamp = 6;
+ uint32 cur_buy_count = 4;
+ uint32 cur_value = 12;
+}
diff --git a/proto/ResinCostType.proto b/proto/ResinCostType.proto
new file mode 100644
index 00000000..49ee4864
--- /dev/null
+++ b/proto/ResinCostType.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum ResinCostType {
+ RESIN_COST_TYPE_NONE = 0;
+ RESIN_COST_TYPE_NORMAL = 1;
+ RESIN_COST_TYPE_CONDENSE = 2;
+ RESIN_COST_TYPE_REUNION_PRIVILEGE = 3;
+ RESIN_COST_TYPE_OP_ACTIVITY = 4;
+ RESIN_COST_TYPE_MATERIAL = 5;
+}
diff --git a/proto/RestartEffigyChallengeReq.proto b/proto/RestartEffigyChallengeReq.proto
new file mode 100644
index 00000000..750db5df
--- /dev/null
+++ b/proto/RestartEffigyChallengeReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2148
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message RestartEffigyChallengeReq {}
diff --git a/proto/RestartEffigyChallengeRsp.proto b/proto/RestartEffigyChallengeRsp.proto
new file mode 100644
index 00000000..f12b9143
--- /dev/null
+++ b/proto/RestartEffigyChallengeRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2042
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RestartEffigyChallengeRsp {
+ int32 retcode = 2;
+}
diff --git a/proto/Retcode.proto b/proto/Retcode.proto
new file mode 100644
index 00000000..3d937c6e
--- /dev/null
+++ b/proto/Retcode.proto
@@ -0,0 +1,1055 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Retcode {
+ RETCODE_RET_SUCC = 0;
+ RETCODE_RET_FAIL = -1;
+ RETCODE_RET_SVR_ERROR = 1;
+ RETCODE_RET_UNKNOWN_ERROR = 2;
+ RETCODE_RET_FREQUENT = 3;
+ RETCODE_RET_NODE_FORWARD_ERROR = 4;
+ RETCODE_RET_NOT_FOUND_CONFIG = 5;
+ RETCODE_RET_SYSTEM_BUSY = 6;
+ RETCODE_RET_GM_UID_BIND = 7;
+ RETCODE_RET_FORBIDDEN = 8;
+ RETCODE_RET_STOP_REGISTER = 10;
+ RETCODE_RET_STOP_SERVER = 11;
+ RETCODE_RET_ACCOUNT_VEIRFY_ERROR = 12;
+ RETCODE_RET_ACCOUNT_FREEZE = 13;
+ RETCODE_RET_REPEAT_LOGIN = 14;
+ RETCODE_RET_CLIENT_VERSION_ERROR = 15;
+ RETCODE_RET_TOKEN_ERROR = 16;
+ RETCODE_RET_ACCOUNT_NOT_EXIST = 17;
+ RETCODE_RET_WAIT_OTHER_LOGIN = 18;
+ RETCODE_RET_ANOTHER_LOGIN = 19;
+ RETCODE_RET_CLIENT_FORCE_UPDATE = 20;
+ RETCODE_RET_BLACK_UID = 21;
+ RETCODE_RET_LOGIN_DB_FAIL = 22;
+ RETCODE_RET_LOGIN_INIT_FAIL = 23;
+ RETCODE_RET_MYSQL_DUPLICATE = 24;
+ RETCODE_RET_MAX_PLAYER = 25;
+ RETCODE_RET_ANTI_ADDICT = 26;
+ RETCODE_RET_PS_PLAYER_WITHOUT_ONLINE_ID = 27;
+ RETCODE_RET_ONLINE_ID_NOT_FOUND = 28;
+ RETCODE_RET_ONLNE_ID_NOT_MATCH = 29;
+ RETCODE_RET_REGISTER_IS_FULL = 30;
+ RETCODE_RET_CHECKSUM_INVALID = 31;
+ RETCODE_RET_BLACK_REGISTER_IP = 32;
+ RETCODE_RET_EXCEED_REGISTER_RATE = 33;
+ RETCODE_RET_UNKNOWN_PLATFORM = 34;
+ RETCODE_RET_TOKEN_PARAM_ERROR = 35;
+ RETCODE_RET_ANTI_OFFLINE_ERROR = 36;
+ RETCODE_RET_BLACK_LOGIN_IP = 37;
+ RETCODE_RET_GET_TOKEN_SESSION_HAS_UID = 38;
+ RETCODE_RET_ENVIRONMENT_ERROR = 39;
+ RETCODE_RET_CHECK_CLIENT_VERSION_HASH_FAIL = 40;
+ RETCODE_RET_MINOR_REGISTER_FOBIDDEN = 41;
+ RETCODE_RET_SECURITY_LIBRARY_ERROR = 42;
+ RETCODE_RET_AVATAR_IN_CD = 101;
+ RETCODE_RET_AVATAR_NOT_ALIVE = 102;
+ RETCODE_RET_AVATAR_NOT_ON_SCENE = 103;
+ RETCODE_RET_CAN_NOT_FIND_AVATAR = 104;
+ RETCODE_RET_CAN_NOT_DEL_CUR_AVATAR = 105;
+ RETCODE_RET_DUPLICATE_AVATAR = 106;
+ RETCODE_RET_AVATAR_IS_SAME_ONE = 107;
+ RETCODE_RET_AVATAR_LEVEL_LESS_THAN = 108;
+ RETCODE_RET_AVATAR_CAN_NOT_CHANGE_ELEMENT = 109;
+ RETCODE_RET_AVATAR_BREAK_LEVEL_LESS_THAN = 110;
+ RETCODE_RET_AVATAR_ON_MAX_BREAK_LEVEL = 111;
+ RETCODE_RET_AVATAR_ID_ALREADY_EXIST = 112;
+ RETCODE_RET_AVATAR_NOT_DEAD = 113;
+ RETCODE_RET_AVATAR_IS_REVIVING = 114;
+ RETCODE_RET_AVATAR_ID_ERROR = 115;
+ RETCODE_RET_REPEAT_SET_PLAYER_BORN_DATA = 116;
+ RETCODE_RET_PLAYER_LEVEL_LESS_THAN = 117;
+ RETCODE_RET_AVATAR_LIMIT_LEVEL_ERROR = 118;
+ RETCODE_RET_CUR_AVATAR_NOT_ALIVE = 119;
+ RETCODE_RET_CAN_NOT_FIND_TEAM = 120;
+ RETCODE_RET_CAN_NOT_FIND_CUR_TEAM = 121;
+ RETCODE_RET_AVATAR_NOT_EXIST_IN_TEAM = 122;
+ RETCODE_RET_CAN_NOT_REMOVE_CUR_AVATAR_FROM_TEAM = 123;
+ RETCODE_RET_CAN_NOT_USE_REVIVE_ITEM_FOR_CUR_AVATAR = 124;
+ RETCODE_RET_TEAM_COST_EXCEED_LIMIT = 125;
+ RETCODE_RET_TEAM_AVATAR_IN_EXPEDITION = 126;
+ RETCODE_RET_TEAM_CAN_NOT_CHOSE_REPLACE_USE = 127;
+ RETCODE_RET_AVATAR_IN_COMBAT = 128;
+ RETCODE_RET_NICKNAME_UTF8_ERROR = 130;
+ RETCODE_RET_NICKNAME_TOO_LONG = 131;
+ RETCODE_RET_NICKNAME_WORD_ILLEGAL = 132;
+ RETCODE_RET_NICKNAME_TOO_MANY_DIGITS = 133;
+ RETCODE_RET_NICKNAME_IS_EMPTY = 134;
+ RETCODE_RET_NICKNAME_MONTHLY_LIMIT = 135;
+ RETCODE_RET_NICKNAME_NOT_CHANGED = 136;
+ RETCODE_RET_PLAYER_NOT_ONLINE = 140;
+ RETCODE_RET_OPEN_STATE_NOT_OPEN = 141;
+ RETCODE_RET_FEATURE_CLOSED = 142;
+ RETCODE_RET_AVATAR_EXPEDITION_AVATAR_DIE = 152;
+ RETCODE_RET_AVATAR_EXPEDITION_COUNT_LIMIT = 153;
+ RETCODE_RET_AVATAR_EXPEDITION_MAIN_FORBID = 154;
+ RETCODE_RET_AVATAR_EXPEDITION_TRIAL_FORBID = 155;
+ RETCODE_RET_TEAM_NAME_ILLEGAL = 156;
+ RETCODE_RET_IS_NOT_IN_STANDBY = 157;
+ RETCODE_RET_IS_IN_DUNGEON = 158;
+ RETCODE_RET_IS_IN_LOCK_AVATAR_QUEST = 159;
+ RETCODE_RET_IS_USING_TRIAL_AVATAR = 160;
+ RETCODE_RET_IS_USING_TEMP_AVATAR = 161;
+ RETCODE_RET_NOT_HAS_FLYCLOAK = 162;
+ RETCODE_RET_FETTER_REWARD_ALREADY_GOT = 163;
+ RETCODE_RET_FETTER_REWARD_LEVEL_NOT_ENOUGH = 164;
+ RETCODE_RET_WORLD_LEVEL_ADJUST_MIN_LEVEL = 165;
+ RETCODE_RET_WORLD_LEVEL_ADJUST_CD = 166;
+ RETCODE_RET_NOT_HAS_COSTUME = 167;
+ RETCODE_RET_COSTUME_AVATAR_ERROR = 168;
+ RETCODE_RET_FLYCLOAK_PLATFORM_TYPE_ERR = 169;
+ RETCODE_RET_IN_TRANSFER = 170;
+ RETCODE_RET_IS_IN_LOCK_AVATAR = 171;
+ RETCODE_RET_FULL_BACKUP_TEAM = 172;
+ RETCODE_RET_BACKUP_TEAM_ID_NOT_VALID = 173;
+ RETCODE_RET_BACKUP_TEAM_IS_CUR_TEAM = 174;
+ RETCODE_RET_FLOAT_ERROR = 201;
+ RETCODE_RET_NPC_NOT_EXIST = 301;
+ RETCODE_RET_NPC_TOO_FAR = 302;
+ RETCODE_RET_NOT_CURRENT_TALK = 303;
+ RETCODE_RET_NPC_CREATE_FAIL = 304;
+ RETCODE_RET_NPC_MOVE_FAIL = 305;
+ RETCODE_RET_QUEST_NOT_EXIST = 401;
+ RETCODE_RET_QUEST_IS_FAIL = 402;
+ RETCODE_RET_QUEST_CONTENT_ERROR = 403;
+ RETCODE_RET_BARGAIN_NOT_ACTIVATED = 404;
+ RETCODE_RET_BARGAIN_FINISHED = 405;
+ RETCODE_RET_INFERENCE_ASSOCIATE_WORD_ERROR = 406;
+ RETCODE_RET_INFERENCE_SUBMIT_WORD_NO_CONCLUSION = 407;
+ RETCODE_RET_POINT_NOT_UNLOCKED = 501;
+ RETCODE_RET_POINT_TOO_FAR = 502;
+ RETCODE_RET_POINT_ALREAY_UNLOCKED = 503;
+ RETCODE_RET_ENTITY_NOT_EXIST = 504;
+ RETCODE_RET_ENTER_SCENE_FAIL = 505;
+ RETCODE_RET_PLAYER_IS_ENTER_SCENE = 506;
+ RETCODE_RET_CITY_MAX_LEVEL = 507;
+ RETCODE_RET_AREA_LOCKED = 508;
+ RETCODE_RET_JOIN_OTHER_WAIT = 509;
+ RETCODE_RET_WEATHER_AREA_NOT_FOUND = 510;
+ RETCODE_RET_WEATHER_IS_LOCKED = 511;
+ RETCODE_RET_NOT_IN_SELF_SCENE = 512;
+ RETCODE_RET_GROUP_NOT_EXIST = 513;
+ RETCODE_RET_MARK_NAME_ILLEGAL = 514;
+ RETCODE_RET_MARK_ALREADY_EXISTS = 515;
+ RETCODE_RET_MARK_OVERFLOW = 516;
+ RETCODE_RET_MARK_NOT_EXISTS = 517;
+ RETCODE_RET_MARK_UNKNOWN_TYPE = 518;
+ RETCODE_RET_MARK_NAME_TOO_LONG = 519;
+ RETCODE_RET_DISTANCE_LONG = 520;
+ RETCODE_RET_ENTER_SCENE_TOKEN_INVALID = 521;
+ RETCODE_RET_NOT_IN_WORLD_SCENE = 522;
+ RETCODE_RET_ANY_GALLERY_STARTED = 523;
+ RETCODE_RET_GALLERY_NOT_START = 524;
+ RETCODE_RET_GALLERY_INTERRUPT_ONLY_ON_SINGLE_MODE = 525;
+ RETCODE_RET_GALLERY_CANNOT_INTERRUPT = 526;
+ RETCODE_RET_GALLERY_WORLD_NOT_MEET = 527;
+ RETCODE_RET_GALLERY_SCENE_NOT_MEET = 528;
+ RETCODE_RET_CUR_PLAY_CANNOT_TRANSFER = 529;
+ RETCODE_RET_CANT_USE_WIDGET_IN_HOME_SCENE = 530;
+ RETCODE_RET_SCENE_GROUP_NOT_MATCH = 531;
+ RETCODE_RET_POS_ROT_INVALID = 551;
+ RETCODE_RET_MARK_INVALID_SCENE_ID = 552;
+ RETCODE_RET_INVALID_SCENE_TO_USE_ANCHOR_POINT = 553;
+ RETCODE_RET_ENTER_HOME_SCENE_FAIL = 554;
+ RETCODE_RET_CUR_SCENE_IS_NULL = 555;
+ RETCODE_RET_GROUP_ID_ERROR = 556;
+ RETCODE_RET_GALLERY_INTERRUPT_NOT_OWNER = 557;
+ RETCODE_RET_NO_SPRING_IN_AREA = 558;
+ RETCODE_RET_AREA_NOT_IN_SCENE = 559;
+ RETCODE_RET_INVALID_CITY_ID = 560;
+ RETCODE_RET_INVALID_SCENE_ID = 561;
+ RETCODE_RET_DEST_SCENE_IS_NOT_ALLOW = 562;
+ RETCODE_RET_LEVEL_TAG_SWITCH_IN_CD = 563;
+ RETCODE_RET_LEVEL_TAG_ALREADY_EXIST = 564;
+ RETCODE_RET_INVALID_AREA_ID = 565;
+ RETCODE_RET_ITEM_NOT_EXIST = 601;
+ RETCODE_RET_PACK_EXCEED_MAX_WEIGHT = 602;
+ RETCODE_RET_ITEM_NOT_DROPABLE = 603;
+ RETCODE_RET_ITEM_NOT_USABLE = 604;
+ RETCODE_RET_ITEM_INVALID_USE_COUNT = 605;
+ RETCODE_RET_ITEM_INVALID_DROP_COUNT = 606;
+ RETCODE_RET_ITEM_ALREADY_EXIST = 607;
+ RETCODE_RET_ITEM_IN_COOLDOWN = 608;
+ RETCODE_RET_ITEM_COUNT_NOT_ENOUGH = 609;
+ RETCODE_RET_ITEM_INVALID_TARGET = 610;
+ RETCODE_RET_RECIPE_NOT_EXIST = 611;
+ RETCODE_RET_RECIPE_LOCKED = 612;
+ RETCODE_RET_RECIPE_UNLOCKED = 613;
+ RETCODE_RET_COMPOUND_QUEUE_FULL = 614;
+ RETCODE_RET_COMPOUND_NOT_FINISH = 615;
+ RETCODE_RET_MAIL_ITEM_NOT_GET = 616;
+ RETCODE_RET_ITEM_EXCEED_LIMIT = 617;
+ RETCODE_RET_AVATAR_CAN_NOT_USE = 618;
+ RETCODE_RET_ITEM_NEED_PLAYER_LEVEL = 619;
+ RETCODE_RET_RECIPE_NOT_AUTO_QTE = 620;
+ RETCODE_RET_COMPOUND_BUSY_QUEUE = 621;
+ RETCODE_RET_NEED_MORE_SCOIN = 622;
+ RETCODE_RET_SKILL_DEPOT_NOT_FOUND = 623;
+ RETCODE_RET_HCOIN_NOT_ENOUGH = 624;
+ RETCODE_RET_SCOIN_NOT_ENOUGH = 625;
+ RETCODE_RET_HCOIN_EXCEED_LIMIT = 626;
+ RETCODE_RET_SCOIN_EXCEED_LIMIT = 627;
+ RETCODE_RET_MAIL_EXPIRED = 628;
+ RETCODE_RET_REWARD_HAS_TAKEN = 629;
+ RETCODE_RET_COMBINE_COUNT_TOO_LARGE = 630;
+ RETCODE_RET_GIVING_ITEM_WRONG = 631;
+ RETCODE_RET_GIVING_IS_FINISHED = 632;
+ RETCODE_RET_GIVING_NOT_ACTIVED = 633;
+ RETCODE_RET_FORGE_QUEUE_FULL = 634;
+ RETCODE_RET_FORGE_QUEUE_CAPACITY = 635;
+ RETCODE_RET_FORGE_QUEUE_NOT_FOUND = 636;
+ RETCODE_RET_FORGE_QUEUE_EMPTY = 637;
+ RETCODE_RET_NOT_SUPPORT_ITEM = 638;
+ RETCODE_RET_ITEM_EMPTY = 639;
+ RETCODE_RET_VIRTUAL_EXCEED_LIMIT = 640;
+ RETCODE_RET_MATERIAL_EXCEED_LIMIT = 641;
+ RETCODE_RET_EQUIP_EXCEED_LIMIT = 642;
+ RETCODE_RET_ITEM_SHOULD_HAVE_NO_LEVEL = 643;
+ RETCODE_RET_WEAPON_PROMOTE_LEVEL_EXCEED_LIMIT = 644;
+ RETCODE_RET_WEAPON_LEVEL_INVALID = 645;
+ RETCODE_RET_UNKNOW_ITEM_TYPE = 646;
+ RETCODE_RET_ITEM_COUNT_IS_ZERO = 647;
+ RETCODE_RET_ITEM_IS_EXPIRED = 648;
+ RETCODE_RET_ITEM_EXCEED_OUTPUT_LIMIT = 649;
+ RETCODE_RET_EQUIP_LEVEL_HIGHER = 650;
+ RETCODE_RET_EQUIP_CAN_NOT_WAKE_OFF_WEAPON = 651;
+ RETCODE_RET_EQUIP_HAS_BEEN_WEARED = 652;
+ RETCODE_RET_EQUIP_WEARED_CANNOT_DROP = 653;
+ RETCODE_RET_AWAKEN_LEVEL_MAX = 654;
+ RETCODE_RET_MCOIN_NOT_ENOUGH = 655;
+ RETCODE_RET_MCOIN_EXCEED_LIMIT = 656;
+ RETCODE_RET_RESIN_NOT_ENOUGH = 660;
+ RETCODE_RET_RESIN_EXCEED_LIMIT = 661;
+ RETCODE_RET_RESIN_OPENSTATE_OFF = 662;
+ RETCODE_RET_RESIN_BOUGHT_COUNT_EXCEEDED = 663;
+ RETCODE_RET_RESIN_CARD_DAILY_REWARD_HAS_TAKEN = 664;
+ RETCODE_RET_RESIN_CARD_EXPIRED = 665;
+ RETCODE_RET_AVATAR_CAN_NOT_COOK = 666;
+ RETCODE_RET_ATTACH_AVATAR_CD = 667;
+ RETCODE_RET_AUTO_RECOVER_OPENSTATE_OFF = 668;
+ RETCODE_RET_AUTO_RECOVER_BOUGHT_COUNT_EXCEEDED = 669;
+ RETCODE_RET_RESIN_GAIN_FAILED = 670;
+ RETCODE_RET_WIDGET_ORNAMENTS_TYPE_ERROR = 671;
+ RETCODE_RET_ALL_TARGET_SATIATION_FULL = 672;
+ RETCODE_RET_FORGE_WORLD_LEVEL_NOT_MATCH = 673;
+ RETCODE_RET_FORGE_POINT_NOT_ENOUGH = 674;
+ RETCODE_RET_WIDGET_ANCHOR_POINT_FULL = 675;
+ RETCODE_RET_WIDGET_ANCHOR_POINT_NOT_FOUND = 676;
+ RETCODE_RET_ALL_BONFIRE_EXCEED_MAX_COUNT = 677;
+ RETCODE_RET_BONFIRE_EXCEED_MAX_COUNT = 678;
+ RETCODE_RET_LUNCH_BOX_DATA_ERROR = 679;
+ RETCODE_RET_INVALID_QUICK_USE_WIDGET = 680;
+ RETCODE_RET_INVALID_REPLACE_RESIN_COUNT = 681;
+ RETCODE_RET_PREV_DETECTED_GATHER_NOT_FOUND = 682;
+ RETCODE_RET_GOT_ALL_ONEOFF_GAHTER = 683;
+ RETCODE_RET_INVALID_WIDGET_MATERIAL_ID = 684;
+ RETCODE_RET_WIDGET_DETECTOR_NO_HINT_TO_CLEAR = 685;
+ RETCODE_RET_WIDGET_ALREADY_WITHIN_NEARBY_RADIUS = 686;
+ RETCODE_RET_WIDGET_CLIENT_COLLECTOR_NEED_POINTS = 687;
+ RETCODE_RET_WIDGET_IN_COMBAT = 688;
+ RETCODE_RET_WIDGET_NOT_SET_QUICK_USE = 689;
+ RETCODE_RET_ALREADY_ATTACH_WIDGET = 690;
+ RETCODE_RET_EQUIP_IS_LOCKED = 691;
+ RETCODE_RET_FORGE_IS_LOCKED = 692;
+ RETCODE_RET_COMBINE_IS_LOCKED = 693;
+ RETCODE_RET_FORGE_OUTPUT_STACK_LIMIT = 694;
+ RETCODE_RET_ALREADY_DETTACH_WIDGET = 695;
+ RETCODE_RET_GADGET_BUILDER_EXCEED_MAX_COUNT = 696;
+ RETCODE_RET_REUNION_PRIVILEGE_RESIN_TYPE_IS_NORMAL = 697;
+ RETCODE_RET_BONUS_COUNT_EXCEED_DOUBLE_LIMIT = 698;
+ RETCODE_RET_RELIQUARY_DECOMPOSE_PARAM_ERROR = 699;
+ RETCODE_RET_ITEM_COMBINE_COUNT_NOT_ENOUGH = 700;
+ RETCODE_RET_GOODS_NOT_EXIST = 701;
+ RETCODE_RET_GOODS_MATERIAL_NOT_ENOUGH = 702;
+ RETCODE_RET_GOODS_NOT_IN_TIME = 703;
+ RETCODE_RET_GOODS_BUY_NUM_NOT_ENOUGH = 704;
+ RETCODE_RET_GOODS_BUY_NUM_ERROR = 705;
+ RETCODE_RET_SHOP_NOT_OPEN = 706;
+ RETCODE_RET_SHOP_CONTENT_NOT_MATCH = 707;
+ RETCODE_RET_CHAT_FORBIDDEN = 798;
+ RETCODE_RET_CHAT_CD = 799;
+ RETCODE_RET_CHAT_FREQUENTLY = 800;
+ RETCODE_RET_GADGET_NOT_EXIST = 801;
+ RETCODE_RET_GADGET_NOT_INTERACTIVE = 802;
+ RETCODE_RET_GADGET_NOT_GATHERABLE = 803;
+ RETCODE_RET_CHEST_IS_LOCKED = 804;
+ RETCODE_RET_GADGET_CREATE_FAIL = 805;
+ RETCODE_RET_WORKTOP_OPTION_NOT_EXIST = 806;
+ RETCODE_RET_GADGET_STATUE_NOT_ACTIVE = 807;
+ RETCODE_RET_GADGET_STATUE_OPENED = 808;
+ RETCODE_RET_BOSS_CHEST_NO_QUALIFICATION = 809;
+ RETCODE_RET_BOSS_CHEST_LIFE_TIME_OVER = 810;
+ RETCODE_RET_BOSS_CHEST_WEEK_NUM_LIMIT = 811;
+ RETCODE_RET_BOSS_CHEST_GUEST_WORLD_LEVEL = 812;
+ RETCODE_RET_BOSS_CHEST_HAS_TAKEN = 813;
+ RETCODE_RET_BLOSSOM_CHEST_NO_QUALIFICATION = 814;
+ RETCODE_RET_BLOSSOM_CHEST_LIFE_TIME_OVER = 815;
+ RETCODE_RET_BLOSSOM_CHEST_HAS_TAKEN = 816;
+ RETCODE_RET_BLOSSOM_CHEST_GUEST_WORLD_LEVEL = 817;
+ RETCODE_RET_MP_PLAY_REWARD_NO_QUALIFICATION = 818;
+ RETCODE_RET_MP_PLAY_REWARD_HAS_TAKEN = 819;
+ RETCODE_RET_GENERAL_REWARD_NO_QUALIFICATION = 820;
+ RETCODE_RET_GENERAL_REWARD_LIFE_TIME_OVER = 821;
+ RETCODE_RET_GENERAL_REWARD_HAS_TAKEN = 822;
+ RETCODE_RET_GADGET_NOT_VEHICLE = 823;
+ RETCODE_RET_VEHICLE_SLOT_OCCUPIED = 824;
+ RETCODE_RET_NOT_IN_VEHICLE = 825;
+ RETCODE_RET_CREATE_VEHICLE_IN_CD = 826;
+ RETCODE_RET_CREATE_VEHICLE_POS_INVALID = 827;
+ RETCODE_RET_VEHICLE_POINT_NOT_UNLOCK = 828;
+ RETCODE_RET_GADGET_INTERACT_COND_NOT_MEET = 829;
+ RETCODE_RET_GADGET_INTERACT_PARAM_ERROR = 830;
+ RETCODE_RET_GADGET_CUSTOM_COMBINATION_INVALID = 831;
+ RETCODE_RET_DESHRET_OBELISK_DUPLICATE_INTERACT = 832;
+ RETCODE_RET_DESHRET_OBELISK_NO_AVAIL_CHEST = 833;
+ RETCODE_RET_ACTIVITY_CLOSE = 860;
+ RETCODE_RET_ACTIVITY_ITEM_ERROR = 861;
+ RETCODE_RET_ACTIVITY_CONTRIBUTION_NOT_ENOUGH = 862;
+ RETCODE_RET_SEA_LAMP_PHASE_NOT_FINISH = 863;
+ RETCODE_RET_SEA_LAMP_FLY_NUM_LIMIT = 864;
+ RETCODE_RET_SEA_LAMP_FLY_LAMP_WORD_ILLEGAL = 865;
+ RETCODE_RET_ACTIVITY_WATCHER_REWARD_TAKEN = 866;
+ RETCODE_RET_ACTIVITY_WATCHER_REWARD_NOT_FINISHED = 867;
+ RETCODE_RET_SALESMAN_ALREADY_DELIVERED = 868;
+ RETCODE_RET_SALESMAN_REWARD_COUNT_NOT_ENOUGH = 869;
+ RETCODE_RET_SALESMAN_POSITION_INVALID = 870;
+ RETCODE_RET_DELIVER_NOT_FINISH_ALL_QUEST = 871;
+ RETCODE_RET_DELIVER_ALREADY_TAKE_DAILY_REWARD = 872;
+ RETCODE_RET_ASTER_PROGRESS_EXCEED_LIMIT = 873;
+ RETCODE_RET_ASTER_CREDIT_EXCEED_LIMIT = 874;
+ RETCODE_RET_ASTER_TOKEN_EXCEED_LIMIT = 875;
+ RETCODE_RET_ASTER_CREDIT_NOT_ENOUGH = 876;
+ RETCODE_RET_ASTER_TOKEN_NOT_ENOUGH = 877;
+ RETCODE_RET_ASTER_SPECIAL_REWARD_HAS_TAKEN = 878;
+ RETCODE_RET_FLIGHT_GROUP_ACTIVITY_NOT_STARTED = 879;
+ RETCODE_RET_ASTER_MID_PREVIOUS_BATTLE_NOT_FINISHED = 880;
+ RETCODE_RET_DRAGON_SPINE_SHIMMERING_ESSENCE_EXCEED_LIMIT = 881;
+ RETCODE_RET_DRAGON_SPINE_WARM_ESSENCE_EXCEED_LIMIT = 882;
+ RETCODE_RET_DRAGON_SPINE_WONDROUS_ESSENCE_EXCEED_LIMIT = 883;
+ RETCODE_RET_DRAGON_SPINE_SHIMMERING_ESSENCE_NOT_ENOUGH = 884;
+ RETCODE_RET_DRAGON_SPINE_WARM_ESSENCE_NOT_ENOUGH = 885;
+ RETCODE_RET_DRAGON_SPINE_WONDROUS_ESSENCE_NOT_ENOUGH = 886;
+ RETCODE_RET_EFFIGY_FIRST_PASS_REWARD_HAS_TAKEN = 891;
+ RETCODE_RET_EFFIGY_REWARD_HAS_TAKEN = 892;
+ RETCODE_RET_TREASURE_MAP_ADD_TOKEN_EXCEED_LIMIT = 893;
+ RETCODE_RET_TREASURE_MAP_TOKEN_NOT_ENOUGHT = 894;
+ RETCODE_RET_SEA_LAMP_COIN_EXCEED_LIMIT = 895;
+ RETCODE_RET_SEA_LAMP_COIN_NOT_ENOUGH = 896;
+ RETCODE_RET_SEA_LAMP_POPULARITY_EXCEED_LIMIT = 897;
+ RETCODE_RET_ACTIVITY_AVATAR_REWARD_NOT_OPEN = 898;
+ RETCODE_RET_ACTIVITY_AVATAR_REWARD_HAS_TAKEN = 899;
+ RETCODE_RET_ARENA_ACTIVITY_ALREADY_STARTED = 900;
+ RETCODE_RET_TALENT_ALREAY_UNLOCKED = 901;
+ RETCODE_RET_PREV_TALENT_NOT_UNLOCKED = 902;
+ RETCODE_RET_BIG_TALENT_POINT_NOT_ENOUGH = 903;
+ RETCODE_RET_SMALL_TALENT_POINT_NOT_ENOUGH = 904;
+ RETCODE_RET_PROUD_SKILL_ALREADY_GOT = 905;
+ RETCODE_RET_PREV_PROUD_SKILL_NOT_GET = 906;
+ RETCODE_RET_PROUD_SKILL_MAX_LEVEL = 907;
+ RETCODE_RET_CANDIDATE_SKILL_DEPOT_ID_NOT_FIND = 910;
+ RETCODE_RET_SKILL_DEPOT_IS_THE_SAME = 911;
+ RETCODE_RET_MONSTER_NOT_EXIST = 1001;
+ RETCODE_RET_MONSTER_CREATE_FAIL = 1002;
+ RETCODE_RET_DUNGEON_ENTER_FAIL = 1101;
+ RETCODE_RET_DUNGEON_QUIT_FAIL = 1102;
+ RETCODE_RET_DUNGEON_ENTER_EXCEED_DAY_COUNT = 1103;
+ RETCODE_RET_DUNGEON_REVIVE_EXCEED_MAX_COUNT = 1104;
+ RETCODE_RET_DUNGEON_REVIVE_FAIL = 1105;
+ RETCODE_RET_DUNGEON_NOT_SUCCEED = 1106;
+ RETCODE_RET_DUNGEON_CAN_NOT_CANCEL = 1107;
+ RETCODE_RET_DEST_DUNGEON_SETTLED = 1108;
+ RETCODE_RET_DUNGEON_CANDIDATE_TEAM_IS_FULL = 1109;
+ RETCODE_RET_DUNGEON_CANDIDATE_TEAM_IS_DISMISS = 1110;
+ RETCODE_RET_DUNGEON_CANDIDATE_TEAM_NOT_ALL_READY = 1111;
+ RETCODE_RET_DUNGEON_CANDIDATE_TEAM_HAS_REPEAT_AVATAR = 1112;
+ RETCODE_RET_DUNGEON_CANDIDATE_NOT_SINGEL_PASS = 1113;
+ RETCODE_RET_DUNGEON_REPLAY_NEED_ALL_PLAYER_DIE = 1114;
+ RETCODE_RET_DUNGEON_REPLAY_HAS_REVIVE_COUNT = 1115;
+ RETCODE_RET_DUNGEON_OTHERS_LEAVE = 1116;
+ RETCODE_RET_DUNGEON_ENTER_LEVEL_LIMIT = 1117;
+ RETCODE_RET_DUNGEON_CANNOT_ENTER_PLOT_IN_MP = 1118;
+ RETCODE_RET_DUNGEON_DROP_SUBFIELD_LIMIT = 1119;
+ RETCODE_RET_DUNGEON_BE_INVITE_PLAYER_AVATAR_ALL_DIE = 1120;
+ RETCODE_RET_DUNGEON_CANNOT_KICK = 1121;
+ RETCODE_RET_DUNGEON_CANDIDATE_TEAM_SOMEONE_LEVEL_LIMIT = 1122;
+ RETCODE_RET_DUNGEON_IN_FORCE_QUIT = 1123;
+ RETCODE_RET_DUNGEON_GUEST_QUIT_DUNGEON = 1124;
+ RETCODE_RET_DUNGEON_TICKET_FAIL = 1125;
+ RETCODE_RET_CUR_DUNGEON_SETTLED = 1126;
+ RETCODE_RET_MP_NOT_IN_MY_WORLD = 1201;
+ RETCODE_RET_MP_IN_MP_MODE = 1202;
+ RETCODE_RET_MP_SCENE_IS_FULL = 1203;
+ RETCODE_RET_MP_MODE_NOT_AVAILABLE = 1204;
+ RETCODE_RET_MP_PLAYER_NOT_ENTERABLE = 1205;
+ RETCODE_RET_MP_QUEST_BLOCK_MP = 1206;
+ RETCODE_RET_MP_IN_ROOM_SCENE = 1207;
+ RETCODE_RET_MP_WORLD_IS_FULL = 1208;
+ RETCODE_RET_MP_PLAYER_NOT_ALLOW_ENTER = 1209;
+ RETCODE_RET_MP_PLAYER_DISCONNECTED = 1210;
+ RETCODE_RET_MP_NOT_IN_MP_MODE = 1211;
+ RETCODE_RET_MP_OWNER_NOT_ENTER = 1212;
+ RETCODE_RET_MP_ALLOW_ENTER_PLAYER_FULL = 1213;
+ RETCODE_RET_MP_TARGET_PLAYER_IN_TRANSFER = 1214;
+ RETCODE_RET_MP_TARGET_ENTERING_OTHER = 1215;
+ RETCODE_RET_MP_OTHER_ENTERING = 1216;
+ RETCODE_RET_MP_ENTER_MAIN_PLAYER_IN_PLOT = 1217;
+ RETCODE_RET_MP_NOT_PS_PLAYER = 1218;
+ RETCODE_RET_MP_PLAY_NOT_ACTIVE = 1219;
+ RETCODE_RET_MP_PLAY_REMAIN_REWARDS = 1220;
+ RETCODE_RET_MP_PLAY_NO_REWARD = 1221;
+ RETCODE_RET_MP_OPEN_STATE_FAIL = 1223;
+ RETCODE_RET_MP_PLAYER_IN_BLACKLIST = 1224;
+ RETCODE_RET_MP_REPLY_TIMEOUT = 1225;
+ RETCODE_RET_MP_IS_BLOCK = 1226;
+ RETCODE_RET_MP_ENTER_MAIN_PLAYER_IN_MP_PLAY = 1227;
+ RETCODE_RET_MP_IN_MP_PLAY_BATTLE = 1228;
+ RETCODE_RET_MP_GUEST_HAS_REWARD_REMAINED = 1229;
+ RETCODE_RET_MP_QUIT_MP_INVALID = 1230;
+ RETCODE_RET_MP_OTHER_DATA_VERSION_NOT_LATEST = 1231;
+ RETCODE_RET_MP_DATA_VERSION_NOT_LATEST = 1232;
+ RETCODE_RET_MP_CUR_WORLD_NOT_ENTERABLE = 1233;
+ RETCODE_RET_MP_ANY_GALLERY_STARTED = 1234;
+ RETCODE_RET_MP_HAS_ACTIVE_DRAFT = 1235;
+ RETCODE_RET_MP_PLAYER_IN_DUNGEON = 1236;
+ RETCODE_RET_MP_MATCH_FULL = 1237;
+ RETCODE_RET_MP_MATCH_LIMIT = 1238;
+ RETCODE_RET_MP_MATCH_IN_PUNISH = 1239;
+ RETCODE_RET_MP_IS_IN_MULTISTAGE = 1240;
+ RETCODE_RET_MP_MATCH_PLAY_NOT_OPEN = 1241;
+ RETCODE_RET_MP_ONLY_MP_WITH_PS_PLAYER = 1242;
+ RETCODE_RET_MP_GUEST_LOADING_FIRST_ENTER = 1243;
+ RETCODE_RET_MP_SUMMER_TIME_SPRINT_BOAT_ONGOING = 1244;
+ RETCODE_RET_MP_BLITZ_RUSH_PARKOUR_CHALLENGE_ONGOING = 1245;
+ RETCODE_RET_MP_MUSIC_GAME_ONGOING = 1246;
+ RETCODE_RET_MP_IN_MPING_MODE = 1247;
+ RETCODE_RET_MP_OWNER_IN_SINGLE_SCENE = 1248;
+ RETCODE_RET_MP_IN_SINGLE_SCENE = 1249;
+ RETCODE_RET_MP_REPLY_NO_VALID_AVATAR = 1250;
+ RETCODE_RET_MAIL_PARA_ERR = 1301;
+ RETCODE_RET_MAIL_MAX_NUM = 1302;
+ RETCODE_RET_MAIL_ITEM_NUM_EXCEED = 1303;
+ RETCODE_RET_MAIL_TITLE_LEN_EXCEED = 1304;
+ RETCODE_RET_MAIL_CONTENT_LEN_EXCEED = 1305;
+ RETCODE_RET_MAIL_SENDER_LEN_EXCEED = 1306;
+ RETCODE_RET_MAIL_PARSE_PACKET_FAIL = 1307;
+ RETCODE_RET_OFFLINE_MSG_MAX_NUM = 1308;
+ RETCODE_RET_OFFLINE_MSG_SAME_TICKET = 1309;
+ RETCODE_RET_MAIL_EXCEL_MAIL_TYPE_ERROR = 1310;
+ RETCODE_RET_MAIL_CANNOT_SEND_MCOIN = 1311;
+ RETCODE_RET_MAIL_HCOIN_EXCEED_LIMIT = 1312;
+ RETCODE_RET_MAIL_SCOIN_EXCEED_LIMIT = 1313;
+ RETCODE_RET_MAIL_MATERIAL_ID_INVALID = 1314;
+ RETCODE_RET_MAIL_AVATAR_EXCEED_LIMIT = 1315;
+ RETCODE_RET_MAIL_GACHA_TICKET_ETC_EXCEED_LIMIT = 1316;
+ RETCODE_RET_MAIL_ITEM_EXCEED_CEHUA_LIMIT = 1317;
+ RETCODE_RET_MAIL_SPACE_OR_REST_NUM_NOT_ENOUGH = 1318;
+ RETCODE_RET_MAIL_TICKET_IS_EMPTY = 1319;
+ RETCODE_RET_MAIL_TRANSACTION_IS_EMPTY = 1320;
+ RETCODE_RET_MAIL_DELETE_COLLECTED = 1321;
+ RETCODE_RET_DAILY_TASK_NOT_FINISH = 1330;
+ RETCODE_RET_DAILY_TAKS_HAS_TAKEN = 1331;
+ RETCODE_RET_SOCIAL_OFFLINE_MSG_NUM_EXCEED = 1332;
+ RETCODE_RET_DAILY_TASK_FILTER_CITY_NOT_OPEN = 1333;
+ RETCODE_RET_GACHA_INAVAILABLE = 1401;
+ RETCODE_RET_GACHA_RANDOM_NOT_MATCH = 1402;
+ RETCODE_RET_GACHA_SCHEDULE_NOT_MATCH = 1403;
+ RETCODE_RET_GACHA_INVALID_TIMES = 1404;
+ RETCODE_RET_GACHA_COST_ITEM_NOT_ENOUGH = 1405;
+ RETCODE_RET_GACHA_TIMES_LIMIT = 1406;
+ RETCODE_RET_GACHA_WISH_SAME_ITEM = 1407;
+ RETCODE_RET_GACHA_WISH_INVALID_ITEM = 1408;
+ RETCODE_RET_GACHA_MINORS_TIMES_LIMIT = 1409;
+ RETCODE_RET_GACHA_GENERAL_TIMES_LIMIT = 1410;
+ RETCODE_RET_INVESTIGAITON_NOT_IN_PROGRESS = 1501;
+ RETCODE_RET_INVESTIGAITON_UNCOMPLETE = 1502;
+ RETCODE_RET_INVESTIGAITON_REWARD_TAKEN = 1503;
+ RETCODE_RET_INVESTIGAITON_TARGET_STATE_ERROR = 1504;
+ RETCODE_RET_PUSH_TIPS_NOT_FOUND = 1505;
+ RETCODE_RET_SIGN_IN_RECORD_NOT_FOUND = 1506;
+ RETCODE_RET_ALREADY_HAVE_SIGNED_IN = 1507;
+ RETCODE_RET_SIGN_IN_COND_NOT_SATISFIED = 1508;
+ RETCODE_RET_BONUS_ACTIVITY_NOT_UNREWARDED = 1509;
+ RETCODE_RET_SIGN_IN_REWARDED = 1510;
+ RETCODE_RET_TOWER_NOT_OPEN = 1521;
+ RETCODE_RET_TOWER_HAVE_DAILY_RECORD = 1522;
+ RETCODE_RET_TOWER_NOT_RECORD = 1523;
+ RETCODE_RET_TOWER_HAVE_RECORD = 1524;
+ RETCODE_RET_TOWER_TEAM_NUM_ERROR = 1525;
+ RETCODE_RET_TOWER_FLOOR_NOT_OPEN = 1526;
+ RETCODE_RET_TOWER_NO_FLOOR_STAR_RECORD = 1527;
+ RETCODE_RET_ALREADY_HAS_TOWER_BUFF = 1528;
+ RETCODE_RET_DUPLICATE_ENTER_LEVEL = 1529;
+ RETCODE_RET_NOT_IN_TOWER_LEVEL = 1530;
+ RETCODE_RET_IN_TOWER_LEVEL = 1531;
+ RETCODE_RET_TOWER_PREV_FLOOR_NOT_FINISH = 1532;
+ RETCODE_RET_TOWER_STAR_NOT_ENOUGH = 1533;
+ RETCODE_RET_BATTLE_PASS_NO_SCHEDULE = 1541;
+ RETCODE_RET_BATTLE_PASS_HAS_BUYED = 1542;
+ RETCODE_RET_BATTLE_PASS_LEVEL_OVERFLOW = 1543;
+ RETCODE_RET_BATTLE_PASS_PRODUCT_EXPIRED = 1544;
+ RETCODE_RET_MATCH_HOST_QUIT = 1561;
+ RETCODE_RET_MATCH_ALREADY_IN_MATCH = 1562;
+ RETCODE_RET_MATCH_NOT_IN_MATCH = 1563;
+ RETCODE_RET_MATCH_APPLYING_ENTER_MP = 1564;
+ RETCODE_RET_WIDGET_TREASURE_SPOT_NOT_FOUND = 1581;
+ RETCODE_RET_WIDGET_TREASURE_ENTITY_EXISTS = 1582;
+ RETCODE_RET_WIDGET_TREASURE_SPOT_FAR_AWAY = 1583;
+ RETCODE_RET_WIDGET_TREASURE_FINISHED_TODAY = 1584;
+ RETCODE_RET_WIDGET_QUICK_USE_REQ_PARAM_ERROR = 1585;
+ RETCODE_RET_WIDGET_CAMERA_SCAN_ID_ERROR = 1586;
+ RETCODE_RET_WIDGET_NOT_ACTIVE = 1587;
+ RETCODE_RET_WIDGET_FEATHER_NOT_ACTIVE = 1588;
+ RETCODE_RET_WIDGET_FEATHER_GADGET_TOO_FAR_AWAY = 1589;
+ RETCODE_RET_WIDGET_CAPTURE_ANIMAL_NOT_EXIST = 1590;
+ RETCODE_RET_WIDGET_CAPTURE_ANIMAL_DROP_BAG_LIMIT = 1591;
+ RETCODE_RET_WIDGET_CAPTURE_ANIMAL_CAN_NOT_CAPTURE = 1592;
+ RETCODE_RET_WIDGET_SKY_CRYSTAL_ALL_COLLECTED = 1593;
+ RETCODE_RET_WIDGET_SKY_CRYSTAL_HINT_ALREADY_EXIST = 1594;
+ RETCODE_RET_WIDGET_SKY_CRYSTAL_NOT_FOUND = 1595;
+ RETCODE_RET_WIDGET_SKY_CRYSTAL_NO_HINT_TO_CLEAR = 1596;
+ RETCODE_RET_WIDGET_LIGHT_STONE_ENERGY_NOT_ENOUGH = 1597;
+ RETCODE_RET_WIDGET_TOY_CRYSTAL_ENERGY_NOT_ENOUGH = 1598;
+ RETCODE_RET_WIDGET_LIGHT_STONE_LEVEL_NOT_ENOUGH = 1599;
+ RETCODE_RET_UID_NOT_EXIST = 2001;
+ RETCODE_RET_PARSE_BIN_ERROR = 2002;
+ RETCODE_RET_ACCOUNT_INFO_NOT_EXIST = 2003;
+ RETCODE_RET_ORDER_INFO_NOT_EXIST = 2004;
+ RETCODE_RET_SNAPSHOT_INDEX_ERROR = 2005;
+ RETCODE_RET_MAIL_HAS_BEEN_SENT = 2006;
+ RETCODE_RET_PRODUCT_NOT_EXIST = 2007;
+ RETCODE_RET_UNFINISH_ORDER = 2008;
+ RETCODE_RET_ID_NOT_EXIST = 2009;
+ RETCODE_RET_ORDER_TRADE_EARLY = 2010;
+ RETCODE_RET_ORDER_FINISHED = 2011;
+ RETCODE_RET_GAMESERVER_VERSION_WRONG = 2012;
+ RETCODE_RET_OFFLINE_OP_FULL_LENGTH = 2013;
+ RETCODE_RET_CONCERT_PRODUCT_OBTAIN_LIMIT = 2014;
+ RETCODE_RET_CONCERT_PRODUCT_TICKET_DUPLICATED = 2015;
+ RETCODE_RET_CONCERT_PRODUCT_TICKET_EMPTY = 2016;
+ RETCODE_RET_REDIS_MODIFIED = 5001;
+ RETCODE_RET_REDIS_UID_NOT_EXIST = 5002;
+ RETCODE_RET_PATHFINDING_DATA_NOT_EXIST = 6001;
+ RETCODE_RET_PATHFINDING_DESTINATION_NOT_EXIST = 6002;
+ RETCODE_RET_PATHFINDING_ERROR_SCENE = 6003;
+ RETCODE_RET_PATHFINDING_SCENE_DATA_LOADING = 6004;
+ RETCODE_RET_FRIEND_COUNT_EXCEEDED = 7001;
+ RETCODE_RET_PLAYER_NOT_EXIST = 7002;
+ RETCODE_RET_ALREADY_SENT_ADD_REQUEST = 7003;
+ RETCODE_RET_ASK_FRIEND_LIST_FULL = 7004;
+ RETCODE_RET_PLAYER_ALREADY_IS_FRIEND = 7005;
+ RETCODE_RET_PLAYER_NOT_ASK_FRIEND = 7006;
+ RETCODE_RET_TARGET_FRIEND_COUNT_EXCEED = 7007;
+ RETCODE_RET_NOT_FRIEND = 7008;
+ RETCODE_RET_BIRTHDAY_CANNOT_BE_SET_TWICE = 7009;
+ RETCODE_RET_CANNOT_ADD_SELF_FRIEND = 7010;
+ RETCODE_RET_SIGNATURE_ILLEGAL = 7011;
+ RETCODE_RET_PS_PLAYER_CANNOT_ADD_FRIENDS = 7012;
+ RETCODE_RET_PS_PLAYER_CANNOT_REMOVE_FRIENDS = 7013;
+ RETCODE_RET_NAME_CARD_NOT_UNLOCKED = 7014;
+ RETCODE_RET_ALREADY_IN_BLACKLIST = 7015;
+ RETCODE_RET_PS_PALEYRS_CANNOT_ADD_BLACKLIST = 7016;
+ RETCODE_RET_PLAYER_BLACKLIST_FULL = 7017;
+ RETCODE_RET_PLAYER_NOT_IN_BLACKLIST = 7018;
+ RETCODE_RET_BLACKLIST_PLAYER_CANNOT_ADD_FRIEND = 7019;
+ RETCODE_RET_IN_TARGET_BLACKLIST = 7020;
+ RETCODE_RET_CANNOT_ADD_TARGET_FRIEND = 7021;
+ RETCODE_RET_BIRTHDAY_FORMAT_ERROR = 7022;
+ RETCODE_RET_ONLINE_ID_NOT_EXISTS = 7023;
+ RETCODE_RET_FIRST_SHARE_REWARD_HAS_TAKEN = 7024;
+ RETCODE_RET_PS_PLAYER_CANNOT_REMOVE_BLACKLIST = 7025;
+ RETCODE_RET_REPORT_CD = 7026;
+ RETCODE_RET_REPORT_CONTENT_ILLEGAL = 7027;
+ RETCODE_RET_REMARK_WORD_ILLEGAL = 7028;
+ RETCODE_RET_REMARK_TOO_LONG = 7029;
+ RETCODE_RET_REMARK_UTF8_ERROR = 7030;
+ RETCODE_RET_REMARK_IS_EMPTY = 7031;
+ RETCODE_RET_ASK_ADD_FRIEND_CD = 7032;
+ RETCODE_RET_SHOW_AVATAR_INFO_NOT_EXIST = 7033;
+ RETCODE_RET_PLAYER_NOT_SHOW_AVATAR = 7034;
+ RETCODE_RET_SOCIAL_UPDATE_SHOW_LIST_REPEAT_ID = 7035;
+ RETCODE_RET_PSN_ID_NOT_FOUND = 7036;
+ RETCODE_RET_EMOJI_COLLECTION_NUM_EXCEED_LIMIT = 7037;
+ RETCODE_RET_REMARK_EMPTY = 7038;
+ RETCODE_RET_IN_TARGET_PSN_BLACKLIST = 7039;
+ RETCODE_RET_SIGNATURE_NOT_CHANGED = 7040;
+ RETCODE_RET_SIGNATURE_MONTHLY_LIMIT = 7041;
+ RETCODE_RET_REQ_FRIEND_AVATAR_FREQUENTLY = 7042;
+ RETCODE_RET_PSN_GET_PLAYER_SOCIAL_DETAIL_FAIL = 7043;
+ RETCODE_RET_OFFERING_NOT_OPEN = 7081;
+ RETCODE_RET_OFFERING_LEVEL_LIMIT = 7082;
+ RETCODE_RET_OFFERING_LEVEL_NOT_REACH = 7083;
+ RETCODE_RET_OFFERING_LEVEL_HAS_TAKEN = 7084;
+ RETCODE_RET_CITY_REPUTATION_NOT_OPEN = 7101;
+ RETCODE_RET_CITY_REPUTATION_LEVEL_TAKEN = 7102;
+ RETCODE_RET_CITY_REPUTATION_LEVEL_NOT_REACH = 7103;
+ RETCODE_RET_CITY_REPUTATION_PARENT_QUEST_TAKEN = 7104;
+ RETCODE_RET_CITY_REPUTATION_PARENT_QUEST_UNFINISH = 7105;
+ RETCODE_RET_CITY_REPUTATION_ACCEPT_REQUEST = 7106;
+ RETCODE_RET_CITY_REPUTATION_NOT_ACCEPT_REQUEST = 7107;
+ RETCODE_RET_CITY_REPUTATION_ACCEPT_REQUEST_LIMIT = 7108;
+ RETCODE_RET_CITY_REPUTATION_ENTRANCE_NOT_OPEN = 7109;
+ RETCODE_RET_CITY_REPUTATION_TAKEN_REQUEST_REWARD = 7110;
+ RETCODE_RET_CITY_REPUTATION_SWITCH_CLOSE = 7111;
+ RETCODE_RET_CITY_REPUTATION_ENTRACE_SWITCH_CLOSE = 7112;
+ RETCODE_RET_CITY_REPUTATION_TAKEN_EXPLORE_REWARD = 7113;
+ RETCODE_RET_CITY_REPUTATION_EXPLORE_NOT_REACH = 7114;
+ RETCODE_RET_MECHANICUS_NOT_OPEN = 7120;
+ RETCODE_RET_MECHANICUS_GEAR_UNLOCK = 7121;
+ RETCODE_RET_MECHANICUS_GEAR_LOCK = 7122;
+ RETCODE_RET_MECHANICUS_GEAR_LEVEL_LIMIT = 7123;
+ RETCODE_RET_MECHANICUS_COIN_NOT_ENOUGH = 7124;
+ RETCODE_RET_MECHANICUS_NO_SEQUENCE = 7125;
+ RETCODE_RET_MECHANICUS_SEQUENCE_LIMIT_LEVEL = 7126;
+ RETCODE_RET_MECHANICUS_SEQUENCE_LIMIT_OPEN = 7127;
+ RETCODE_RET_MECHANICUS_DIFFICULT_NOT_SUPPORT = 7128;
+ RETCODE_RET_MECHANICUS_TICKET_NOT_ENOUGH = 7129;
+ RETCODE_RET_MECHANICUS_TEACH_NOT_FINISH = 7130;
+ RETCODE_RET_MECHANICUS_TEACH_FINISHED = 7131;
+ RETCODE_RET_MECHANICUS_PREV_DIFFICULT_LEVEL_BLOCK = 7132;
+ RETCODE_RET_MECHANICUS_PLAYER_LIMIT = 7133;
+ RETCODE_RET_MECHANICUS_PUNISH_TIME = 7134;
+ RETCODE_RET_MECHANICUS_SWITCH_CLOSE = 7135;
+ RETCODE_RET_MECHANICUS_BATTLE_NOT_IN_DUNGEON = 7150;
+ RETCODE_RET_MECHANICUS_BATTLE_PLAY_NOT_FOUND = 7151;
+ RETCODE_RET_MECHANICUS_BATTLE_DUPLICATE_PICK_CARD = 7152;
+ RETCODE_RET_MECHANICUS_BATTLE_PLAYER_NOT_IN_PLAY = 7153;
+ RETCODE_RET_MECHANICUS_BATTLE_CARD_NOT_AVAILABLE = 7154;
+ RETCODE_RET_MECHANICUS_BATTLE_NOT_IN_CARD_STAGE = 7155;
+ RETCODE_RET_MECHANICUS_BATTLE_CARD_IS_WAITING = 7156;
+ RETCODE_RET_MECHANICUS_BATTLE_CARD_ALL_CONFIRMED = 7157;
+ RETCODE_RET_MECHANICUS_BATTLE_CARD_ALREADY_CONFIRMED = 7158;
+ RETCODE_RET_MECHANICUS_BATTLE_CARD_CONFIRMED_BY_OTHER = 7159;
+ RETCODE_RET_MECHANICUS_BATTLE_CARD_NOT_ENOUGH_POINTS = 7160;
+ RETCODE_RET_MECHANICUS_BATTLE_CARD_ALREADY_SKIPPED = 7161;
+ RETCODE_RET_LEGENDARY_KEY_NOT_ENOUGH = 8001;
+ RETCODE_RET_LEGENDARY_KEY_EXCEED_LIMIT = 8002;
+ RETCODE_RET_DAILY_TASK_NOT_ENOUGH_TO_REDEEM = 8003;
+ RETCODE_RET_PERSONAL_LINE_OPEN_STATE_OFF = 8004;
+ RETCODE_RET_PERSONAL_LINE_LEVEL_NOT_ENOUGH = 8005;
+ RETCODE_RET_PERSONAL_LINE_NOT_OPEN = 8006;
+ RETCODE_RET_PERSONAL_LINE_PRE_QUEST_NOT_FINISH = 8007;
+ RETCODE_RET_HUNTING_ALREADY_FINISH_OFFER_LIMIT = 8201;
+ RETCODE_RET_HUNTING_HAS_UNFINISHED_OFFER = 8202;
+ RETCODE_RET_HUNTING_FAILED_OFFER_NOT_CD_READY = 8203;
+ RETCODE_RET_HUNTING_NOT_TAKE_OFFER = 8204;
+ RETCODE_RET_HUNTING_CANNOT_TAKE_TWICE = 8205;
+ RETCODE_RET_RPIVATE_CHAT_INVALID_CONTENT_TYPE = 8901;
+ RETCODE_RET_PRIVATE_CHAT_TARGET_IS_NOT_FRIEND = 8902;
+ RETCODE_RET_PRIVATE_CHAT_CONTENT_NOT_SUPPORTED = 8903;
+ RETCODE_RET_PRIVATE_CHAT_CONTENT_TOO_LONG = 8904;
+ RETCODE_RET_PRIVATE_CHAT_PULL_TOO_FAST = 8905;
+ RETCODE_RET_PRIVATE_CHAT_REPEAT_READ = 8906;
+ RETCODE_RET_PRIVATE_CHAT_READ_NOT_FRIEND = 8907;
+ RETCODE_RET_REUNION_FINISHED = 9001;
+ RETCODE_RET_REUNION_NOT_ACTIVATED = 9002;
+ RETCODE_RET_REUNION_ALREADY_TAKE_FIRST_REWARD = 9003;
+ RETCODE_RET_REUNION_SIGN_IN_REWARDED = 9004;
+ RETCODE_RET_REUNION_WATCHER_REWARDED = 9005;
+ RETCODE_RET_REUNION_WATCHER_NOT_FINISH = 9006;
+ RETCODE_RET_REUNION_MISSION_REWARDED = 9007;
+ RETCODE_RET_REUNION_MISSION_NOT_FINISH = 9008;
+ RETCODE_RET_REUNION_WATCHER_REWARD_NOT_UNLOCKED = 9009;
+ RETCODE_RET_BLESSING_CONTENT_CLOSED = 9101;
+ RETCODE_RET_BLESSING_NOT_ACTIVE = 9102;
+ RETCODE_RET_BLESSING_NOT_TODAY_ENTITY = 9103;
+ RETCODE_RET_BLESSING_ENTITY_EXCEED_SCAN_NUM_LIMIT = 9104;
+ RETCODE_RET_BLESSING_DAILY_SCAN_NUM_EXCEED_LIMIT = 9105;
+ RETCODE_RET_BLESSING_REDEEM_REWARD_NUM_EXCEED_LIMIT = 9106;
+ RETCODE_RET_BLESSING_REDEEM_PIC_NUM_NOT_ENOUGH = 9107;
+ RETCODE_RET_BLESSING_PIC_NOT_ENOUGH = 9108;
+ RETCODE_RET_BLESSING_PIC_HAS_RECEIVED = 9109;
+ RETCODE_RET_BLESSING_TARGET_RECV_NUM_EXCEED = 9110;
+ RETCODE_RET_FLEUR_FAIR_CREDIT_EXCEED_LIMIT = 9111;
+ RETCODE_RET_FLEUR_FAIR_CREDIT_NOT_ENOUGH = 9112;
+ RETCODE_RET_FLEUR_FAIR_TOKEN_EXCEED_LIMIT = 9113;
+ RETCODE_RET_FLEUR_FAIR_TOKEN_NOT_ENOUGH = 9114;
+ RETCODE_RET_FLEUR_FAIR_MINIGAME_NOT_OPEN = 9115;
+ RETCODE_RET_FLEUR_FAIR_MUSIC_GAME_DIFFICULTY_NOT_UNLOCK = 9116;
+ RETCODE_RET_FLEUR_FAIR_DUNGEON_LOCKED = 9117;
+ RETCODE_RET_FLEUR_FAIR_DUNGEON_PUNISH_TIME = 9118;
+ RETCODE_RET_FLEUR_FAIR_ONLY_OWNER_CAN_RESTART_MINIGAM = 9119;
+ RETCODE_RET_WATER_SPIRIT_COIN_EXCEED_LIMIT = 9120;
+ RETCODE_RET_WATER_SPIRIT_COIN_NOT_ENOUGH = 9121;
+ RETCODE_RET_REGION_SEARCH_NO_SEARCH = 9122;
+ RETCODE_RET_REGION_SEARCH_STATE_ERROR = 9123;
+ RETCODE_RET_CHANNELLER_SLAB_LOOP_DUNGEON_STAGE_NOT_OPEN = 9130;
+ RETCODE_RET_CHANNELLER_SLAB_LOOP_DUNGEON_NOT_OPEN = 9131;
+ RETCODE_RET_CHANNELLER_SLAB_LOOP_DUNGEON_FIRST_PASS_REWARD_HAS_TAKEN = 9132;
+ RETCODE_RET_CHANNELLER_SLAB_LOOP_DUNGEON_SCORE_REWARD_HAS_TAKEN = 9133;
+ RETCODE_RET_CHANNELLER_SLAB_INVALID_ONE_OFF_DUNGEON = 9134;
+ RETCODE_RET_CHANNELLER_SLAB_ONE_OFF_DUNGEON_DONE = 9135;
+ RETCODE_RET_CHANNELLER_SLAB_ONE_OFF_DUNGEON_STAGE_NOT_OPEN = 9136;
+ RETCODE_RET_CHANNELLER_SLAB_TOKEN_EXCEED_LIMIT = 9137;
+ RETCODE_RET_CHANNELLER_SLAB_TOKEN_NOT_ENOUGH = 9138;
+ RETCODE_RET_CHANNELLER_SLAB_PLAYER_NOT_IN_ONE_OFF_DUNGEON = 9139;
+ RETCODE_RET_MIST_TRIAL_SELECT_CHARACTER_NUM_NOT_ENOUGH = 9150;
+ RETCODE_RET_HIDE_AND_SEEK_PLAY_NOT_OPEN = 9160;
+ RETCODE_RET_HIDE_AND_SEEK_PLAY_MAP_NOT_OPEN = 9161;
+ RETCODE_RET_SUMMER_TIME_DRAFT_WOORD_EXCEED_LIMIT = 9170;
+ RETCODE_RET_SUMMER_TIME_DRAFT_WOORD_NOT_ENOUGH = 9171;
+ RETCODE_RET_SUMMER_TIME_MINI_HARPASTUM_EXCEED_LIMIT = 9172;
+ RETCODE_RET_SUMMER_TIME_MINI_HARPASTUMNOT_ENOUGH = 9173;
+ RETCODE_RET_BOUNCE_CONJURING_COIN_EXCEED_LIMIT = 9180;
+ RETCODE_RET_BOUNCE_CONJURING_COIN_NOT_ENOUGH = 9181;
+ RETCODE_RET_CHESS_TEACH_MAP_FINISHED = 9183;
+ RETCODE_RET_CHESS_TEACH_MAP_UNFINISHED = 9184;
+ RETCODE_RET_CHESS_COIN_EXCEED_LIMIT = 9185;
+ RETCODE_RET_CHESS_COIN_NOT_ENOUGH = 9186;
+ RETCODE_RET_CHESS_IN_PUNISH_TIME = 9187;
+ RETCODE_RET_CHESS_PREV_MAP_UNFINISHED = 9188;
+ RETCODE_RET_CHESS_MAP_LOCKED = 9189;
+ RETCODE_RET_BLITZ_RUSH_NOT_OPEN = 9192;
+ RETCODE_RET_BLITZ_RUSH_DUNGEON_NOT_OPEN = 9193;
+ RETCODE_RET_BLITZ_RUSH_COIN_A_EXCEED_LIMIT = 9194;
+ RETCODE_RET_BLITZ_RUSH_COIN_B_EXCEED_LIMIT = 9195;
+ RETCODE_RET_BLITZ_RUSH_COIN_A_NOT_ENOUGH = 9196;
+ RETCODE_RET_BLITZ_RUSH_COIN_B_NOT_ENOUGH = 9197;
+ RETCODE_RET_MIRACLE_RING_VALUE_NOT_ENOUGH = 9201;
+ RETCODE_RET_MIRACLE_RING_CD = 9202;
+ RETCODE_RET_MIRACLE_RING_REWARD_NOT_TAKEN = 9203;
+ RETCODE_RET_MIRACLE_RING_NOT_DELIVER = 9204;
+ RETCODE_RET_MIRACLE_RING_DELIVER_EXCEED = 9205;
+ RETCODE_RET_MIRACLE_RING_HAS_CREATED = 9206;
+ RETCODE_RET_MIRACLE_RING_HAS_NOT_CREATED = 9207;
+ RETCODE_RET_MIRACLE_RING_NOT_YOURS = 9208;
+ RETCODE_RET_GADGET_FOUNDATION_UNAUTHORIZED = 9251;
+ RETCODE_RET_GADGET_FOUNDATION_SCENE_NOT_FOUND = 9252;
+ RETCODE_RET_GADGET_FOUNDATION_NOT_IN_INIT_STATE = 9253;
+ RETCODE_RET_GADGET_FOUNDATION_BILDING_POINT_NOT_ENOUGHT = 9254;
+ RETCODE_RET_GADGET_FOUNDATION_NOT_IN_BUILT_STATE = 9255;
+ RETCODE_RET_GADGET_FOUNDATION_OP_NOT_SUPPORTED = 9256;
+ RETCODE_RET_GADGET_FOUNDATION_REQ_PLAYER_NOT_IN_SCENE = 9257;
+ RETCODE_RET_GADGET_FOUNDATION_LOCKED_BY_ANOTHER_PLAYER = 9258;
+ RETCODE_RET_GADGET_FOUNDATION_NOT_LOCKED = 9259;
+ RETCODE_RET_GADGET_FOUNDATION_DUPLICATE_LOCK = 9260;
+ RETCODE_RET_GADGET_FOUNDATION_PLAYER_NOT_FOUND = 9261;
+ RETCODE_RET_GADGET_FOUNDATION_PLAYER_GEAR_NOT_FOUND = 9262;
+ RETCODE_RET_GADGET_FOUNDATION_ROTAION_DISABLED = 9263;
+ RETCODE_RET_GADGET_FOUNDATION_REACH_DUNGEON_GEAR_LIMIT = 9264;
+ RETCODE_RET_GADGET_FOUNDATION_REACH_SINGLE_GEAR_LIMIT = 9265;
+ RETCODE_RET_GADGET_FOUNDATION_ROTATION_ON_GOING = 9266;
+ RETCODE_RET_OP_ACTIVITY_BONUS_NOT_FOUND = 9301;
+ RETCODE_RET_OP_ACTIVITY_NOT_OPEN = 9302;
+ RETCODE_RET_MULTISTAGE_PLAY_PLAYER_NOT_IN_SCENE = 9501;
+ RETCODE_RET_MULTISTAGE_PLAY_NOT_FOUND = 9502;
+ RETCODE_RET_COOP_CHAPTER_NOT_OPEN = 9601;
+ RETCODE_RET_COOP_COND_NOT_MEET = 9602;
+ RETCODE_RET_COOP_POINT_LOCKED = 9603;
+ RETCODE_RET_COOP_NOT_HAVE_PROGRESS = 9604;
+ RETCODE_RET_COOP_REWARD_HAS_TAKEN = 9605;
+ RETCODE_RET_DRAFT_HAS_ACTIVE_DRAFT = 9651;
+ RETCODE_RET_DRAFT_NOT_IN_MY_WORLD = 9652;
+ RETCODE_RET_DRAFT_NOT_SUPPORT_MP = 9653;
+ RETCODE_RET_DRAFT_PLAYER_NOT_ENOUGH = 9654;
+ RETCODE_RET_DRAFT_INCORRECT_SCENE = 9655;
+ RETCODE_RET_DRAFT_OTHER_PLAYER_ENTERING = 9656;
+ RETCODE_RET_DRAFT_GUEST_IS_TRANSFERRING = 9657;
+ RETCODE_RET_DRAFT_GUEST_NOT_IN_DRAFT_SCENE = 9658;
+ RETCODE_RET_DRAFT_INVITE_OVER_TIME = 9659;
+ RETCODE_RET_DRAFT_TWICE_CONFIRM_OVER_TIMER = 9660;
+ RETCODE_RET_HOME_UNKOWN = 9701;
+ RETCODE_RET_HOME_INVALID_CLIENT_PARAM = 9702;
+ RETCODE_RET_HOME_TARGE_PLAYER_HAS_NO_HOME = 9703;
+ RETCODE_RET_HOME_NOT_ONLINE = 9704;
+ RETCODE_RET_HOME_PLAYER_FULL = 9705;
+ RETCODE_RET_HOME_BLOCKED = 9706;
+ RETCODE_RET_HOME_ALREADY_IN_TARGET_HOME_WORLD = 9707;
+ RETCODE_RET_HOME_IN_EDIT_MODE = 9708;
+ RETCODE_RET_HOME_NOT_IN_EDIT_MODE = 9709;
+ RETCODE_RET_HOME_HAS_GUEST = 9710;
+ RETCODE_RET_HOME_CANT_ENTER_BY_IN_EDIT_MODE = 9711;
+ RETCODE_RET_HOME_CLIENT_PARAM_INVALID = 9712;
+ RETCODE_RET_HOME_PLAYER_NOT_IN_HOME_WORLD = 9713;
+ RETCODE_RET_HOME_PLAYER_NOT_IN_SELF_HOME_WORLD = 9714;
+ RETCODE_RET_HOME_NOT_FOUND_IN_MEM = 9715;
+ RETCODE_RET_HOME_PLAYER_IN_HOME_ROOM_SCENE = 9716;
+ RETCODE_RET_HOME_HOME_REFUSE_GUEST_ENTER = 9717;
+ RETCODE_RET_HOME_OWNER_REFUSE_TO_ENTER_HOME = 9718;
+ RETCODE_RET_HOME_OWNER_OFFLINE = 9719;
+ RETCODE_RET_HOME_FURNITURE_EXCEED_LIMIT = 9720;
+ RETCODE_RET_HOME_FURNITURE_COUNT_NOT_ENOUGH = 9721;
+ RETCODE_RET_HOME_IN_TRY_ENTER_PROCESS = 9722;
+ RETCODE_RET_HOME_ALREADY_IN_TARGET_SCENE = 9723;
+ RETCODE_RET_HOME_COIN_EXCEED_LIMIT = 9724;
+ RETCODE_RET_HOME_COIN_NOT_ENOUGH = 9725;
+ RETCODE_RET_HOME_MODULE_NOT_UNLOCKED = 9726;
+ RETCODE_RET_HOME_CUR_MODULE_CLOSED = 9727;
+ RETCODE_RET_HOME_FURNITURE_SUITE_NOT_UNLOCKED = 9728;
+ RETCODE_RET_HOME_IN_MATCH = 9729;
+ RETCODE_RET_HOME_IN_COMBAT = 9730;
+ RETCODE_RET_HOME_EDIT_MODE_CD = 9731;
+ RETCODE_RET_HOME_UPDATE_FURNITURE_CD = 9732;
+ RETCODE_RET_HOME_BLOCK_FURNITURE_LIMIT = 9733;
+ RETCODE_RET_HOME_NOT_SUPPORT = 9734;
+ RETCODE_RET_HOME_STATE_NOT_OPEN = 9735;
+ RETCODE_RET_HOME_TARGET_STATE_NOT_OPEN = 9736;
+ RETCODE_RET_HOME_APPLY_ENTER_OTHER_HOME_FAIL = 9737;
+ RETCODE_RET_HOME_SAVE_NO_MAIN_HOUSE = 9738;
+ RETCODE_RET_HOME_IN_DUNGEON = 9739;
+ RETCODE_RET_HOME_ANY_GALLERY_STARTED = 9740;
+ RETCODE_RET_HOME_QUEST_BLOCK_HOME = 9741;
+ RETCODE_RET_HOME_WAITING_PRIOR_CHECK = 9742;
+ RETCODE_RET_HOME_PERSISTENT_CHECK_FAIL = 9743;
+ RETCODE_RET_HOME_FIND_ONLINE_HOME_FAIL = 9744;
+ RETCODE_RET_HOME_JOIN_SCENE_FAIL = 9745;
+ RETCODE_RET_HOME_MAX_PLAYER = 9746;
+ RETCODE_RET_HOME_IN_TRANSFER = 9747;
+ RETCODE_RET_HOME_ANY_HOME_GALLERY_STARTED = 9748;
+ RETCODE_RET_HOME_CAN_NOT_ENTER_IN_AUDIT = 9749;
+ RETCODE_RET_FURNITURE_MAKE_INDEX_ERROR = 9750;
+ RETCODE_RET_FURNITURE_MAKE_LOCKED = 9751;
+ RETCODE_RET_FURNITURE_MAKE_CONFIG_ERROR = 9752;
+ RETCODE_RET_FURNITURE_MAKE_SLOT_FULL = 9753;
+ RETCODE_RET_FURNITURE_MAKE_ADD_FURNITURE_FAIL = 9754;
+ RETCODE_RET_FURNITURE_MAKE_UNFINISH = 9755;
+ RETCODE_RET_FURNITURE_MAKE_IS_FINISH = 9756;
+ RETCODE_RET_FURNITURE_MAKE_NOT_IN_CORRECT_HOME = 9757;
+ RETCODE_RET_FURNITURE_MAKE_NO_COUNT = 9758;
+ RETCODE_RET_FURNITURE_MAKE_ACCELERATE_LIMIT = 9759;
+ RETCODE_RET_FURNITURE_MAKE_NO_MAKE_DATA = 9760;
+ RETCODE_RET_HOME_LIMITED_SHOP_CLOSE = 9761;
+ RETCODE_RET_HOME_AVATAR_NOT_SHOW = 9762;
+ RETCODE_RET_HOME_EVENT_COND_NOT_SATISFIED = 9763;
+ RETCODE_RET_HOME_INVALID_ARRANGE_ANIMAL_PARAM = 9764;
+ RETCODE_RET_HOME_INVALID_ARRANGE_NPC_PARAM = 9765;
+ RETCODE_RET_HOME_INVALID_ARRANGE_SUITE_PARAM = 9766;
+ RETCODE_RET_HOME_INVALID_ARRANGE_MAIN_HOUSE_PARAM = 9767;
+ RETCODE_RET_HOME_AVATAR_STATE_NOT_OPEN = 9768;
+ RETCODE_RET_HOME_PLANT_FIELD_NOT_EMPTY = 9769;
+ RETCODE_RET_HOME_PLANT_FIELD_EMPTY = 9770;
+ RETCODE_RET_HOME_PLANT_FIELD_TYPE_ERROR = 9771;
+ RETCODE_RET_HOME_PLANT_TIME_NOT_ENOUGH = 9772;
+ RETCODE_RET_HOME_PLANT_SUB_FIELD_NUM_NOT_ENOUGH = 9773;
+ RETCODE_RET_HOME_PLANT_FIELD_PARAM_ERROR = 9774;
+ RETCODE_RET_HOME_FURNITURE_GUID_ERROR = 9775;
+ RETCODE_RET_HOME_FURNITURE_ARRANGE_LIMIT = 9776;
+ RETCODE_RET_HOME_FISH_FARMING_LIMIT = 9777;
+ RETCODE_RET_HOME_FISH_COUNT_NOT_ENOUGH = 9778;
+ RETCODE_RET_HOME_FURNITURE_COST_LIMIT = 9779;
+ RETCODE_RET_HOME_CUSTOM_FURNITURE_INVALID = 9780;
+ RETCODE_RET_HOME_INVALID_ARRANGE_GROUP_PARAM = 9781;
+ RETCODE_RET_HOME_FURNITURE_ARRANGE_GROUP_LIMIT = 9782;
+ RETCODE_RET_HOME_PICTURE_FRAME_COOP_CG_GENDER_ERROR = 9783;
+ RETCODE_RET_HOME_PICTURE_FRAME_COOP_CG_NOT_UNLOCK = 9784;
+ RETCODE_RET_HOME_FURNITURE_CANNOT_ARRANGE = 9785;
+ RETCODE_RET_HOME_FURNITURE_IN_DUPLICATE_SUITE = 9786;
+ RETCODE_RET_HOME_FURNITURE_CUSTOM_SUITE_TOO_SMALL = 9787;
+ RETCODE_RET_HOME_FURNITURE_CUSTOM_SUITE_TOO_BIG = 9788;
+ RETCODE_RET_HOME_FURNITURE_SUITE_EXCEED_LIMIT = 9789;
+ RETCODE_RET_HOME_FURNITURE_CUSTOM_SUITE_EXCEED_LIMIT = 9790;
+ RETCODE_RET_HOME_FURNITURE_CUSTOM_SUITE_INVALID_SURFACE_TYPE = 9791;
+ RETCODE_RET_HOME_BGM_ID_NOT_FOUND = 9792;
+ RETCODE_RET_HOME_BGM_NOT_UNLOCKED = 9793;
+ RETCODE_RET_HOME_BGM_FURNITURE_NOT_FOUND = 9794;
+ RETCODE_RET_HOME_BGM_NOT_SUPPORT_BY_CUR_SCENE = 9795;
+ RETCODE_RET_HOME_LIMITED_SHOP_GOODS_DISABLE = 9796;
+ RETCODE_RET_HOME_WORLD_WOOD_MATERIAL_EMPTY = 9797;
+ RETCODE_RET_HOME_WORLD_WOOD_MATERIAL_NOT_FOUND = 9798;
+ RETCODE_RET_HOME_WORLD_WOOD_MATERIAL_COUNT_INVALID = 9799;
+ RETCODE_RET_HOME_WORLD_WOOD_EXCHANGE_EXCEED_LIMIT = 9800;
+ RETCODE_RET_SUMO_ACTIVITY_STAGE_NOT_OPEN = 10000;
+ RETCODE_RET_SUMO_ACTIVITY_SWITCH_TEAM_IN_CD = 10001;
+ RETCODE_RET_SUMO_ACTIVITY_TEAM_NUM_INCORRECT = 10002;
+ RETCODE_RET_LUNA_RITE_ACTIVITY_AREA_ID_ERROR = 10004;
+ RETCODE_RET_LUNA_RITE_ACTIVITY_BATTLE_NOT_FINISH = 10005;
+ RETCODE_RET_LUNA_RITE_ACTIVITY_ALREADY_SACRIFICE = 10006;
+ RETCODE_RET_LUNA_RITE_ACTIVITY_ALREADY_TAKE_REWARD = 10007;
+ RETCODE_RET_LUNA_RITE_ACTIVITY_SACRIFICE_NOT_ENOUGH = 10008;
+ RETCODE_RET_LUNA_RITE_ACTIVITY_SEARCHING_COND_NOT_MEET = 10009;
+ RETCODE_RET_DIG_GADGET_CONFIG_ID_NOT_MATCH = 10015;
+ RETCODE_RET_DIG_FIND_NEAREST_POS_FAIL = 10016;
+ RETCODE_RET_MUSIC_GAME_LEVEL_NOT_OPEN = 10021;
+ RETCODE_RET_MUSIC_GAME_LEVEL_NOT_UNLOCK = 10022;
+ RETCODE_RET_MUSIC_GAME_LEVEL_NOT_STARTED = 10023;
+ RETCODE_RET_MUSIC_GAME_LEVEL_CONFIG_NOT_FOUND = 10024;
+ RETCODE_RET_MUSIC_GAME_LEVEL_ID_NOT_MATCH = 10025;
+ RETCODE_RET_ROGUELIKE_COIN_A_NOT_ENOUGH = 10031;
+ RETCODE_RET_ROGUELIKE_COIN_B_NOT_ENOUGH = 10032;
+ RETCODE_RET_ROGUELIKE_COIN_C_NOT_ENOUGH = 10033;
+ RETCODE_RET_ROGUELIKE_COIN_A_EXCEED_LIMIT = 10034;
+ RETCODE_RET_ROGUELIKE_COIN_B_EXCEED_LIMIT = 10035;
+ RETCODE_RET_ROGUELIKE_COIN_C_EXCEED_LIMIT = 10036;
+ RETCODE_RET_ROGUELIKE_RUNE_COUNT_NOT_ENOUGH = 10037;
+ RETCODE_RET_ROGUELIKE_NOT_IN_ROGUE_DUNGEON = 10038;
+ RETCODE_RET_ROGUELIKE_CELL_NOT_FOUND = 10039;
+ RETCODE_RET_ROGUELIKE_CELL_TYPE_INCORRECT = 10040;
+ RETCODE_RET_ROGUELIKE_CELL_ALREADY_FINISHED = 10041;
+ RETCODE_RET_ROGUELIKE_DUNGEON_HAVE_UNFINISHED_PROGRESS = 10042;
+ RETCODE_RET_ROGUELIKE_STAGE_NOT_FINISHED = 10043;
+ RETCODE_RET_ROGUELIKE_STAGE_FIRST_PASS_REWARD_HAS_TAKEN = 10045;
+ RETCODE_RET_ROGUELIKE_ACTIVITY_CONTENT_CLOSED = 10046;
+ RETCODE_RET_ROGUELIKE_DUNGEON_PRE_QUEST_NOT_FINISHED = 10047;
+ RETCODE_RET_ROGUELIKE_DUNGEON_NOT_OPEN = 10048;
+ RETCODE_RET_ROGUELIKE_SPRINT_IS_BANNED = 10049;
+ RETCODE_RET_ROGUELIKE_DUNGEON_PRE_STAGE_NOT_FINISHED = 10050;
+ RETCODE_RET_ROGUELIKE_ALL_AVATAR_DIE_CANNOT_RESUME = 10051;
+ RETCODE_RET_PLANT_FLOWER_ALREADY_TAKE_SEED = 10056;
+ RETCODE_RET_PLANT_FLOWER_FRIEND_HAVE_FLOWER_LIMIT = 10057;
+ RETCODE_RET_PLANT_FLOWER_CAN_GIVE_FLOWER_NOT_ENOUGH = 10058;
+ RETCODE_RET_PLANT_FLOWER_WISH_FLOWER_KINDS_LIMIT = 10059;
+ RETCODE_RET_PLANT_FLOWER_HAVE_FLOWER_NOT_ENOUGH = 10060;
+ RETCODE_RET_PLANT_FLOWER_FLOWER_COMBINATION_INVALID = 10061;
+ RETCODE_RET_HACHI_DUNGEON_NOT_VALID = 10052;
+ RETCODE_RET_HACHI_DUNGEON_STAGE_NOT_OPEN = 10053;
+ RETCODE_RET_HACHI_DUNGEON_TEAMMATE_NOT_PASS = 10054;
+ RETCODE_RET_WINTER_CAMP_COIN_A_NOT_ENOUGH = 10071;
+ RETCODE_RET_WINTER_CAMP_COIN_B_NOT_ENOUGH = 10072;
+ RETCODE_RET_WINTER_CAMP_COIN_A_EXCEED_LIMIT = 10073;
+ RETCODE_RET_WINTER_CAMP_COIN_B_EXCEED_LIMIT = 10074;
+ RETCODE_RET_WINTER_CAMP_WISH_ID_INVALID = 10075;
+ RETCODE_RET_WINTER_CAMP_NOT_FOUND_RECV_ITEM_DATA = 10076;
+ RETCODE_RET_WINTER_CAMP_FRIEND_ITEM_COUNT_OVERFLOW = 10077;
+ RETCODE_RET_WINTER_CAMP_SELECT_ITEM_DATA_INVALID = 10078;
+ RETCODE_RET_WINTER_CAMP_ITEM_LIST_EMPTY = 10079;
+ RETCODE_RET_WINTER_CAMP_REWARD_ALREADY_TAKEN = 10080;
+ RETCODE_RET_WINTER_CAMP_STAGE_NOT_FINISH = 10081;
+ RETCODE_RET_WINTER_CAMP_GADGET_INVALID = 10082;
+ RETCODE_RET_LANTERN_RITE_COIN_A_NOT_ENOUGH = 10090;
+ RETCODE_RET_LANTERN_RITE_COIN_B_NOT_ENOUGH = 10091;
+ RETCODE_RET_LANTERN_RITE_COIN_C_NOT_ENOUGH = 10092;
+ RETCODE_RET_LANTERN_RITE_COIN_A_EXCEED_LIMIT = 10093;
+ RETCODE_RET_LANTERN_RITE_COIN_B_EXCEED_LIMIT = 10094;
+ RETCODE_RET_LANTERN_RITE_COIN_C_EXCEED_LIMIT = 10095;
+ RETCODE_RET_LANTERN_RITE_PROJECTION_CONTENT_CLOSED = 10096;
+ RETCODE_RET_LANTERN_RITE_PROJECTION_CAN_NOT_START = 10097;
+ RETCODE_RET_LANTERN_RITE_DUNGEON_NOT_OPEN = 10098;
+ RETCODE_RET_LANTERN_RITE_HAS_TAKEN_SKIN_REWARD = 10099;
+ RETCODE_RET_LANTERN_RITE_NOT_FINISHED_SKIN_WATCHERS = 10100;
+ RETCODE_RET_LANTERN_RITE_FIREWORKS_CONTENT_CLOSED = 10101;
+ RETCODE_RET_LANTERN_RITE_FIREWORKS_CHALLENGE_NOT_START = 10102;
+ RETCODE_RET_LANTERN_RITE_FIREWORKS_REFORM_PARAM_ERROR = 10103;
+ RETCODE_RET_LANTERN_RITE_FIREWORKS_REFORM_SKILL_LOCK = 10104;
+ RETCODE_RET_LANTERN_RITE_FIREWORKS_REFORM_STAMINA_NOT_ENOUGH = 10105;
+ RETCODE_RET_POTION_ACTIVITY_STAGE_NOT_OPEN = 10110;
+ RETCODE_RET_POTION_ACTIVITY_LEVEL_HAVE_PASS = 10111;
+ RETCODE_RET_POTION_ACTIVITY_TEAM_NUM_INCORRECT = 10112;
+ RETCODE_RET_POTION_ACTIVITY_AVATAR_IN_CD = 10113;
+ RETCODE_RET_POTION_ACTIVITY_BUFF_IN_CD = 10114;
+ RETCODE_RET_IRODORI_POETRY_INVALID_LINE_ID = 10120;
+ RETCODE_RET_IRODORI_POETRY_INVALID_THEME_ID = 10121;
+ RETCODE_RET_IRODORI_POETRY_NOT_GET_ALL_INSPIRATION = 10122;
+ RETCODE_RET_IRODORI_POETRY_INSPIRATION_REACH_LIMIE = 10123;
+ RETCODE_RET_IRODORI_POETRY_ENTITY_ALREADY_SCANNED = 10124;
+ RETCODE_RET_ACTIVITY_BANNER_ALREADY_CLEARED = 10300;
+ RETCODE_RET_IRODORI_CHESS_NOT_OPEN = 10301;
+ RETCODE_RET_IRODORI_CHESS_LEVEL_NOT_OPEN = 10302;
+ RETCODE_RET_IRODORI_CHESS_MAP_NOT_OPEN = 10303;
+ RETCODE_RET_IRODORI_CHESS_MAP_CARD_ALREADY_EQUIPED = 10304;
+ RETCODE_RET_IRODORI_CHESS_EQUIP_CARD_EXCEED_LIMIT = 10305;
+ RETCODE_RET_IRODORI_CHESS_MAP_CARD_NOT_EQUIPED = 10306;
+ RETCODE_RET_IRODORI_CHESS_ENTER_FAIL_CARD_EXCEED_LIMIT = 10307;
+ RETCODE_RET_ACTIVITY_FRIEND_HAVE_GIFT_LIMIT = 10310;
+ RETCODE_RET_GACHA_ACTIVITY_HAVE_REWARD_LIMIT = 10315;
+ RETCODE_RET_GACHA_ACTIVITY_HAVE_ROBOT_LIMIT = 10316;
+ RETCODE_RET_SUMMER_TIME_V2_COIN_EXCEED_LIMIT = 10317;
+ RETCODE_RET_SUMMER_TIME_V2_COIN_NOT_ENOUGH = 10318;
+ RETCODE_RET_SUMMER_TIME_V2_DUNGEON_STAGE_NOT_OPEN = 10319;
+ RETCODE_RET_SUMMER_TIME_V2_PREV_DUNGEON_NOT_COMPLETE = 10320;
+ RETCODE_RET_ROGUE_DIARY_AVATAR_DEATH = 10350;
+ RETCODE_RET_ROGUE_DIARY_AVATAR_TIRED = 10351;
+ RETCODE_RET_ROGUE_DIARY_AVATAR_DUPLICATED = 10352;
+ RETCODE_RET_ROGUE_DIARY_COIN_NOT_ENOUGH = 10353;
+ RETCODE_RET_ROGUE_DIARY_VIRTUAL_COIN_EXCEED_LIMIT = 10354;
+ RETCODE_RET_ROGUE_DIARY_VIRTUAL_COIN_NOT_ENOUGH = 10355;
+ RETCODE_RET_ROGUE_DIARY_CONTENT_CLOSED = 10366;
+ RETCODE_RET_GRAVEN_INNOCENCE_COIN_A_NOT_ENOUGH = 10380;
+ RETCODE_RET_GRAVEN_INNOCENCE_COIN_B_NOT_ENOUGH = 10381;
+ RETCODE_RET_GRAVEN_INNOCENCE_COIN_A_EXCEED_LIMIT = 10382;
+ RETCODE_RET_GRAVEN_INNOCENCE_COIN_B_EXCEED_LIMIT = 10383;
+ RETCODE_RET_ISLAND_PARTY_STAGE_NOT_OPEN = 10371;
+ RETCODE_RET_WIND_FIELD_STAGE_NOT_OPEN = 10390;
+ RETCODE_RET_VINTAGE_CONTENT_CLOSED = 10396;
+ RETCODE_RET_VINTAGE_STORE_CONTENT_FINISHED = 10397;
+ RETCODE_RET_VINTAGE_STORE_ATTR_TOO_SMALL = 10398;
+ RETCODE_RET_VINTAGE_STORE_ATTR_TOO_LARGE = 10399;
+ RETCODE_RET_VINTAGE_STORE_CONTENT_INTERRUPT = 10400;
+ RETCODE_RET_VINTAGE_VIRTUAL_COIN_NOT_ENOUGH = 10401;
+ RETCODE_RET_VINTAGE_STORE_ATTR_LESS_THAN_ZERO = 10402;
+ RETCODE_RET_NOT_IN_FISHING = 11001;
+ RETCODE_RET_FISH_STATE_ERROR = 11002;
+ RETCODE_RET_FISH_BAIT_LIMIT = 11003;
+ RETCODE_RET_FISHING_MAX_DISTANCE = 11004;
+ RETCODE_RET_FISHING_IN_COMBAT = 11005;
+ RETCODE_RET_FISHING_BATTLE_TOO_SHORT = 11006;
+ RETCODE_RET_FISH_GONE_AWAY = 11007;
+ RETCODE_RET_CAN_NOT_EDIT_OTHER_DUNGEON = 11051;
+ RETCODE_RET_CUSTOM_DUNGEON_DISMATCH = 11052;
+ RETCODE_RET_NO_CUSTOM_DUNGEON_DATA = 11053;
+ RETCODE_RET_BUILD_CUSTOM_DUNGEON_FAIL = 11054;
+ RETCODE_RET_CUSTOM_DUNGEON_ROOM_CHECK_FAIL = 11055;
+ RETCODE_RET_CUSTOM_DUNGEON_SAVE_MAY_FAIL = 11056;
+ RETCODE_RET_NOT_IN_CUSTOM_DUNGEON = 11057;
+ RETCODE_RET_CUSTOM_DUNGEON_INTERNAL_FAIL = 11058;
+ RETCODE_RET_CUSTOM_DUNGEON_CAN_NOT_TRY = 11059;
+ RETCODE_RET_CUSTOM_DUNGEON_NO_START_ROOM = 11060;
+ RETCODE_RET_CUSTOM_DUNGEON_NO_ROOM_DATA = 11061;
+ RETCODE_RET_CUSTOM_DUNGEON_SAVE_TOO_FREQUENT = 11062;
+ RETCODE_RET_CUSTOM_DUNGEON_NOT_SELF_PASS = 11063;
+ RETCODE_RET_CUSTOM_DUNGEON_LACK_COIN = 11064;
+ RETCODE_RET_CUSTOM_DUNGEON_NO_FINISH_BRICK = 11065;
+ RETCODE_RET_CUSTOM_DUNGEON_MULTI_FINISH = 11066;
+ RETCODE_RET_CUSTOM_DUNGEON_NOT_PUBLISHED = 11067;
+ RETCODE_RET_CUSTOM_DUNGEON_FULL_STORE = 11068;
+ RETCODE_RET_CUSTOM_DUNGEON_STORE_REPEAT = 11069;
+ RETCODE_RET_CUSTOM_DUNGEON_CAN_NOT_STORE_SELF = 11070;
+ RETCODE_RET_CUSTOM_DUNGEON_NOT_SAVE_SUCC = 11071;
+ RETCODE_RET_CUSTOM_DUNGEON_CAN_NOT_LIKE_SELF = 11072;
+ RETCODE_RET_CUSTOM_DUNGEON_NOT_FOUND = 11073;
+ RETCODE_RET_CUSTOM_DUNGEON_INVALID_SETTING = 11074;
+ RETCODE_RET_CUSTOM_DUNGEON_NO_FINISH_SETTING = 11075;
+ RETCODE_RET_CUSTOM_DUNGEON_SAVE_NOTHING = 11076;
+ RETCODE_RET_CUSTOM_DUNGEON_NOT_IN_GROUP = 11077;
+ RETCODE_RET_CUSTOM_DUNGEON_NOT_OFFICIAL = 11078;
+ RETCODE_RET_CUSTOM_DUNGEON_LIFE_NUM_ERROR = 11079;
+ RETCODE_RET_CUSTOM_DUNGEON_NO_OPEN_ROOM = 11080;
+ RETCODE_RET_CUSTOM_DUNGEON_BRICK_EXCEED_LIMIT = 11081;
+ RETCODE_RET_CUSTOM_DUNGEON_OFFICIAL_NOT_UNLOCK = 11082;
+ RETCODE_RET_CAN_NOT_EDIT_OFFICIAL_SETTING = 11083;
+ RETCODE_RET_CUSTOM_DUNGEON_BAN_PUBLISH = 11084;
+ RETCODE_RET_CUSTOM_DUNGEON_CAN_NOT_REPLAY = 11085;
+ RETCODE_RET_CUSTOM_DUNGEON_NOT_OPEN_GROUP = 11086;
+ RETCODE_RET_CUSTOM_DUNGEON_MAX_EDIT_NUM = 11087;
+ RETCODE_RET_CUSTOM_DUNGEON_CAN_NOT_OUT_STUCK = 11088;
+ RETCODE_RET_CUSTOM_DUNGEON_MAX_TAG = 11089;
+ RETCODE_RET_CUSTOM_DUNGEON_INVALID_TAG = 11090;
+ RETCODE_RET_CUSTOM_DUNGEON_MAX_COST = 11091;
+ RETCODE_RET_CUSTOM_DUNGEON_REQUEST_TOO_FREQUENT = 11092;
+ RETCODE_RET_CUSTOM_DUNGEON_NOT_OPEN = 11093;
+ RETCODE_RET_SHARE_CD_ID_ERROR = 11101;
+ RETCODE_RET_SHARE_CD_INDEX_ERROR = 11102;
+ RETCODE_RET_SHARE_CD_IN_CD = 11103;
+ RETCODE_RET_SHARE_CD_TOKEN_NOT_ENOUGH = 11104;
+ RETCODE_RET_UGC_DISMATCH = 11151;
+ RETCODE_RET_UGC_DATA_NOT_FOUND = 11152;
+ RETCODE_RET_UGC_BRIEF_NOT_FOUND = 11153;
+ RETCODE_RET_UGC_DISABLED = 11154;
+ RETCODE_RET_UGC_LIMITED = 11155;
+ RETCODE_RET_UGC_LOCKED = 11156;
+ RETCODE_RET_UGC_NOT_AUTH = 11157;
+ RETCODE_RET_UGC_NOT_OPEN = 11158;
+ RETCODE_RET_UGC_BAN_PUBLISH = 11159;
+ RETCODE_RET_COMPOUND_BOOST_ITEM_NOT_EXIST = 11201;
+ RETCODE_RET_COMPOUND_BOOST_TARGET_NOT_EXIST = 11202;
+ RETCODE_RET_QUICK_HIT_TREE_EMPTY_TREES = 11211;
+}
diff --git a/proto/ReunionActivateNotify.proto b/proto/ReunionActivateNotify.proto
new file mode 100644
index 00000000..3b1da92e
--- /dev/null
+++ b/proto/ReunionActivateNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ReunionBriefInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5085
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ReunionActivateNotify {
+ bool is_activate = 9;
+ ReunionBriefInfo reunion_brief_info = 13;
+}
diff --git a/proto/ReunionBriefInfo.proto b/proto/ReunionBriefInfo.proto
new file mode 100644
index 00000000..23c55fb2
--- /dev/null
+++ b/proto/ReunionBriefInfo.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ReunionPrivilegeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ReunionBriefInfo {
+ uint32 first_gift_reward_id = 15;
+ uint32 privilege_id = 5;
+ uint32 mission_id = 10;
+ uint32 first_day_start_time = 3;
+ bool sign_in_has_reward = 2;
+ uint32 start_time = 7;
+ bool is_taken_first_gift = 8;
+ uint32 finish_time = 12;
+ bool mission_has_reward = 9;
+ ReunionPrivilegeInfo privilege_info = 14;
+ string version = 13;
+ uint32 sign_in_config_id = 6;
+}
diff --git a/proto/ReunionBriefInfoReq.proto b/proto/ReunionBriefInfoReq.proto
new file mode 100644
index 00000000..4c86c7d6
--- /dev/null
+++ b/proto/ReunionBriefInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5076
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ReunionBriefInfoReq {}
diff --git a/proto/ReunionBriefInfoRsp.proto b/proto/ReunionBriefInfoRsp.proto
new file mode 100644
index 00000000..1917d1b4
--- /dev/null
+++ b/proto/ReunionBriefInfoRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ReunionBriefInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5068
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ReunionBriefInfoRsp {
+ bool is_activate = 13;
+ int32 retcode = 14;
+ ReunionBriefInfo reunion_brief_info = 5;
+}
diff --git a/proto/ReunionDailyRefreshNotify.proto b/proto/ReunionDailyRefreshNotify.proto
new file mode 100644
index 00000000..0749d9b3
--- /dev/null
+++ b/proto/ReunionDailyRefreshNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ReunionBriefInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5100
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ReunionDailyRefreshNotify {
+ ReunionBriefInfo reunion_brief_info = 4;
+}
diff --git a/proto/ReunionMissionInfo.proto b/proto/ReunionMissionInfo.proto
new file mode 100644
index 00000000..b640d8d1
--- /dev/null
+++ b/proto/ReunionMissionInfo.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ReunionWatcherInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ReunionMissionInfo {
+ repeated ReunionWatcherInfo cur_day_watcher_list = 3;
+ uint32 cur_score = 11;
+ bool is_taken_reward = 8;
+ repeated bool is_taken_reward_list = 6;
+ uint32 next_refresh_time = 5;
+ bool is_finished = 9;
+ uint32 mission_id = 12;
+ repeated ReunionWatcherInfo watcher_list = 2;
+}
diff --git a/proto/ReunionPrivilegeChangeNotify.proto b/proto/ReunionPrivilegeChangeNotify.proto
new file mode 100644
index 00000000..3828f90e
--- /dev/null
+++ b/proto/ReunionPrivilegeChangeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ReunionPrivilegeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5098
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ReunionPrivilegeChangeNotify {
+ ReunionPrivilegeInfo privilege_info = 13;
+}
diff --git a/proto/ReunionPrivilegeInfo.proto b/proto/ReunionPrivilegeInfo.proto
new file mode 100644
index 00000000..6a0aa43b
--- /dev/null
+++ b/proto/ReunionPrivilegeInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ReunionPrivilegeInfo {
+ uint32 cur_day_count = 7;
+ uint32 total_count = 10;
+ uint32 privilege_id = 4;
+}
diff --git a/proto/ReunionSettleNotify.proto b/proto/ReunionSettleNotify.proto
new file mode 100644
index 00000000..0b249437
--- /dev/null
+++ b/proto/ReunionSettleNotify.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5073
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ReunionSettleNotify {}
diff --git a/proto/ReunionSignInInfo.proto b/proto/ReunionSignInInfo.proto
new file mode 100644
index 00000000..614cb3ea
--- /dev/null
+++ b/proto/ReunionSignInInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ReunionSignInInfo {
+ uint32 sign_in_count = 6;
+ repeated uint32 reward_day_list = 8;
+ uint32 config_id = 12;
+ uint32 last_sign_in_time = 11;
+}
diff --git a/proto/ReunionWatcherInfo.proto b/proto/ReunionWatcherInfo.proto
new file mode 100644
index 00000000..9dff1807
--- /dev/null
+++ b/proto/ReunionWatcherInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ReunionWatcherInfo {
+ uint32 reward_unlock_time = 12;
+ uint32 watcher_id = 3;
+ uint32 total_progress = 4;
+ uint32 cur_progress = 11;
+ bool is_taken_reward = 14;
+}
diff --git a/proto/Reward.proto b/proto/Reward.proto
new file mode 100644
index 00000000..5b76190d
--- /dev/null
+++ b/proto/Reward.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Reward {
+ uint32 reward_id = 1;
+ repeated ItemParam item_list = 2;
+}
diff --git a/proto/RobotPushPlayerDataNotify.proto b/proto/RobotPushPlayerDataNotify.proto
new file mode 100644
index 00000000..b51f8bcb
--- /dev/null
+++ b/proto/RobotPushPlayerDataNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 97
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RobotPushPlayerDataNotify {
+ bytes bin = 6;
+}
diff --git a/proto/RockBoardExploreDetailInfo.proto b/proto/RockBoardExploreDetailInfo.proto
new file mode 100644
index 00000000..dbfd95b8
--- /dev/null
+++ b/proto/RockBoardExploreDetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3100_FKKBIDJONKF.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RockBoardExploreDetailInfo {
+ repeated Unk3100_FKKBIDJONKF Unk2800_PDBHCBCLFBM = 9;
+}
diff --git a/proto/RogueAvatarInfo.proto b/proto/RogueAvatarInfo.proto
new file mode 100644
index 00000000..6f26a2a8
--- /dev/null
+++ b/proto/RogueAvatarInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RogueAvatarInfo {
+ bool is_onstage = 5;
+ bool is_alive = 3;
+ uint32 avatar_id = 14;
+}
diff --git a/proto/RogueCellInfo.proto b/proto/RogueCellInfo.proto
new file mode 100644
index 00000000..1b567d24
--- /dev/null
+++ b/proto/RogueCellInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RogueCellState.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RogueCellInfo {
+ uint32 cell_config_id = 14;
+ uint32 dungeon_id = 4;
+ uint32 cell_id = 9;
+ uint32 cell_type = 13;
+ RogueCellState state = 10;
+}
diff --git a/proto/RogueCellState.proto b/proto/RogueCellState.proto
new file mode 100644
index 00000000..332d27a1
--- /dev/null
+++ b/proto/RogueCellState.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum RogueCellState {
+ ROGUE_CELL_STATE_NONE = 0;
+ ROGUE_CELL_STATE_BATTLE = 1;
+ ROGUE_CELL_STATE_SUCCESS = 2;
+ ROGUE_CELL_STATE_FINISH = 3;
+ ROGUE_CELL_STATE_Unk2200_KKHGKOBCFKJ = 4;
+}
diff --git a/proto/RogueCellUpdateNotify.proto b/proto/RogueCellUpdateNotify.proto
new file mode 100644
index 00000000..46285424
--- /dev/null
+++ b/proto/RogueCellUpdateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RogueCellInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8642
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RogueCellUpdateNotify {
+ RogueCellInfo cell_info = 7;
+}
diff --git a/proto/RogueDiaryActivityDetailInfo.proto b/proto/RogueDiaryActivityDetailInfo.proto
new file mode 100644
index 00000000..c31b16ba
--- /dev/null
+++ b/proto/RogueDiaryActivityDetailInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RogueDiaryStage.proto";
+import "Unk2700_PILILDPMNNA.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RogueDiaryActivityDetailInfo {
+ repeated RogueDiaryStage stage_list = 11;
+ bool is_have_progress = 10;
+ bool is_content_closed = 2;
+ Unk2700_PILILDPMNNA cur_progress = 7;
+}
diff --git a/proto/RogueDiaryStage.proto b/proto/RogueDiaryStage.proto
new file mode 100644
index 00000000..1f1d116a
--- /dev/null
+++ b/proto/RogueDiaryStage.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_CMOCCENBOLJ.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RogueDiaryStage {
+ uint32 stage_id = 1;
+ Unk2700_CMOCCENBOLJ best_record = 12;
+ bool Unk2700_PEDCFBJLHGP = 10;
+}
diff --git a/proto/RogueDungeonPlayerCellChangeNotify.proto b/proto/RogueDungeonPlayerCellChangeNotify.proto
new file mode 100644
index 00000000..3153012e
--- /dev/null
+++ b/proto/RogueDungeonPlayerCellChangeNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8347
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RogueDungeonPlayerCellChangeNotify {
+ uint32 old_cell_id = 10;
+ uint32 cell_id = 7;
+}
diff --git a/proto/RogueEffectRecord.proto b/proto/RogueEffectRecord.proto
new file mode 100644
index 00000000..27214379
--- /dev/null
+++ b/proto/RogueEffectRecord.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RogueEffectRecord {
+ uint32 source_id = 6;
+ repeated uint32 extra_param_list = 9;
+ uint32 count = 10;
+ bool is_new = 5;
+}
diff --git a/proto/RogueEliteCellDifficultyType.proto b/proto/RogueEliteCellDifficultyType.proto
new file mode 100644
index 00000000..9aa50f1f
--- /dev/null
+++ b/proto/RogueEliteCellDifficultyType.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum RogueEliteCellDifficultyType {
+ ROGUE_ELITE_CELL_DIFFICULTY_TYPE_NORMAL = 0;
+ ROGUE_ELITE_CELL_DIFFICULTY_TYPE_HARD = 1;
+}
diff --git a/proto/RogueHealAvatarsReq.proto b/proto/RogueHealAvatarsReq.proto
new file mode 100644
index 00000000..6d4710a4
--- /dev/null
+++ b/proto/RogueHealAvatarsReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8947
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message RogueHealAvatarsReq {
+ uint32 dungeon_id = 1;
+ uint32 cell_id = 3;
+}
diff --git a/proto/RogueHealAvatarsRsp.proto b/proto/RogueHealAvatarsRsp.proto
new file mode 100644
index 00000000..39ae47d4
--- /dev/null
+++ b/proto/RogueHealAvatarsRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8949
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RogueHealAvatarsRsp {
+ uint32 dungeon_id = 10;
+ int32 retcode = 9;
+ uint32 cell_id = 14;
+}
diff --git a/proto/RogueResumeDungeonReq.proto b/proto/RogueResumeDungeonReq.proto
new file mode 100644
index 00000000..ec09e63e
--- /dev/null
+++ b/proto/RogueResumeDungeonReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8795
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message RogueResumeDungeonReq {
+ uint32 stage_id = 12;
+}
diff --git a/proto/RogueResumeDungeonRsp.proto b/proto/RogueResumeDungeonRsp.proto
new file mode 100644
index 00000000..e1c6fce8
--- /dev/null
+++ b/proto/RogueResumeDungeonRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8647
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RogueResumeDungeonRsp {
+ uint32 stage_id = 12;
+ int32 retcode = 15;
+}
diff --git a/proto/RogueShowAvatarTeamInfo.proto b/proto/RogueShowAvatarTeamInfo.proto
new file mode 100644
index 00000000..5a8281c1
--- /dev/null
+++ b/proto/RogueShowAvatarTeamInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RogueAvatarInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RogueShowAvatarTeamInfo {
+ repeated RogueAvatarInfo avatar_list = 12;
+}
diff --git a/proto/RogueStageInfo.proto b/proto/RogueStageInfo.proto
new file mode 100644
index 00000000..d35b436b
--- /dev/null
+++ b/proto/RogueStageInfo.proto
@@ -0,0 +1,41 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RoguelikeRuneRecord.proto";
+import "RogueShowAvatarTeamInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RogueStageInfo {
+ RogueShowAvatarTeamInfo avatar_team = 2;
+ bool is_passed = 5;
+ uint32 stage_id = 7;
+ uint32 revise_monster_level = 205;
+ repeated RoguelikeRuneRecord rune_record_list = 6;
+ bool is_open = 1;
+ uint32 cur_level = 4;
+ uint32 cached_coin_c_num = 1409;
+ bool is_taken_reward = 11;
+ bool is_in_combat = 12;
+ uint32 cached_coin_b_num = 14;
+ uint32 explore_cell_num = 15;
+ uint32 coin_c_num = 8;
+ bool is_explored = 9;
+ uint32 max_passed_level = 3;
+}
diff --git a/proto/RogueSwitchAvatarReq.proto b/proto/RogueSwitchAvatarReq.proto
new file mode 100644
index 00000000..a78bf312
--- /dev/null
+++ b/proto/RogueSwitchAvatarReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8201
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message RogueSwitchAvatarReq {
+ uint32 cell_id = 15;
+ repeated uint64 onstage_avatar_guid_list = 3;
+ uint64 cur_avatar_guid = 11;
+ uint32 dungeon_id = 6;
+}
diff --git a/proto/RogueSwitchAvatarRsp.proto b/proto/RogueSwitchAvatarRsp.proto
new file mode 100644
index 00000000..5da5f28b
--- /dev/null
+++ b/proto/RogueSwitchAvatarRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8915
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RogueSwitchAvatarRsp {
+ uint64 cur_avatar_guid = 4;
+ repeated uint64 backstage_avatar_guid_list = 8;
+ uint32 dungeon_id = 14;
+ uint32 cell_id = 3;
+ int32 retcode = 12;
+ repeated uint64 onstage_avatar_guid_list = 9;
+}
diff --git a/proto/RoguelikeCardGachaNotify.proto b/proto/RoguelikeCardGachaNotify.proto
new file mode 100644
index 00000000..2afe34de
--- /dev/null
+++ b/proto/RoguelikeCardGachaNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8925
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RoguelikeCardGachaNotify {
+ repeated uint32 card_list = 10;
+ bool is_can_refresh = 11;
+}
diff --git a/proto/RoguelikeDungeonActivityDetailInfo.proto b/proto/RoguelikeDungeonActivityDetailInfo.proto
new file mode 100644
index 00000000..67dd3195
--- /dev/null
+++ b/proto/RoguelikeDungeonActivityDetailInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RoguelikeShikigamiRecord.proto";
+import "RogueStageInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RoguelikeDungeonActivityDetailInfo {
+ repeated RogueStageInfo stage_list = 8;
+ repeated RoguelikeShikigamiRecord shikigami_list = 5;
+ repeated uint32 equipped_rune_list = 14;
+ uint32 content_close_time = 6;
+ bool is_content_closed = 10;
+ repeated uint32 rune_list = 2;
+}
diff --git a/proto/RoguelikeDungeonSettleInfo.proto b/proto/RoguelikeDungeonSettleInfo.proto
new file mode 100644
index 00000000..e150a063
--- /dev/null
+++ b/proto/RoguelikeDungeonSettleInfo.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RoguelikeSettleCoinInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RoguelikeDungeonSettleInfo {
+ uint32 stage_id = 5;
+ bool is_final_level = 15;
+ map finished_challenge_cell_num_map = 3;
+ bool is_coin_c_reach_limit = 13;
+ uint32 cur_level = 9;
+ uint32 total_coin_b_num = 6;
+ uint32 total_coin_c_num = 10;
+}
diff --git a/proto/RoguelikeEffectDataNotify.proto b/proto/RoguelikeEffectDataNotify.proto
new file mode 100644
index 00000000..92a1474e
--- /dev/null
+++ b/proto/RoguelikeEffectDataNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RogueEffectRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8222
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RoguelikeEffectDataNotify {
+ repeated RogueEffectRecord curse_list = 7;
+ repeated RogueEffectRecord card_list = 4;
+}
diff --git a/proto/RoguelikeEffectViewReq.proto b/proto/RoguelikeEffectViewReq.proto
new file mode 100644
index 00000000..64330fc8
--- /dev/null
+++ b/proto/RoguelikeEffectViewReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8528
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message RoguelikeEffectViewReq {
+ repeated uint32 view_curse_list = 10;
+ repeated uint32 view_card_list = 2;
+}
diff --git a/proto/RoguelikeEffectViewRsp.proto b/proto/RoguelikeEffectViewRsp.proto
new file mode 100644
index 00000000..ea0d20af
--- /dev/null
+++ b/proto/RoguelikeEffectViewRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8639
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message RoguelikeEffectViewRsp {
+ int32 retcode = 2;
+}
diff --git a/proto/RoguelikeGadgetInfo.proto b/proto/RoguelikeGadgetInfo.proto
new file mode 100644
index 00000000..6afff2de
--- /dev/null
+++ b/proto/RoguelikeGadgetInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RoguelikeGadgetInfo {
+ uint32 cell_config_id = 1;
+ uint32 cell_type = 2;
+ uint32 cell_state = 3;
+ uint32 cell_id = 4;
+}
diff --git a/proto/RoguelikeGiveUpReq.proto b/proto/RoguelikeGiveUpReq.proto
new file mode 100644
index 00000000..17dceaf4
--- /dev/null
+++ b/proto/RoguelikeGiveUpReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8660
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message RoguelikeGiveUpReq {
+ uint32 stage_id = 9;
+}
diff --git a/proto/RoguelikeGiveUpRsp.proto b/proto/RoguelikeGiveUpRsp.proto
new file mode 100644
index 00000000..17d686db
--- /dev/null
+++ b/proto/RoguelikeGiveUpRsp.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RoguelikeDungeonSettleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8139
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RoguelikeGiveUpRsp {
+ int32 retcode = 4;
+ uint32 stage_id = 7;
+ oneof info {
+ RoguelikeDungeonSettleInfo settle_info = 8;
+ }
+}
diff --git a/proto/RoguelikeMistClearNotify.proto b/proto/RoguelikeMistClearNotify.proto
new file mode 100644
index 00000000..d3d7dcc9
--- /dev/null
+++ b/proto/RoguelikeMistClearNotify.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8324
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RoguelikeMistClearNotify {}
diff --git a/proto/RoguelikeRefreshCardCostUpdateNotify.proto b/proto/RoguelikeRefreshCardCostUpdateNotify.proto
new file mode 100644
index 00000000..cefd2e33
--- /dev/null
+++ b/proto/RoguelikeRefreshCardCostUpdateNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8927
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RoguelikeRefreshCardCostUpdateNotify {
+ uint32 item_count = 5;
+ uint32 item_id = 1;
+}
diff --git a/proto/RoguelikeResourceBonusPropUpdateNotify.proto b/proto/RoguelikeResourceBonusPropUpdateNotify.proto
new file mode 100644
index 00000000..e24a0e5f
--- /dev/null
+++ b/proto/RoguelikeResourceBonusPropUpdateNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8555
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RoguelikeResourceBonusPropUpdateNotify {
+ float bonus_resource_prop = 12;
+}
diff --git a/proto/RoguelikeRuneRecord.proto b/proto/RoguelikeRuneRecord.proto
new file mode 100644
index 00000000..79f48ca2
--- /dev/null
+++ b/proto/RoguelikeRuneRecord.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RoguelikeRuneRecord {
+ uint32 left_count = 14;
+ uint32 rune_id = 6;
+ uint32 max_count = 4;
+}
diff --git a/proto/RoguelikeRuneRecordUpdateNotify.proto b/proto/RoguelikeRuneRecordUpdateNotify.proto
new file mode 100644
index 00000000..e6d4920b
--- /dev/null
+++ b/proto/RoguelikeRuneRecordUpdateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RoguelikeRuneRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8973
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RoguelikeRuneRecordUpdateNotify {
+ repeated RoguelikeRuneRecord rune_record_list = 11;
+}
diff --git a/proto/RoguelikeSelectAvatarAndEnterDungeonReq.proto b/proto/RoguelikeSelectAvatarAndEnterDungeonReq.proto
new file mode 100644
index 00000000..d9a75598
--- /dev/null
+++ b/proto/RoguelikeSelectAvatarAndEnterDungeonReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8457
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message RoguelikeSelectAvatarAndEnterDungeonReq {
+ repeated uint64 onstage_avatar_guid_list = 14;
+ uint32 stage_id = 4;
+ repeated uint64 backstage_avatar_guid_list = 11;
+}
diff --git a/proto/RoguelikeSelectAvatarAndEnterDungeonRsp.proto b/proto/RoguelikeSelectAvatarAndEnterDungeonRsp.proto
new file mode 100644
index 00000000..279bead9
--- /dev/null
+++ b/proto/RoguelikeSelectAvatarAndEnterDungeonRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8538
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RoguelikeSelectAvatarAndEnterDungeonRsp {
+ uint32 stage_id = 15;
+ int32 retcode = 1;
+}
diff --git a/proto/RoguelikeSettleCoinInfo.proto b/proto/RoguelikeSettleCoinInfo.proto
new file mode 100644
index 00000000..c7f719cd
--- /dev/null
+++ b/proto/RoguelikeSettleCoinInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RoguelikeSettleCoinInfo {
+ uint32 coin_c = 8;
+ uint32 coin_b = 10;
+ uint32 cell_num = 1;
+}
diff --git a/proto/RoguelikeShikigamiRecord.proto b/proto/RoguelikeShikigamiRecord.proto
new file mode 100644
index 00000000..f2e96c39
--- /dev/null
+++ b/proto/RoguelikeShikigamiRecord.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RoguelikeShikigamiRecord {
+ uint32 id = 6;
+ uint32 level = 3;
+}
diff --git a/proto/RoguelikeTakeStageFirstPassRewardReq.proto b/proto/RoguelikeTakeStageFirstPassRewardReq.proto
new file mode 100644
index 00000000..1962572a
--- /dev/null
+++ b/proto/RoguelikeTakeStageFirstPassRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8421
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message RoguelikeTakeStageFirstPassRewardReq {
+ uint32 stage_id = 1;
+}
diff --git a/proto/RoguelikeTakeStageFirstPassRewardRsp.proto b/proto/RoguelikeTakeStageFirstPassRewardRsp.proto
new file mode 100644
index 00000000..443be089
--- /dev/null
+++ b/proto/RoguelikeTakeStageFirstPassRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8552
+// EnetChannelId: 0
+// EnetIsReliable: true
+message RoguelikeTakeStageFirstPassRewardRsp {
+ uint32 stage_id = 14;
+ int32 retcode = 5;
+}
diff --git a/proto/Route.proto b/proto/Route.proto
new file mode 100644
index 00000000..5e2d58a3
--- /dev/null
+++ b/proto/Route.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RoutePoint.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Route {
+ repeated RoutePoint route_points = 1;
+ uint32 route_type = 2;
+}
diff --git a/proto/RoutePoint.proto b/proto/RoutePoint.proto
new file mode 100644
index 00000000..c347c52d
--- /dev/null
+++ b/proto/RoutePoint.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MathQuaternion.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RoutePoint {
+ Vector position = 1;
+ float arrive_range = 2;
+ oneof move_params {
+ float velocity = 11;
+ float time = 12;
+ }
+ oneof rotate_params {
+ Vector rotation = 21;
+ MathQuaternion rotation_speed = 22;
+ MathQuaternion axis_speed = 23;
+ }
+}
diff --git a/proto/RoutePointChangeInfo.proto b/proto/RoutePointChangeInfo.proto
new file mode 100644
index 00000000..ebc37021
--- /dev/null
+++ b/proto/RoutePointChangeInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RoutePointChangeInfo {
+ float wait_time = 6;
+ float target_velocity = 14;
+ uint32 point_index = 11;
+}
diff --git a/proto/SalesmanActivityDetailInfo.proto b/proto/SalesmanActivityDetailInfo.proto
new file mode 100644
index 00000000..7a7eaa21
--- /dev/null
+++ b/proto/SalesmanActivityDetailInfo.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SalesmanStatusType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SalesmanActivityDetailInfo {
+ uint32 special_reward_preview_id = 3;
+ SalesmanStatusType status = 4;
+ uint32 last_deliver_time = 2;
+ map selected_reward_id_map = 5;
+ uint32 deliver_count = 11;
+ bool is_has_taken_special_reward = 7;
+ uint32 day_index = 12;
+ uint32 cond_day_count = 6;
+ uint32 day_reward_id = 9;
+ bool is_today_has_delivered = 13;
+}
diff --git a/proto/SalesmanDeliverItemReq.proto b/proto/SalesmanDeliverItemReq.proto
new file mode 100644
index 00000000..3850a565
--- /dev/null
+++ b/proto/SalesmanDeliverItemReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2138
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SalesmanDeliverItemReq {
+ uint32 schedule_id = 4;
+}
diff --git a/proto/SalesmanDeliverItemRsp.proto b/proto/SalesmanDeliverItemRsp.proto
new file mode 100644
index 00000000..077f9562
--- /dev/null
+++ b/proto/SalesmanDeliverItemRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2104
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SalesmanDeliverItemRsp {
+ uint32 schedule_id = 9;
+ int32 retcode = 15;
+}
diff --git a/proto/SalesmanStatusType.proto b/proto/SalesmanStatusType.proto
new file mode 100644
index 00000000..995bf6ad
--- /dev/null
+++ b/proto/SalesmanStatusType.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum SalesmanStatusType {
+ SALESMAN_STATUS_TYPE_NONE = 0;
+ SALESMAN_STATUS_TYPE_UNSTARTED = 1;
+ SALESMAN_STATUS_TYPE_STARTED = 2;
+ SALESMAN_STATUS_TYPE_DELIVERED = 3;
+}
diff --git a/proto/SalesmanTakeRewardReq.proto b/proto/SalesmanTakeRewardReq.proto
new file mode 100644
index 00000000..df780764
--- /dev/null
+++ b/proto/SalesmanTakeRewardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2191
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SalesmanTakeRewardReq {
+ uint32 position = 8;
+ uint32 schedule_id = 7;
+}
diff --git a/proto/SalesmanTakeRewardRsp.proto b/proto/SalesmanTakeRewardRsp.proto
new file mode 100644
index 00000000..e70a94c4
--- /dev/null
+++ b/proto/SalesmanTakeRewardRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2110
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SalesmanTakeRewardRsp {
+ uint32 position = 13;
+ uint32 schedule_id = 7;
+ uint32 reward_id = 9;
+ int32 retcode = 11;
+}
diff --git a/proto/SalesmanTakeSpecialRewardReq.proto b/proto/SalesmanTakeSpecialRewardReq.proto
new file mode 100644
index 00000000..50c78728
--- /dev/null
+++ b/proto/SalesmanTakeSpecialRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2145
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SalesmanTakeSpecialRewardReq {
+ uint32 schedule_id = 13;
+}
diff --git a/proto/SalesmanTakeSpecialRewardRsp.proto b/proto/SalesmanTakeSpecialRewardRsp.proto
new file mode 100644
index 00000000..0ccd1e34
--- /dev/null
+++ b/proto/SalesmanTakeSpecialRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2124
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SalesmanTakeSpecialRewardRsp {
+ int32 retcode = 12;
+ uint32 schedule_id = 5;
+}
diff --git a/proto/SaveCoopDialogReq.proto b/proto/SaveCoopDialogReq.proto
new file mode 100644
index 00000000..eee4750c
--- /dev/null
+++ b/proto/SaveCoopDialogReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2000
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SaveCoopDialogReq {
+ uint32 main_coop_id = 11;
+ uint32 dialog_id = 6;
+}
diff --git a/proto/SaveCoopDialogRsp.proto b/proto/SaveCoopDialogRsp.proto
new file mode 100644
index 00000000..99565621
--- /dev/null
+++ b/proto/SaveCoopDialogRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1962
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SaveCoopDialogRsp {
+ uint32 dialog_id = 8;
+ uint32 main_coop_id = 10;
+ int32 retcode = 7;
+}
diff --git a/proto/SaveMainCoopReq.proto b/proto/SaveMainCoopReq.proto
new file mode 100644
index 00000000..f01ef893
--- /dev/null
+++ b/proto/SaveMainCoopReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1975
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SaveMainCoopReq {
+ map normal_var_map = 15;
+ uint32 self_confidence = 2;
+ uint32 save_point_id = 1;
+ map temp_var_map = 8;
+ uint32 id = 3;
+}
diff --git a/proto/SaveMainCoopRsp.proto b/proto/SaveMainCoopRsp.proto
new file mode 100644
index 00000000..3578fab2
--- /dev/null
+++ b/proto/SaveMainCoopRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1957
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SaveMainCoopRsp {
+ int32 retcode = 2;
+ repeated uint32 save_point_id_list = 15;
+ uint32 id = 14;
+}
diff --git a/proto/SceneAreaUnlockNotify.proto b/proto/SceneAreaUnlockNotify.proto
new file mode 100644
index 00000000..7cc59fcb
--- /dev/null
+++ b/proto/SceneAreaUnlockNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 293
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneAreaUnlockNotify {
+ repeated uint32 area_list = 10;
+ uint32 scene_id = 9;
+}
diff --git a/proto/SceneAreaWeatherNotify.proto b/proto/SceneAreaWeatherNotify.proto
new file mode 100644
index 00000000..ea1b1443
--- /dev/null
+++ b/proto/SceneAreaWeatherNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 230
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneAreaWeatherNotify {
+ uint32 weather_area_id = 1;
+ uint32 weather_gadget_id = 9;
+ uint32 climate_type = 14;
+ float trans_duration = 15;
+ map weather_value_map = 10;
+}
diff --git a/proto/SceneAudioNotify.proto b/proto/SceneAudioNotify.proto
new file mode 100644
index 00000000..05ea2638
--- /dev/null
+++ b/proto/SceneAudioNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3166
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SceneAudioNotify {
+ repeated float param2 = 14;
+ int32 type = 3;
+ repeated string param3 = 11;
+ uint32 source_uid = 6;
+ repeated uint32 param1 = 4;
+}
diff --git a/proto/SceneAvatarInfo.proto b/proto/SceneAvatarInfo.proto
new file mode 100644
index 00000000..79417301
--- /dev/null
+++ b/proto/SceneAvatarInfo.proto
@@ -0,0 +1,50 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarExcelInfo.proto";
+import "CurVehicleInfo.proto";
+import "SceneReliquaryInfo.proto";
+import "SceneWeaponInfo.proto";
+import "ServerBuff.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneAvatarInfo {
+ uint32 uid = 1;
+ uint32 avatar_id = 2;
+ uint64 guid = 3;
+ uint32 peer_id = 4;
+ repeated uint32 equip_id_list = 5;
+ uint32 skill_depot_id = 6;
+ repeated uint32 talent_id_list = 7;
+ SceneWeaponInfo weapon = 8;
+ repeated SceneReliquaryInfo reliquary_list = 9;
+ uint32 core_proud_skill_level = 11;
+ repeated uint32 inherent_proud_skill_list = 12;
+ map skill_level_map = 13;
+ map proud_skill_extra_level_map = 14;
+ repeated ServerBuff server_buff_list = 15;
+ repeated uint32 team_resonance_list = 16;
+ uint32 wearing_flycloak_id = 17;
+ uint32 born_time = 18;
+ uint32 costume_id = 19;
+ CurVehicleInfo cur_vehicle_info = 20;
+ AvatarExcelInfo excel_info = 21;
+ uint32 anim_hash = 22;
+}
diff --git a/proto/SceneAvatarStaminaStepReq.proto b/proto/SceneAvatarStaminaStepReq.proto
new file mode 100644
index 00000000..8270c479
--- /dev/null
+++ b/proto/SceneAvatarStaminaStepReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 299
+// EnetChannelId: 1
+// EnetIsReliable: true
+// IsAllowClient: true
+message SceneAvatarStaminaStepReq {
+ bool use_client_rot = 15;
+ Vector rot = 7;
+}
diff --git a/proto/SceneAvatarStaminaStepRsp.proto b/proto/SceneAvatarStaminaStepRsp.proto
new file mode 100644
index 00000000..012d04bd
--- /dev/null
+++ b/proto/SceneAvatarStaminaStepRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 231
+// EnetChannelId: 1
+// EnetIsReliable: true
+message SceneAvatarStaminaStepRsp {
+ bool use_client_rot = 9;
+ int32 retcode = 7;
+ Vector rot = 11;
+}
diff --git a/proto/SceneCreateEntityReq.proto b/proto/SceneCreateEntityReq.proto
new file mode 100644
index 00000000..17f9a549
--- /dev/null
+++ b/proto/SceneCreateEntityReq.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CreateEntityInfo.proto";
+import "CreateReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 288
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SceneCreateEntityReq {
+ CreateEntityInfo entity = 1;
+ bool is_destroy_when_disconnect = 10;
+ CreateReason reason = 3;
+}
diff --git a/proto/SceneCreateEntityRsp.proto b/proto/SceneCreateEntityRsp.proto
new file mode 100644
index 00000000..0bc7ea7b
--- /dev/null
+++ b/proto/SceneCreateEntityRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CreateEntityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 226
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneCreateEntityRsp {
+ int32 retcode = 14;
+ uint32 entity_id = 1;
+ CreateEntityInfo entity = 10;
+}
diff --git a/proto/SceneDataNotify.proto b/proto/SceneDataNotify.proto
new file mode 100644
index 00000000..59a710c2
--- /dev/null
+++ b/proto/SceneDataNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3203
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneDataNotify {
+ repeated string level_config_name_list = 15;
+ repeated uint32 scene_tag_id_list = 8;
+}
diff --git a/proto/SceneDestroyEntityReq.proto b/proto/SceneDestroyEntityReq.proto
new file mode 100644
index 00000000..9a1aaa46
--- /dev/null
+++ b/proto/SceneDestroyEntityReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 263
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SceneDestroyEntityReq {
+ uint32 entity_id = 7;
+}
diff --git a/proto/SceneDestroyEntityRsp.proto b/proto/SceneDestroyEntityRsp.proto
new file mode 100644
index 00000000..51834511
--- /dev/null
+++ b/proto/SceneDestroyEntityRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 295
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneDestroyEntityRsp {
+ int32 retcode = 14;
+ uint32 entity_id = 7;
+}
diff --git a/proto/SceneEntitiesMoveCombineNotify.proto b/proto/SceneEntitiesMoveCombineNotify.proto
new file mode 100644
index 00000000..9170dbe9
--- /dev/null
+++ b/proto/SceneEntitiesMoveCombineNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EntityMoveInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3387
+// EnetChannelId: 1
+// EnetIsReliable: false
+message SceneEntitiesMoveCombineNotify {
+ repeated EntityMoveInfo entity_move_info_list = 8;
+}
diff --git a/proto/SceneEntitiesMovesReq.proto b/proto/SceneEntitiesMovesReq.proto
new file mode 100644
index 00000000..ac8dfb28
--- /dev/null
+++ b/proto/SceneEntitiesMovesReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EntityMoveInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 279
+// EnetChannelId: 1
+// EnetIsReliable: false
+// IsAllowClient: true
+message SceneEntitiesMovesReq {
+ repeated EntityMoveInfo entity_move_info_list = 14;
+}
diff --git a/proto/SceneEntitiesMovesRsp.proto b/proto/SceneEntitiesMovesRsp.proto
new file mode 100644
index 00000000..cfdf9872
--- /dev/null
+++ b/proto/SceneEntitiesMovesRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EntityMoveFailInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 255
+// EnetChannelId: 1
+// EnetIsReliable: false
+message SceneEntitiesMovesRsp {
+ repeated EntityMoveFailInfo entity_move_fail_info_list = 11;
+}
diff --git a/proto/SceneEntityAiInfo.proto b/proto/SceneEntityAiInfo.proto
new file mode 100644
index 00000000..ccb40420
--- /dev/null
+++ b/proto/SceneEntityAiInfo.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ServantInfo.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneEntityAiInfo {
+ bool is_ai_open = 1;
+ Vector born_pos = 2;
+ map skill_cd_map = 3;
+ ServantInfo servant_info = 4;
+ map ai_threat_map = 5;
+ map skill_group_cd_map = 6;
+ uint32 cur_tactic = 7;
+}
diff --git a/proto/SceneEntityAppearNotify.proto b/proto/SceneEntityAppearNotify.proto
new file mode 100644
index 00000000..2af92009
--- /dev/null
+++ b/proto/SceneEntityAppearNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SceneEntityInfo.proto";
+import "VisionType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 221
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneEntityAppearNotify {
+ VisionType appear_type = 15;
+ uint32 param = 9;
+ repeated SceneEntityInfo entity_list = 5;
+}
diff --git a/proto/SceneEntityDisappearNotify.proto b/proto/SceneEntityDisappearNotify.proto
new file mode 100644
index 00000000..ba05ae60
--- /dev/null
+++ b/proto/SceneEntityDisappearNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "VisionType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 203
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneEntityDisappearNotify {
+ uint32 param = 6;
+ repeated uint32 entity_list = 1;
+ VisionType disappear_type = 2;
+}
diff --git a/proto/SceneEntityDrownReq.proto b/proto/SceneEntityDrownReq.proto
new file mode 100644
index 00000000..37937b11
--- /dev/null
+++ b/proto/SceneEntityDrownReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 227
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SceneEntityDrownReq {
+ uint32 entity_id = 10;
+}
diff --git a/proto/SceneEntityDrownRsp.proto b/proto/SceneEntityDrownRsp.proto
new file mode 100644
index 00000000..9c884c8c
--- /dev/null
+++ b/proto/SceneEntityDrownRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 294
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneEntityDrownRsp {
+ int32 retcode = 8;
+ uint32 entity_id = 11;
+}
diff --git a/proto/SceneEntityInfo.proto b/proto/SceneEntityInfo.proto
new file mode 100644
index 00000000..d5180d76
--- /dev/null
+++ b/proto/SceneEntityInfo.proto
@@ -0,0 +1,58 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AnimatorParameterValueInfoPair.proto";
+import "EntityAuthorityInfo.proto";
+import "EntityClientData.proto";
+import "EntityEnvironmentInfo.proto";
+import "FightPropPair.proto";
+import "MotionInfo.proto";
+import "PropPair.proto";
+import "ProtEntityType.proto";
+import "SceneAvatarInfo.proto";
+import "SceneGadgetInfo.proto";
+import "SceneMonsterInfo.proto";
+import "SceneNpcInfo.proto";
+import "ServerBuff.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneEntityInfo {
+ ProtEntityType entity_type = 1;
+ uint32 entity_id = 2;
+ string name = 3;
+ MotionInfo motion_info = 4;
+ repeated PropPair prop_list = 5;
+ repeated FightPropPair fight_prop_list = 6;
+ uint32 life_state = 7;
+ repeated AnimatorParameterValueInfoPair animator_para_list = 9;
+ uint32 last_move_scene_time_ms = 17;
+ uint32 last_move_reliable_seq = 18;
+ EntityClientData entity_client_data = 19;
+ repeated EntityEnvironmentInfo entity_environment_info_list = 20;
+ EntityAuthorityInfo entity_authority_info = 21;
+ repeated string tag_list = 22;
+ repeated ServerBuff server_buff_list = 23;
+ oneof entity {
+ SceneAvatarInfo avatar = 10;
+ SceneMonsterInfo monster = 11;
+ SceneNpcInfo npc = 12;
+ SceneGadgetInfo gadget = 13;
+ }
+}
diff --git a/proto/SceneEntityMoveNotify.proto b/proto/SceneEntityMoveNotify.proto
new file mode 100644
index 00000000..bd771e4e
--- /dev/null
+++ b/proto/SceneEntityMoveNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MotionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 275
+// EnetChannelId: 1
+// EnetIsReliable: true
+message SceneEntityMoveNotify {
+ MotionInfo motion_info = 6;
+ uint32 entity_id = 8;
+ uint32 scene_time = 15;
+ uint32 reliable_seq = 2;
+}
diff --git a/proto/SceneEntityMoveReq.proto b/proto/SceneEntityMoveReq.proto
new file mode 100644
index 00000000..42798293
--- /dev/null
+++ b/proto/SceneEntityMoveReq.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MotionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 290
+// EnetChannelId: 1
+// EnetIsReliable: false
+// IsAllowClient: true
+message SceneEntityMoveReq {
+ MotionInfo motion_info = 7;
+ uint32 scene_time = 4;
+ uint32 entity_id = 8;
+ uint32 reliable_seq = 15;
+}
diff --git a/proto/SceneEntityMoveRsp.proto b/proto/SceneEntityMoveRsp.proto
new file mode 100644
index 00000000..9be4da26
--- /dev/null
+++ b/proto/SceneEntityMoveRsp.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MotionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 273
+// EnetChannelId: 1
+// EnetIsReliable: true
+message SceneEntityMoveRsp {
+ uint32 entity_id = 4;
+ MotionInfo fail_motion = 1;
+ uint32 scene_time = 10;
+ uint32 reliable_seq = 6;
+ int32 retcode = 8;
+}
diff --git a/proto/SceneEntityUpdateNotify.proto b/proto/SceneEntityUpdateNotify.proto
new file mode 100644
index 00000000..5abc32ec
--- /dev/null
+++ b/proto/SceneEntityUpdateNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SceneEntityInfo.proto";
+import "VisionType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3412
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneEntityUpdateNotify {
+ uint32 param = 10;
+ VisionType appear_type = 13;
+ repeated SceneEntityInfo entity_list = 5;
+}
diff --git a/proto/SceneFishInfo.proto b/proto/SceneFishInfo.proto
new file mode 100644
index 00000000..cb101c97
--- /dev/null
+++ b/proto/SceneFishInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneFishInfo {
+ uint32 fish_id = 1;
+ uint32 fish_pool_entity_id = 2;
+ Vector fish_pool_pos = 3;
+ uint32 fish_pool_gadget_id = 4;
+ uint32 Unk2700_HIPFHKFMBBE = 5;
+}
diff --git a/proto/SceneForceLockNotify.proto b/proto/SceneForceLockNotify.proto
new file mode 100644
index 00000000..94eb753d
--- /dev/null
+++ b/proto/SceneForceLockNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 234
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneForceLockNotify {
+ repeated uint32 force_id_list = 9;
+}
diff --git a/proto/SceneForceUnlockNotify.proto b/proto/SceneForceUnlockNotify.proto
new file mode 100644
index 00000000..9f8348b1
--- /dev/null
+++ b/proto/SceneForceUnlockNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 206
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneForceUnlockNotify {
+ bool is_add = 10;
+ repeated uint32 force_id_list = 2;
+}
diff --git a/proto/SceneGadgetInfo.proto b/proto/SceneGadgetInfo.proto
new file mode 100644
index 00000000..5ca8c614
--- /dev/null
+++ b/proto/SceneGadgetInfo.proto
@@ -0,0 +1,89 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityGadgetInfo.proto";
+import "BlossomChestInfo.proto";
+import "BossChestInfo.proto";
+import "ClientGadgetInfo.proto";
+import "CustomGadgetTreeInfo.proto";
+import "DeshretObeliskGadgetInfo.proto";
+import "EchoShellInfo.proto";
+import "FishPoolInfo.proto";
+import "FoundationInfo.proto";
+import "GadgetBornType.proto";
+import "GadgetGeneralRewardInfo.proto";
+import "GadgetPlayInfo.proto";
+import "GatherGadgetInfo.proto";
+import "Item.proto";
+import "MpPlayRewardInfo.proto";
+import "NightCrowGadgetInfo.proto";
+import "OfferingInfo.proto";
+import "PlatformInfo.proto";
+import "RoguelikeGadgetInfo.proto";
+import "ScreenInfo.proto";
+import "StatueGadgetInfo.proto";
+import "VehicleInfo.proto";
+import "WeatherInfo.proto";
+import "WorktopInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGadgetInfo {
+ uint32 gadget_id = 1;
+ uint32 group_id = 2;
+ uint32 config_id = 3;
+ uint32 owner_entity_id = 4;
+ GadgetBornType born_type = 5;
+ uint32 gadget_state = 6;
+ uint32 gadget_type = 7;
+ bool is_show_cutscene = 8;
+ uint32 authority_peer_id = 9;
+ bool is_enable_interact = 10;
+ uint32 interact_id = 11;
+ uint32 mark_flag = 21;
+ uint32 prop_owner_entity_id = 22;
+ PlatformInfo platform = 23;
+ repeated uint32 interact_uid_list = 24;
+ uint32 draft_id = 25;
+ uint32 gadget_talk_state = 26;
+ GadgetPlayInfo play_info = 100;
+ oneof content {
+ Item trifle_item = 12;
+ GatherGadgetInfo gather_gadget = 13;
+ WorktopInfo worktop = 14;
+ ClientGadgetInfo client_gadget = 15;
+ WeatherInfo weather = 17;
+ AbilityGadgetInfo ability_gadget = 18;
+ StatueGadgetInfo statue_gadget = 19;
+ BossChestInfo boss_chest = 20;
+ BlossomChestInfo blossom_chest = 41;
+ MpPlayRewardInfo mp_play_reward = 42;
+ GadgetGeneralRewardInfo general_reward = 43;
+ OfferingInfo offering_info = 44;
+ FoundationInfo foundation_info = 45;
+ VehicleInfo vehicle_info = 46;
+ EchoShellInfo shell_info = 47;
+ ScreenInfo screen_info = 48;
+ FishPoolInfo fish_pool_info = 59;
+ CustomGadgetTreeInfo custom_gadget_tree_info = 60;
+ RoguelikeGadgetInfo roguelike_gadget_info = 61;
+ NightCrowGadgetInfo night_crow_gadget_info = 62;
+ DeshretObeliskGadgetInfo deshret_obelisk_gadget_info = 63;
+ }
+}
diff --git a/proto/SceneGalleryBalloonInfo.proto b/proto/SceneGalleryBalloonInfo.proto
new file mode 100644
index 00000000..865de5bc
--- /dev/null
+++ b/proto/SceneGalleryBalloonInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BalloonPlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryBalloonInfo {
+ map scene_player_balloon_info_map = 14;
+ uint32 end_time = 5;
+}
diff --git a/proto/SceneGalleryBounceConjuringInfo.proto b/proto/SceneGalleryBounceConjuringInfo.proto
new file mode 100644
index 00000000..32cd0a2e
--- /dev/null
+++ b/proto/SceneGalleryBounceConjuringInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryBounceConjuringInfo {
+ uint32 total_destroyed_machine_count = 4;
+ uint32 total_score = 6;
+}
diff --git a/proto/SceneGalleryBrokenFloorInfo.proto b/proto/SceneGalleryBrokenFloorInfo.proto
new file mode 100644
index 00000000..fd4c58f5
--- /dev/null
+++ b/proto/SceneGalleryBrokenFloorInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryBrokenFloorInfo {
+ map fall_count_map = 3;
+ uint32 end_time = 9;
+}
diff --git a/proto/SceneGalleryBulletInfo.proto b/proto/SceneGalleryBulletInfo.proto
new file mode 100644
index 00000000..820229ea
--- /dev/null
+++ b/proto/SceneGalleryBulletInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryBulletInfo {
+ uint32 end_time = 1;
+ map hit_count_map = 10;
+}
diff --git a/proto/SceneGalleryBuoyantCombatInfo.proto b/proto/SceneGalleryBuoyantCombatInfo.proto
new file mode 100644
index 00000000..1cc2ad78
--- /dev/null
+++ b/proto/SceneGalleryBuoyantCombatInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryBuoyantCombatInfo {
+ uint32 score = 6;
+ uint32 kill_special_monster_count = 1;
+ uint32 kill_monster_count = 14;
+}
diff --git a/proto/SceneGalleryCrystalLinkInfo.proto b/proto/SceneGalleryCrystalLinkInfo.proto
new file mode 100644
index 00000000..786ae752
--- /dev/null
+++ b/proto/SceneGalleryCrystalLinkInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryCrystalLinkInfo {
+ uint32 score = 10;
+}
diff --git a/proto/SceneGalleryFallInfo.proto b/proto/SceneGalleryFallInfo.proto
new file mode 100644
index 00000000..ff879e2c
--- /dev/null
+++ b/proto/SceneGalleryFallInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FallPlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryFallInfo {
+ map scene_player_fall_info_map = 12;
+ uint32 end_time = 2;
+}
diff --git a/proto/SceneGalleryFlowerInfo.proto b/proto/SceneGalleryFlowerInfo.proto
new file mode 100644
index 00000000..1c96a83d
--- /dev/null
+++ b/proto/SceneGalleryFlowerInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryFlowerInfo {
+ uint32 end_time = 7;
+ uint32 target_score = 13;
+ uint32 cur_score = 9;
+}
diff --git a/proto/SceneGalleryHandballInfo.proto b/proto/SceneGalleryHandballInfo.proto
new file mode 100644
index 00000000..89420bbb
--- /dev/null
+++ b/proto/SceneGalleryHandballInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlaceInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryHandballInfo {
+ PlaceInfo ball_place_info = 9;
+ bool is_have_ball = 15;
+}
diff --git a/proto/SceneGalleryHideAndSeekInfo.proto b/proto/SceneGalleryHideAndSeekInfo.proto
new file mode 100644
index 00000000..369ba80a
--- /dev/null
+++ b/proto/SceneGalleryHideAndSeekInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryHideAndSeekInfo {
+ repeated uint32 visible_uid_list = 13;
+ repeated uint32 caught_uid_list = 4;
+}
diff --git a/proto/SceneGalleryHomeBalloonInfo.proto b/proto/SceneGalleryHomeBalloonInfo.proto
new file mode 100644
index 00000000..fa71e5b4
--- /dev/null
+++ b/proto/SceneGalleryHomeBalloonInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryHomeBalloonInfo {
+ uint32 score = 7;
+}
diff --git a/proto/SceneGalleryHomeSeekFurnitureInfo.proto b/proto/SceneGalleryHomeSeekFurnitureInfo.proto
new file mode 100644
index 00000000..791d3179
--- /dev/null
+++ b/proto/SceneGalleryHomeSeekFurnitureInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryHomeSeekFurnitureInfo {
+ uint32 Unk2700_KDBENBBODGP = 6;
+ map Unk2700_DDHOJHOICBL = 8;
+ uint32 Unk2700_LODFFCPFJLC = 12;
+ uint32 Unk2700_HLCIHCCGFFC = 9;
+}
diff --git a/proto/SceneGalleryInfo.proto b/proto/SceneGalleryInfo.proto
new file mode 100644
index 00000000..70ad5a4a
--- /dev/null
+++ b/proto/SceneGalleryInfo.proto
@@ -0,0 +1,87 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GalleryStageType.proto";
+import "SceneGalleryBalloonInfo.proto";
+import "SceneGalleryBounceConjuringInfo.proto";
+import "SceneGalleryBrokenFloorInfo.proto";
+import "SceneGalleryBulletInfo.proto";
+import "SceneGalleryBuoyantCombatInfo.proto";
+import "SceneGalleryCrystalLinkInfo.proto";
+import "SceneGalleryFallInfo.proto";
+import "SceneGalleryFlowerInfo.proto";
+import "SceneGalleryHandballInfo.proto";
+import "SceneGalleryHideAndSeekInfo.proto";
+import "SceneGalleryHomeBalloonInfo.proto";
+import "SceneGalleryHomeSeekFurnitureInfo.proto";
+import "SceneGalleryInstableSprayInfo.proto";
+import "SceneGalleryIrodoriMasterInfo.proto";
+import "SceneGalleryIslandPartyDownHillInfo.proto";
+import "SceneGalleryIslandPartyRaftInfo.proto";
+import "SceneGalleryIslandPartySailInfo.proto";
+import "SceneGalleryLuminanceStoneChallengeInfo.proto";
+import "SceneGalleryMuqadasPotionInfo.proto";
+import "SceneGalleryProgressInfo.proto";
+import "SceneGallerySalvageEscortInfoInfo.proto";
+import "SceneGallerySalvagePreventInfo.proto";
+import "SceneGallerySummerTimeV2BoatInfo.proto";
+import "SceneGallerySumoInfo.proto";
+import "SceneGalleryTreasureSeelieInfo.proto";
+import "SceneGalleryVintageHuntingInfo.proto";
+import "SceneGalleryWindFieldInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryInfo {
+ uint32 end_time = 11;
+ uint32 pre_start_end_time = 15;
+ GalleryStageType stage = 5;
+ uint32 owner_uid = 9;
+ uint32 player_count = 1;
+ repeated SceneGalleryProgressInfo progress_info_list = 4;
+ uint32 gallery_id = 2;
+ oneof info {
+ SceneGalleryBalloonInfo balloon_info = 14;
+ SceneGalleryFallInfo fall_info = 7;
+ SceneGalleryFlowerInfo flower_info = 8;
+ SceneGalleryBulletInfo bullet_info = 13;
+ SceneGalleryBrokenFloorInfo broken_floor_info = 10;
+ SceneGalleryHideAndSeekInfo hide_and_seek_info = 6;
+ SceneGalleryBuoyantCombatInfo buoyant_combat_info = 1384;
+ SceneGalleryBounceConjuringInfo bounce_conjuring_info = 708;
+ SceneGalleryHandballInfo handball_info = 1997;
+ SceneGallerySumoInfo sumo_info = 811;
+ SceneGallerySalvagePreventInfo salvage_prevent_info = 1700;
+ SceneGallerySalvageEscortInfoInfo salvage_escort_info = 759;
+ SceneGalleryHomeBalloonInfo home_balloon_info = 1034;
+ SceneGalleryCrystalLinkInfo crystal_link_info = 2004;
+ SceneGalleryIrodoriMasterInfo irodori_master_info = 1953;
+ SceneGalleryLuminanceStoneChallengeInfo luminance_stone_challenge_info = 106;
+ SceneGalleryHomeSeekFurnitureInfo home_seek_furniture_info = 1456;
+ SceneGalleryIslandPartyDownHillInfo island_party_down_hill_info = 462;
+ SceneGallerySummerTimeV2BoatInfo summer_time_v2_boat_info = 296;
+ SceneGalleryIslandPartyRaftInfo island_party_raft_info = 1805;
+ SceneGalleryIslandPartySailInfo island_party_sail_info = 1133;
+ SceneGalleryInstableSprayInfo instable_spray_info = 1196;
+ SceneGalleryMuqadasPotionInfo muqadas_potion_info = 865;
+ SceneGalleryTreasureSeelieInfo treasure_seelie_info = 1525;
+ SceneGalleryVintageHuntingInfo vintage_hunting_info = 254;
+ SceneGalleryWindFieldInfo wind_field_info = 1080;
+ }
+}
diff --git a/proto/SceneGalleryInfoNotify.proto b/proto/SceneGalleryInfoNotify.proto
new file mode 100644
index 00000000..8b6c844c
--- /dev/null
+++ b/proto/SceneGalleryInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SceneGalleryInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5581
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneGalleryInfoNotify {
+ SceneGalleryInfo gallery_info = 4;
+}
diff --git a/proto/SceneGalleryInstableSprayInfo.proto b/proto/SceneGalleryInstableSprayInfo.proto
new file mode 100644
index 00000000..cba7f8d1
--- /dev/null
+++ b/proto/SceneGalleryInstableSprayInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_OMCBMAHOLHB.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryInstableSprayInfo {
+ uint32 score = 5;
+ repeated Unk3000_OMCBMAHOLHB Unk2700_INIBKFPMCFO = 12;
+}
diff --git a/proto/SceneGalleryIrodoriMasterInfo.proto b/proto/SceneGalleryIrodoriMasterInfo.proto
new file mode 100644
index 00000000..5e11abe6
--- /dev/null
+++ b/proto/SceneGalleryIrodoriMasterInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryIrodoriMasterInfo {
+ uint32 level_id = 8;
+ uint32 difficulty = 1;
+ bool Unk2700_FKDMOBOGMCM = 5;
+}
diff --git a/proto/SceneGalleryIslandPartyDownHillInfo.proto b/proto/SceneGalleryIslandPartyDownHillInfo.proto
new file mode 100644
index 00000000..faa0e707
--- /dev/null
+++ b/proto/SceneGalleryIslandPartyDownHillInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2800_FMAOEPEBKHB.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryIslandPartyDownHillInfo {
+ uint32 Unk2800_LBPCDCHOOLJ = 14;
+ Unk2800_FMAOEPEBKHB Unk2800_ENJGEFBCLOL = 15;
+ uint32 Unk2800_BKEFLDCEBLF = 5;
+ uint32 coin = 13;
+}
diff --git a/proto/SceneGalleryIslandPartyRaftInfo.proto b/proto/SceneGalleryIslandPartyRaftInfo.proto
new file mode 100644
index 00000000..f9246dbe
--- /dev/null
+++ b/proto/SceneGalleryIslandPartyRaftInfo.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2800_FMAOEPEBKHB.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryIslandPartyRaftInfo {
+ uint32 coin = 6;
+ Unk2800_FMAOEPEBKHB Unk2800_ENJGEFBCLOL = 7;
+ uint32 Unk2800_BAEEDEAADIA = 1;
+ uint32 Unk2800_EOFOECJJMLJ = 15;
+ uint32 point_id = 12;
+ uint32 Unk2800_MKNGANDAJFJ = 4;
+}
diff --git a/proto/SceneGalleryIslandPartySailInfo.proto b/proto/SceneGalleryIslandPartySailInfo.proto
new file mode 100644
index 00000000..3231e7f1
--- /dev/null
+++ b/proto/SceneGalleryIslandPartySailInfo.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2800_FMAOEPEBKHB.proto";
+import "Unk2800_IMLDGLIMODE.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryIslandPartySailInfo {
+ uint32 Unk2800_HKHENLCIFNN = 14;
+ uint32 Unk2800_NGPLGLLFGOG = 10;
+ Unk2800_FMAOEPEBKHB Unk2800_ENJGEFBCLOL = 1;
+ uint32 Unk2800_DNDKJOJCDBI = 11;
+ uint32 coin = 15;
+ Unk2800_IMLDGLIMODE stage = 12;
+ uint32 Unk2800_GMOCMEFBGIP = 8;
+}
diff --git a/proto/SceneGalleryLuminanceStoneChallengeInfo.proto b/proto/SceneGalleryLuminanceStoneChallengeInfo.proto
new file mode 100644
index 00000000..16efa63b
--- /dev/null
+++ b/proto/SceneGalleryLuminanceStoneChallengeInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryLuminanceStoneChallengeInfo {
+ uint32 kill_monster_count = 5;
+ uint32 score = 3;
+ uint32 Unk2700_OFKHLGLOPCM = 2;
+ uint32 kill_special_monster_count = 6;
+}
diff --git a/proto/SceneGalleryMuqadasPotionInfo.proto b/proto/SceneGalleryMuqadasPotionInfo.proto
new file mode 100644
index 00000000..aa95c7b6
--- /dev/null
+++ b/proto/SceneGalleryMuqadasPotionInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryMuqadasPotionInfo {
+ uint32 score = 6;
+ uint32 Unk3000_MKFIPLFHJNE = 4;
+ uint32 Unk3000_FELJKCAAJMJ = 10;
+ uint32 Unk3000_JKHKNKNBFDC = 9;
+}
diff --git a/proto/SceneGalleryProgressInfo.proto b/proto/SceneGalleryProgressInfo.proto
new file mode 100644
index 00000000..95e9d9ab
--- /dev/null
+++ b/proto/SceneGalleryProgressInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryProgressInfo {
+ repeated uint32 progress_stage_list = 8;
+ string key = 11;
+ uint32 progress = 5;
+ uint32 ui_form = 12;
+}
diff --git a/proto/SceneGallerySalvageEscortInfoInfo.proto b/proto/SceneGallerySalvageEscortInfoInfo.proto
new file mode 100644
index 00000000..243ad206
--- /dev/null
+++ b/proto/SceneGallerySalvageEscortInfoInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGallerySalvageEscortInfoInfo {
+ uint32 Unk2700_NECHECIDCEG = 14;
+ uint32 Unk2700_AMJEKEJLOGJ = 3;
+ uint32 Unk2700_MCFMMIDNLIF = 7;
+ uint32 Unk2700_FFCCLGIFGIP = 11;
+}
diff --git a/proto/SceneGallerySalvagePreventInfo.proto b/proto/SceneGallerySalvagePreventInfo.proto
new file mode 100644
index 00000000..152a4dc8
--- /dev/null
+++ b/proto/SceneGallerySalvagePreventInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGallerySalvagePreventInfo {
+ uint32 Unk2700_FFCCLGIFGIP = 7;
+}
diff --git a/proto/SceneGallerySummerTimeV2BoatInfo.proto b/proto/SceneGallerySummerTimeV2BoatInfo.proto
new file mode 100644
index 00000000..b27442d1
--- /dev/null
+++ b/proto/SceneGallerySummerTimeV2BoatInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGallerySummerTimeV2BoatInfo {
+ uint32 param1 = 15;
+ uint32 param3 = 3;
+ uint32 Unk2800_NGGPIECNHJA = 11;
+ uint32 param2 = 7;
+}
diff --git a/proto/SceneGallerySumoInfo.proto b/proto/SceneGallerySumoInfo.proto
new file mode 100644
index 00000000..24669036
--- /dev/null
+++ b/proto/SceneGallerySumoInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGallerySumoInfo {
+ uint32 score = 2;
+ uint32 kill_normal_mosnter_num = 15;
+ uint32 kill_elite_monster_num = 14;
+}
diff --git a/proto/SceneGalleryTreasureSeelieInfo.proto b/proto/SceneGalleryTreasureSeelieInfo.proto
new file mode 100644
index 00000000..a16c43c3
--- /dev/null
+++ b/proto/SceneGalleryTreasureSeelieInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryTreasureSeelieInfo {
+ uint32 progress = 15;
+ uint32 Unk3000_MONNEPNGNCA = 14;
+}
diff --git a/proto/SceneGalleryVintageHuntingFirstStageInfo.proto b/proto/SceneGalleryVintageHuntingFirstStageInfo.proto
new file mode 100644
index 00000000..6bc27e78
--- /dev/null
+++ b/proto/SceneGalleryVintageHuntingFirstStageInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryVintageHuntingFirstStageInfo {
+ uint32 Unk3100_BKOPHMFCPGD = 15;
+ uint32 Unk3100_OMMEHLGCBHP = 7;
+ uint32 score = 14;
+ uint32 Unk3100_KCFEMMIGNPG = 11;
+}
diff --git a/proto/SceneGalleryVintageHuntingInfo.proto b/proto/SceneGalleryVintageHuntingInfo.proto
new file mode 100644
index 00000000..b5a5d849
--- /dev/null
+++ b/proto/SceneGalleryVintageHuntingInfo.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SceneGalleryVintageHuntingFirstStageInfo.proto";
+import "SceneGalleryVintageHuntingSecondStageInfo.proto";
+import "SceneGalleryVintageHuntingThirdStageInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryVintageHuntingInfo {
+ uint32 stage_id = 7;
+ oneof info {
+ SceneGalleryVintageHuntingFirstStageInfo first_stage_info = 2;
+ SceneGalleryVintageHuntingSecondStageInfo second_stage_info = 15;
+ SceneGalleryVintageHuntingThirdStageInfo third_stage_info = 12;
+ }
+}
diff --git a/proto/SceneGalleryVintageHuntingSecondStageInfo.proto b/proto/SceneGalleryVintageHuntingSecondStageInfo.proto
new file mode 100644
index 00000000..0e09624d
--- /dev/null
+++ b/proto/SceneGalleryVintageHuntingSecondStageInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryVintageHuntingSecondStageInfo {
+ uint32 total_num = 11;
+ uint32 Unk3100_IFMAFOGLKOO = 13;
+ uint32 Unk3100_KDKPDILFKFK = 3;
+}
diff --git a/proto/SceneGalleryVintageHuntingThirdStageInfo.proto b/proto/SceneGalleryVintageHuntingThirdStageInfo.proto
new file mode 100644
index 00000000..61522885
--- /dev/null
+++ b/proto/SceneGalleryVintageHuntingThirdStageInfo.proto
@@ -0,0 +1,22 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryVintageHuntingThirdStageInfo {}
diff --git a/proto/SceneGalleryWindFieldInfo.proto b/proto/SceneGalleryWindFieldInfo.proto
new file mode 100644
index 00000000..0419061e
--- /dev/null
+++ b/proto/SceneGalleryWindFieldInfo.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryWindFieldInfo {
+ uint32 Unk3100_HFOHBJOGEPJ = 5;
+ uint32 Unk3100_CDJOHNPJAAB = 12;
+ uint32 Unk3100_MPJOMKKCHKC = 15;
+ uint32 Unk3100_KAKJMGFBOOH = 4;
+ uint32 Unk3100_EDMNOAPJIDC = 9;
+ uint32 Unk3100_CHEKINPIFFM = 1;
+ uint32 Unk3100_CHGHHBNGNHH = 13;
+ uint32 Unk3100_OIOIEMJMNNI = 10;
+}
diff --git a/proto/SceneInitFinishReq.proto b/proto/SceneInitFinishReq.proto
new file mode 100644
index 00000000..9bd42248
--- /dev/null
+++ b/proto/SceneInitFinishReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 235
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SceneInitFinishReq {
+ uint32 enter_scene_token = 11;
+}
diff --git a/proto/SceneInitFinishRsp.proto b/proto/SceneInitFinishRsp.proto
new file mode 100644
index 00000000..ffb33be4
--- /dev/null
+++ b/proto/SceneInitFinishRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 207
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SceneInitFinishRsp {
+ int32 retcode = 13;
+ uint32 enter_scene_token = 8;
+}
diff --git a/proto/SceneKickPlayerNotify.proto b/proto/SceneKickPlayerNotify.proto
new file mode 100644
index 00000000..e10f26d4
--- /dev/null
+++ b/proto/SceneKickPlayerNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 211
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SceneKickPlayerNotify {
+ uint32 target_uid = 8;
+ uint32 kicker_uid = 9;
+}
diff --git a/proto/SceneKickPlayerReq.proto b/proto/SceneKickPlayerReq.proto
new file mode 100644
index 00000000..6203c9c6
--- /dev/null
+++ b/proto/SceneKickPlayerReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 264
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SceneKickPlayerReq {
+ uint32 target_uid = 6;
+}
diff --git a/proto/SceneKickPlayerRsp.proto b/proto/SceneKickPlayerRsp.proto
new file mode 100644
index 00000000..1a12f3a0
--- /dev/null
+++ b/proto/SceneKickPlayerRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 238
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneKickPlayerRsp {
+ int32 retcode = 13;
+ uint32 target_uid = 10;
+}
diff --git a/proto/SceneMonsterInfo.proto b/proto/SceneMonsterInfo.proto
new file mode 100644
index 00000000..ab777d57
--- /dev/null
+++ b/proto/SceneMonsterInfo.proto
@@ -0,0 +1,56 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FishtankFishInfo.proto";
+import "MonsterBornType.proto";
+import "MonsterRoute.proto";
+import "SceneFishInfo.proto";
+import "SceneWeaponInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneMonsterInfo {
+ uint32 monster_id = 1;
+ uint32 group_id = 2;
+ uint32 config_id = 3;
+ repeated SceneWeaponInfo weapon_list = 4;
+ uint32 authority_peer_id = 5;
+ repeated uint32 affix_list = 6;
+ bool is_elite = 7;
+ uint32 owner_entity_id = 8;
+ uint32 summoned_tag = 9;
+ map summon_tag_map = 10;
+ uint32 pose_id = 11;
+ MonsterBornType born_type = 12;
+ uint32 block_id = 13;
+ uint32 mark_flag = 14;
+ uint32 title_id = 15;
+ uint32 special_name_id = 16;
+ uint32 attack_target_id = 17;
+ MonsterRoute monster_route = 18;
+ uint32 ai_config_id = 19;
+ uint32 level_route_id = 20;
+ uint32 init_pose_id = 21;
+ bool Unk2800_JEGLENPDPNI = 22;
+ uint32 Unk3000_CCKJDCBDEKD = 23;
+ oneof content {
+ SceneFishInfo fish_info = 50;
+ FishtankFishInfo fishtank_fish_info = 51;
+ }
+}
diff --git a/proto/SceneNpcInfo.proto b/proto/SceneNpcInfo.proto
new file mode 100644
index 00000000..e4d7d2c6
--- /dev/null
+++ b/proto/SceneNpcInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneNpcInfo {
+ uint32 npc_id = 1;
+ uint32 room_id = 2;
+ uint32 parent_quest_id = 3;
+ uint32 block_id = 4;
+}
diff --git a/proto/ScenePlayBattleInfo.proto b/proto/ScenePlayBattleInfo.proto
new file mode 100644
index 00000000..6e1b6576
--- /dev/null
+++ b/proto/ScenePlayBattleInfo.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ScenePlayBattleInfo {
+ uint32 mode = 4;
+ repeated uint32 progress_stage_list = 3;
+ uint32 start_time = 10;
+ uint32 duration = 14;
+ uint32 play_type = 12;
+ uint32 play_id = 1;
+ uint32 prepare_end_time = 7;
+ uint32 progress = 11;
+ uint32 state = 8;
+ uint32 type = 9;
+}
diff --git a/proto/ScenePlayBattleInfoListNotify.proto b/proto/ScenePlayBattleInfoListNotify.proto
new file mode 100644
index 00000000..48f9f0f7
--- /dev/null
+++ b/proto/ScenePlayBattleInfoListNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ScenePlayBattleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4431
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ScenePlayBattleInfoListNotify {
+ repeated ScenePlayBattleInfo battle_info_list = 12;
+}
diff --git a/proto/ScenePlayBattleInfoNotify.proto b/proto/ScenePlayBattleInfoNotify.proto
new file mode 100644
index 00000000..ee0fe41a
--- /dev/null
+++ b/proto/ScenePlayBattleInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ScenePlayBattleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4422
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ScenePlayBattleInfoNotify {
+ ScenePlayBattleInfo battle_info = 11;
+}
diff --git a/proto/ScenePlayBattleInterruptNotify.proto b/proto/ScenePlayBattleInterruptNotify.proto
new file mode 100644
index 00000000..a0155e90
--- /dev/null
+++ b/proto/ScenePlayBattleInterruptNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4425
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ScenePlayBattleInterruptNotify {
+ uint32 interrupt_state = 6;
+ uint32 play_id = 5;
+ uint32 play_type = 1;
+}
diff --git a/proto/ScenePlayBattleResultNotify.proto b/proto/ScenePlayBattleResultNotify.proto
new file mode 100644
index 00000000..8192c31e
--- /dev/null
+++ b/proto/ScenePlayBattleResultNotify.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ScenePlayBattleSettlePlayerInfo.proto";
+import "Unk2700_OHOKEEGPPBG.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4398
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ScenePlayBattleResultNotify {
+ bool is_win = 1;
+ uint32 cost_time = 7;
+ uint32 play_type = 15;
+ uint32 play_id = 11;
+ repeated ScenePlayBattleSettlePlayerInfo settle_player_info_list = 4;
+ repeated Unk2700_OHOKEEGPPBG Unk2700_HMENAAMGMBB = 14;
+}
diff --git a/proto/ScenePlayBattleSettlePlayerInfo.proto b/proto/ScenePlayBattleSettlePlayerInfo.proto
new file mode 100644
index 00000000..78ac915d
--- /dev/null
+++ b/proto/ScenePlayBattleSettlePlayerInfo.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ExhibitionDisplayInfo.proto";
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ScenePlayBattleSettlePlayerInfo {
+ repeated ExhibitionDisplayInfo card_list = 14;
+ ProfilePicture profile_picture = 10;
+ uint32 head_image = 11;
+ uint32 statistic_id = 4;
+ uint32 uid = 1;
+ int64 param = 5;
+ string online_id = 12;
+ string nickname = 15;
+}
diff --git a/proto/ScenePlayBattleUidOpNotify.proto b/proto/ScenePlayBattleUidOpNotify.proto
new file mode 100644
index 00000000..9ebf61e8
--- /dev/null
+++ b/proto/ScenePlayBattleUidOpNotify.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4447
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ScenePlayBattleUidOpNotify {
+ uint32 op = 7;
+ repeated uint32 param_target_list = 9;
+ uint32 entity_id = 2;
+ string param_str = 3;
+ repeated uint32 uid_list = 6;
+ uint32 param_index = 11;
+ uint32 play_type = 8;
+ uint32 param_duration = 12;
+ repeated uint32 param_list = 15;
+ uint32 play_id = 5;
+}
diff --git a/proto/ScenePlayGuestReplyInviteReq.proto b/proto/ScenePlayGuestReplyInviteReq.proto
new file mode 100644
index 00000000..0e0bad60
--- /dev/null
+++ b/proto/ScenePlayGuestReplyInviteReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4353
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ScenePlayGuestReplyInviteReq {
+ bool is_agree = 15;
+ uint32 play_id = 6;
+}
diff --git a/proto/ScenePlayGuestReplyInviteRsp.proto b/proto/ScenePlayGuestReplyInviteRsp.proto
new file mode 100644
index 00000000..10276613
--- /dev/null
+++ b/proto/ScenePlayGuestReplyInviteRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4440
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ScenePlayGuestReplyInviteRsp {
+ int32 retcode = 6;
+ bool is_agree = 2;
+ uint32 play_id = 8;
+}
diff --git a/proto/ScenePlayGuestReplyNotify.proto b/proto/ScenePlayGuestReplyNotify.proto
new file mode 100644
index 00000000..92d5ee8a
--- /dev/null
+++ b/proto/ScenePlayGuestReplyNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4423
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ScenePlayGuestReplyNotify {
+ uint32 play_id = 13;
+ uint32 guest_uid = 12;
+ bool is_agree = 3;
+}
diff --git a/proto/ScenePlayInfo.proto b/proto/ScenePlayInfo.proto
new file mode 100644
index 00000000..5af07a9a
--- /dev/null
+++ b/proto/ScenePlayInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ScenePlayInfo {
+ uint32 entry_id = 15;
+ uint32 play_id = 11;
+ uint32 play_type = 3;
+ bool is_open = 9;
+}
diff --git a/proto/ScenePlayInfoListNotify.proto b/proto/ScenePlayInfoListNotify.proto
new file mode 100644
index 00000000..2dce23ef
--- /dev/null
+++ b/proto/ScenePlayInfoListNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ScenePlayInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4381
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ScenePlayInfoListNotify {
+ repeated ScenePlayInfo play_info_list = 6;
+}
diff --git a/proto/ScenePlayInviteResultNotify.proto b/proto/ScenePlayInviteResultNotify.proto
new file mode 100644
index 00000000..8a686c14
--- /dev/null
+++ b/proto/ScenePlayInviteResultNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4449
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ScenePlayInviteResultNotify {
+ bool is_all_argee = 11;
+ uint32 play_id = 15;
+}
diff --git a/proto/ScenePlayOutofRegionNotify.proto b/proto/ScenePlayOutofRegionNotify.proto
new file mode 100644
index 00000000..e0e6b42f
--- /dev/null
+++ b/proto/ScenePlayOutofRegionNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4355
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ScenePlayOutofRegionNotify {
+ uint32 play_id = 13;
+}
diff --git a/proto/ScenePlayOwnerCheckReq.proto b/proto/ScenePlayOwnerCheckReq.proto
new file mode 100644
index 00000000..bb2d2204
--- /dev/null
+++ b/proto/ScenePlayOwnerCheckReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4448
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ScenePlayOwnerCheckReq {
+ uint32 play_id = 9;
+ bool is_skip_match = 6;
+}
diff --git a/proto/ScenePlayOwnerCheckRsp.proto b/proto/ScenePlayOwnerCheckRsp.proto
new file mode 100644
index 00000000..7285a0f9
--- /dev/null
+++ b/proto/ScenePlayOwnerCheckRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4362
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ScenePlayOwnerCheckRsp {
+ repeated uint32 param_list = 8;
+ bool is_skip_match = 1;
+ uint32 play_id = 9;
+ uint32 wrong_uid = 5;
+ int32 retcode = 3;
+}
diff --git a/proto/ScenePlayOwnerInviteNotify.proto b/proto/ScenePlayOwnerInviteNotify.proto
new file mode 100644
index 00000000..9ab122c5
--- /dev/null
+++ b/proto/ScenePlayOwnerInviteNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4371
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ScenePlayOwnerInviteNotify {
+ uint32 invite_cd = 14;
+ uint32 play_id = 5;
+ bool is_remain_reward = 15;
+}
diff --git a/proto/ScenePlayOwnerStartInviteReq.proto b/proto/ScenePlayOwnerStartInviteReq.proto
new file mode 100644
index 00000000..86dd919a
--- /dev/null
+++ b/proto/ScenePlayOwnerStartInviteReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4385
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ScenePlayOwnerStartInviteReq {
+ bool is_skip_match = 8;
+ uint32 play_id = 13;
+}
diff --git a/proto/ScenePlayOwnerStartInviteRsp.proto b/proto/ScenePlayOwnerStartInviteRsp.proto
new file mode 100644
index 00000000..969d60f7
--- /dev/null
+++ b/proto/ScenePlayOwnerStartInviteRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4357
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ScenePlayOwnerStartInviteRsp {
+ bool is_skip_match = 7;
+ int32 retcode = 15;
+ uint32 play_id = 11;
+}
diff --git a/proto/ScenePlayerInfo.proto b/proto/ScenePlayerInfo.proto
new file mode 100644
index 00000000..61e039a8
--- /dev/null
+++ b/proto/ScenePlayerInfo.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "OnlinePlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ScenePlayerInfo {
+ uint32 scene_id = 10;
+ uint32 peer_id = 6;
+ OnlinePlayerInfo online_player_info = 13;
+ bool is_connected = 2;
+ string name = 15;
+ uint32 uid = 8;
+}
diff --git a/proto/ScenePlayerInfoNotify.proto b/proto/ScenePlayerInfoNotify.proto
new file mode 100644
index 00000000..d0e80079
--- /dev/null
+++ b/proto/ScenePlayerInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ScenePlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 267
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ScenePlayerInfoNotify {
+ repeated ScenePlayerInfo player_info_list = 5;
+}
diff --git a/proto/ScenePlayerLocationNotify.proto b/proto/ScenePlayerLocationNotify.proto
new file mode 100644
index 00000000..fce570f0
--- /dev/null
+++ b/proto/ScenePlayerLocationNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayerLocationInfo.proto";
+import "VehicleLocationInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 248
+// EnetChannelId: 1
+// EnetIsReliable: true
+message ScenePlayerLocationNotify {
+ repeated VehicleLocationInfo vehicle_loc_list = 3;
+ uint32 scene_id = 9;
+ repeated PlayerLocationInfo player_loc_list = 14;
+}
diff --git a/proto/ScenePlayerSoundNotify.proto b/proto/ScenePlayerSoundNotify.proto
new file mode 100644
index 00000000..8b47690f
--- /dev/null
+++ b/proto/ScenePlayerSoundNotify.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 233
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ScenePlayerSoundNotify {
+ string sound_name = 4;
+ PlaySoundType play_type = 8;
+ Vector play_pos = 3;
+
+ enum PlaySoundType {
+ PLAY_SOUND_TYPE_NONE = 0;
+ PLAY_SOUND_TYPE_START = 1;
+ PLAY_SOUND_TYPE_STOP = 2;
+ }
+}
diff --git a/proto/ScenePointUnlockNotify.proto b/proto/ScenePointUnlockNotify.proto
new file mode 100644
index 00000000..8021eb4e
--- /dev/null
+++ b/proto/ScenePointUnlockNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 247
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ScenePointUnlockNotify {
+ repeated uint32 point_list = 13;
+ uint32 scene_id = 6;
+ repeated uint32 unhide_point_list = 12;
+ repeated uint32 hide_point_list = 1;
+ repeated uint32 locked_point_list = 8;
+}
diff --git a/proto/SceneReliquaryInfo.proto b/proto/SceneReliquaryInfo.proto
new file mode 100644
index 00000000..73b43a7b
--- /dev/null
+++ b/proto/SceneReliquaryInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneReliquaryInfo {
+ uint32 item_id = 1;
+ uint64 guid = 2;
+ uint32 level = 3;
+ uint32 promote_level = 4;
+}
diff --git a/proto/SceneRouteChangeInfo.proto b/proto/SceneRouteChangeInfo.proto
new file mode 100644
index 00000000..ba9c67b6
--- /dev/null
+++ b/proto/SceneRouteChangeInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RoutePointChangeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneRouteChangeInfo {
+ bool is_forward = 12;
+ uint32 route_id = 15;
+ uint32 type = 4;
+ repeated RoutePointChangeInfo point_list = 1;
+}
diff --git a/proto/SceneRouteChangeNotify.proto b/proto/SceneRouteChangeNotify.proto
new file mode 100644
index 00000000..155107ae
--- /dev/null
+++ b/proto/SceneRouteChangeNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SceneRouteChangeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 240
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneRouteChangeNotify {
+ uint32 scene_id = 12;
+ uint32 scene_time = 11;
+ repeated SceneRouteChangeInfo route_list = 2;
+}
diff --git a/proto/SceneSurfaceMaterial.proto b/proto/SceneSurfaceMaterial.proto
new file mode 100644
index 00000000..20240aea
--- /dev/null
+++ b/proto/SceneSurfaceMaterial.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum SceneSurfaceMaterial {
+ SCENE_SURFACE_MATERIAL_INVALID = 0;
+ SCENE_SURFACE_MATERIAL_GRASS = 1;
+ SCENE_SURFACE_MATERIAL_DIRT = 2;
+ SCENE_SURFACE_MATERIAL_ROCK = 3;
+ SCENE_SURFACE_MATERIAL_SNOW = 4;
+ SCENE_SURFACE_MATERIAL_WATER = 5;
+ SCENE_SURFACE_MATERIAL_TILE = 6;
+ SCENE_SURFACE_MATERIAL_SAND = 7;
+}
diff --git a/proto/SceneTeamAvatar.proto b/proto/SceneTeamAvatar.proto
new file mode 100644
index 00000000..e9007bd9
--- /dev/null
+++ b/proto/SceneTeamAvatar.proto
@@ -0,0 +1,46 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityControlBlock.proto";
+import "AbilitySyncStateInfo.proto";
+import "AvatarInfo.proto";
+import "SceneAvatarInfo.proto";
+import "SceneEntityInfo.proto";
+import "ServerBuff.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneTeamAvatar {
+ AbilitySyncStateInfo avatar_ability_info = 5;
+ AvatarInfo avatar_info = 8;
+ bool is_on_scene = 152;
+ uint32 entity_id = 9;
+ uint64 avatar_guid = 15;
+ uint32 scene_id = 1;
+ uint32 weapon_entity_id = 7;
+ SceneAvatarInfo scene_avatar_info = 3;
+ uint64 weapon_guid = 4;
+ AbilitySyncStateInfo weapon_ability_info = 11;
+ SceneEntityInfo scene_entity_info = 12;
+ uint32 player_uid = 14;
+ bool is_reconnect = 6;
+ AbilityControlBlock ability_control_block = 2;
+ bool is_player_cur_avatar = 13;
+ repeated ServerBuff server_buff_list = 10;
+}
diff --git a/proto/SceneTeamUpdateNotify.proto b/proto/SceneTeamUpdateNotify.proto
new file mode 100644
index 00000000..ac0294a5
--- /dev/null
+++ b/proto/SceneTeamUpdateNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SceneTeamAvatar.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1775
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneTeamUpdateNotify {
+ repeated SceneTeamAvatar scene_team_avatar_list = 11;
+ bool is_in_mp = 15;
+}
diff --git a/proto/SceneTimeNotify.proto b/proto/SceneTimeNotify.proto
new file mode 100644
index 00000000..d4ae00b4
--- /dev/null
+++ b/proto/SceneTimeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 245
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneTimeNotify {
+ uint64 scene_time = 14;
+ bool is_paused = 1;
+ uint32 scene_id = 7;
+}
diff --git a/proto/SceneTransToPointReq.proto b/proto/SceneTransToPointReq.proto
new file mode 100644
index 00000000..f8d9fb6f
--- /dev/null
+++ b/proto/SceneTransToPointReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 239
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SceneTransToPointReq {
+ uint32 scene_id = 13;
+ uint32 point_id = 1;
+}
diff --git a/proto/SceneTransToPointRsp.proto b/proto/SceneTransToPointRsp.proto
new file mode 100644
index 00000000..d219544f
--- /dev/null
+++ b/proto/SceneTransToPointRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 253
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneTransToPointRsp {
+ uint32 point_id = 14;
+ uint32 scene_id = 3;
+ int32 retcode = 8;
+}
diff --git a/proto/SceneWeaponInfo.proto b/proto/SceneWeaponInfo.proto
new file mode 100644
index 00000000..147312e2
--- /dev/null
+++ b/proto/SceneWeaponInfo.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilitySyncStateInfo.proto";
+import "EntityRendererChangedInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneWeaponInfo {
+ uint32 entity_id = 1;
+ uint32 gadget_id = 2;
+ uint32 item_id = 3;
+ uint64 guid = 4;
+ uint32 level = 5;
+ uint32 promote_level = 6;
+ AbilitySyncStateInfo ability_info = 7;
+ map affix_map = 8;
+ EntityRendererChangedInfo renderer_changed_info = 9;
+}
diff --git a/proto/SceneWeatherForcastReq.proto b/proto/SceneWeatherForcastReq.proto
new file mode 100644
index 00000000..defd707c
--- /dev/null
+++ b/proto/SceneWeatherForcastReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3110
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SceneWeatherForcastReq {
+ uint32 weather_area_id = 15;
+}
diff --git a/proto/SceneWeatherForcastRsp.proto b/proto/SceneWeatherForcastRsp.proto
new file mode 100644
index 00000000..e2ffd4c8
--- /dev/null
+++ b/proto/SceneWeatherForcastRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3012
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SceneWeatherForcastRsp {
+ uint64 next_climate_time = 14;
+ repeated uint32 forcast_climate_list = 2;
+ int32 retcode = 4;
+}
diff --git a/proto/ScoreChallengeInfo.proto b/proto/ScoreChallengeInfo.proto
new file mode 100644
index 00000000..eef94a08
--- /dev/null
+++ b/proto/ScoreChallengeInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ScoreChallengeInfo {
+ uint32 Unk2700_LJCOLDIKHNE = 13;
+ uint32 max_score = 7;
+}
diff --git a/proto/ScreenInfo.proto b/proto/ScreenInfo.proto
new file mode 100644
index 00000000..c91a63e4
--- /dev/null
+++ b/proto/ScreenInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ScreenInfo {
+ uint32 live_id = 1;
+ uint32 projector_entity_id = 2;
+}
diff --git a/proto/SeaLampActivityDetailInfo.proto b/proto/SeaLampActivityDetailInfo.proto
new file mode 100644
index 00000000..27b55090
--- /dev/null
+++ b/proto/SeaLampActivityDetailInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SeaLampActivityDetailInfo {
+ uint32 phase_id = 14;
+ repeated uint32 taken_phase_reward_list = 1;
+ repeated uint32 taken_contribution_reward_list = 7;
+ uint32 progress = 8;
+ uint32 contribution = 15;
+ uint32 factor = 13;
+ uint32 days = 4;
+}
diff --git a/proto/SeaLampActivityInfo.proto b/proto/SeaLampActivityInfo.proto
new file mode 100644
index 00000000..54d02a2a
--- /dev/null
+++ b/proto/SeaLampActivityInfo.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SeaLampSectionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SeaLampActivityInfo {
+ bool is_mechanicus_open = 14;
+ uint32 day_index = 1;
+ repeated SeaLampSectionInfo section_info_list = 6;
+ uint32 popularity = 10;
+ uint32 sea_lamp_coin = 15;
+ uint32 first_day_start_time = 11;
+ uint32 mechanicus_id = 9;
+ bool is_mechanicus_feature_close = 12;
+ bool is_content_closed = 5;
+}
diff --git a/proto/SeaLampCoinNotify.proto b/proto/SeaLampCoinNotify.proto
new file mode 100644
index 00000000..3c675ec0
--- /dev/null
+++ b/proto/SeaLampCoinNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2114
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SeaLampCoinNotify {
+ uint32 sea_lamp_coin = 8;
+}
diff --git a/proto/SeaLampContributeItemReq.proto b/proto/SeaLampContributeItemReq.proto
new file mode 100644
index 00000000..c1bc22cb
--- /dev/null
+++ b/proto/SeaLampContributeItemReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2123
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SeaLampContributeItemReq {
+ uint32 activity_id = 8;
+ repeated ItemParam item_list = 1;
+}
diff --git a/proto/SeaLampContributeItemRsp.proto b/proto/SeaLampContributeItemRsp.proto
new file mode 100644
index 00000000..18bedbea
--- /dev/null
+++ b/proto/SeaLampContributeItemRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2139
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SeaLampContributeItemRsp {
+ uint32 add_contribution = 7;
+ uint32 add_progress = 1;
+ uint32 total_contribution = 14;
+ int32 retcode = 6;
+}
diff --git a/proto/SeaLampFlyLampNotify.proto b/proto/SeaLampFlyLampNotify.proto
new file mode 100644
index 00000000..38feb281
--- /dev/null
+++ b/proto/SeaLampFlyLampNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2105
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SeaLampFlyLampNotify {
+ Vector pos = 11;
+ uint32 item_num = 10;
+ uint32 item_id = 7;
+ int32 param = 5;
+}
diff --git a/proto/SeaLampFlyLampReq.proto b/proto/SeaLampFlyLampReq.proto
new file mode 100644
index 00000000..a7be823c
--- /dev/null
+++ b/proto/SeaLampFlyLampReq.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2199
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SeaLampFlyLampReq {
+ uint32 item_id = 9;
+ int32 param = 10;
+ Vector pos = 7;
+ uint32 item_num = 5;
+}
diff --git a/proto/SeaLampFlyLampRsp.proto b/proto/SeaLampFlyLampRsp.proto
new file mode 100644
index 00000000..6c8d5583
--- /dev/null
+++ b/proto/SeaLampFlyLampRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2192
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SeaLampFlyLampRsp {
+ uint32 item_num = 9;
+ uint32 item_id = 15;
+ int32 retcode = 14;
+}
diff --git a/proto/SeaLampPopularityNotify.proto b/proto/SeaLampPopularityNotify.proto
new file mode 100644
index 00000000..984bda32
--- /dev/null
+++ b/proto/SeaLampPopularityNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2032
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SeaLampPopularityNotify {
+ uint32 popularity = 4;
+}
diff --git a/proto/SeaLampSectionInfo.proto b/proto/SeaLampSectionInfo.proto
new file mode 100644
index 00000000..679be3c4
--- /dev/null
+++ b/proto/SeaLampSectionInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SeaLampSectionInfo {
+ uint32 section_id = 11;
+}
diff --git a/proto/SeaLampTakeContributionRewardReq.proto b/proto/SeaLampTakeContributionRewardReq.proto
new file mode 100644
index 00000000..83980194
--- /dev/null
+++ b/proto/SeaLampTakeContributionRewardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2019
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SeaLampTakeContributionRewardReq {
+ uint32 activity_id = 4;
+ uint32 config_id = 10;
+}
diff --git a/proto/SeaLampTakeContributionRewardRsp.proto b/proto/SeaLampTakeContributionRewardRsp.proto
new file mode 100644
index 00000000..76014300
--- /dev/null
+++ b/proto/SeaLampTakeContributionRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2177
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SeaLampTakeContributionRewardRsp {
+ uint32 config_id = 9;
+ int32 retcode = 7;
+}
diff --git a/proto/SeaLampTakePhaseRewardReq.proto b/proto/SeaLampTakePhaseRewardReq.proto
new file mode 100644
index 00000000..d0e442f2
--- /dev/null
+++ b/proto/SeaLampTakePhaseRewardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2176
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SeaLampTakePhaseRewardReq {
+ uint32 phase_id = 12;
+ uint32 activity_id = 11;
+}
diff --git a/proto/SeaLampTakePhaseRewardRsp.proto b/proto/SeaLampTakePhaseRewardRsp.proto
new file mode 100644
index 00000000..aef5f09a
--- /dev/null
+++ b/proto/SeaLampTakePhaseRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2190
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SeaLampTakePhaseRewardRsp {
+ uint32 phase_id = 2;
+ int32 retcode = 6;
+}
diff --git a/proto/SealBattleBeginNotify.proto b/proto/SealBattleBeginNotify.proto
new file mode 100644
index 00000000..8c8abcd6
--- /dev/null
+++ b/proto/SealBattleBeginNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SealBattleType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 289
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SealBattleBeginNotify {
+ uint32 seal_max_progress = 9;
+ uint32 seal_entity_id = 1;
+ uint32 seal_radius = 12;
+ SealBattleType battle_type = 14;
+}
diff --git a/proto/SealBattleEndNotify.proto b/proto/SealBattleEndNotify.proto
new file mode 100644
index 00000000..ce02359c
--- /dev/null
+++ b/proto/SealBattleEndNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 259
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SealBattleEndNotify {
+ bool is_win = 4;
+ uint32 seal_entity_id = 15;
+}
diff --git a/proto/SealBattleProgressNotify.proto b/proto/SealBattleProgressNotify.proto
new file mode 100644
index 00000000..bcb3a461
--- /dev/null
+++ b/proto/SealBattleProgressNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 232
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SealBattleProgressNotify {
+ uint32 seal_entity_id = 9;
+ uint32 max_progress = 10;
+ uint32 seal_radius = 4;
+ uint32 progress = 5;
+ uint32 end_time = 2;
+}
diff --git a/proto/SealBattleType.proto b/proto/SealBattleType.proto
new file mode 100644
index 00000000..8738618d
--- /dev/null
+++ b/proto/SealBattleType.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum SealBattleType {
+ SEAL_BATTLE_TYPE_KEEP_ALIVE = 0;
+ SEAL_BATTLE_TYPE_KILL_MONSTER = 1;
+ SEAL_BATTLE_TYPE_ENERGY_CHARGE = 2;
+}
diff --git a/proto/SeeMonsterReq.proto b/proto/SeeMonsterReq.proto
new file mode 100644
index 00000000..2657ffc5
--- /dev/null
+++ b/proto/SeeMonsterReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 228
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SeeMonsterReq {
+ uint32 monster_id = 7;
+}
diff --git a/proto/SeeMonsterRsp.proto b/proto/SeeMonsterRsp.proto
new file mode 100644
index 00000000..6f32cec6
--- /dev/null
+++ b/proto/SeeMonsterRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 251
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SeeMonsterRsp {
+ int32 retcode = 9;
+}
diff --git a/proto/SeekFurnitureGalleryInfo.proto b/proto/SeekFurnitureGalleryInfo.proto
new file mode 100644
index 00000000..449e3597
--- /dev/null
+++ b/proto/SeekFurnitureGalleryInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_JCBJHCFEONO.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SeekFurnitureGalleryInfo {
+ repeated Unk2700_JCBJHCFEONO record_list = 5;
+}
diff --git a/proto/SegmentCRCInfo.proto b/proto/SegmentCRCInfo.proto
new file mode 100644
index 00000000..06d0d62f
--- /dev/null
+++ b/proto/SegmentCRCInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SegmentCRCInfo {
+ uint32 module = 13;
+ int32 retcode = 5;
+ uint32 size = 10;
+ string crc = 3;
+ uint32 offset = 11;
+}
diff --git a/proto/SegmentInfo.proto b/proto/SegmentInfo.proto
new file mode 100644
index 00000000..65165a79
--- /dev/null
+++ b/proto/SegmentInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SegmentInfo {
+ uint32 offset = 3;
+ uint32 module = 7;
+ uint32 size = 8;
+}
diff --git a/proto/SelectAsterMidDifficultyReq.proto b/proto/SelectAsterMidDifficultyReq.proto
new file mode 100644
index 00000000..fc762990
--- /dev/null
+++ b/proto/SelectAsterMidDifficultyReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2134
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SelectAsterMidDifficultyReq {
+ uint32 gadget_entity_id = 13;
+ uint32 schedule_id = 1;
+ uint32 difficulty_id = 5;
+}
diff --git a/proto/SelectAsterMidDifficultyRsp.proto b/proto/SelectAsterMidDifficultyRsp.proto
new file mode 100644
index 00000000..f44f4d75
--- /dev/null
+++ b/proto/SelectAsterMidDifficultyRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2180
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SelectAsterMidDifficultyRsp {
+ int32 retcode = 15;
+ uint32 schedule_id = 2;
+ uint32 gadget_entity_id = 5;
+ uint32 difficulty_id = 14;
+}
diff --git a/proto/SelectEffigyChallengeConditionReq.proto b/proto/SelectEffigyChallengeConditionReq.proto
new file mode 100644
index 00000000..d929fb03
--- /dev/null
+++ b/proto/SelectEffigyChallengeConditionReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2064
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SelectEffigyChallengeConditionReq {
+ uint32 difficulty_id = 15;
+ uint32 challenge_id = 7;
+ repeated uint32 condition_id_list = 9;
+}
diff --git a/proto/SelectEffigyChallengeConditionRsp.proto b/proto/SelectEffigyChallengeConditionRsp.proto
new file mode 100644
index 00000000..4149db35
--- /dev/null
+++ b/proto/SelectEffigyChallengeConditionRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2039
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SelectEffigyChallengeConditionRsp {
+ repeated uint32 condition_id_list = 12;
+ int32 retcode = 6;
+ uint32 difficulty_id = 7;
+ uint32 challenge_id = 2;
+}
diff --git a/proto/SelectRoguelikeDungeonCardReq.proto b/proto/SelectRoguelikeDungeonCardReq.proto
new file mode 100644
index 00000000..2af62ca1
--- /dev/null
+++ b/proto/SelectRoguelikeDungeonCardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8085
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SelectRoguelikeDungeonCardReq {
+ uint32 card_id = 13;
+}
diff --git a/proto/SelectRoguelikeDungeonCardRsp.proto b/proto/SelectRoguelikeDungeonCardRsp.proto
new file mode 100644
index 00000000..9bb7df71
--- /dev/null
+++ b/proto/SelectRoguelikeDungeonCardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8138
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SelectRoguelikeDungeonCardRsp {
+ uint32 card_id = 9;
+ int32 retcode = 8;
+}
diff --git a/proto/SelectWorktopOptionReq.proto b/proto/SelectWorktopOptionReq.proto
new file mode 100644
index 00000000..261ac02b
--- /dev/null
+++ b/proto/SelectWorktopOptionReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 807
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SelectWorktopOptionReq {
+ uint32 gadget_entity_id = 12;
+ uint32 option_id = 11;
+}
diff --git a/proto/SelectWorktopOptionRsp.proto b/proto/SelectWorktopOptionRsp.proto
new file mode 100644
index 00000000..d3a1d300
--- /dev/null
+++ b/proto/SelectWorktopOptionRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 821
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SelectWorktopOptionRsp {
+ uint32 gadget_entity_id = 13;
+ uint32 option_id = 7;
+ int32 retcode = 4;
+}
diff --git a/proto/ServantInfo.proto b/proto/ServantInfo.proto
new file mode 100644
index 00000000..ed2421de
--- /dev/null
+++ b/proto/ServantInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ServantInfo {
+ uint32 master_entity_id = 1;
+ uint32 born_slot_index = 2;
+}
diff --git a/proto/ServerAnnounceNotify.proto b/proto/ServerAnnounceNotify.proto
new file mode 100644
index 00000000..9b70c97b
--- /dev/null
+++ b/proto/ServerAnnounceNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AnnounceData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2197
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ServerAnnounceNotify {
+ repeated AnnounceData announce_data_list = 11;
+}
diff --git a/proto/ServerAnnounceRevokeNotify.proto b/proto/ServerAnnounceRevokeNotify.proto
new file mode 100644
index 00000000..ff3c984f
--- /dev/null
+++ b/proto/ServerAnnounceRevokeNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2092
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ServerAnnounceRevokeNotify {
+ repeated uint32 config_id_list = 15;
+}
diff --git a/proto/ServerBuff.proto b/proto/ServerBuff.proto
new file mode 100644
index 00000000..0b49125b
--- /dev/null
+++ b/proto/ServerBuff.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ServerBuff {
+ uint32 server_buff_uid = 1;
+ uint32 server_buff_id = 2;
+ uint32 server_buff_type = 3;
+ uint32 instanced_modifier_id = 4;
+ bool is_modifier_added = 5;
+}
diff --git a/proto/ServerBuffChangeNotify.proto b/proto/ServerBuffChangeNotify.proto
new file mode 100644
index 00000000..540e0fde
--- /dev/null
+++ b/proto/ServerBuffChangeNotify.proto
@@ -0,0 +1,38 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ServerBuff.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 361
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ServerBuffChangeNotify {
+ ServerBuffChangeType server_buff_change_type = 7;
+ bool is_creature_buff = 10;
+ repeated uint32 entity_id_list = 1;
+ repeated uint64 avatar_guid_list = 12;
+ repeated ServerBuff server_buff_list = 11;
+
+ enum ServerBuffChangeType {
+ SERVER_BUFF_CHANGE_TYPE_ADD_SERVER_BUFF = 0;
+ SERVER_BUFF_CHANGE_TYPE_DEL_SERVER_BUFF = 1;
+ }
+}
diff --git a/proto/ServerCondMeetQuestListUpdateNotify.proto b/proto/ServerCondMeetQuestListUpdateNotify.proto
new file mode 100644
index 00000000..21bb639e
--- /dev/null
+++ b/proto/ServerCondMeetQuestListUpdateNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 406
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ServerCondMeetQuestListUpdateNotify {
+ repeated uint32 del_quest_id_list = 1;
+ repeated uint32 add_quest_id_list = 12;
+}
diff --git a/proto/ServerDisconnectClientNotify.proto b/proto/ServerDisconnectClientNotify.proto
new file mode 100644
index 00000000..f35fcf0d
--- /dev/null
+++ b/proto/ServerDisconnectClientNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 184
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ServerDisconnectClientNotify {
+ uint32 data = 10;
+}
diff --git a/proto/ServerGlobalValueChangeNotify.proto b/proto/ServerGlobalValueChangeNotify.proto
new file mode 100644
index 00000000..d28effeb
--- /dev/null
+++ b/proto/ServerGlobalValueChangeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1197
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ServerGlobalValueChangeNotify {
+ uint32 entity_id = 6;
+ float value = 12;
+ uint32 key_hash = 13;
+}
diff --git a/proto/ServerLogLevel.proto b/proto/ServerLogLevel.proto
new file mode 100644
index 00000000..5c5febf3
--- /dev/null
+++ b/proto/ServerLogLevel.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum ServerLogLevel {
+ SERVER_LOG_LEVEL_NONE = 0;
+ SERVER_LOG_LEVEL_DEBUG = 1;
+ SERVER_LOG_LEVEL_INFO = 2;
+ SERVER_LOG_LEVEL_WARNING = 3;
+ SERVER_LOG_LEVEL_ERROR = 4;
+}
diff --git a/proto/ServerLogNotify.proto b/proto/ServerLogNotify.proto
new file mode 100644
index 00000000..ce318da0
--- /dev/null
+++ b/proto/ServerLogNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ServerLogLevel.proto";
+import "ServerLogType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 31
+// EnetChannelId: 1
+// EnetIsReliable: true
+message ServerLogNotify {
+ string server_log = 7;
+ ServerLogType log_type = 9;
+ ServerLogLevel log_level = 15;
+}
diff --git a/proto/ServerLogType.proto b/proto/ServerLogType.proto
new file mode 100644
index 00000000..0fe9d88b
--- /dev/null
+++ b/proto/ServerLogType.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum ServerLogType {
+ SERVER_LOG_TYPE_NONE = 0;
+ SERVER_LOG_TYPE_ABILITY = 1;
+ SERVER_LOG_TYPE_LEVEL = 2;
+ SERVER_LOG_TYPE_ENTITY = 3;
+ SERVER_LOG_TYPE_LUA = 4;
+}
diff --git a/proto/ServerMassiveEntity.proto b/proto/ServerMassiveEntity.proto
new file mode 100644
index 00000000..f5aced2b
--- /dev/null
+++ b/proto/ServerMassiveEntity.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MassiveBoxInfo.proto";
+import "MassiveGrassInfo.proto";
+import "MassiveWaterInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ServerMassiveEntity {
+ uint32 entity_type = 1;
+ uint32 config_id = 2;
+ uint32 runtime_id = 3;
+ uint32 authority_peer_id = 4;
+ int64 obj_id = 5;
+ oneof entity_info {
+ MassiveWaterInfo water_info = 6;
+ MassiveGrassInfo grass_info = 7;
+ MassiveBoxInfo box_info = 8;
+ }
+}
diff --git a/proto/ServerMessageNotify.proto b/proto/ServerMessageNotify.proto
new file mode 100644
index 00000000..f7b8a962
--- /dev/null
+++ b/proto/ServerMessageNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5718
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ServerMessageNotify {
+ uint32 index = 1;
+}
diff --git a/proto/ServerTimeNotify.proto b/proto/ServerTimeNotify.proto
new file mode 100644
index 00000000..4db05f4d
--- /dev/null
+++ b/proto/ServerTimeNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 99
+// EnetChannelId: 1
+// EnetIsReliable: true
+message ServerTimeNotify {
+ uint64 server_time = 5;
+}
diff --git a/proto/ServerUpdateGlobalValueNotify.proto b/proto/ServerUpdateGlobalValueNotify.proto
new file mode 100644
index 00000000..2e98036a
--- /dev/null
+++ b/proto/ServerUpdateGlobalValueNotify.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1148
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ServerUpdateGlobalValueNotify {
+ uint32 entity_id = 9;
+ UpdateType update_type = 13;
+ float delta = 3;
+ uint32 key_hash = 10;
+ float value = 6;
+
+ enum UpdateType {
+ UPDATE_TYPE_INVALUE = 0;
+ UPDATE_TYPE_ADD = 1;
+ UPDATE_TYPE_SET = 2;
+ }
+}
diff --git a/proto/SetBattlePassViewedReq.proto b/proto/SetBattlePassViewedReq.proto
new file mode 100644
index 00000000..462645fa
--- /dev/null
+++ b/proto/SetBattlePassViewedReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2641
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetBattlePassViewedReq {
+ uint32 schedule_id = 6;
+}
diff --git a/proto/SetBattlePassViewedRsp.proto b/proto/SetBattlePassViewedRsp.proto
new file mode 100644
index 00000000..c584dd62
--- /dev/null
+++ b/proto/SetBattlePassViewedRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2642
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetBattlePassViewedRsp {
+ uint32 schedule_id = 2;
+ int32 retcode = 3;
+}
diff --git a/proto/SetChatEmojiCollectionReq.proto b/proto/SetChatEmojiCollectionReq.proto
new file mode 100644
index 00000000..c28f9a0a
--- /dev/null
+++ b/proto/SetChatEmojiCollectionReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ChatEmojiCollectionData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4084
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetChatEmojiCollectionReq {
+ ChatEmojiCollectionData chat_emoji_collection_data = 12;
+}
diff --git a/proto/SetChatEmojiCollectionRsp.proto b/proto/SetChatEmojiCollectionRsp.proto
new file mode 100644
index 00000000..3f22d2ee
--- /dev/null
+++ b/proto/SetChatEmojiCollectionRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4080
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetChatEmojiCollectionRsp {
+ int32 retcode = 12;
+}
diff --git a/proto/SetCoopChapterViewedReq.proto b/proto/SetCoopChapterViewedReq.proto
new file mode 100644
index 00000000..5ad59dbc
--- /dev/null
+++ b/proto/SetCoopChapterViewedReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1965
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetCoopChapterViewedReq {
+ uint32 chapter_id = 2;
+}
diff --git a/proto/SetCoopChapterViewedRsp.proto b/proto/SetCoopChapterViewedRsp.proto
new file mode 100644
index 00000000..7c1b04b3
--- /dev/null
+++ b/proto/SetCoopChapterViewedRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1963
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetCoopChapterViewedRsp {
+ uint32 chapter_id = 11;
+ int32 retcode = 2;
+}
diff --git a/proto/SetCurExpeditionChallengeIdReq.proto b/proto/SetCurExpeditionChallengeIdReq.proto
new file mode 100644
index 00000000..a2e75f79
--- /dev/null
+++ b/proto/SetCurExpeditionChallengeIdReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2021
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetCurExpeditionChallengeIdReq {
+ uint32 id = 5;
+}
diff --git a/proto/SetCurExpeditionChallengeIdRsp.proto b/proto/SetCurExpeditionChallengeIdRsp.proto
new file mode 100644
index 00000000..4ee0386c
--- /dev/null
+++ b/proto/SetCurExpeditionChallengeIdRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2049
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetCurExpeditionChallengeIdRsp {
+ uint32 id = 14;
+ int32 retcode = 3;
+}
diff --git a/proto/SetEntityClientDataNotify.proto b/proto/SetEntityClientDataNotify.proto
new file mode 100644
index 00000000..10ef3c14
--- /dev/null
+++ b/proto/SetEntityClientDataNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EntityClientData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3146
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetEntityClientDataNotify {
+ uint32 entity_id = 14;
+ EntityClientData entity_client_data = 9;
+}
diff --git a/proto/SetEquipLockStateReq.proto b/proto/SetEquipLockStateReq.proto
new file mode 100644
index 00000000..1be6545e
--- /dev/null
+++ b/proto/SetEquipLockStateReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 666
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetEquipLockStateReq {
+ bool is_locked = 15;
+ uint64 target_equip_guid = 9;
+}
diff --git a/proto/SetEquipLockStateRsp.proto b/proto/SetEquipLockStateRsp.proto
new file mode 100644
index 00000000..20e1580b
--- /dev/null
+++ b/proto/SetEquipLockStateRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 668
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetEquipLockStateRsp {
+ uint64 target_equip_guid = 14;
+ int32 retcode = 13;
+ bool is_locked = 10;
+}
diff --git a/proto/SetFriendEnterHomeOptionReq.proto b/proto/SetFriendEnterHomeOptionReq.proto
new file mode 100644
index 00000000..2648ab30
--- /dev/null
+++ b/proto/SetFriendEnterHomeOptionReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FriendEnterHomeOption.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4494
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetFriendEnterHomeOptionReq {
+ FriendEnterHomeOption option = 7;
+}
diff --git a/proto/SetFriendEnterHomeOptionRsp.proto b/proto/SetFriendEnterHomeOptionRsp.proto
new file mode 100644
index 00000000..55b10d81
--- /dev/null
+++ b/proto/SetFriendEnterHomeOptionRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4743
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetFriendEnterHomeOptionRsp {
+ int32 retcode = 1;
+}
diff --git a/proto/SetFriendRemarkNameReq.proto b/proto/SetFriendRemarkNameReq.proto
new file mode 100644
index 00000000..743e429e
--- /dev/null
+++ b/proto/SetFriendRemarkNameReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4042
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetFriendRemarkNameReq {
+ uint32 uid = 10;
+ string remark_name = 8;
+}
diff --git a/proto/SetFriendRemarkNameRsp.proto b/proto/SetFriendRemarkNameRsp.proto
new file mode 100644
index 00000000..30dd6fbc
--- /dev/null
+++ b/proto/SetFriendRemarkNameRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4030
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetFriendRemarkNameRsp {
+ string remark_name = 13;
+ bool is_clear_remark = 3;
+ uint32 uid = 10;
+ int32 retcode = 1;
+}
diff --git a/proto/SetH5ActivityRedDotTimestampReq.proto b/proto/SetH5ActivityRedDotTimestampReq.proto
new file mode 100644
index 00000000..3152bf50
--- /dev/null
+++ b/proto/SetH5ActivityRedDotTimestampReq.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5657
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetH5ActivityRedDotTimestampReq {
+ uint32 client_red_dot_timestamp = 13;
+}
diff --git a/proto/SetH5ActivityRedDotTimestampRsp.proto b/proto/SetH5ActivityRedDotTimestampRsp.proto
new file mode 100644
index 00000000..27b514ba
--- /dev/null
+++ b/proto/SetH5ActivityRedDotTimestampRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5652
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetH5ActivityRedDotTimestampRsp {
+ int32 retcode = 4;
+}
diff --git a/proto/SetIsAutoUnlockSpecificEquipReq.proto b/proto/SetIsAutoUnlockSpecificEquipReq.proto
new file mode 100644
index 00000000..4e905a14
--- /dev/null
+++ b/proto/SetIsAutoUnlockSpecificEquipReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 620
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetIsAutoUnlockSpecificEquipReq {
+ bool is_auto_unlock_specific_equip = 14;
+}
diff --git a/proto/SetIsAutoUnlockSpecificEquipRsp.proto b/proto/SetIsAutoUnlockSpecificEquipRsp.proto
new file mode 100644
index 00000000..b649b433
--- /dev/null
+++ b/proto/SetIsAutoUnlockSpecificEquipRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 664
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetIsAutoUnlockSpecificEquipRsp {
+ int32 retcode = 3;
+}
diff --git a/proto/SetLimitOptimizationNotify.proto b/proto/SetLimitOptimizationNotify.proto
new file mode 100644
index 00000000..a05836e1
--- /dev/null
+++ b/proto/SetLimitOptimizationNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8851
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetLimitOptimizationNotify {
+ bool is_active = 3;
+}
diff --git a/proto/SetNameCardReq.proto b/proto/SetNameCardReq.proto
new file mode 100644
index 00000000..d56f3202
--- /dev/null
+++ b/proto/SetNameCardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4004
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetNameCardReq {
+ uint32 name_card_id = 10;
+}
diff --git a/proto/SetNameCardRsp.proto b/proto/SetNameCardRsp.proto
new file mode 100644
index 00000000..0e82efbb
--- /dev/null
+++ b/proto/SetNameCardRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4093
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetNameCardRsp {
+ uint32 name_card_id = 11;
+ int32 retcode = 12;
+}
diff --git a/proto/SetOpenStateReq.proto b/proto/SetOpenStateReq.proto
new file mode 100644
index 00000000..0dd26f2c
--- /dev/null
+++ b/proto/SetOpenStateReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 165
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetOpenStateReq {
+ uint32 key = 12;
+ uint32 value = 5;
+}
diff --git a/proto/SetOpenStateRsp.proto b/proto/SetOpenStateRsp.proto
new file mode 100644
index 00000000..eba4a446
--- /dev/null
+++ b/proto/SetOpenStateRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 104
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetOpenStateRsp {
+ uint32 key = 9;
+ int32 retcode = 14;
+ uint32 value = 15;
+}
diff --git a/proto/SetPlayerBirthdayReq.proto b/proto/SetPlayerBirthdayReq.proto
new file mode 100644
index 00000000..cdc63459
--- /dev/null
+++ b/proto/SetPlayerBirthdayReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Birthday.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4048
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetPlayerBirthdayReq {
+ Birthday birthday = 9;
+}
diff --git a/proto/SetPlayerBirthdayRsp.proto b/proto/SetPlayerBirthdayRsp.proto
new file mode 100644
index 00000000..7f017649
--- /dev/null
+++ b/proto/SetPlayerBirthdayRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Birthday.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4097
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetPlayerBirthdayRsp {
+ Birthday birthday = 2;
+ int32 retcode = 5;
+}
diff --git a/proto/SetPlayerBornDataReq.proto b/proto/SetPlayerBornDataReq.proto
new file mode 100644
index 00000000..34b72911
--- /dev/null
+++ b/proto/SetPlayerBornDataReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 105
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetPlayerBornDataReq {
+ uint32 avatar_id = 2;
+ string nick_name = 13;
+}
diff --git a/proto/SetPlayerBornDataRsp.proto b/proto/SetPlayerBornDataRsp.proto
new file mode 100644
index 00000000..efdc2159
--- /dev/null
+++ b/proto/SetPlayerBornDataRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 182
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetPlayerBornDataRsp {
+ int32 retcode = 10;
+}
diff --git a/proto/SetPlayerHeadImageReq.proto b/proto/SetPlayerHeadImageReq.proto
new file mode 100644
index 00000000..2d17b674
--- /dev/null
+++ b/proto/SetPlayerHeadImageReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4082
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetPlayerHeadImageReq {
+ uint32 avatar_id = 7;
+}
diff --git a/proto/SetPlayerHeadImageRsp.proto b/proto/SetPlayerHeadImageRsp.proto
new file mode 100644
index 00000000..dfae85cd
--- /dev/null
+++ b/proto/SetPlayerHeadImageRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4047
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetPlayerHeadImageRsp {
+ ProfilePicture profile_picture = 6;
+ uint32 avatar_id = 5;
+ int32 retcode = 1;
+}
diff --git a/proto/SetPlayerNameReq.proto b/proto/SetPlayerNameReq.proto
new file mode 100644
index 00000000..68c7cc98
--- /dev/null
+++ b/proto/SetPlayerNameReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 153
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetPlayerNameReq {
+ string nick_name = 1;
+}
diff --git a/proto/SetPlayerNameRsp.proto b/proto/SetPlayerNameRsp.proto
new file mode 100644
index 00000000..e403894a
--- /dev/null
+++ b/proto/SetPlayerNameRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 122
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetPlayerNameRsp {
+ int32 retcode = 9;
+ string nick_name = 14;
+}
diff --git a/proto/SetPlayerPropReq.proto b/proto/SetPlayerPropReq.proto
new file mode 100644
index 00000000..3d305037
--- /dev/null
+++ b/proto/SetPlayerPropReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PropValue.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 197
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetPlayerPropReq {
+ repeated PropValue prop_list = 7;
+}
diff --git a/proto/SetPlayerPropRsp.proto b/proto/SetPlayerPropRsp.proto
new file mode 100644
index 00000000..a28eeabb
--- /dev/null
+++ b/proto/SetPlayerPropRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 181
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetPlayerPropRsp {
+ int32 retcode = 11;
+}
diff --git a/proto/SetPlayerSignatureReq.proto b/proto/SetPlayerSignatureReq.proto
new file mode 100644
index 00000000..a08a3eab
--- /dev/null
+++ b/proto/SetPlayerSignatureReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4081
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetPlayerSignatureReq {
+ string signature = 3;
+}
diff --git a/proto/SetPlayerSignatureRsp.proto b/proto/SetPlayerSignatureRsp.proto
new file mode 100644
index 00000000..e0633235
--- /dev/null
+++ b/proto/SetPlayerSignatureRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4005
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetPlayerSignatureRsp {
+ string signature = 1;
+ int32 retcode = 4;
+}
diff --git a/proto/SetSceneWeatherAreaReq.proto b/proto/SetSceneWeatherAreaReq.proto
new file mode 100644
index 00000000..435f2897
--- /dev/null
+++ b/proto/SetSceneWeatherAreaReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 254
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetSceneWeatherAreaReq {
+ uint32 weather_gadget_id = 13;
+ map weather_value_map = 4;
+}
diff --git a/proto/SetSceneWeatherAreaRsp.proto b/proto/SetSceneWeatherAreaRsp.proto
new file mode 100644
index 00000000..b6f6d92e
--- /dev/null
+++ b/proto/SetSceneWeatherAreaRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 283
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetSceneWeatherAreaRsp {
+ int32 retcode = 4;
+}
diff --git a/proto/SetUpAvatarTeamReq.proto b/proto/SetUpAvatarTeamReq.proto
new file mode 100644
index 00000000..17351a23
--- /dev/null
+++ b/proto/SetUpAvatarTeamReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1690
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetUpAvatarTeamReq {
+ uint32 team_id = 3;
+ repeated uint64 avatar_team_guid_list = 7;
+ uint64 cur_avatar_guid = 5;
+}
diff --git a/proto/SetUpAvatarTeamRsp.proto b/proto/SetUpAvatarTeamRsp.proto
new file mode 100644
index 00000000..0915c688
--- /dev/null
+++ b/proto/SetUpAvatarTeamRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1646
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetUpAvatarTeamRsp {
+ repeated uint64 avatar_team_guid_list = 1;
+ uint32 team_id = 6;
+ int32 retcode = 8;
+ uint64 cur_avatar_guid = 13;
+}
diff --git a/proto/SetUpLunchBoxWidgetReq.proto b/proto/SetUpLunchBoxWidgetReq.proto
new file mode 100644
index 00000000..802e343a
--- /dev/null
+++ b/proto/SetUpLunchBoxWidgetReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "LunchBoxData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4272
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetUpLunchBoxWidgetReq {
+ LunchBoxData lunch_box_data = 6;
+}
diff --git a/proto/SetUpLunchBoxWidgetRsp.proto b/proto/SetUpLunchBoxWidgetRsp.proto
new file mode 100644
index 00000000..52daea82
--- /dev/null
+++ b/proto/SetUpLunchBoxWidgetRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "LunchBoxData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4294
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetUpLunchBoxWidgetRsp {
+ LunchBoxData lunch_box_data = 3;
+ int32 retcode = 13;
+}
diff --git a/proto/SetWidgetSlotReq.proto b/proto/SetWidgetSlotReq.proto
new file mode 100644
index 00000000..5b0b421d
--- /dev/null
+++ b/proto/SetWidgetSlotReq.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WidgetSlotOp.proto";
+import "WidgetSlotTag.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4259
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SetWidgetSlotReq {
+ repeated WidgetSlotTag tag_list = 15;
+ uint32 material_id = 6;
+ WidgetSlotOp op = 2;
+}
diff --git a/proto/SetWidgetSlotRsp.proto b/proto/SetWidgetSlotRsp.proto
new file mode 100644
index 00000000..535658cc
--- /dev/null
+++ b/proto/SetWidgetSlotRsp.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WidgetSlotOp.proto";
+import "WidgetSlotTag.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4277
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SetWidgetSlotRsp {
+ repeated WidgetSlotTag tag_list = 15;
+ int32 retcode = 6;
+ uint32 material_id = 1;
+ WidgetSlotOp op = 4;
+}
diff --git a/proto/ShapeBox.proto b/proto/ShapeBox.proto
new file mode 100644
index 00000000..9bb78f32
--- /dev/null
+++ b/proto/ShapeBox.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ShapeBox {
+ Vector center = 1;
+ Vector axis_0 = 2;
+ Vector axis_1 = 3;
+ Vector axis_2 = 4;
+ Vector extents = 5;
+}
diff --git a/proto/ShapeSphere.proto b/proto/ShapeSphere.proto
new file mode 100644
index 00000000..b3e9d975
--- /dev/null
+++ b/proto/ShapeSphere.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ShapeSphere {
+ Vector center = 1;
+ float radius = 2;
+}
diff --git a/proto/Shop.proto b/proto/Shop.proto
new file mode 100644
index 00000000..e1fae8df
--- /dev/null
+++ b/proto/Shop.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ShopCardProduct.proto";
+import "ShopConcertProduct.proto";
+import "ShopGoods.proto";
+import "ShopMcoinProduct.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Shop {
+ repeated ShopConcertProduct concert_product_list = 3;
+ repeated ShopGoods goods_list = 15;
+ uint32 city_reputation_level = 2;
+ repeated ShopCardProduct card_product_list = 14;
+ repeated ShopMcoinProduct mcoin_product_list = 7;
+ uint32 next_refresh_time = 11;
+ uint32 city_id = 10;
+ uint32 shop_type = 13;
+}
diff --git a/proto/ShopCardProduct.proto b/proto/ShopCardProduct.proto
new file mode 100644
index 00000000..ac5c4a5a
--- /dev/null
+++ b/proto/ShopCardProduct.proto
@@ -0,0 +1,40 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ShopCardProduct {
+ string product_id = 1;
+ string price_tier = 2;
+ uint32 mcoin_base = 3;
+ uint32 hcoin_per_day = 4;
+ uint32 days = 5;
+ uint32 remain_reward_days = 6;
+ uint32 card_product_type = 7;
+ oneof extra_card_data {
+ ResinCard resin_card = 101;
+ }
+
+ message ResinCard {
+ repeated ItemParam base_item_list = 1;
+ repeated ItemParam per_day_item_list = 2;
+ }
+}
diff --git a/proto/ShopConcertProduct.proto b/proto/ShopConcertProduct.proto
new file mode 100644
index 00000000..1b8aac57
--- /dev/null
+++ b/proto/ShopConcertProduct.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ShopConcertProduct {
+ string product_id = 1;
+ string price_tier = 2;
+ uint32 obtain_count = 3;
+ uint32 obtain_limit = 4;
+ uint32 begin_time = 5;
+ uint32 end_time = 6;
+ uint32 buy_times = 7;
+}
diff --git a/proto/ShopGoods.proto b/proto/ShopGoods.proto
new file mode 100644
index 00000000..fe994191
--- /dev/null
+++ b/proto/ShopGoods.proto
@@ -0,0 +1,45 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ShopGoods {
+ uint32 discount_end_time = 258;
+ uint32 min_level = 8;
+ uint32 end_time = 11;
+ repeated ItemParam cost_item_list = 3;
+ uint32 secondary_sheet_id = 318;
+ uint32 hcoin = 1;
+ uint32 mcoin = 14;
+ uint32 discount_id = 1998;
+ uint32 single_limit = 247;
+ uint32 goods_id = 13;
+ uint32 next_refresh_time = 7;
+ uint32 max_level = 4;
+ uint32 disable_type = 6;
+ uint32 discount_begin_time = 574;
+ repeated uint32 pre_goods_id_list = 2;
+ uint32 begin_time = 5;
+ uint32 scoin = 15;
+ uint32 bought_num = 10;
+ uint32 buy_limit = 12;
+ ItemParam goods_item = 9;
+}
diff --git a/proto/ShopMcoinProduct.proto b/proto/ShopMcoinProduct.proto
new file mode 100644
index 00000000..0171dbe3
--- /dev/null
+++ b/proto/ShopMcoinProduct.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ShopMcoinProduct {
+ string product_id = 1;
+ string price_tier = 2;
+ uint32 mcoin_base = 3;
+ uint32 mcoin_non_first = 4;
+ uint32 mcoin_first = 5;
+ uint32 bought_num = 6;
+ bool is_audit = 7;
+}
diff --git a/proto/ShortAbilityHashPair.proto b/proto/ShortAbilityHashPair.proto
new file mode 100644
index 00000000..4635ad4d
--- /dev/null
+++ b/proto/ShortAbilityHashPair.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ShortAbilityHashPair {
+ sfixed32 ability_config_hash = 15;
+ sfixed32 ability_name_hash = 1;
+}
diff --git a/proto/ShowAvatarInfo.proto b/proto/ShowAvatarInfo.proto
new file mode 100644
index 00000000..6d2a08d6
--- /dev/null
+++ b/proto/ShowAvatarInfo.proto
@@ -0,0 +1,41 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarExcelInfo.proto";
+import "AvatarFetterInfo.proto";
+import "PropValue.proto";
+import "ShowEquip.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ShowAvatarInfo {
+ uint32 avatar_id = 1;
+ map prop_map = 2;
+ repeated uint32 talent_id_list = 3;
+ map fight_prop_map = 4;
+ uint32 skill_depot_id = 5;
+ uint32 core_proud_skill_level = 6;
+ repeated uint32 inherent_proud_skill_list = 7;
+ map skill_level_map = 8;
+ map proud_skill_extra_level_map = 9;
+ repeated ShowEquip equip_list = 10;
+ AvatarFetterInfo fetter_info = 11;
+ uint32 costume_id = 12;
+ AvatarExcelInfo excel_info = 13;
+}
diff --git a/proto/ShowClientGuideNotify.proto b/proto/ShowClientGuideNotify.proto
new file mode 100644
index 00000000..4cbbbe84
--- /dev/null
+++ b/proto/ShowClientGuideNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3005
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ShowClientGuideNotify {
+ string guide_name = 7;
+}
diff --git a/proto/ShowClientTutorialNotify.proto b/proto/ShowClientTutorialNotify.proto
new file mode 100644
index 00000000..b271420c
--- /dev/null
+++ b/proto/ShowClientTutorialNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3305
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ShowClientTutorialNotify {
+ uint32 tutorial_id = 2;
+}
diff --git a/proto/ShowCommonTipsNotify.proto b/proto/ShowCommonTipsNotify.proto
new file mode 100644
index 00000000..a30d630b
--- /dev/null
+++ b/proto/ShowCommonTipsNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3352
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ShowCommonTipsNotify {
+ string content = 8;
+ string title = 13;
+ uint32 close_time = 4;
+}
diff --git a/proto/ShowEquip.proto b/proto/ShowEquip.proto
new file mode 100644
index 00000000..045ed9ee
--- /dev/null
+++ b/proto/ShowEquip.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Reliquary.proto";
+import "Weapon.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ShowEquip {
+ uint32 item_id = 1;
+ oneof detail {
+ Reliquary reliquary = 2;
+ Weapon weapon = 3;
+ }
+}
diff --git a/proto/ShowMessageNotify.proto b/proto/ShowMessageNotify.proto
new file mode 100644
index 00000000..21289e2d
--- /dev/null
+++ b/proto/ShowMessageNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MsgParam.proto";
+import "SvrMsgId.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 35
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ShowMessageNotify {
+ SvrMsgId msg_id = 14;
+ repeated MsgParam params = 13;
+}
diff --git a/proto/ShowTemplateReminderNotify.proto b/proto/ShowTemplateReminderNotify.proto
new file mode 100644
index 00000000..28c7a6d2
--- /dev/null
+++ b/proto/ShowTemplateReminderNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3491
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ShowTemplateReminderNotify {
+ repeated uint32 param_uid_list = 3;
+ repeated int32 param_list = 10;
+ uint32 template_reminder_id = 14;
+ bool is_revoke = 1;
+}
diff --git a/proto/SignInInfo.proto b/proto/SignInInfo.proto
new file mode 100644
index 00000000..d504fcc3
--- /dev/null
+++ b/proto/SignInInfo.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_HENCIJOPCIF.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SignInInfo {
+ bool is_cond_satisfied = 7;
+ repeated uint32 reward_day_list = 15;
+ repeated Unk2700_HENCIJOPCIF Unk2700_HBMMIEOFIEI = 12;
+ uint32 config_id = 8;
+ uint32 sign_in_count = 2;
+ uint32 schedule_id = 3;
+ uint32 end_time = 13;
+ uint32 last_sign_in_time = 6;
+ uint32 begin_time = 5;
+}
diff --git a/proto/SignInInfoReq.proto b/proto/SignInInfoReq.proto
new file mode 100644
index 00000000..5e6a741f
--- /dev/null
+++ b/proto/SignInInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2512
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SignInInfoReq {}
diff --git a/proto/SignInInfoRsp.proto b/proto/SignInInfoRsp.proto
new file mode 100644
index 00000000..e414ebb3
--- /dev/null
+++ b/proto/SignInInfoRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SignInInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2535
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SignInInfoRsp {
+ repeated SignInInfo sign_in_info_list = 1;
+ int32 retcode = 11;
+}
diff --git a/proto/SkillRequest.proto b/proto/SkillRequest.proto
new file mode 100644
index 00000000..6d60c8d1
--- /dev/null
+++ b/proto/SkillRequest.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SkillRequest {
+ uint32 skill_depot_id = 1;
+}
diff --git a/proto/SkillResponse.proto b/proto/SkillResponse.proto
new file mode 100644
index 00000000..fba594ea
--- /dev/null
+++ b/proto/SkillResponse.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SkillResponse {
+ uint32 skill_depot_id = 13;
+ repeated uint32 skill_id_list = 9;
+}
diff --git a/proto/SkyCrystalDetectorQuickUseResult.proto b/proto/SkyCrystalDetectorQuickUseResult.proto
new file mode 100644
index 00000000..090f24aa
--- /dev/null
+++ b/proto/SkyCrystalDetectorQuickUseResult.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_CCEOEOHLAPK.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SkyCrystalDetectorQuickUseResult {
+ Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 9;
+ int32 retcode = 8;
+}
diff --git a/proto/SocialDataNotify.proto b/proto/SocialDataNotify.proto
new file mode 100644
index 00000000..294a44c5
--- /dev/null
+++ b/proto/SocialDataNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4043
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SocialDataNotify {
+ bool is_have_first_share = 11;
+}
diff --git a/proto/SocialDetail.proto b/proto/SocialDetail.proto
new file mode 100644
index 00000000..e0007ded
--- /dev/null
+++ b/proto/SocialDetail.proto
@@ -0,0 +1,54 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Birthday.proto";
+import "FriendEnterHomeOption.proto";
+import "FriendOnlineState.proto";
+import "ProfilePicture.proto";
+import "SocialShowAvatarInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SocialDetail {
+ uint32 uid = 1;
+ string nickname = 2;
+ uint32 level = 3;
+ uint32 avatar_id = 4;
+ string signature = 5;
+ Birthday birthday = 6;
+ uint32 world_level = 7;
+ repeated uint32 reserved_list = 8;
+ FriendOnlineState online_state = 9;
+ uint32 param = 10;
+ bool is_friend = 11;
+ bool is_mp_mode_available = 12;
+ string online_id = 13;
+ uint32 name_card_id = 14;
+ bool is_in_blacklist = 15;
+ bool is_chat_no_disturb = 16;
+ string remark_name = 17;
+ uint32 finish_achievement_num = 18;
+ uint32 tower_floor_index = 19;
+ uint32 tower_level_index = 20;
+ bool is_show_avatar = 21;
+ repeated SocialShowAvatarInfo show_avatar_info_list = 22;
+ repeated uint32 show_name_card_id_list = 23;
+ FriendEnterHomeOption friend_enter_home_option = 24;
+ ProfilePicture profile_picture = 25;
+}
diff --git a/proto/SocialShowAvatarInfo.proto b/proto/SocialShowAvatarInfo.proto
new file mode 100644
index 00000000..0ff9b015
--- /dev/null
+++ b/proto/SocialShowAvatarInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SocialShowAvatarInfo {
+ uint32 avatar_id = 1;
+ uint32 level = 2;
+ uint32 costume_id = 3;
+}
diff --git a/proto/SpiceActivityDetailInfo.proto b/proto/SpiceActivityDetailInfo.proto
new file mode 100644
index 00000000..94ff5a58
--- /dev/null
+++ b/proto/SpiceActivityDetailInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SpiceStage.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SpiceActivityDetailInfo {
+ uint32 Unk2700_IGMHNDNGNPG = 15;
+ repeated SpiceStage spice_stage_list = 7;
+ uint32 Unk2700_KIAHJKGOLGO = 13;
+}
diff --git a/proto/SpiceStage.proto b/proto/SpiceStage.proto
new file mode 100644
index 00000000..39e259d4
--- /dev/null
+++ b/proto/SpiceStage.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SpiceStage {
+ bool is_open = 12;
+ uint32 Unk2700_KLOFGMKDDAK = 1;
+ uint32 stage_id = 6;
+}
diff --git a/proto/SpringUseReq.proto b/proto/SpringUseReq.proto
new file mode 100644
index 00000000..d614a23e
--- /dev/null
+++ b/proto/SpringUseReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1748
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SpringUseReq {
+ uint64 guid = 11;
+}
diff --git a/proto/SpringUseRsp.proto b/proto/SpringUseRsp.proto
new file mode 100644
index 00000000..e8c4e4da
--- /dev/null
+++ b/proto/SpringUseRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1642
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SpringUseRsp {
+ uint64 guid = 3;
+ int32 retcode = 7;
+}
diff --git a/proto/StakePlayGalleryInfo.proto b/proto/StakePlayGalleryInfo.proto
new file mode 100644
index 00000000..6119aa68
--- /dev/null
+++ b/proto/StakePlayGalleryInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_BEGHDPPNMFM.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message StakePlayGalleryInfo {
+ repeated Unk2700_BEGHDPPNMFM record_list = 13;
+}
diff --git a/proto/StartArenaChallengeLevelReq.proto b/proto/StartArenaChallengeLevelReq.proto
new file mode 100644
index 00000000..7ee6f37f
--- /dev/null
+++ b/proto/StartArenaChallengeLevelReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2127
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message StartArenaChallengeLevelReq {
+ uint32 arena_challenge_id = 4;
+ uint32 gadget_entity_id = 5;
+ uint32 arena_challenge_level = 2;
+}
diff --git a/proto/StartArenaChallengeLevelRsp.proto b/proto/StartArenaChallengeLevelRsp.proto
new file mode 100644
index 00000000..50ea9491
--- /dev/null
+++ b/proto/StartArenaChallengeLevelRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2125
+// EnetChannelId: 0
+// EnetIsReliable: true
+message StartArenaChallengeLevelRsp {
+ uint32 arena_challenge_level = 1;
+ int32 retcode = 9;
+ uint32 gadget_entity_id = 3;
+ uint32 arena_challenge_id = 6;
+}
diff --git a/proto/StartBuoyantCombatGalleryReq.proto b/proto/StartBuoyantCombatGalleryReq.proto
new file mode 100644
index 00000000..e5dfdbb2
--- /dev/null
+++ b/proto/StartBuoyantCombatGalleryReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8732
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message StartBuoyantCombatGalleryReq {
+ uint32 gallery_id = 15;
+ uint32 gallery_level = 13;
+}
diff --git a/proto/StartBuoyantCombatGalleryRsp.proto b/proto/StartBuoyantCombatGalleryRsp.proto
new file mode 100644
index 00000000..59940663
--- /dev/null
+++ b/proto/StartBuoyantCombatGalleryRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8680
+// EnetChannelId: 0
+// EnetIsReliable: true
+message StartBuoyantCombatGalleryRsp {
+ uint32 gallery_level = 12;
+ int32 retcode = 5;
+ uint32 gallery_id = 8;
+}
diff --git a/proto/StartCoopPointReq.proto b/proto/StartCoopPointReq.proto
new file mode 100644
index 00000000..f4b3de1b
--- /dev/null
+++ b/proto/StartCoopPointReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1992
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message StartCoopPointReq {
+ uint32 coop_point = 7;
+}
diff --git a/proto/StartCoopPointRsp.proto b/proto/StartCoopPointRsp.proto
new file mode 100644
index 00000000..05256397
--- /dev/null
+++ b/proto/StartCoopPointRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MainCoop.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1964
+// EnetChannelId: 0
+// EnetIsReliable: true
+message StartCoopPointRsp {
+ bool is_start = 9;
+ MainCoop start_main_coop = 15;
+ uint32 coop_point = 13;
+ int32 retcode = 8;
+}
diff --git a/proto/StartEffigyChallengeReq.proto b/proto/StartEffigyChallengeReq.proto
new file mode 100644
index 00000000..655feb85
--- /dev/null
+++ b/proto/StartEffigyChallengeReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2169
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message StartEffigyChallengeReq {
+ uint32 difficulty_id = 9;
+ repeated uint32 condition_id_list = 6;
+ uint32 challenge_id = 1;
+ uint32 point_id = 12;
+}
diff --git a/proto/StartEffigyChallengeRsp.proto b/proto/StartEffigyChallengeRsp.proto
new file mode 100644
index 00000000..c8aec5ef
--- /dev/null
+++ b/proto/StartEffigyChallengeRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2173
+// EnetChannelId: 0
+// EnetIsReliable: true
+message StartEffigyChallengeRsp {
+ repeated uint32 condition_id_list = 2;
+ int32 retcode = 8;
+ uint32 challenge_id = 15;
+ uint32 difficulty_id = 10;
+ uint32 point_id = 12;
+}
diff --git a/proto/StartFishingReq.proto b/proto/StartFishingReq.proto
new file mode 100644
index 00000000..5647cfd1
--- /dev/null
+++ b/proto/StartFishingReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5825
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message StartFishingReq {
+ uint32 rod_entity_id = 5;
+ uint32 fish_pool_id = 15;
+}
diff --git a/proto/StartFishingRsp.proto b/proto/StartFishingRsp.proto
new file mode 100644
index 00000000..a9497e63
--- /dev/null
+++ b/proto/StartFishingRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5807
+// EnetChannelId: 0
+// EnetIsReliable: true
+message StartFishingRsp {
+ int32 retcode = 1;
+ uint32 fish_pool_id = 14;
+}
diff --git a/proto/StartRogueEliteCellChallengeReq.proto b/proto/StartRogueEliteCellChallengeReq.proto
new file mode 100644
index 00000000..184b2e24
--- /dev/null
+++ b/proto/StartRogueEliteCellChallengeReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RogueEliteCellDifficultyType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8242
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message StartRogueEliteCellChallengeReq {
+ RogueEliteCellDifficultyType difficulty = 1;
+ uint32 dungeon_id = 11;
+ uint32 cell_id = 4;
+}
diff --git a/proto/StartRogueEliteCellChallengeRsp.proto b/proto/StartRogueEliteCellChallengeRsp.proto
new file mode 100644
index 00000000..00d6097f
--- /dev/null
+++ b/proto/StartRogueEliteCellChallengeRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8958
+// EnetChannelId: 0
+// EnetIsReliable: true
+message StartRogueEliteCellChallengeRsp {
+ uint32 dungeon_id = 12;
+ uint32 cell_id = 9;
+ int32 retcode = 10;
+}
diff --git a/proto/StartRogueNormalCellChallengeReq.proto b/proto/StartRogueNormalCellChallengeReq.proto
new file mode 100644
index 00000000..a5840522
--- /dev/null
+++ b/proto/StartRogueNormalCellChallengeReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8205
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message StartRogueNormalCellChallengeReq {
+ uint32 dungeon_id = 3;
+ uint32 cell_id = 8;
+}
diff --git a/proto/StartRogueNormalCellChallengeRsp.proto b/proto/StartRogueNormalCellChallengeRsp.proto
new file mode 100644
index 00000000..e120e852
--- /dev/null
+++ b/proto/StartRogueNormalCellChallengeRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8036
+// EnetChannelId: 0
+// EnetIsReliable: true
+message StartRogueNormalCellChallengeRsp {
+ uint32 dungeon_id = 10;
+ uint32 cell_id = 2;
+ int32 retcode = 6;
+}
diff --git a/proto/StatueGadgetInfo.proto b/proto/StatueGadgetInfo.proto
new file mode 100644
index 00000000..fffc14ed
--- /dev/null
+++ b/proto/StatueGadgetInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message StatueGadgetInfo {
+ repeated uint32 opened_statue_uid_list = 1;
+}
diff --git a/proto/StopServerInfo.proto b/proto/StopServerInfo.proto
new file mode 100644
index 00000000..109b561d
--- /dev/null
+++ b/proto/StopServerInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message StopServerInfo {
+ uint32 stop_begin_time = 1;
+ uint32 stop_end_time = 2;
+ string url = 3;
+ string content_msg = 4;
+}
diff --git a/proto/StoreItemChangeNotify.proto b/proto/StoreItemChangeNotify.proto
new file mode 100644
index 00000000..dfe556bc
--- /dev/null
+++ b/proto/StoreItemChangeNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Item.proto";
+import "StoreType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 612
+// EnetChannelId: 0
+// EnetIsReliable: true
+message StoreItemChangeNotify {
+ StoreType store_type = 12;
+ repeated Item item_list = 10;
+}
diff --git a/proto/StoreItemDelNotify.proto b/proto/StoreItemDelNotify.proto
new file mode 100644
index 00000000..b712f822
--- /dev/null
+++ b/proto/StoreItemDelNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "StoreType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 635
+// EnetChannelId: 0
+// EnetIsReliable: true
+message StoreItemDelNotify {
+ repeated uint64 guid_list = 12;
+ StoreType store_type = 15;
+}
diff --git a/proto/StoreType.proto b/proto/StoreType.proto
new file mode 100644
index 00000000..9c6f2c67
--- /dev/null
+++ b/proto/StoreType.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum StoreType {
+ STORE_TYPE_NONE = 0;
+ STORE_TYPE_PACK = 1;
+ STORE_TYPE_DEPOT = 2;
+}
diff --git a/proto/StoreWeightLimitNotify.proto b/proto/StoreWeightLimitNotify.proto
new file mode 100644
index 00000000..f8239b18
--- /dev/null
+++ b/proto/StoreWeightLimitNotify.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "StoreType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 698
+// EnetChannelId: 0
+// EnetIsReliable: true
+message StoreWeightLimitNotify {
+ uint32 weapon_count_limit = 2;
+ StoreType store_type = 7;
+ uint32 material_count_limit = 4;
+ uint32 reliquary_count_limit = 6;
+ uint32 furniture_count_limit = 9;
+ uint32 weight_limit = 15;
+}
diff --git a/proto/StrengthenPointData.proto b/proto/StrengthenPointData.proto
new file mode 100644
index 00000000..36b36647
--- /dev/null
+++ b/proto/StrengthenPointData.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message StrengthenPointData {
+ uint32 base_point = 10;
+ uint32 cur_point = 11;
+}
diff --git a/proto/SummerTimeDetailInfo.proto b/proto/SummerTimeDetailInfo.proto
new file mode 100644
index 00000000..3521450c
--- /dev/null
+++ b/proto/SummerTimeDetailInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SummerTimeSprintBoatInfo.proto";
+import "SummerTimeStageInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SummerTimeDetailInfo {
+ map stage_map = 3;
+ uint32 content_close_time = 11;
+ bool is_content_closed = 13;
+ SummerTimeSprintBoatInfo sprint_boat_info = 4;
+}
diff --git a/proto/SummerTimeFloatSignalPositionNotify.proto b/proto/SummerTimeFloatSignalPositionNotify.proto
new file mode 100644
index 00000000..4c36fe86
--- /dev/null
+++ b/proto/SummerTimeFloatSignalPositionNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8077
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SummerTimeFloatSignalPositionNotify {
+ Vector position = 1;
+ bool is_transfer_anchor = 5;
+ uint32 float_signal_id = 7;
+}
diff --git a/proto/SummerTimeFloatSignalUpdateNotify.proto b/proto/SummerTimeFloatSignalUpdateNotify.proto
new file mode 100644
index 00000000..d8d8caa8
--- /dev/null
+++ b/proto/SummerTimeFloatSignalUpdateNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8781
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SummerTimeFloatSignalUpdateNotify {
+ bool is_transfer_anchor = 4;
+ uint32 float_signal_id = 8;
+ Vector position = 10;
+}
diff --git a/proto/SummerTimeSprintBoatInfo.proto b/proto/SummerTimeSprintBoatInfo.proto
new file mode 100644
index 00000000..fcbadb64
--- /dev/null
+++ b/proto/SummerTimeSprintBoatInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SummerTimeSprintBoatRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SummerTimeSprintBoatInfo {
+ repeated SummerTimeSprintBoatRecord record_list = 7;
+}
diff --git a/proto/SummerTimeSprintBoatRecord.proto b/proto/SummerTimeSprintBoatRecord.proto
new file mode 100644
index 00000000..687d6ad6
--- /dev/null
+++ b/proto/SummerTimeSprintBoatRecord.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SummerTimeSprintBoatRecord {
+ uint32 best_score = 3;
+ uint32 start_time = 13;
+ bool is_touched = 7;
+ repeated uint32 watcher_id_list = 10;
+ uint32 group_id = 2;
+}
diff --git a/proto/SummerTimeSprintBoatRestartReq.proto b/proto/SummerTimeSprintBoatRestartReq.proto
new file mode 100644
index 00000000..aaa97ae7
--- /dev/null
+++ b/proto/SummerTimeSprintBoatRestartReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8410
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SummerTimeSprintBoatRestartReq {
+ uint32 group_id = 10;
+ uint32 schedule_id = 14;
+}
diff --git a/proto/SummerTimeSprintBoatRestartRsp.proto b/proto/SummerTimeSprintBoatRestartRsp.proto
new file mode 100644
index 00000000..4c64df53
--- /dev/null
+++ b/proto/SummerTimeSprintBoatRestartRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8356
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SummerTimeSprintBoatRestartRsp {
+ int32 retcode = 10;
+ uint32 schedule_id = 5;
+ uint32 group_id = 4;
+}
diff --git a/proto/SummerTimeSprintBoatSettleNotify.proto b/proto/SummerTimeSprintBoatSettleNotify.proto
new file mode 100644
index 00000000..e867b618
--- /dev/null
+++ b/proto/SummerTimeSprintBoatSettleNotify.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8651
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SummerTimeSprintBoatSettleNotify {
+ uint32 total_num = 13;
+ uint32 group_id = 12;
+ bool is_success = 15;
+ uint32 collect_num = 6;
+ uint32 left_time = 8;
+ uint32 medal_level = 2;
+ uint32 score = 10;
+ bool is_new_record = 7;
+}
diff --git a/proto/SummerTimeStageInfo.proto b/proto/SummerTimeStageInfo.proto
new file mode 100644
index 00000000..6a420f1e
--- /dev/null
+++ b/proto/SummerTimeStageInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SummerTimeStageInfo {
+ bool is_open = 13;
+ uint32 open_time = 10;
+ uint32 stage_id = 1;
+}
diff --git a/proto/SummerTimeV2DetailInfo.proto b/proto/SummerTimeV2DetailInfo.proto
new file mode 100644
index 00000000..0a50ef19
--- /dev/null
+++ b/proto/SummerTimeV2DetailInfo.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2800_CGODFDDALAG.proto";
+import "Unk2800_CGPNLBNMPCM.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SummerTimeV2DetailInfo {
+ repeated Unk2800_CGODFDDALAG Unk2800_PNBLCPIBKPO = 13;
+ uint32 Unk2800_HDEFJKGDNEH = 10;
+ bool is_content_closed = 4;
+ uint32 Unk2800_ELHBCNPKOJG = 5;
+ repeated Unk2800_CGPNLBNMPCM Unk2800_MPKLJJIEHIB = 15;
+}
diff --git a/proto/SummerTimeV2DungeonSettleInfo.proto b/proto/SummerTimeV2DungeonSettleInfo.proto
new file mode 100644
index 00000000..a8d311b6
--- /dev/null
+++ b/proto/SummerTimeV2DungeonSettleInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SummerTimeV2DungeonSettleInfo {
+ bool is_success = 5;
+ uint32 Unk2800_ELHBCNPKOJG = 2;
+ uint32 Unk2800_HDEFJKGDNEH = 11;
+}
diff --git a/proto/SumoActivityDetailInfo.proto b/proto/SumoActivityDetailInfo.proto
new file mode 100644
index 00000000..fa8370d7
--- /dev/null
+++ b/proto/SumoActivityDetailInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SumoStageData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SumoActivityDetailInfo {
+ uint32 difficulty_id = 11;
+ map sumo_stage_map = 13;
+ uint32 Unk2700_NIJIAJMFLLD = 14;
+}
diff --git a/proto/SumoAvatarInfo.proto b/proto/SumoAvatarInfo.proto
new file mode 100644
index 00000000..cd1206f8
--- /dev/null
+++ b/proto/SumoAvatarInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SumoAvatarInfo {
+ bool is_trial = 2;
+ uint64 avatar_id = 1;
+}
diff --git a/proto/SumoDungeonAvatar.proto b/proto/SumoDungeonAvatar.proto
new file mode 100644
index 00000000..ee6478b7
--- /dev/null
+++ b/proto/SumoDungeonAvatar.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SumoDungeonAvatar {
+ uint64 avatar_guid = 11;
+ bool is_alive = 13;
+ bool is_trial = 4;
+}
diff --git a/proto/SumoDungeonSettleNotify.proto b/proto/SumoDungeonSettleNotify.proto
new file mode 100644
index 00000000..26afbea6
--- /dev/null
+++ b/proto/SumoDungeonSettleNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8291
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SumoDungeonSettleNotify {
+ uint32 final_score = 7;
+ uint32 difficulty_id = 14;
+ uint32 kill_elite_monster_num = 15;
+ uint32 stage_id = 12;
+ uint32 kill_monster_num = 4;
+ bool is_new_record = 5;
+}
diff --git a/proto/SumoDungeonTeam.proto b/proto/SumoDungeonTeam.proto
new file mode 100644
index 00000000..99098335
--- /dev/null
+++ b/proto/SumoDungeonTeam.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SumoDungeonAvatar.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SumoDungeonTeam {
+ repeated SumoDungeonAvatar dungeon_avatar_list = 15;
+}
diff --git a/proto/SumoEnterDungeonNotify.proto b/proto/SumoEnterDungeonNotify.proto
new file mode 100644
index 00000000..b3071699
--- /dev/null
+++ b/proto/SumoEnterDungeonNotify.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SumoDungeonTeam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8013
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SumoEnterDungeonNotify {
+ uint32 activity_id = 15;
+ repeated SumoDungeonTeam dungeon_team_list = 11;
+ uint32 no_switch_punish_time = 10;
+ uint32 next_valid_switch_time = 13;
+ uint32 stage_id = 7;
+ uint32 cur_team_index = 5;
+}
diff --git a/proto/SumoLeaveDungeonNotify.proto b/proto/SumoLeaveDungeonNotify.proto
new file mode 100644
index 00000000..47e96956
--- /dev/null
+++ b/proto/SumoLeaveDungeonNotify.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8640
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SumoLeaveDungeonNotify {}
diff --git a/proto/SumoRestartDungeonReq.proto b/proto/SumoRestartDungeonReq.proto
new file mode 100644
index 00000000..6f5a6275
--- /dev/null
+++ b/proto/SumoRestartDungeonReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8612
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SumoRestartDungeonReq {}
diff --git a/proto/SumoRestartDungeonRsp.proto b/proto/SumoRestartDungeonRsp.proto
new file mode 100644
index 00000000..0c65770d
--- /dev/null
+++ b/proto/SumoRestartDungeonRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8214
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SumoRestartDungeonRsp {
+ int32 retcode = 11;
+ uint32 dungeon_id = 4;
+ uint32 point_id = 12;
+}
diff --git a/proto/SumoSaveTeamReq.proto b/proto/SumoSaveTeamReq.proto
new file mode 100644
index 00000000..56a24267
--- /dev/null
+++ b/proto/SumoSaveTeamReq.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SumoTeamData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8313
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SumoSaveTeamReq {
+ uint32 activity_id = 11;
+ uint32 stage_id = 13;
+ uint32 difficulty_id = 7;
+ repeated SumoTeamData team_list = 12;
+}
diff --git a/proto/SumoSaveTeamRsp.proto b/proto/SumoSaveTeamRsp.proto
new file mode 100644
index 00000000..2a63972d
--- /dev/null
+++ b/proto/SumoSaveTeamRsp.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SumoTeamData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8319
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SumoSaveTeamRsp {
+ uint32 stage_id = 9;
+ int32 retcode = 2;
+ uint32 activity_id = 11;
+ repeated SumoTeamData team_list = 13;
+ uint32 difficulty_id = 10;
+}
diff --git a/proto/SumoSelectTeamAndEnterDungeonReq.proto b/proto/SumoSelectTeamAndEnterDungeonReq.proto
new file mode 100644
index 00000000..fed00070
--- /dev/null
+++ b/proto/SumoSelectTeamAndEnterDungeonReq.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SumoTeamData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8215
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SumoSelectTeamAndEnterDungeonReq {
+ uint32 activity_id = 1;
+ uint32 stage_id = 7;
+ uint32 difficulty_id = 4;
+ repeated SumoTeamData team_list = 10;
+}
diff --git a/proto/SumoSelectTeamAndEnterDungeonRsp.proto b/proto/SumoSelectTeamAndEnterDungeonRsp.proto
new file mode 100644
index 00000000..08fe0547
--- /dev/null
+++ b/proto/SumoSelectTeamAndEnterDungeonRsp.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SumoTeamData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8193
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SumoSelectTeamAndEnterDungeonRsp {
+ int32 retcode = 1;
+ uint32 activity_id = 14;
+ uint32 difficulty_id = 12;
+ uint32 stage_id = 9;
+ repeated SumoTeamData team_list = 2;
+}
diff --git a/proto/SumoSetNoSwitchPunishTimeNotify.proto b/proto/SumoSetNoSwitchPunishTimeNotify.proto
new file mode 100644
index 00000000..fc9f3a20
--- /dev/null
+++ b/proto/SumoSetNoSwitchPunishTimeNotify.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SumoDungeonTeam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8935
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SumoSetNoSwitchPunishTimeNotify {
+ uint32 cur_team_index = 15;
+ uint32 stage_id = 13;
+ repeated SumoDungeonTeam dungeon_team_list = 11;
+ uint32 no_switch_punish_time = 2;
+ uint32 next_valid_switch_time = 14;
+ uint32 activity_id = 9;
+}
diff --git a/proto/SumoStageData.proto b/proto/SumoStageData.proto
new file mode 100644
index 00000000..e12fcf64
--- /dev/null
+++ b/proto/SumoStageData.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SumoTeamData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SumoStageData {
+ uint32 max_score = 1;
+ uint32 open_time = 5;
+ uint32 stage_id = 3;
+ repeated SumoTeamData team_list = 7;
+ bool is_open = 11;
+}
diff --git a/proto/SumoSwitchTeamReq.proto b/proto/SumoSwitchTeamReq.proto
new file mode 100644
index 00000000..ca12e80e
--- /dev/null
+++ b/proto/SumoSwitchTeamReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8351
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SumoSwitchTeamReq {
+ uint32 stage_id = 9;
+ uint32 activity_id = 5;
+}
diff --git a/proto/SumoSwitchTeamRsp.proto b/proto/SumoSwitchTeamRsp.proto
new file mode 100644
index 00000000..8f7ff60c
--- /dev/null
+++ b/proto/SumoSwitchTeamRsp.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SumoDungeonTeam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8525
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SumoSwitchTeamRsp {
+ uint32 next_valid_switch_time = 7;
+ repeated SumoDungeonTeam dungeon_team_list = 10;
+ uint32 activity_id = 6;
+ int32 retcode = 14;
+ uint32 cur_team_index = 11;
+ uint32 stage_id = 5;
+}
diff --git a/proto/SumoTeamData.proto b/proto/SumoTeamData.proto
new file mode 100644
index 00000000..8e07796e
--- /dev/null
+++ b/proto/SumoTeamData.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SumoAvatarInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SumoTeamData {
+ repeated uint32 skill_id_list = 14;
+ repeated SumoAvatarInfo avatar_info_list = 3;
+}
diff --git a/proto/SvrMsgId.proto b/proto/SvrMsgId.proto
new file mode 100644
index 00000000..cd0dfb72
--- /dev/null
+++ b/proto/SvrMsgId.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum SvrMsgId {
+ SVR_MSG_ID_UNKNOWN = 0;
+ SVR_MSG_ID_BLOCK_REFRESH_COUNTDOWN = 1;
+ SVR_MSG_ID_AVATAR_REVIVE_BY_STATUE = 2;
+ SVR_MSG_ID_DAILY_TASK_REWARD_MAX_NUM = 3;
+ SVR_MSG_ID_ROUTINE_TYPE_NOT_OPEN = 4;
+ SVR_MSG_ID_ROUTINE_TYPE_REWARD_MAX_NUM = 5;
+ SVR_MSG_ID_MECHANICUS_COIN_LIMIT = 6;
+}
diff --git a/proto/SyncScenePlayTeamEntityNotify.proto b/proto/SyncScenePlayTeamEntityNotify.proto
new file mode 100644
index 00000000..15966218
--- /dev/null
+++ b/proto/SyncScenePlayTeamEntityNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayTeamEntityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3333
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SyncScenePlayTeamEntityNotify {
+ uint32 scene_id = 2;
+ repeated PlayTeamEntityInfo entity_info_list = 3;
+}
diff --git a/proto/SyncTeamEntityNotify.proto b/proto/SyncTeamEntityNotify.proto
new file mode 100644
index 00000000..9296b3fb
--- /dev/null
+++ b/proto/SyncTeamEntityNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TeamEntityInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 317
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SyncTeamEntityNotify {
+ uint32 scene_id = 13;
+ repeated TeamEntityInfo team_entity_info_list = 15;
+}
diff --git a/proto/TakeAchievementGoalRewardReq.proto b/proto/TakeAchievementGoalRewardReq.proto
new file mode 100644
index 00000000..135172ef
--- /dev/null
+++ b/proto/TakeAchievementGoalRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2652
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeAchievementGoalRewardReq {
+ repeated uint32 id_list = 5;
+}
diff --git a/proto/TakeAchievementGoalRewardRsp.proto b/proto/TakeAchievementGoalRewardRsp.proto
new file mode 100644
index 00000000..73dd38a0
--- /dev/null
+++ b/proto/TakeAchievementGoalRewardRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2681
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeAchievementGoalRewardRsp {
+ int32 retcode = 15;
+ repeated uint32 id_list = 12;
+ repeated ItemParam item_list = 5;
+}
diff --git a/proto/TakeAchievementRewardReq.proto b/proto/TakeAchievementRewardReq.proto
new file mode 100644
index 00000000..13a0cc24
--- /dev/null
+++ b/proto/TakeAchievementRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2675
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeAchievementRewardReq {
+ repeated uint32 id_list = 13;
+}
diff --git a/proto/TakeAchievementRewardRsp.proto b/proto/TakeAchievementRewardRsp.proto
new file mode 100644
index 00000000..8c3367f9
--- /dev/null
+++ b/proto/TakeAchievementRewardRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2657
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeAchievementRewardRsp {
+ repeated uint32 id_list = 7;
+ repeated ItemParam item_list = 10;
+ int32 retcode = 1;
+}
diff --git a/proto/TakeAsterSpecialRewardReq.proto b/proto/TakeAsterSpecialRewardReq.proto
new file mode 100644
index 00000000..6fb32c2b
--- /dev/null
+++ b/proto/TakeAsterSpecialRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2097
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeAsterSpecialRewardReq {
+ uint32 schedule_id = 5;
+}
diff --git a/proto/TakeAsterSpecialRewardRsp.proto b/proto/TakeAsterSpecialRewardRsp.proto
new file mode 100644
index 00000000..0d836ffa
--- /dev/null
+++ b/proto/TakeAsterSpecialRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2193
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeAsterSpecialRewardRsp {
+ int32 retcode = 12;
+ uint32 schedule_id = 14;
+}
diff --git a/proto/TakeBattlePassMissionPointReq.proto b/proto/TakeBattlePassMissionPointReq.proto
new file mode 100644
index 00000000..d61a98bc
--- /dev/null
+++ b/proto/TakeBattlePassMissionPointReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2629
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeBattlePassMissionPointReq {
+ repeated uint32 mission_id_list = 5;
+}
diff --git a/proto/TakeBattlePassMissionPointRsp.proto b/proto/TakeBattlePassMissionPointRsp.proto
new file mode 100644
index 00000000..6af5c0c0
--- /dev/null
+++ b/proto/TakeBattlePassMissionPointRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2622
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeBattlePassMissionPointRsp {
+ int32 retcode = 4;
+ repeated uint32 mission_id_list = 11;
+}
diff --git a/proto/TakeBattlePassRewardReq.proto b/proto/TakeBattlePassRewardReq.proto
new file mode 100644
index 00000000..fb7802bd
--- /dev/null
+++ b/proto/TakeBattlePassRewardReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BattlePassRewardTakeOption.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2602
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeBattlePassRewardReq {
+ repeated BattlePassRewardTakeOption take_option_list = 12;
+}
diff --git a/proto/TakeBattlePassRewardRsp.proto b/proto/TakeBattlePassRewardRsp.proto
new file mode 100644
index 00000000..738b8a23
--- /dev/null
+++ b/proto/TakeBattlePassRewardRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BattlePassRewardTakeOption.proto";
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2631
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeBattlePassRewardRsp {
+ repeated ItemParam item_list = 7;
+ int32 retcode = 13;
+ repeated BattlePassRewardTakeOption take_option_list = 9;
+}
diff --git a/proto/TakeCityReputationExploreRewardReq.proto b/proto/TakeCityReputationExploreRewardReq.proto
new file mode 100644
index 00000000..782e598d
--- /dev/null
+++ b/proto/TakeCityReputationExploreRewardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2897
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeCityReputationExploreRewardReq {
+ uint32 city_id = 15;
+ repeated uint32 explore_id_list = 12;
+}
diff --git a/proto/TakeCityReputationExploreRewardRsp.proto b/proto/TakeCityReputationExploreRewardRsp.proto
new file mode 100644
index 00000000..04697c19
--- /dev/null
+++ b/proto/TakeCityReputationExploreRewardRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2881
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeCityReputationExploreRewardRsp {
+ repeated uint32 explore_id_list = 8;
+ repeated ItemParam item_list = 12;
+ int32 retcode = 6;
+ uint32 city_id = 13;
+}
diff --git a/proto/TakeCityReputationLevelRewardReq.proto b/proto/TakeCityReputationLevelRewardReq.proto
new file mode 100644
index 00000000..8649c20b
--- /dev/null
+++ b/proto/TakeCityReputationLevelRewardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2812
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeCityReputationLevelRewardReq {
+ uint32 level = 11;
+ uint32 city_id = 1;
+}
diff --git a/proto/TakeCityReputationLevelRewardRsp.proto b/proto/TakeCityReputationLevelRewardRsp.proto
new file mode 100644
index 00000000..b18c2fce
--- /dev/null
+++ b/proto/TakeCityReputationLevelRewardRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2835
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeCityReputationLevelRewardRsp {
+ uint32 city_id = 15;
+ int32 retcode = 11;
+ repeated ItemParam item_list = 13;
+ uint32 level = 9;
+}
diff --git a/proto/TakeCityReputationParentQuestReq.proto b/proto/TakeCityReputationParentQuestReq.proto
new file mode 100644
index 00000000..334f2b44
--- /dev/null
+++ b/proto/TakeCityReputationParentQuestReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2821
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeCityReputationParentQuestReq {
+ uint32 city_id = 1;
+ repeated uint32 parent_quest_list = 6;
+}
diff --git a/proto/TakeCityReputationParentQuestRsp.proto b/proto/TakeCityReputationParentQuestRsp.proto
new file mode 100644
index 00000000..ec6fe3fb
--- /dev/null
+++ b/proto/TakeCityReputationParentQuestRsp.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2803
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeCityReputationParentQuestRsp {
+ int32 retcode = 7;
+ uint32 city_id = 14;
+ repeated uint32 parent_quest_list = 9;
+ repeated ItemParam item_list = 13;
+}
diff --git a/proto/TakeCompoundOutputReq.proto b/proto/TakeCompoundOutputReq.proto
new file mode 100644
index 00000000..e823f197
--- /dev/null
+++ b/proto/TakeCompoundOutputReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 174
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeCompoundOutputReq {
+ uint32 compound_group_id = 3;
+ uint32 compound_id = 10;
+}
diff --git a/proto/TakeCompoundOutputRsp.proto b/proto/TakeCompoundOutputRsp.proto
new file mode 100644
index 00000000..bc32bdbc
--- /dev/null
+++ b/proto/TakeCompoundOutputRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 176
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeCompoundOutputRsp {
+ repeated ItemParam item_list = 6;
+ int32 retcode = 2;
+}
diff --git a/proto/TakeCoopRewardReq.proto b/proto/TakeCoopRewardReq.proto
new file mode 100644
index 00000000..793535ee
--- /dev/null
+++ b/proto/TakeCoopRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1973
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeCoopRewardReq {
+ uint32 reward_config_id = 6;
+}
diff --git a/proto/TakeCoopRewardRsp.proto b/proto/TakeCoopRewardRsp.proto
new file mode 100644
index 00000000..e1f1e7d7
--- /dev/null
+++ b/proto/TakeCoopRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1985
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeCoopRewardRsp {
+ int32 retcode = 9;
+ uint32 reward_config_id = 1;
+}
diff --git a/proto/TakeDeliveryDailyRewardReq.proto b/proto/TakeDeliveryDailyRewardReq.proto
new file mode 100644
index 00000000..934c1a51
--- /dev/null
+++ b/proto/TakeDeliveryDailyRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2121
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeDeliveryDailyRewardReq {
+ uint32 schedule_id = 9;
+}
diff --git a/proto/TakeDeliveryDailyRewardRsp.proto b/proto/TakeDeliveryDailyRewardRsp.proto
new file mode 100644
index 00000000..b0dfe9f7
--- /dev/null
+++ b/proto/TakeDeliveryDailyRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2162
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeDeliveryDailyRewardRsp {
+ uint32 schedule_id = 5;
+ int32 retcode = 7;
+}
diff --git a/proto/TakeEffigyFirstPassRewardReq.proto b/proto/TakeEffigyFirstPassRewardReq.proto
new file mode 100644
index 00000000..693ae6a2
--- /dev/null
+++ b/proto/TakeEffigyFirstPassRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2196
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeEffigyFirstPassRewardReq {
+ uint32 challenge_id = 6;
+}
diff --git a/proto/TakeEffigyFirstPassRewardRsp.proto b/proto/TakeEffigyFirstPassRewardRsp.proto
new file mode 100644
index 00000000..d8109ffb
--- /dev/null
+++ b/proto/TakeEffigyFirstPassRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2061
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeEffigyFirstPassRewardRsp {
+ uint32 challenge_id = 2;
+ int32 retcode = 7;
+}
diff --git a/proto/TakeEffigyRewardReq.proto b/proto/TakeEffigyRewardReq.proto
new file mode 100644
index 00000000..e2ba96e8
--- /dev/null
+++ b/proto/TakeEffigyRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2040
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeEffigyRewardReq {
+ uint32 reward_index = 14;
+}
diff --git a/proto/TakeEffigyRewardRsp.proto b/proto/TakeEffigyRewardRsp.proto
new file mode 100644
index 00000000..b71a9ee7
--- /dev/null
+++ b/proto/TakeEffigyRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2007
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeEffigyRewardRsp {
+ int32 retcode = 15;
+ uint32 reward_index = 7;
+}
diff --git a/proto/TakeFirstShareRewardReq.proto b/proto/TakeFirstShareRewardReq.proto
new file mode 100644
index 00000000..31fa20e8
--- /dev/null
+++ b/proto/TakeFirstShareRewardReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4074
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeFirstShareRewardReq {}
diff --git a/proto/TakeFirstShareRewardRsp.proto b/proto/TakeFirstShareRewardRsp.proto
new file mode 100644
index 00000000..e92bed25
--- /dev/null
+++ b/proto/TakeFirstShareRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4076
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeFirstShareRewardRsp {
+ int32 retcode = 15;
+}
diff --git a/proto/TakeFurnitureMakeReq.proto b/proto/TakeFurnitureMakeReq.proto
new file mode 100644
index 00000000..0908d9c6
--- /dev/null
+++ b/proto/TakeFurnitureMakeReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4772
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeFurnitureMakeReq {
+ uint32 index = 8;
+ bool is_fast_finish = 12;
+ uint32 make_id = 7;
+}
diff --git a/proto/TakeFurnitureMakeRsp.proto b/proto/TakeFurnitureMakeRsp.proto
new file mode 100644
index 00000000..851a10a3
--- /dev/null
+++ b/proto/TakeFurnitureMakeRsp.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FurnitureMakeSlot.proto";
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4769
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeFurnitureMakeRsp {
+ FurnitureMakeSlot furniture_make_slot = 8;
+ repeated ItemParam return_item_list = 2;
+ uint32 make_id = 6;
+ int32 retcode = 9;
+ repeated ItemParam output_item_list = 14;
+}
diff --git a/proto/TakeHuntingOfferReq.proto b/proto/TakeHuntingOfferReq.proto
new file mode 100644
index 00000000..d60e0a70
--- /dev/null
+++ b/proto/TakeHuntingOfferReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HuntingPair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4326
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeHuntingOfferReq {
+ HuntingPair hunting_pair = 14;
+ uint32 city_id = 4;
+}
diff --git a/proto/TakeHuntingOfferRsp.proto b/proto/TakeHuntingOfferRsp.proto
new file mode 100644
index 00000000..c731d26a
--- /dev/null
+++ b/proto/TakeHuntingOfferRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HuntingPair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4318
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeHuntingOfferRsp {
+ HuntingPair hunting_pair = 13;
+ uint32 city_id = 14;
+ int32 retcode = 3;
+}
diff --git a/proto/TakeInvestigationRewardReq.proto b/proto/TakeInvestigationRewardReq.proto
new file mode 100644
index 00000000..22aba3b6
--- /dev/null
+++ b/proto/TakeInvestigationRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1912
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeInvestigationRewardReq {
+ uint32 id = 5;
+}
diff --git a/proto/TakeInvestigationRewardRsp.proto b/proto/TakeInvestigationRewardRsp.proto
new file mode 100644
index 00000000..d8f0eae3
--- /dev/null
+++ b/proto/TakeInvestigationRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1922
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeInvestigationRewardRsp {
+ int32 retcode = 4;
+ uint32 id = 12;
+}
diff --git a/proto/TakeInvestigationTargetRewardReq.proto b/proto/TakeInvestigationTargetRewardReq.proto
new file mode 100644
index 00000000..50c32248
--- /dev/null
+++ b/proto/TakeInvestigationTargetRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1918
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeInvestigationTargetRewardReq {
+ uint32 quest_id = 11;
+}
diff --git a/proto/TakeInvestigationTargetRewardRsp.proto b/proto/TakeInvestigationTargetRewardRsp.proto
new file mode 100644
index 00000000..74cc2d69
--- /dev/null
+++ b/proto/TakeInvestigationTargetRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1916
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeInvestigationTargetRewardRsp {
+ int32 retcode = 1;
+ uint32 quest_id = 2;
+}
diff --git a/proto/TakeMaterialDeleteReturnReq.proto b/proto/TakeMaterialDeleteReturnReq.proto
new file mode 100644
index 00000000..2e955ff2
--- /dev/null
+++ b/proto/TakeMaterialDeleteReturnReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MaterialDeleteReturnType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 629
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeMaterialDeleteReturnReq {
+ MaterialDeleteReturnType type = 8;
+}
diff --git a/proto/TakeMaterialDeleteReturnRsp.proto b/proto/TakeMaterialDeleteReturnRsp.proto
new file mode 100644
index 00000000..080958ec
--- /dev/null
+++ b/proto/TakeMaterialDeleteReturnRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 657
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeMaterialDeleteReturnRsp {
+ int32 retcode = 14;
+}
diff --git a/proto/TakeOfferingLevelRewardReq.proto b/proto/TakeOfferingLevelRewardReq.proto
new file mode 100644
index 00000000..66814d8a
--- /dev/null
+++ b/proto/TakeOfferingLevelRewardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2919
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeOfferingLevelRewardReq {
+ uint32 level = 6;
+ uint32 offering_id = 11;
+}
diff --git a/proto/TakeOfferingLevelRewardRsp.proto b/proto/TakeOfferingLevelRewardRsp.proto
new file mode 100644
index 00000000..afb49cae
--- /dev/null
+++ b/proto/TakeOfferingLevelRewardRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2911
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeOfferingLevelRewardRsp {
+ uint32 offering_id = 3;
+ uint32 take_level = 4;
+ int32 retcode = 8;
+ repeated ItemParam item_list = 2;
+}
diff --git a/proto/TakePlayerLevelRewardReq.proto b/proto/TakePlayerLevelRewardReq.proto
new file mode 100644
index 00000000..8121db57
--- /dev/null
+++ b/proto/TakePlayerLevelRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 129
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakePlayerLevelRewardReq {
+ uint32 level = 3;
+}
diff --git a/proto/TakePlayerLevelRewardRsp.proto b/proto/TakePlayerLevelRewardRsp.proto
new file mode 100644
index 00000000..c9e63e83
--- /dev/null
+++ b/proto/TakePlayerLevelRewardRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 157
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakePlayerLevelRewardRsp {
+ uint32 reward_id = 9;
+ int32 retcode = 13;
+ uint32 level = 6;
+}
diff --git a/proto/TakeRegionSearchRewardReq.proto b/proto/TakeRegionSearchRewardReq.proto
new file mode 100644
index 00000000..eda8e456
--- /dev/null
+++ b/proto/TakeRegionSearchRewardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5625
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeRegionSearchRewardReq {
+ uint32 search_id = 3;
+ uint32 id = 15;
+}
diff --git a/proto/TakeRegionSearchRewardRsp.proto b/proto/TakeRegionSearchRewardRsp.proto
new file mode 100644
index 00000000..520e41c0
--- /dev/null
+++ b/proto/TakeRegionSearchRewardRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5607
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeRegionSearchRewardRsp {
+ uint32 search_id = 14;
+ uint32 id = 1;
+ int32 retcode = 5;
+}
diff --git a/proto/TakeResinCardDailyRewardReq.proto b/proto/TakeResinCardDailyRewardReq.proto
new file mode 100644
index 00000000..4669928e
--- /dev/null
+++ b/proto/TakeResinCardDailyRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4122
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeResinCardDailyRewardReq {
+ uint32 product_config_id = 14;
+}
diff --git a/proto/TakeResinCardDailyRewardRsp.proto b/proto/TakeResinCardDailyRewardRsp.proto
new file mode 100644
index 00000000..c2965bd9
--- /dev/null
+++ b/proto/TakeResinCardDailyRewardRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4144
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeResinCardDailyRewardRsp {
+ repeated ItemParam item_vec = 6;
+ int32 retcode = 4;
+ uint32 product_config_id = 12;
+}
diff --git a/proto/TakeReunionFirstGiftRewardReq.proto b/proto/TakeReunionFirstGiftRewardReq.proto
new file mode 100644
index 00000000..c897cee3
--- /dev/null
+++ b/proto/TakeReunionFirstGiftRewardReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5075
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeReunionFirstGiftRewardReq {}
diff --git a/proto/TakeReunionFirstGiftRewardRsp.proto b/proto/TakeReunionFirstGiftRewardRsp.proto
new file mode 100644
index 00000000..153cb2a8
--- /dev/null
+++ b/proto/TakeReunionFirstGiftRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5057
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeReunionFirstGiftRewardRsp {
+ int32 reward_id = 9;
+ int32 retcode = 15;
+}
diff --git a/proto/TakeReunionMissionRewardReq.proto b/proto/TakeReunionMissionRewardReq.proto
new file mode 100644
index 00000000..0025366e
--- /dev/null
+++ b/proto/TakeReunionMissionRewardReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5092
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeReunionMissionRewardReq {
+ uint32 reward_id = 7;
+ uint32 reward_index = 4;
+ uint32 mission_id = 12;
+}
diff --git a/proto/TakeReunionMissionRewardRsp.proto b/proto/TakeReunionMissionRewardRsp.proto
new file mode 100644
index 00000000..51101833
--- /dev/null
+++ b/proto/TakeReunionMissionRewardRsp.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ReunionMissionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5064
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeReunionMissionRewardRsp {
+ uint32 reward_index = 12;
+ int32 retcode = 2;
+ ReunionMissionInfo mission_info = 9;
+ uint32 reward_id = 3;
+}
diff --git a/proto/TakeReunionSignInRewardReq.proto b/proto/TakeReunionSignInRewardReq.proto
new file mode 100644
index 00000000..a1b86744
--- /dev/null
+++ b/proto/TakeReunionSignInRewardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5079
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeReunionSignInRewardReq {
+ uint32 reward_day = 12;
+ uint32 config_id = 14;
+}
diff --git a/proto/TakeReunionSignInRewardRsp.proto b/proto/TakeReunionSignInRewardRsp.proto
new file mode 100644
index 00000000..990743ba
--- /dev/null
+++ b/proto/TakeReunionSignInRewardRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ReunionSignInInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5072
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeReunionSignInRewardRsp {
+ ReunionSignInInfo sign_in_info = 10;
+ int32 retcode = 5;
+}
diff --git a/proto/TakeReunionWatcherRewardReq.proto b/proto/TakeReunionWatcherRewardReq.proto
new file mode 100644
index 00000000..6e4b7565
--- /dev/null
+++ b/proto/TakeReunionWatcherRewardReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5070
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeReunionWatcherRewardReq {
+ uint32 watcher_id = 12;
+ uint32 mission_id = 15;
+}
diff --git a/proto/TakeReunionWatcherRewardRsp.proto b/proto/TakeReunionWatcherRewardRsp.proto
new file mode 100644
index 00000000..cd7b5264
--- /dev/null
+++ b/proto/TakeReunionWatcherRewardRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5095
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeReunionWatcherRewardRsp {
+ uint32 mission_id = 15;
+ uint32 watcher_id = 9;
+ int32 retcode = 10;
+}
diff --git a/proto/TakeoffEquipReq.proto b/proto/TakeoffEquipReq.proto
new file mode 100644
index 00000000..e4c8dd7c
--- /dev/null
+++ b/proto/TakeoffEquipReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 605
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TakeoffEquipReq {
+ uint64 avatar_guid = 8;
+ uint32 slot = 15;
+}
diff --git a/proto/TakeoffEquipRsp.proto b/proto/TakeoffEquipRsp.proto
new file mode 100644
index 00000000..dcc85032
--- /dev/null
+++ b/proto/TakeoffEquipRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 682
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TakeoffEquipRsp {
+ uint64 avatar_guid = 9;
+ int32 retcode = 6;
+ uint32 slot = 10;
+}
diff --git a/proto/TanukiTravelActivityDetailInfo.proto b/proto/TanukiTravelActivityDetailInfo.proto
new file mode 100644
index 00000000..87f3e052
--- /dev/null
+++ b/proto/TanukiTravelActivityDetailInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_BIFNFOGBPNM.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TanukiTravelActivityDetailInfo {
+ repeated Unk2700_BIFNFOGBPNM Unk2700_JBPFIDDPGME = 4;
+ bool is_content_closed = 11;
+ uint32 Unk2700_BHHCNOLMCJM = 10;
+}
diff --git a/proto/TaskVar.proto b/proto/TaskVar.proto
new file mode 100644
index 00000000..a2848a3f
--- /dev/null
+++ b/proto/TaskVar.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TaskVar {
+ uint32 key = 8;
+ repeated int32 value_list = 6;
+}
diff --git a/proto/TaskVarNotify.proto b/proto/TaskVarNotify.proto
new file mode 100644
index 00000000..f5aaee01
--- /dev/null
+++ b/proto/TaskVarNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TaskVar.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 160
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TaskVarNotify {
+ repeated TaskVar task_var_list = 7;
+}
diff --git a/proto/TeamEnterSceneInfo.proto b/proto/TeamEnterSceneInfo.proto
new file mode 100644
index 00000000..5038f087
--- /dev/null
+++ b/proto/TeamEnterSceneInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilityControlBlock.proto";
+import "AbilitySyncStateInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TeamEnterSceneInfo {
+ AbilityControlBlock ability_control_block = 7;
+ AbilitySyncStateInfo team_ability_info = 10;
+ uint32 team_entity_id = 15;
+}
diff --git a/proto/TeamEntityInfo.proto b/proto/TeamEntityInfo.proto
new file mode 100644
index 00000000..b3983f49
--- /dev/null
+++ b/proto/TeamEntityInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AbilitySyncStateInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TeamEntityInfo {
+ uint32 authority_peer_id = 10;
+ AbilitySyncStateInfo team_ability_info = 9;
+ uint32 team_entity_id = 8;
+}
diff --git a/proto/TeamResonanceChangeNotify.proto b/proto/TeamResonanceChangeNotify.proto
new file mode 100644
index 00000000..a19267b5
--- /dev/null
+++ b/proto/TeamResonanceChangeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarTeamResonanceInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1082
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TeamResonanceChangeNotify {
+ repeated AvatarTeamResonanceInfo info_list = 1;
+}
diff --git a/proto/TowerAllDataReq.proto b/proto/TowerAllDataReq.proto
new file mode 100644
index 00000000..e1555d1c
--- /dev/null
+++ b/proto/TowerAllDataReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2490
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TowerAllDataReq {
+ bool is_interact = 2;
+}
diff --git a/proto/TowerAllDataRsp.proto b/proto/TowerAllDataRsp.proto
new file mode 100644
index 00000000..fca0f504
--- /dev/null
+++ b/proto/TowerAllDataRsp.proto
@@ -0,0 +1,47 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TowerCurLevelRecord.proto";
+import "TowerFloorRecord.proto";
+import "TowerMonthlyBrief.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2473
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TowerAllDataRsp {
+ uint32 tower_schedule_id = 10;
+ uint32 daily_level_index = 9;
+ map skip_floor_granted_reward_item_map = 12;
+ bool is_first_interact = 3;
+ bool is_finished_entrance_floor = 1;
+ repeated TowerFloorRecord tower_floor_record_list = 5;
+ uint32 daily_floor_id = 11;
+ uint32 commemorative_reward_id = 13;
+ TowerMonthlyBrief last_schedule_monthly_brief = 1222;
+ uint32 next_schedule_change_time = 6;
+ uint32 valid_tower_record_num = 7;
+ uint32 skip_to_floor_index = 2;
+ map floor_open_time_map = 4;
+ TowerCurLevelRecord cur_level_record = 15;
+ int32 retcode = 8;
+ uint32 schedule_start_time = 914;
+ TowerMonthlyBrief monthly_brief = 14;
+}
diff --git a/proto/TowerBriefDataNotify.proto b/proto/TowerBriefDataNotify.proto
new file mode 100644
index 00000000..d26af7f4
--- /dev/null
+++ b/proto/TowerBriefDataNotify.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2472
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TowerBriefDataNotify {
+ uint32 total_star_num = 11;
+ uint32 last_floor_index = 8;
+ uint32 schedule_start_time = 15;
+ uint32 next_schedule_change_time = 6;
+ bool is_finished_entrance_floor = 14;
+ uint32 last_level_index = 4;
+ uint32 tower_schedule_id = 5;
+}
diff --git a/proto/TowerBuffSelectReq.proto b/proto/TowerBuffSelectReq.proto
new file mode 100644
index 00000000..023cfde3
--- /dev/null
+++ b/proto/TowerBuffSelectReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2448
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TowerBuffSelectReq {
+ uint32 tower_buff_id = 5;
+}
diff --git a/proto/TowerBuffSelectRsp.proto b/proto/TowerBuffSelectRsp.proto
new file mode 100644
index 00000000..54001969
--- /dev/null
+++ b/proto/TowerBuffSelectRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2497
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TowerBuffSelectRsp {
+ int32 retcode = 11;
+ uint32 tower_buff_id = 13;
+}
diff --git a/proto/TowerCurLevelRecord.proto b/proto/TowerCurLevelRecord.proto
new file mode 100644
index 00000000..9a2c2b86
--- /dev/null
+++ b/proto/TowerCurLevelRecord.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TowerTeam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TowerCurLevelRecord {
+ repeated TowerTeam tower_team_list = 8;
+ bool is_empty = 6;
+ repeated uint32 buff_id_list = 4;
+ bool Unk2700_CBPNPEBMPOH = 2;
+ uint32 cur_level_index = 1;
+ uint32 cur_floor_id = 15;
+}
diff --git a/proto/TowerCurLevelRecordChangeNotify.proto b/proto/TowerCurLevelRecordChangeNotify.proto
new file mode 100644
index 00000000..bef757f8
--- /dev/null
+++ b/proto/TowerCurLevelRecordChangeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TowerCurLevelRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2412
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TowerCurLevelRecordChangeNotify {
+ TowerCurLevelRecord cur_level_record = 10;
+}
diff --git a/proto/TowerDailyRewardProgressChangeNotify.proto b/proto/TowerDailyRewardProgressChangeNotify.proto
new file mode 100644
index 00000000..a1702a86
--- /dev/null
+++ b/proto/TowerDailyRewardProgressChangeNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2435
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TowerDailyRewardProgressChangeNotify {
+ uint32 daily_floor_id = 15;
+ uint32 daily_level_index = 9;
+}
diff --git a/proto/TowerEnterLevelReq.proto b/proto/TowerEnterLevelReq.proto
new file mode 100644
index 00000000..7cc2ecda
--- /dev/null
+++ b/proto/TowerEnterLevelReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2431
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TowerEnterLevelReq {
+ uint32 enter_point_id = 3;
+}
diff --git a/proto/TowerEnterLevelRsp.proto b/proto/TowerEnterLevelRsp.proto
new file mode 100644
index 00000000..e056b248
--- /dev/null
+++ b/proto/TowerEnterLevelRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2475
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TowerEnterLevelRsp {
+ repeated uint32 tower_buff_id_list = 10;
+ int32 retcode = 1;
+ uint32 level_index = 14;
+ uint32 floor_id = 5;
+}
diff --git a/proto/TowerFightRecordPair.proto b/proto/TowerFightRecordPair.proto
new file mode 100644
index 00000000..59bc5ce4
--- /dev/null
+++ b/proto/TowerFightRecordPair.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TowerFightRecordPair {
+ uint32 avatar_id = 1;
+ uint32 data = 3;
+}
diff --git a/proto/TowerFloorRecord.proto b/proto/TowerFloorRecord.proto
new file mode 100644
index 00000000..e77a0333
--- /dev/null
+++ b/proto/TowerFloorRecord.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TowerLevelRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TowerFloorRecord {
+ uint32 floor_star_reward_progress = 15;
+ map passed_level_map = 8;
+ uint32 floor_id = 12;
+ repeated TowerLevelRecord passed_level_record_list = 2;
+}
diff --git a/proto/TowerFloorRecordChangeNotify.proto b/proto/TowerFloorRecordChangeNotify.proto
new file mode 100644
index 00000000..a8c3ccfd
--- /dev/null
+++ b/proto/TowerFloorRecordChangeNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TowerFloorRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2498
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TowerFloorRecordChangeNotify {
+ bool is_finished_entrance_floor = 11;
+ repeated TowerFloorRecord tower_floor_record_list = 8;
+}
diff --git a/proto/TowerGetFloorStarRewardReq.proto b/proto/TowerGetFloorStarRewardReq.proto
new file mode 100644
index 00000000..e2159afc
--- /dev/null
+++ b/proto/TowerGetFloorStarRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2404
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TowerGetFloorStarRewardReq {
+ uint32 floor_id = 15;
+}
diff --git a/proto/TowerGetFloorStarRewardRsp.proto b/proto/TowerGetFloorStarRewardRsp.proto
new file mode 100644
index 00000000..79be0f12
--- /dev/null
+++ b/proto/TowerGetFloorStarRewardRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2493
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TowerGetFloorStarRewardRsp {
+ int32 retcode = 11;
+ uint32 floor_id = 9;
+}
diff --git a/proto/TowerLevelEndNotify.proto b/proto/TowerLevelEndNotify.proto
new file mode 100644
index 00000000..0fcd7298
--- /dev/null
+++ b/proto/TowerLevelEndNotify.proto
@@ -0,0 +1,39 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2495
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TowerLevelEndNotify {
+ uint32 next_floor_id = 4;
+ repeated ItemParam reward_item_list = 12;
+ uint32 continue_state = 15;
+ bool is_success = 5;
+ repeated uint32 finished_star_cond_list = 6;
+
+ enum ContinueStateType {
+ CONTINUE_STATE_TYPE_CAN_NOT_CONTINUE = 0;
+ CONTINUE_STATE_TYPE_CAN_ENTER_NEXT_LEVEL = 1;
+ CONTINUE_STATE_TYPE_CAN_ENTER_NEXT_FLOOR = 2;
+ }
+}
diff --git a/proto/TowerLevelRecord.proto b/proto/TowerLevelRecord.proto
new file mode 100644
index 00000000..a697644f
--- /dev/null
+++ b/proto/TowerLevelRecord.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TowerLevelRecord {
+ repeated uint32 satisfied_cond_list = 13;
+ uint32 level_id = 10;
+}
diff --git a/proto/TowerLevelStarCondData.proto b/proto/TowerLevelStarCondData.proto
new file mode 100644
index 00000000..7b23c141
--- /dev/null
+++ b/proto/TowerLevelStarCondData.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TowerLevelStarCondData {
+ bool Unk2700_HIFMJMAHEMB = 15;
+ uint32 cond_value = 9;
+ bool is_pause = 13;
+ uint32 star_cond_index = 6;
+}
diff --git a/proto/TowerLevelStarCondNotify.proto b/proto/TowerLevelStarCondNotify.proto
new file mode 100644
index 00000000..ef632ba5
--- /dev/null
+++ b/proto/TowerLevelStarCondNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TowerLevelStarCondData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2406
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TowerLevelStarCondNotify {
+ uint32 level_index = 14;
+ uint32 floor_id = 11;
+ repeated TowerLevelStarCondData cond_data_list = 9;
+}
diff --git a/proto/TowerMiddleLevelChangeTeamNotify.proto b/proto/TowerMiddleLevelChangeTeamNotify.proto
new file mode 100644
index 00000000..ce454528
--- /dev/null
+++ b/proto/TowerMiddleLevelChangeTeamNotify.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2434
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TowerMiddleLevelChangeTeamNotify {}
diff --git a/proto/TowerMonthlyBrief.proto b/proto/TowerMonthlyBrief.proto
new file mode 100644
index 00000000..97f402bb
--- /dev/null
+++ b/proto/TowerMonthlyBrief.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TowerMonthlyBrief {
+ uint32 tower_schedule_id = 15;
+ uint32 best_floor_index = 6;
+ uint32 best_level_index = 3;
+ uint32 total_star_count = 12;
+}
diff --git a/proto/TowerMonthlyCombatRecord.proto b/proto/TowerMonthlyCombatRecord.proto
new file mode 100644
index 00000000..639ca3d0
--- /dev/null
+++ b/proto/TowerMonthlyCombatRecord.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TowerFightRecordPair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TowerMonthlyCombatRecord {
+ TowerFightRecordPair most_kill_avatar_pair = 14;
+ TowerFightRecordPair most_cast_normal_skill_avatar_pair = 8;
+ repeated TowerFightRecordPair most_reveal_avatar_list = 6;
+ TowerFightRecordPair most_cast_energy_skill_avatar_pair = 4;
+ TowerFightRecordPair highest_dps_avatr_pair = 12;
+ TowerFightRecordPair most_take_damage_avatar_pair = 9;
+}
diff --git a/proto/TowerMonthlyDetail.proto b/proto/TowerMonthlyDetail.proto
new file mode 100644
index 00000000..030edda3
--- /dev/null
+++ b/proto/TowerMonthlyDetail.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TowerMonthlyBrief.proto";
+import "TowerMonthlyCombatRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TowerMonthlyDetail {
+ TowerMonthlyCombatRecord monthly_combat_record = 2;
+ TowerMonthlyBrief monthly_brief = 12;
+}
diff --git a/proto/TowerRecordHandbookReq.proto b/proto/TowerRecordHandbookReq.proto
new file mode 100644
index 00000000..0a9fa31b
--- /dev/null
+++ b/proto/TowerRecordHandbookReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2450
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TowerRecordHandbookReq {}
diff --git a/proto/TowerRecordHandbookRsp.proto b/proto/TowerRecordHandbookRsp.proto
new file mode 100644
index 00000000..1a27b3e8
--- /dev/null
+++ b/proto/TowerRecordHandbookRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TowerMonthlyDetail.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2443
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TowerRecordHandbookRsp {
+ int32 retcode = 7;
+ repeated TowerMonthlyDetail monthly_detail_list = 14;
+}
diff --git a/proto/TowerSurrenderReq.proto b/proto/TowerSurrenderReq.proto
new file mode 100644
index 00000000..7c02f1d7
--- /dev/null
+++ b/proto/TowerSurrenderReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2422
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TowerSurrenderReq {}
diff --git a/proto/TowerSurrenderRsp.proto b/proto/TowerSurrenderRsp.proto
new file mode 100644
index 00000000..f9216aa8
--- /dev/null
+++ b/proto/TowerSurrenderRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2465
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TowerSurrenderRsp {
+ int32 retcode = 9;
+}
diff --git a/proto/TowerTeam.proto b/proto/TowerTeam.proto
new file mode 100644
index 00000000..604be60c
--- /dev/null
+++ b/proto/TowerTeam.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TowerTeam {
+ uint32 tower_team_id = 3;
+ repeated uint64 avatar_guid_list = 14;
+}
diff --git a/proto/TowerTeamSelectReq.proto b/proto/TowerTeamSelectReq.proto
new file mode 100644
index 00000000..34dc284e
--- /dev/null
+++ b/proto/TowerTeamSelectReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TowerTeam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2421
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TowerTeamSelectReq {
+ repeated TowerTeam tower_team_list = 11;
+ uint32 floor_id = 10;
+}
diff --git a/proto/TowerTeamSelectRsp.proto b/proto/TowerTeamSelectRsp.proto
new file mode 100644
index 00000000..7057fc51
--- /dev/null
+++ b/proto/TowerTeamSelectRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2403
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TowerTeamSelectRsp {
+ int32 retcode = 8;
+}
diff --git a/proto/TrackingIOInfo.proto b/proto/TrackingIOInfo.proto
new file mode 100644
index 00000000..99d2f356
--- /dev/null
+++ b/proto/TrackingIOInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TrackingIOInfo {
+ string rydevicetype = 11;
+ string mac = 6;
+ string deviceid = 9;
+ string client_tz = 5;
+ string current_caid = 7;
+ string cached_caid = 15;
+ string appid = 1;
+}
diff --git a/proto/TransmitReason.proto b/proto/TransmitReason.proto
new file mode 100644
index 00000000..95f5092e
--- /dev/null
+++ b/proto/TransmitReason.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum TransmitReason {
+ TRANSMIT_REASON_NONE = 0;
+ TRANSMIT_REASON_QUEST = 1;
+}
diff --git a/proto/TreasureMapActivityDetailInfo.proto b/proto/TreasureMapActivityDetailInfo.proto
new file mode 100644
index 00000000..ace45119
--- /dev/null
+++ b/proto/TreasureMapActivityDetailInfo.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TreasureMapBonusChallengeInfo.proto";
+import "TreasureMapRegionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TreasureMapActivityDetailInfo {
+ uint32 active_region_index = 1;
+ repeated TreasureMapRegionInfo region_info_list = 6;
+ bool is_mp_challenge_touched = 7;
+ uint32 treasure_close_time = 10;
+ repeated TreasureMapBonusChallengeInfo bonus_challenge_list = 5;
+ uint32 currency_num = 2;
+ uint32 preview_reward_id = 14;
+ uint32 min_open_player_level = 8;
+ uint32 total_mp_spot_num = 13;
+}
diff --git a/proto/TreasureMapBonusChallengeInfo.proto b/proto/TreasureMapBonusChallengeInfo.proto
new file mode 100644
index 00000000..364e021a
--- /dev/null
+++ b/proto/TreasureMapBonusChallengeInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TreasureMapBonusChallengeInfo {
+ bool is_done = 5;
+ uint32 config_id = 10;
+ bool is_active = 1;
+ map fragment_map = 12;
+ uint32 solution_id = 8;
+}
diff --git a/proto/TreasureMapBonusChallengeNotify.proto b/proto/TreasureMapBonusChallengeNotify.proto
new file mode 100644
index 00000000..e36c048a
--- /dev/null
+++ b/proto/TreasureMapBonusChallengeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TreasureMapBonusChallengeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2115
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TreasureMapBonusChallengeNotify {
+ TreasureMapBonusChallengeInfo info = 5;
+}
diff --git a/proto/TreasureMapCurrencyNotify.proto b/proto/TreasureMapCurrencyNotify.proto
new file mode 100644
index 00000000..5567e13a
--- /dev/null
+++ b/proto/TreasureMapCurrencyNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2171
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TreasureMapCurrencyNotify {
+ uint32 currency_num = 8;
+}
diff --git a/proto/TreasureMapDetectorData.proto b/proto/TreasureMapDetectorData.proto
new file mode 100644
index 00000000..dea1d604
--- /dev/null
+++ b/proto/TreasureMapDetectorData.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TreasureMapDetectorData {
+ uint32 region_id = 4;
+ Vector center_pos = 7;
+ bool is_region_detected = 6;
+ repeated Vector spot_list = 10;
+ uint32 radius = 14;
+}
diff --git a/proto/TreasureMapDetectorDataNotify.proto b/proto/TreasureMapDetectorDataNotify.proto
new file mode 100644
index 00000000..c2f0a5ea
--- /dev/null
+++ b/proto/TreasureMapDetectorDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TreasureMapDetectorData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4300
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TreasureMapDetectorDataNotify {
+ TreasureMapDetectorData data = 2;
+}
diff --git a/proto/TreasureMapGuideTaskDoneNotify.proto b/proto/TreasureMapGuideTaskDoneNotify.proto
new file mode 100644
index 00000000..3e7a5da9
--- /dev/null
+++ b/proto/TreasureMapGuideTaskDoneNotify.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2119
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TreasureMapGuideTaskDoneNotify {}
diff --git a/proto/TreasureMapHostInfoNotify.proto b/proto/TreasureMapHostInfoNotify.proto
new file mode 100644
index 00000000..2630661f
--- /dev/null
+++ b/proto/TreasureMapHostInfoNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8681
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TreasureMapHostInfoNotify {
+ repeated uint32 mp_challenge_region_list = 8;
+}
diff --git a/proto/TreasureMapMpChallengeNotify.proto b/proto/TreasureMapMpChallengeNotify.proto
new file mode 100644
index 00000000..29cfbe3c
--- /dev/null
+++ b/proto/TreasureMapMpChallengeNotify.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2048
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TreasureMapMpChallengeNotify {}
diff --git a/proto/TreasureMapPreTaskDoneNotify.proto b/proto/TreasureMapPreTaskDoneNotify.proto
new file mode 100644
index 00000000..974a6459
--- /dev/null
+++ b/proto/TreasureMapPreTaskDoneNotify.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2152
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TreasureMapPreTaskDoneNotify {}
diff --git a/proto/TreasureMapRegionActiveNotify.proto b/proto/TreasureMapRegionActiveNotify.proto
new file mode 100644
index 00000000..9caceab0
--- /dev/null
+++ b/proto/TreasureMapRegionActiveNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2122
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TreasureMapRegionActiveNotify {
+ uint32 active_region_index = 14;
+}
diff --git a/proto/TreasureMapRegionInfo.proto b/proto/TreasureMapRegionInfo.proto
new file mode 100644
index 00000000..678cd795
--- /dev/null
+++ b/proto/TreasureMapRegionInfo.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TreasureMapRegionInfo {
+ uint32 start_time = 6;
+ uint32 current_progress = 11;
+ bool is_done_mp_spot = 3;
+ uint32 scene_id = 2;
+ uint32 goal_points = 12;
+ bool is_find_mp_spot = 4;
+ uint32 region_radius = 1;
+ Vector region_center_pos = 9;
+ uint32 region_id = 5;
+}
diff --git a/proto/TreasureMapRegionInfoNotify.proto b/proto/TreasureMapRegionInfoNotify.proto
new file mode 100644
index 00000000..55ad8fd4
--- /dev/null
+++ b/proto/TreasureMapRegionInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TreasureMapRegionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2185
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TreasureMapRegionInfoNotify {
+ TreasureMapRegionInfo region_info = 14;
+}
diff --git a/proto/TreasureSeelieDetailInfo.proto b/proto/TreasureSeelieDetailInfo.proto
new file mode 100644
index 00000000..338ee1ef
--- /dev/null
+++ b/proto/TreasureSeelieDetailInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_HDJHHOCABBK.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TreasureSeelieDetailInfo {
+ uint32 treasure_close_time = 10;
+ bool is_content_closed = 8;
+ repeated Unk3000_HDJHHOCABBK Unk3000_NMEPJANNLLE = 14;
+}
diff --git a/proto/TrialAvatarActivityDetailInfo.proto b/proto/TrialAvatarActivityDetailInfo.proto
new file mode 100644
index 00000000..7e9b7424
--- /dev/null
+++ b/proto/TrialAvatarActivityDetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "TrialAvatarActivityRewardDetailInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TrialAvatarActivityDetailInfo {
+ repeated TrialAvatarActivityRewardDetailInfo reward_info_list = 13;
+}
diff --git a/proto/TrialAvatarActivityRewardDetailInfo.proto b/proto/TrialAvatarActivityRewardDetailInfo.proto
new file mode 100644
index 00000000..9da3dd3a
--- /dev/null
+++ b/proto/TrialAvatarActivityRewardDetailInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TrialAvatarActivityRewardDetailInfo {
+ bool passed_dungeon = 2;
+ uint32 trial_avatar_index_id = 4;
+ bool received_reward = 5;
+ uint32 reward_id = 7;
+}
diff --git a/proto/TrialAvatarFirstPassDungeonNotify.proto b/proto/TrialAvatarFirstPassDungeonNotify.proto
new file mode 100644
index 00000000..e58cec62
--- /dev/null
+++ b/proto/TrialAvatarFirstPassDungeonNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2013
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TrialAvatarFirstPassDungeonNotify {
+ uint32 trial_avatar_index_id = 10;
+}
diff --git a/proto/TrialAvatarGrantRecord.proto b/proto/TrialAvatarGrantRecord.proto
new file mode 100644
index 00000000..dc1f98b6
--- /dev/null
+++ b/proto/TrialAvatarGrantRecord.proto
@@ -0,0 +1,41 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TrialAvatarGrantRecord {
+ uint32 grant_reason = 1;
+ uint32 from_parent_quest_id = 2;
+
+ enum GrantReason {
+ GRANT_REASON_INVALID = 0;
+ GRANT_REASON_BY_QUEST = 1;
+ GRANT_REASON_BY_TRIAL_AVATAR_ACTIVITY = 2;
+ GRANT_REASON_BY_DUNGEON_ELEMENT_CHALLENGE = 3;
+ GRANT_REASON_BY_MIST_TRIAL_ACTIVITY = 4;
+ GRANT_REASON_BY_SUMO_ACTIVITY = 5;
+ GRANT_REASON_Unk2700_ELPMDIEIOHP = 6;
+ GRANT_REASON_Unk2700_FALPDBLGHJB = 7;
+ GRANT_REASON_Unk2700_GAMADMGGMBC = 8;
+ GRANT_REASON_Unk2800_FIIDJHAKMOI = 9;
+ GRANT_REASON_Unk3000_ANPCNHCADHG = 10;
+ GRANT_REASON_Unk3000_AJIFFOLFKLO = 11;
+ GRANT_REASON_Unk3100_CKJJFGCFGEE = 12;
+ }
+}
diff --git a/proto/TrialAvatarInDungeonIndexNotify.proto b/proto/TrialAvatarInDungeonIndexNotify.proto
new file mode 100644
index 00000000..a7f644c0
--- /dev/null
+++ b/proto/TrialAvatarInDungeonIndexNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2186
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TrialAvatarInDungeonIndexNotify {
+ uint32 trial_avatar_index_id = 14;
+}
diff --git a/proto/TrialAvatarInfo.proto b/proto/TrialAvatarInfo.proto
new file mode 100644
index 00000000..27f481f3
--- /dev/null
+++ b/proto/TrialAvatarInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Item.proto";
+import "TrialAvatarGrantRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message TrialAvatarInfo {
+ uint32 trial_avatar_id = 1;
+ repeated Item trial_equip_list = 2;
+ TrialAvatarGrantRecord grant_record = 3;
+}
diff --git a/proto/TriggerCreateGadgetToEquipPartNotify.proto b/proto/TriggerCreateGadgetToEquipPartNotify.proto
new file mode 100644
index 00000000..5c95edb0
--- /dev/null
+++ b/proto/TriggerCreateGadgetToEquipPartNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 350
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TriggerCreateGadgetToEquipPartNotify {
+ uint32 gadget_id = 1;
+ uint32 entity_id = 13;
+ string equip_part = 14;
+ uint32 gadget_entity_id = 10;
+}
diff --git a/proto/TriggerRoguelikeCurseNotify.proto b/proto/TriggerRoguelikeCurseNotify.proto
new file mode 100644
index 00000000..2fc0a2ad
--- /dev/null
+++ b/proto/TriggerRoguelikeCurseNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8412
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TriggerRoguelikeCurseNotify {
+ repeated uint32 effect_param_list = 14;
+ uint32 curse_group_id = 9;
+ bool is_trigger_curse = 13;
+ uint32 curse_level = 3;
+}
diff --git a/proto/TriggerRoguelikeRuneReq.proto b/proto/TriggerRoguelikeRuneReq.proto
new file mode 100644
index 00000000..01a95866
--- /dev/null
+++ b/proto/TriggerRoguelikeRuneReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8463
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TriggerRoguelikeRuneReq {
+ uint32 rune_id = 8;
+}
diff --git a/proto/TriggerRoguelikeRuneRsp.proto b/proto/TriggerRoguelikeRuneRsp.proto
new file mode 100644
index 00000000..6d081daf
--- /dev/null
+++ b/proto/TriggerRoguelikeRuneRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8065
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TriggerRoguelikeRuneRsp {
+ uint32 available_count = 4;
+ uint32 rune_id = 14;
+ int32 retcode = 8;
+}
diff --git a/proto/TryEnterHomeReq.proto b/proto/TryEnterHomeReq.proto
new file mode 100644
index 00000000..c8ee681e
--- /dev/null
+++ b/proto/TryEnterHomeReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4482
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message TryEnterHomeReq {
+ uint32 target_uid = 3;
+ bool Unk3100_KEMFDDMEBIG = 10;
+ uint32 target_point = 9;
+}
diff --git a/proto/TryEnterHomeRsp.proto b/proto/TryEnterHomeRsp.proto
new file mode 100644
index 00000000..56943151
--- /dev/null
+++ b/proto/TryEnterHomeRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4653
+// EnetChannelId: 0
+// EnetIsReliable: true
+message TryEnterHomeRsp {
+ uint32 target_uid = 15;
+ int32 retcode = 4;
+ repeated uint32 param_list = 10;
+}
diff --git a/proto/UgcActivityDetailInfo.proto b/proto/UgcActivityDetailInfo.proto
new file mode 100644
index 00000000..f704b390
--- /dev/null
+++ b/proto/UgcActivityDetailInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_MMJJMKMHANL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message UgcActivityDetailInfo {
+ bool Unk2700_GMICFADLAMC = 10;
+ uint32 Unk2700_FDDCMGKDOCC = 12;
+ repeated Unk2700_MMJJMKMHANL Unk2700_ILCAPJBAFOI = 5;
+ bool Unk2700_PNOCELCOFNK = 11;
+}
diff --git a/proto/Uint32Pair.proto b/proto/Uint32Pair.proto
new file mode 100644
index 00000000..f2ae2ace
--- /dev/null
+++ b/proto/Uint32Pair.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Uint32Pair {
+ uint32 key = 1;
+ uint32 value = 2;
+}
diff --git a/proto/UnfreezeGroupLimitNotify.proto b/proto/UnfreezeGroupLimitNotify.proto
new file mode 100644
index 00000000..b4a8ce0d
--- /dev/null
+++ b/proto/UnfreezeGroupLimitNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3220
+// EnetChannelId: 0
+// EnetIsReliable: true
+message UnfreezeGroupLimitNotify {
+ uint32 point_id = 9;
+ uint32 scene_id = 11;
+}
diff --git a/proto/UnionCmd.proto b/proto/UnionCmd.proto
new file mode 100644
index 00000000..ab068282
--- /dev/null
+++ b/proto/UnionCmd.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message UnionCmd {
+ bytes body = 14;
+ uint32 message_id = 8;
+}
diff --git a/proto/UnionCmdNotify.proto b/proto/UnionCmdNotify.proto
new file mode 100644
index 00000000..ebdfe664
--- /dev/null
+++ b/proto/UnionCmdNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "UnionCmd.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message UnionCmdNotify {
+ repeated UnionCmd cmd_list = 1;
+}
diff --git a/proto/Unk2200_DEHCEKCILAB_ClientNotify.proto b/proto/Unk2200_DEHCEKCILAB_ClientNotify.proto
new file mode 100644
index 00000000..164fbfee
--- /dev/null
+++ b/proto/Unk2200_DEHCEKCILAB_ClientNotify.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 88
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2200_DEHCEKCILAB_ClientNotify {}
diff --git a/proto/Unk2700_AAAMOFPACEA.proto b/proto/Unk2700_AAAMOFPACEA.proto
new file mode 100644
index 00000000..4c9d253b
--- /dev/null
+++ b/proto/Unk2700_AAAMOFPACEA.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_DJDEPPHEHCP.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_AAAMOFPACEA {
+ repeated Unk2700_DJDEPPHEHCP Unk2700_ILGPNAAFFEG = 6;
+}
diff --git a/proto/Unk2700_AAHKMNNAFIH.proto b/proto/Unk2700_AAHKMNNAFIH.proto
new file mode 100644
index 00000000..f5183a35
--- /dev/null
+++ b/proto/Unk2700_AAHKMNNAFIH.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_ICPNKAALJEP.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8231
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_AAHKMNNAFIH {
+ uint32 gallery_id = 13;
+ Unk2700_ICPNKAALJEP settle_info = 12;
+}
diff --git a/proto/Unk2700_ACILPONNGGK_ClientReq.proto b/proto/Unk2700_ACILPONNGGK_ClientReq.proto
new file mode 100644
index 00000000..c4847f87
--- /dev/null
+++ b/proto/Unk2700_ACILPONNGGK_ClientReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4537
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_ACILPONNGGK_ClientReq {}
diff --git a/proto/Unk2700_ADBFKMECFNJ_ClientNotify.proto b/proto/Unk2700_ADBFKMECFNJ_ClientNotify.proto
new file mode 100644
index 00000000..41457184
--- /dev/null
+++ b/proto/Unk2700_ADBFKMECFNJ_ClientNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6240
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_ADBFKMECFNJ_ClientNotify {
+ int32 retcode = 15;
+}
diff --git a/proto/Unk2700_ADGLMHECKKJ.proto b/proto/Unk2700_ADGLMHECKKJ.proto
new file mode 100644
index 00000000..c0d2d606
--- /dev/null
+++ b/proto/Unk2700_ADGLMHECKKJ.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_ADGLMHECKKJ {
+ Unk2700_ADGLMHECKKJ_Unk2700_KHKEKEIAPBP = 0;
+ Unk2700_ADGLMHECKKJ_Unk2700_LNCNKDBGPLH = 1;
+ Unk2700_ADGLMHECKKJ_Unk2700_PEMOMIPJAGM = 2;
+ Unk2700_ADGLMHECKKJ_Unk2700_KHKIDAFCLLJ = 3;
+}
diff --git a/proto/Unk2700_ADIGEBEIJBA.proto b/proto/Unk2700_ADIGEBEIJBA.proto
new file mode 100644
index 00000000..24b5621f
--- /dev/null
+++ b/proto/Unk2700_ADIGEBEIJBA.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_ADIGEBEIJBA {
+ bool is_trial = 8;
+ uint64 avatar_guid = 11;
+}
diff --git a/proto/Unk2700_AEEMJIMOPKD.proto b/proto/Unk2700_AEEMJIMOPKD.proto
new file mode 100644
index 00000000..2a0e30a3
--- /dev/null
+++ b/proto/Unk2700_AEEMJIMOPKD.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8481
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_AEEMJIMOPKD {
+ uint32 stage_id = 13;
+ int32 retcode = 14;
+ bool is_success = 3;
+}
diff --git a/proto/Unk2700_AFOPONDCLKC.proto b/proto/Unk2700_AFOPONDCLKC.proto
new file mode 100644
index 00000000..5b3dd695
--- /dev/null
+++ b/proto/Unk2700_AFOPONDCLKC.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_AFOPONDCLKC {
+ string nickname = 14;
+ uint32 uid = 12;
+ ProfilePicture profile_picture = 5;
+ repeated uint32 item_id_list = 9;
+}
diff --git a/proto/Unk2700_AGIDJODJNEA.proto b/proto/Unk2700_AGIDJODJNEA.proto
new file mode 100644
index 00000000..7ef9320a
--- /dev/null
+++ b/proto/Unk2700_AGIDJODJNEA.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_AGIDJODJNEA {
+ Unk2700_AGIDJODJNEA_Unk2700_OAEGNAOPMFB = 0;
+ Unk2700_AGIDJODJNEA_Unk2700_DLDNOOGCFNB = 1;
+ Unk2700_AGIDJODJNEA_Unk2700_PONLJLLPNPI = 2;
+ Unk2700_AGIDJODJNEA_Unk2700_POHNGFOIPAH = 3;
+}
diff --git a/proto/Unk2700_AHHFDDOGCNA.proto b/proto/Unk2700_AHHFDDOGCNA.proto
new file mode 100644
index 00000000..6890990d
--- /dev/null
+++ b/proto/Unk2700_AHHFDDOGCNA.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8768
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_AHHFDDOGCNA {
+ map Unk2700_DACHHINLDDJ = 3;
+ int32 retcode = 13;
+}
diff --git a/proto/Unk2700_AHOMMGBBIAH.proto b/proto/Unk2700_AHOMMGBBIAH.proto
new file mode 100644
index 00000000..0346d0f6
--- /dev/null
+++ b/proto/Unk2700_AHOMMGBBIAH.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8066
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_AHOMMGBBIAH {
+ uint32 trial_id = 12;
+ int32 retcode = 4;
+}
diff --git a/proto/Unk2700_AIBHKIENDPF.proto b/proto/Unk2700_AIBHKIENDPF.proto
new file mode 100644
index 00000000..fbc493a9
--- /dev/null
+++ b/proto/Unk2700_AIBHKIENDPF.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_BGKMAAINPCO.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8147
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_AIBHKIENDPF {
+ uint32 level_id = 1;
+ uint32 difficulty_id = 14;
+ int32 retcode = 6;
+ repeated Unk2700_BGKMAAINPCO Unk2700_GMAEHKMDIGG = 8;
+}
diff --git a/proto/Unk2700_AIGECAPPCKK.proto b/proto/Unk2700_AIGECAPPCKK.proto
new file mode 100644
index 00000000..5566f2df
--- /dev/null
+++ b/proto/Unk2700_AIGECAPPCKK.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_HIHKGMLLOGD.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_AIGECAPPCKK {
+ repeated Unk2700_HIHKGMLLOGD Unk2700_AEJIIOOPJIL = 3;
+ uint32 Unk2700_HNCBHBKDODH = 14;
+}
diff --git a/proto/Unk2700_AIGKGLHBMCP_ServerRsp.proto b/proto/Unk2700_AIGKGLHBMCP_ServerRsp.proto
new file mode 100644
index 00000000..4e837fc0
--- /dev/null
+++ b/proto/Unk2700_AIGKGLHBMCP_ServerRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6244
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_AIGKGLHBMCP_ServerRsp {
+ int32 retcode = 1;
+ uint32 room_id = 13;
+}
diff --git a/proto/Unk2700_AIKOFHAKNPC.proto b/proto/Unk2700_AIKOFHAKNPC.proto
new file mode 100644
index 00000000..7235c3da
--- /dev/null
+++ b/proto/Unk2700_AIKOFHAKNPC.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8740
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_AIKOFHAKNPC {
+ uint32 trial_id = 13;
+}
diff --git a/proto/Unk2700_AIMMLILLOKB.proto b/proto/Unk2700_AIMMLILLOKB.proto
new file mode 100644
index 00000000..d2cbd336
--- /dev/null
+++ b/proto/Unk2700_AIMMLILLOKB.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_AIMMLILLOKB {
+ map Unk2700_DLKPHFDEDNF = 3;
+ uint32 uid = 6;
+ map Unk2700_HDJPJBIFMCO = 13;
+}
diff --git a/proto/Unk2700_AKIBKKOMBMC.proto b/proto/Unk2700_AKIBKKOMBMC.proto
new file mode 100644
index 00000000..c886ec25
--- /dev/null
+++ b/proto/Unk2700_AKIBKKOMBMC.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_IEPIBFMCJNJ.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8120
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_AKIBKKOMBMC {
+ int32 retcode = 15;
+ repeated Unk2700_IEPIBFMCJNJ Unk2700_GOCEOKPHFIO = 11;
+ uint32 schedule_id = 6;
+}
diff --git a/proto/Unk2700_ALBPFHFJHHF_ClientReq.proto b/proto/Unk2700_ALBPFHFJHHF_ClientReq.proto
new file mode 100644
index 00000000..faf77300
--- /dev/null
+++ b/proto/Unk2700_ALBPFHFJHHF_ClientReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_JDPMOMKAPIF.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6036
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_ALBPFHFJHHF_ClientReq {
+ Unk2700_JDPMOMKAPIF Unk2700_HPNDCCFNPEF = 3;
+}
diff --git a/proto/Unk2700_ALFEKGABMAA.proto b/proto/Unk2700_ALFEKGABMAA.proto
new file mode 100644
index 00000000..85d80343
--- /dev/null
+++ b/proto/Unk2700_ALFEKGABMAA.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8022
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_ALFEKGABMAA {}
diff --git a/proto/Unk2700_AMJFIJNNGHC.proto b/proto/Unk2700_AMJFIJNNGHC.proto
new file mode 100644
index 00000000..1d9369d7
--- /dev/null
+++ b/proto/Unk2700_AMJFIJNNGHC.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_PEDJGJMHMHH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_AMJFIJNNGHC {
+ bool is_open = 8;
+ repeated Unk2700_PEDJGJMHMHH Unk2700_KPEIIFDINPC = 1;
+}
diff --git a/proto/Unk2700_AMKLCEFNNCC.proto b/proto/Unk2700_AMKLCEFNNCC.proto
new file mode 100644
index 00000000..dad0aa79
--- /dev/null
+++ b/proto/Unk2700_AMKLCEFNNCC.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_AMKLCEFNNCC {
+ bool is_trial = 6;
+ uint64 avatar_id = 8;
+}
diff --git a/proto/Unk2700_AMOEOCPOMGJ_ClientReq.proto b/proto/Unk2700_AMOEOCPOMGJ_ClientReq.proto
new file mode 100644
index 00000000..ce631e8b
--- /dev/null
+++ b/proto/Unk2700_AMOEOCPOMGJ_ClientReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_JMPCGMBHJLG.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6090
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_AMOEOCPOMGJ_ClientReq {
+ Unk2700_JMPCGMBHJLG Unk2700_KHPPLOGFMDE = 13;
+}
diff --git a/proto/Unk2700_ANEBALDAFJI.proto b/proto/Unk2700_ANEBALDAFJI.proto
new file mode 100644
index 00000000..d21b3ed1
--- /dev/null
+++ b/proto/Unk2700_ANEBALDAFJI.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8357
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_ANEBALDAFJI {
+ repeated ItemParam item_list = 8;
+ int32 retcode = 11;
+}
diff --git a/proto/Unk2700_ANGBJGAOMHF_ClientReq.proto b/proto/Unk2700_ANGBJGAOMHF_ClientReq.proto
new file mode 100644
index 00000000..b1a4cb08
--- /dev/null
+++ b/proto/Unk2700_ANGBJGAOMHF_ClientReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_OPEBMJPOOBL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6344
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_ANGBJGAOMHF_ClientReq {
+ Unk2700_OPEBMJPOOBL Unk2700_KHBDAPGDOJA = 7;
+ uint64 Unk2700_CEPGMKAHHCD = 12;
+}
diff --git a/proto/Unk2700_AOIJNFMIAIP.proto b/proto/Unk2700_AOIJNFMIAIP.proto
new file mode 100644
index 00000000..2060c5ee
--- /dev/null
+++ b/proto/Unk2700_AOIJNFMIAIP.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8614
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_AOIJNFMIAIP {}
diff --git a/proto/Unk2700_APNHPEJCDMO.proto b/proto/Unk2700_APNHPEJCDMO.proto
new file mode 100644
index 00000000..d493338b
--- /dev/null
+++ b/proto/Unk2700_APNHPEJCDMO.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8610
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_APNHPEJCDMO {
+ uint32 Unk2700_PCKNCDNENCD = 1;
+ int32 retcode = 3;
+}
diff --git a/proto/Unk2700_APOBKAEHMEL.proto b/proto/Unk2700_APOBKAEHMEL.proto
new file mode 100644
index 00000000..7974a00b
--- /dev/null
+++ b/proto/Unk2700_APOBKAEHMEL.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8216
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_APOBKAEHMEL {
+ repeated ItemParam Unk2700_EENOCHNIAJL = 1;
+}
diff --git a/proto/Unk2700_BBLJNCKPKPN.proto b/proto/Unk2700_BBLJNCKPKPN.proto
new file mode 100644
index 00000000..d375801d
--- /dev/null
+++ b/proto/Unk2700_BBLJNCKPKPN.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8192
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_BBLJNCKPKPN {
+ uint32 level_id = 8;
+ uint32 stage_id = 7;
+}
diff --git a/proto/Unk2700_BBMKJGPMIOE.proto b/proto/Unk2700_BBMKJGPMIOE.proto
new file mode 100644
index 00000000..ae91e6df
--- /dev/null
+++ b/proto/Unk2700_BBMKJGPMIOE.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_KIGGOKAEFHM.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8580
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_BBMKJGPMIOE {
+ Unk2700_KIGGOKAEFHM Unk2700_CNJPCCECBPD = 14;
+}
diff --git a/proto/Unk2700_BCFKCLHCBDI.proto b/proto/Unk2700_BCFKCLHCBDI.proto
new file mode 100644
index 00000000..75cc6b13
--- /dev/null
+++ b/proto/Unk2700_BCFKCLHCBDI.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8419
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_BCFKCLHCBDI {
+ uint32 difficulty = 1;
+ uint32 stage_id = 12;
+}
diff --git a/proto/Unk2700_BCPHPHGOKGN.proto b/proto/Unk2700_BCPHPHGOKGN.proto
new file mode 100644
index 00000000..5229804b
--- /dev/null
+++ b/proto/Unk2700_BCPHPHGOKGN.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8227
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_BCPHPHGOKGN {
+ uint32 level_id = 6;
+}
diff --git a/proto/Unk2700_BEDCCMDPNCH.proto b/proto/Unk2700_BEDCCMDPNCH.proto
new file mode 100644
index 00000000..f7fc4031
--- /dev/null
+++ b/proto/Unk2700_BEDCCMDPNCH.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_BKHBKHINBIA.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8499
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_BEDCCMDPNCH {
+ uint32 gallery_id = 14;
+ Unk2700_BKHBKHINBIA settle_info = 15;
+}
diff --git a/proto/Unk2700_BEDLIGJANCJ_ClientReq.proto b/proto/Unk2700_BEDLIGJANCJ_ClientReq.proto
new file mode 100644
index 00000000..46007c5b
--- /dev/null
+++ b/proto/Unk2700_BEDLIGJANCJ_ClientReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4558
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_BEDLIGJANCJ_ClientReq {
+ uint32 Unk2700_BJHAMKKECEI = 14;
+}
diff --git a/proto/Unk2700_BEGHDPPNMFM.proto b/proto/Unk2700_BEGHDPPNMFM.proto
new file mode 100644
index 00000000..6108d311
--- /dev/null
+++ b/proto/Unk2700_BEGHDPPNMFM.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_OCDMIOKNHHH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_BEGHDPPNMFM {
+ repeated Unk2700_OCDMIOKNHHH Unk2700_AOFJNJNBAAI = 14;
+ uint32 timestamp = 9;
+}
diff --git a/proto/Unk2700_BEINCMBJDAA_ClientReq.proto b/proto/Unk2700_BEINCMBJDAA_ClientReq.proto
new file mode 100644
index 00000000..41f8b275
--- /dev/null
+++ b/proto/Unk2700_BEINCMBJDAA_ClientReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 333
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_BEINCMBJDAA_ClientReq {
+ uint32 target_id = 1;
+ float Unk2700_AEIDAJFHBBB = 5;
+ uint32 source_id = 13;
+ float Unk2700_JLLFGAIOPGC = 4;
+}
diff --git a/proto/Unk2700_BGKMAAINPCO.proto b/proto/Unk2700_BGKMAAINPCO.proto
new file mode 100644
index 00000000..658491e6
--- /dev/null
+++ b/proto/Unk2700_BGKMAAINPCO.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_JPGAAHJBLKB.proto";
+import "Unk2700_PKAPCOBGIJL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_BGKMAAINPCO {
+ repeated Unk2700_PKAPCOBGIJL Unk2700_INIBKFPMCFO = 2;
+ repeated Unk2700_JPGAAHJBLKB avatar_info_list = 11;
+}
diff --git a/proto/Unk2700_BIEMCDLIFOD.proto b/proto/Unk2700_BIEMCDLIFOD.proto
new file mode 100644
index 00000000..6e6031a3
--- /dev/null
+++ b/proto/Unk2700_BIEMCDLIFOD.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_BIEMCDLIFOD {
+ uint32 guid = 11;
+ Vector spawn_pos = 14;
+ repeated int32 included_furniture_index_list = 12;
+}
diff --git a/proto/Unk2700_BIFNFOGBPNM.proto b/proto/Unk2700_BIFNFOGBPNM.proto
new file mode 100644
index 00000000..02843a30
--- /dev/null
+++ b/proto/Unk2700_BIFNFOGBPNM.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_BIFNFOGBPNM {
+ bool is_open = 5;
+ uint32 route_id = 9;
+ bool Unk2700_MMNILGLDHHD = 15;
+}
diff --git a/proto/Unk2700_BJJOMPDLNAL.proto b/proto/Unk2700_BJJOMPDLNAL.proto
new file mode 100644
index 00000000..5d6a1980
--- /dev/null
+++ b/proto/Unk2700_BJJOMPDLNAL.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Uint32Pair.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_BJJOMPDLNAL {
+ repeated Uint32Pair monster_list = 1;
+ bool Unk2700_NILLABGAALO = 3;
+ uint32 config_id = 7;
+}
diff --git a/proto/Unk2700_BKEELPKCHGO_ClientReq.proto b/proto/Unk2700_BKEELPKCHGO_ClientReq.proto
new file mode 100644
index 00000000..c414a577
--- /dev/null
+++ b/proto/Unk2700_BKEELPKCHGO_ClientReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6209
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_BKEELPKCHGO_ClientReq {}
diff --git a/proto/Unk2700_BKGPMAHMHIG.proto b/proto/Unk2700_BKGPMAHMHIG.proto
new file mode 100644
index 00000000..14b0af61
--- /dev/null
+++ b/proto/Unk2700_BKGPMAHMHIG.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8561
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_BKGPMAHMHIG {
+ bool Unk2700_PHGMKGEMCFF = 2;
+ uint32 level_id = 12;
+ uint32 card_id = 9;
+}
diff --git a/proto/Unk2700_BKHBKHINBIA.proto b/proto/Unk2700_BKHBKHINBIA.proto
new file mode 100644
index 00000000..4987137d
--- /dev/null
+++ b/proto/Unk2700_BKHBKHINBIA.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_EGKIHLIOLDM.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_BKHBKHINBIA {
+ Unk2700_EGKIHLIOLDM settle_info = 3;
+ bool is_new_record = 2;
+}
diff --git a/proto/Unk2700_BLCHNMCGJCJ.proto b/proto/Unk2700_BLCHNMCGJCJ.proto
new file mode 100644
index 00000000..8e246de9
--- /dev/null
+++ b/proto/Unk2700_BLCHNMCGJCJ.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8948
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_BLCHNMCGJCJ {
+ int32 retcode = 11;
+}
diff --git a/proto/Unk2700_BLFFJBMLAPI.proto b/proto/Unk2700_BLFFJBMLAPI.proto
new file mode 100644
index 00000000..f26c2749
--- /dev/null
+++ b/proto/Unk2700_BLFFJBMLAPI.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8772
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_BLFFJBMLAPI {
+ int32 retcode = 9;
+ repeated ItemParam Unk2700_PILJPPJNGEJ = 14;
+ repeated ItemParam Unk2700_EENOCHNIAJL = 1;
+}
diff --git a/proto/Unk2700_BLHIGLFDHFA_ServerNotify.proto b/proto/Unk2700_BLHIGLFDHFA_ServerNotify.proto
new file mode 100644
index 00000000..09ed7125
--- /dev/null
+++ b/proto/Unk2700_BLHIGLFDHFA_ServerNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4654
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_BLHIGLFDHFA_ServerNotify {
+ uint32 trigger_entity_id = 10;
+ uint32 cur_score = 9;
+ uint32 add_score = 7;
+ uint32 gallery_id = 5;
+}
diff --git a/proto/Unk2700_BLNOMGJJLOI.proto b/proto/Unk2700_BLNOMGJJLOI.proto
new file mode 100644
index 00000000..3e0c6873
--- /dev/null
+++ b/proto/Unk2700_BLNOMGJJLOI.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8854
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_BLNOMGJJLOI {
+ int32 retcode = 1;
+ uint32 Unk2700_CKGJEOOKFIF = 8;
+}
diff --git a/proto/Unk2700_BMBAIACNLDF.proto b/proto/Unk2700_BMBAIACNLDF.proto
new file mode 100644
index 00000000..0c4aa6a5
--- /dev/null
+++ b/proto/Unk2700_BMBAIACNLDF.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_BMBAIACNLDF {
+ Unk2700_BMBAIACNLDF_Unk2700_KOGCCKHAIBJ = 0;
+ Unk2700_BMBAIACNLDF_Unk2700_OHHELAGBFFO = 1;
+ Unk2700_BMBAIACNLDF_Unk2700_BIGKGGIMNCD = 2;
+}
diff --git a/proto/Unk2700_BMDBBHFJMPF.proto b/proto/Unk2700_BMDBBHFJMPF.proto
new file mode 100644
index 00000000..b8fa6b9a
--- /dev/null
+++ b/proto/Unk2700_BMDBBHFJMPF.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8178
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_BMDBBHFJMPF {
+ uint32 activity_id = 1;
+}
diff --git a/proto/Unk2700_BNABFJBODGE.proto b/proto/Unk2700_BNABFJBODGE.proto
new file mode 100644
index 00000000..97e3b28a
--- /dev/null
+++ b/proto/Unk2700_BNABFJBODGE.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8226
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_BNABFJBODGE {
+ uint32 stage_id = 12;
+ uint32 skill_id = 11;
+ uint32 challenge_id = 10;
+ uint32 Unk2700_AIKKJGOLLHK = 13;
+}
diff --git a/proto/Unk2700_BNCBHLOKDCD.proto b/proto/Unk2700_BNCBHLOKDCD.proto
new file mode 100644
index 00000000..7464cb81
--- /dev/null
+++ b/proto/Unk2700_BNCBHLOKDCD.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8602
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_BNCBHLOKDCD {
+ uint32 num = 10;
+}
diff --git a/proto/Unk2700_BNMDCEKPDMC.proto b/proto/Unk2700_BNMDCEKPDMC.proto
new file mode 100644
index 00000000..260f6687
--- /dev/null
+++ b/proto/Unk2700_BNMDCEKPDMC.proto
@@ -0,0 +1,38 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_BJJOMPDLNAL.proto";
+import "Unk2700_HJLFNKLPFBH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8641
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_BNMDCEKPDMC {
+ uint32 stage_id = 8;
+ repeated uint32 Unk2700_KIFPKPGKJCA = 14;
+ repeated Unk2700_HJLFNKLPFBH avatar_list = 13;
+ repeated Unk2700_BJJOMPDLNAL Unk2700_AAGBIFHNNPP = 2;
+ repeated uint32 Unk2700_GGNBBHMGLAN = 10;
+ repeated Unk2700_HJLFNKLPFBH Unk2700_PLHIJIHFNDL = 9;
+ repeated uint32 Unk2700_OKGKHPCMNMN = 15;
+ repeated Unk2700_HJLFNKLPFBH Unk2700_BBGHICEDLBB = 11;
+}
diff --git a/proto/Unk2700_BOEHCEAAKKA.proto b/proto/Unk2700_BOEHCEAAKKA.proto
new file mode 100644
index 00000000..a3e1e9ae
--- /dev/null
+++ b/proto/Unk2700_BOEHCEAAKKA.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8921
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_BOEHCEAAKKA {
+ uint32 Unk2700_CKGJEOOKFIF = 15;
+ uint32 Unk2700_ADNAKNMDMGG = 2;
+ bool is_succ = 5;
+}
diff --git a/proto/Unk2700_BOPIJJPNHCK.proto b/proto/Unk2700_BOPIJJPNHCK.proto
new file mode 100644
index 00000000..f197b4b1
--- /dev/null
+++ b/proto/Unk2700_BOPIJJPNHCK.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8590
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_BOPIJJPNHCK {
+ int32 retcode = 4;
+}
diff --git a/proto/Unk2700_BPFNCHEFKJM.proto b/proto/Unk2700_BPFNCHEFKJM.proto
new file mode 100644
index 00000000..686ea423
--- /dev/null
+++ b/proto/Unk2700_BPFNCHEFKJM.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8449
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_BPFNCHEFKJM {
+ int32 retcode = 10;
+}
diff --git a/proto/Unk2700_BPPDLOJLAAO.proto b/proto/Unk2700_BPPDLOJLAAO.proto
new file mode 100644
index 00000000..cd601f1a
--- /dev/null
+++ b/proto/Unk2700_BPPDLOJLAAO.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8280
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_BPPDLOJLAAO {}
diff --git a/proto/Unk2700_CALNMMBNKFD.proto b/proto/Unk2700_CALNMMBNKFD.proto
new file mode 100644
index 00000000..7d1c12ad
--- /dev/null
+++ b/proto/Unk2700_CALNMMBNKFD.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_AIMMLILLOKB.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8502
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_CALNMMBNKFD {
+ Unk2700_AIMMLILLOKB Unk2700_GHDHIBDLFPN = 4;
+ int32 retcode = 11;
+ uint32 schedule_id = 10;
+}
diff --git a/proto/Unk2700_CAODHBDOGNE.proto b/proto/Unk2700_CAODHBDOGNE.proto
new file mode 100644
index 00000000..b207a01e
--- /dev/null
+++ b/proto/Unk2700_CAODHBDOGNE.proto
@@ -0,0 +1,39 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_BJJOMPDLNAL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8597
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_CAODHBDOGNE {
+ uint32 stage_id = 12;
+ repeated uint32 Unk2700_HIMJICENGCC = 15;
+ uint32 time = 4;
+ uint32 Unk2700_COOCEOOMMKC = 5;
+ uint32 Unk2700_PPEBOKBCPLE = 6;
+ uint32 coin = 11;
+ uint32 difficulty = 8;
+ uint32 dungeon_id = 14;
+ repeated Unk2700_BJJOMPDLNAL Unk2700_AAGBIFHNNPP = 7;
+ repeated uint32 Unk2700_ALMOAMMNNGP = 10;
+}
diff --git a/proto/Unk2700_CBGOFDNILKA.proto b/proto/Unk2700_CBGOFDNILKA.proto
new file mode 100644
index 00000000..3f017f38
--- /dev/null
+++ b/proto/Unk2700_CBGOFDNILKA.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8159
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_CBGOFDNILKA {
+ uint32 Unk2700_APJPPLAAFEM = 13;
+ bool Unk2700_JGAMIHLFFOI = 1;
+}
diff --git a/proto/Unk2700_CBJEDMGOBPL.proto b/proto/Unk2700_CBJEDMGOBPL.proto
new file mode 100644
index 00000000..6a2290f3
--- /dev/null
+++ b/proto/Unk2700_CBJEDMGOBPL.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_CBJEDMGOBPL {
+ Unk2700_CBJEDMGOBPL_Unk2700_MBLDLJOKLBL = 0;
+ Unk2700_CBJEDMGOBPL_Unk2700_ILOMIKADKGD = 1;
+ Unk2700_CBJEDMGOBPL_Unk2700_HGHOEJGHMDH = 2;
+ Unk2700_CBJEDMGOBPL_Unk2700_PJCONIDJGOD = 3;
+}
diff --git a/proto/Unk2700_CBMGMANEDNA.proto b/proto/Unk2700_CBMGMANEDNA.proto
new file mode 100644
index 00000000..28ad2f9f
--- /dev/null
+++ b/proto/Unk2700_CBMGMANEDNA.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_DOGEKCNIIAO.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_CBMGMANEDNA {
+ repeated Unk2700_DOGEKCNIIAO monster_info_list = 6;
+ uint32 entrance_point_id = 4;
+}
diff --git a/proto/Unk2700_CCCKFHICDHD_ClientNotify.proto b/proto/Unk2700_CCCKFHICDHD_ClientNotify.proto
new file mode 100644
index 00000000..941fdeca
--- /dev/null
+++ b/proto/Unk2700_CCCKFHICDHD_ClientNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3314
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_CCCKFHICDHD_ClientNotify {
+ repeated uint32 Unk2700_KPKEIFJJDAO = 9;
+}
diff --git a/proto/Unk2700_CCEOEOHLAPK.proto b/proto/Unk2700_CCEOEOHLAPK.proto
new file mode 100644
index 00000000..b4ad80ff
--- /dev/null
+++ b/proto/Unk2700_CCEOEOHLAPK.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_CCEOEOHLAPK {
+ bool is_hint_valid = 3;
+ Vector hint_center_pos = 8;
+ uint32 group_id = 6;
+ uint32 config_id = 9;
+}
diff --git a/proto/Unk2700_CEEONDKDIHH_ClientReq.proto b/proto/Unk2700_CEEONDKDIHH_ClientReq.proto
new file mode 100644
index 00000000..7b0a1360
--- /dev/null
+++ b/proto/Unk2700_CEEONDKDIHH_ClientReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6213
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_CEEONDKDIHH_ClientReq {
+ bool Unk2700_MAPEEDEBLKN = 9;
+ uint64 Unk2700_ONOOJBEABOE = 11;
+}
diff --git a/proto/Unk2700_CFLKEDHFPAB.proto b/proto/Unk2700_CFLKEDHFPAB.proto
new file mode 100644
index 00000000..c28648ce
--- /dev/null
+++ b/proto/Unk2700_CFLKEDHFPAB.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8143
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_CFLKEDHFPAB {}
diff --git a/proto/Unk2700_CGNFBKKBPJE.proto b/proto/Unk2700_CGNFBKKBPJE.proto
new file mode 100644
index 00000000..468114fb
--- /dev/null
+++ b/proto/Unk2700_CGNFBKKBPJE.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8240
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_CGNFBKKBPJE {
+ int32 retcode = 13;
+ uint32 stage_id = 6;
+}
diff --git a/proto/Unk2700_CHICHNGLKPI.proto b/proto/Unk2700_CHICHNGLKPI.proto
new file mode 100644
index 00000000..c3cb0e02
--- /dev/null
+++ b/proto/Unk2700_CHICHNGLKPI.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8149
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_CHICHNGLKPI {
+ uint32 id = 5;
+ uint32 max_score = 14;
+}
diff --git a/proto/Unk2700_CHLNIDHHGLE.proto b/proto/Unk2700_CHLNIDHHGLE.proto
new file mode 100644
index 00000000..81196d80
--- /dev/null
+++ b/proto/Unk2700_CHLNIDHHGLE.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_MOFABPNGIKP.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_CHLNIDHHGLE {
+ uint32 score = 8;
+ Unk2700_MOFABPNGIKP reason = 14;
+ uint32 hit_count = 10;
+ uint32 owner_uid = 6;
+}
diff --git a/proto/Unk2700_CILGDLMHCNG_ServerNotify.proto b/proto/Unk2700_CILGDLMHCNG_ServerNotify.proto
new file mode 100644
index 00000000..8505e2eb
--- /dev/null
+++ b/proto/Unk2700_CILGDLMHCNG_ServerNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1951
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_CILGDLMHCNG_ServerNotify {
+ string Unk2700_GEBOKAMGEEB = 7;
+ uint32 chapter_id = 15;
+}
diff --git a/proto/Unk2700_CIOMEDJDPBP_ClientReq.proto b/proto/Unk2700_CIOMEDJDPBP_ClientReq.proto
new file mode 100644
index 00000000..dd4fc145
--- /dev/null
+++ b/proto/Unk2700_CIOMEDJDPBP_ClientReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6342
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_CIOMEDJDPBP_ClientReq {}
diff --git a/proto/Unk2700_CJKCCLEGPCM.proto b/proto/Unk2700_CJKCCLEGPCM.proto
new file mode 100644
index 00000000..b50cc30d
--- /dev/null
+++ b/proto/Unk2700_CJKCCLEGPCM.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8153
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_CJKCCLEGPCM {
+ int32 retcode = 6;
+ uint32 id = 15;
+}
diff --git a/proto/Unk2700_CKMOPKMKCAO.proto b/proto/Unk2700_CKMOPKMKCAO.proto
new file mode 100644
index 00000000..85647072
--- /dev/null
+++ b/proto/Unk2700_CKMOPKMKCAO.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_CKMOPKMKCAO {
+ Unk2700_CKMOPKMKCAO_Unk2700_BJNNKGGOEIM = 0;
+ Unk2700_CKMOPKMKCAO_MINE = 1;
+ Unk2700_CKMOPKMKCAO_Unk2700_ECDAEGKEKIJ = 2;
+}
diff --git a/proto/Unk2700_CLKGPNDKIDD.proto b/proto/Unk2700_CLKGPNDKIDD.proto
new file mode 100644
index 00000000..ab311c0b
--- /dev/null
+++ b/proto/Unk2700_CLKGPNDKIDD.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8725
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_CLKGPNDKIDD {
+ uint32 schedule_id = 8;
+}
diff --git a/proto/Unk2700_CLMGFEOPNFH.proto b/proto/Unk2700_CLMGFEOPNFH.proto
new file mode 100644
index 00000000..cf12fc81
--- /dev/null
+++ b/proto/Unk2700_CLMGFEOPNFH.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8938
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_CLMGFEOPNFH {
+ int32 retcode = 10;
+ uint32 gallery_id = 12;
+}
diff --git a/proto/Unk2700_CMKDNIANBNE.proto b/proto/Unk2700_CMKDNIANBNE.proto
new file mode 100644
index 00000000..2f4cf266
--- /dev/null
+++ b/proto/Unk2700_CMKDNIANBNE.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_CMKDNIANBNE {
+ string type = 1;
+ string content = 2;
+ uint32 Unk2700_POPBOKAKBBO = 3;
+}
diff --git a/proto/Unk2700_CMOCCENBOLJ.proto b/proto/Unk2700_CMOCCENBOLJ.proto
new file mode 100644
index 00000000..95c5205e
--- /dev/null
+++ b/proto/Unk2700_CMOCCENBOLJ.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_CMOCCENBOLJ {
+ bool Unk2700_MMNILGLDHHD = 10;
+ uint32 Unk2700_OLLKIFMOPAG = 5;
+ uint32 finish_time = 15;
+ uint32 difficulty = 13;
+}
diff --git a/proto/Unk2700_CNEIMEHAAAF.proto b/proto/Unk2700_CNEIMEHAAAF.proto
new file mode 100644
index 00000000..e65b9626
--- /dev/null
+++ b/proto/Unk2700_CNEIMEHAAAF.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8903
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_CNEIMEHAAAF {
+ int32 retcode = 4;
+}
diff --git a/proto/Unk2700_CNNJKJFHGGD.proto b/proto/Unk2700_CNNJKJFHGGD.proto
new file mode 100644
index 00000000..9736719d
--- /dev/null
+++ b/proto/Unk2700_CNNJKJFHGGD.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8264
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_CNNJKJFHGGD {
+ repeated uint32 Unk2700_ABJAKBCPEEC = 11;
+ int32 retcode = 3;
+}
diff --git a/proto/Unk2700_COGBIJAPDLE.proto b/proto/Unk2700_COGBIJAPDLE.proto
new file mode 100644
index 00000000..df74c236
--- /dev/null
+++ b/proto/Unk2700_COGBIJAPDLE.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8535
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_COGBIJAPDLE {
+ int32 retcode = 3;
+}
diff --git a/proto/Unk2700_CPDDDMPAIDL.proto b/proto/Unk2700_CPDDDMPAIDL.proto
new file mode 100644
index 00000000..baa23188
--- /dev/null
+++ b/proto/Unk2700_CPDDDMPAIDL.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8817
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_CPDDDMPAIDL {
+ bool Unk2700_PHGMKGEMCFF = 10;
+ uint32 card_id = 13;
+ uint32 level_id = 14;
+ int32 retcode = 11;
+}
diff --git a/proto/Unk2700_CPEMGFIMICD.proto b/proto/Unk2700_CPEMGFIMICD.proto
new file mode 100644
index 00000000..34ef4791
--- /dev/null
+++ b/proto/Unk2700_CPEMGFIMICD.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8588
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_CPEMGFIMICD {
+ uint32 Unk2700_LKBHLHIHJGL = 1;
+ int32 retcode = 14;
+}
diff --git a/proto/Unk2700_CPNDLPDOPGN.proto b/proto/Unk2700_CPNDLPDOPGN.proto
new file mode 100644
index 00000000..2a9f6821
--- /dev/null
+++ b/proto/Unk2700_CPNDLPDOPGN.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_CPNDLPDOPGN {
+ uint64 Unk2700_ONOOJBEABOE = 3;
+ uint32 uid = 15;
+ uint32 timestamp = 4;
+ string region = 11;
+ uint32 lang = 13;
+}
diff --git a/proto/Unk2700_DAGJNGODABM_ClientReq.proto b/proto/Unk2700_DAGJNGODABM_ClientReq.proto
new file mode 100644
index 00000000..b957b2f5
--- /dev/null
+++ b/proto/Unk2700_DAGJNGODABM_ClientReq.proto
@@ -0,0 +1,38 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MusicBriefInfo.proto";
+import "MusicRecord.proto";
+import "Unk2700_OPEBMJPOOBL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6329
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_DAGJNGODABM_ClientReq {
+ Unk2700_OPEBMJPOOBL Unk2700_KHBDAPGDOJA = 11;
+ oneof Unk2700_MIPPJKBFLOO {
+ MusicRecord music_record = 2;
+ }
+ oneof Unk2700_ILHNBMNOMHO {
+ MusicBriefInfo music_brief_info = 1488;
+ }
+}
diff --git a/proto/Unk2700_DBPDHLEGOLB.proto b/proto/Unk2700_DBPDHLEGOLB.proto
new file mode 100644
index 00000000..e461b84b
--- /dev/null
+++ b/proto/Unk2700_DBPDHLEGOLB.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8127
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_DBPDHLEGOLB {
+ uint32 stage_id = 5;
+}
diff --git a/proto/Unk2700_DCBEFDDECOJ.proto b/proto/Unk2700_DCBEFDDECOJ.proto
new file mode 100644
index 00000000..9814093b
--- /dev/null
+++ b/proto/Unk2700_DCBEFDDECOJ.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_ADIGEBEIJBA.proto";
+import "Unk2700_PKAPCOBGIJL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8858
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_DCBEFDDECOJ {
+ repeated Unk2700_PKAPCOBGIJL Unk2700_INIBKFPMCFO = 8;
+ uint32 level_id = 1;
+ bool Unk2700_CBPNPEBMPOH = 15;
+ uint32 difficulty_id = 11;
+ repeated Unk2700_ADIGEBEIJBA Unk2700_EONPKLLJHPH = 3;
+ uint32 Unk2700_FIGHJIFINKI = 7;
+}
diff --git a/proto/Unk2700_DCKKCAJCNKP_ServerRsp.proto b/proto/Unk2700_DCKKCAJCNKP_ServerRsp.proto
new file mode 100644
index 00000000..04ba2bff
--- /dev/null
+++ b/proto/Unk2700_DCKKCAJCNKP_ServerRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_IGJLOMCPLLE.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6207
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_DCKKCAJCNKP_ServerRsp {
+ uint32 room_id = 14;
+ repeated Unk2700_IGJLOMCPLLE Unk2700_MPNOBKBMDFG = 9;
+ int32 retcode = 12;
+}
diff --git a/proto/Unk2700_DDAHPHCEIIM.proto b/proto/Unk2700_DDAHPHCEIIM.proto
new file mode 100644
index 00000000..2ad3b1c5
--- /dev/null
+++ b/proto/Unk2700_DDAHPHCEIIM.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CustomGadgetTreeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8144
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_DDAHPHCEIIM {
+ uint32 entity_id = 9;
+ CustomGadgetTreeInfo Unk2700_OCIHJFOKHPK = 6;
+}
diff --git a/proto/Unk2700_DDLBKAMGGEE_ServerRsp.proto b/proto/Unk2700_DDLBKAMGGEE_ServerRsp.proto
new file mode 100644
index 00000000..6e205bc2
--- /dev/null
+++ b/proto/Unk2700_DDLBKAMGGEE_ServerRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_GHHCCEHGKLH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6215
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_DDLBKAMGGEE_ServerRsp {
+ int32 retcode = 15;
+ Unk2700_GHHCCEHGKLH Unk2700_AMOAHIICCPC = 14;
+}
diff --git a/proto/Unk2700_DEDIKDKNAAB.proto b/proto/Unk2700_DEDIKDKNAAB.proto
new file mode 100644
index 00000000..80f225a0
--- /dev/null
+++ b/proto/Unk2700_DEDIKDKNAAB.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_DEDIKDKNAAB {
+ bool Unk2700_EDLGAFHFDBE = 5;
+}
diff --git a/proto/Unk2700_DFOHGHKAIBO.proto b/proto/Unk2700_DFOHGHKAIBO.proto
new file mode 100644
index 00000000..00e22cb5
--- /dev/null
+++ b/proto/Unk2700_DFOHGHKAIBO.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8442
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_DFOHGHKAIBO {
+ uint32 quest_id = 3;
+}
diff --git a/proto/Unk2700_DGDJKHJNLGO.proto b/proto/Unk2700_DGDJKHJNLGO.proto
new file mode 100644
index 00000000..824a8c09
--- /dev/null
+++ b/proto/Unk2700_DGDJKHJNLGO.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_PGFLJBBEBKG.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_DGDJKHJNLGO {
+ uint32 uid = 1;
+ repeated uint64 Unk2700_OEFLHAPAMFH = 2;
+ repeated uint64 Unk2700_OJNBAOCJBCH = 3;
+ repeated Unk2700_PGFLJBBEBKG Unk2700_GDDGEKHOLGL = 4;
+}
diff --git a/proto/Unk2700_DGLIANMBMPA.proto b/proto/Unk2700_DGLIANMBMPA.proto
new file mode 100644
index 00000000..42a158e6
--- /dev/null
+++ b/proto/Unk2700_DGLIANMBMPA.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8342
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_DGLIANMBMPA {
+ uint32 Unk2700_FHNECPGFPBK = 9;
+ uint32 Unk2700_OAKEBJPBNMA = 2;
+ bool is_new_record = 7;
+ bool is_success = 3;
+ uint32 gallery_id = 13;
+ uint32 remain_time = 4;
+ uint32 score = 11;
+ uint32 Unk2700_FCOMHLJGFLK = 15;
+}
diff --git a/proto/Unk2700_DIEGJDEIDKO.proto b/proto/Unk2700_DIEGJDEIDKO.proto
new file mode 100644
index 00000000..0822a094
--- /dev/null
+++ b/proto/Unk2700_DIEGJDEIDKO.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_DIEGJDEIDKO {
+ uint32 cur_progress = 12;
+ uint32 id = 6;
+ uint32 open_time = 8;
+ bool is_finished = 10;
+ uint32 total_progress = 9;
+ Vector pos = 5;
+}
diff --git a/proto/Unk2700_DJDEPPHEHCP.proto b/proto/Unk2700_DJDEPPHEHCP.proto
new file mode 100644
index 00000000..38d89f4a
--- /dev/null
+++ b/proto/Unk2700_DJDEPPHEHCP.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_DJDEPPHEHCP {
+ uint32 start_time = 12;
+ uint32 end_time = 5;
+}
diff --git a/proto/Unk2700_DJKEGIEIKHG.proto b/proto/Unk2700_DJKEGIEIKHG.proto
new file mode 100644
index 00000000..55cf684b
--- /dev/null
+++ b/proto/Unk2700_DJKEGIEIKHG.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_MOFABPNGIKP.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_DJKEGIEIKHG {
+ Unk2700_MOFABPNGIKP reason = 15;
+ bool Unk2700_MMNILGLDHHD = 11;
+ uint32 finish_time = 14;
+ uint32 Unk2700_BCCHNACPBME = 6;
+ uint32 level_id = 4;
+}
diff --git a/proto/Unk2700_DJMKFGKGAEA.proto b/proto/Unk2700_DJMKFGKGAEA.proto
new file mode 100644
index 00000000..2211cb8c
--- /dev/null
+++ b/proto/Unk2700_DJMKFGKGAEA.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8411
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_DJMKFGKGAEA {
+ int32 retcode = 15;
+}
diff --git a/proto/Unk2700_DLAEFMAMIIJ.proto b/proto/Unk2700_DLAEFMAMIIJ.proto
new file mode 100644
index 00000000..8ab5e319
--- /dev/null
+++ b/proto/Unk2700_DLAEFMAMIIJ.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8844
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_DLAEFMAMIIJ {
+ uint32 gallery_id = 6;
+}
diff --git a/proto/Unk2700_DMPIJLBHEAE.proto b/proto/Unk2700_DMPIJLBHEAE.proto
new file mode 100644
index 00000000..bf2f0f13
--- /dev/null
+++ b/proto/Unk2700_DMPIJLBHEAE.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BundleInfo.proto";
+import "ScoreChallengeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_DMPIJLBHEAE {
+ uint32 challenge_type = 5;
+ bool is_unlock = 12;
+ oneof Unk2700_AFHAGFONBFM {
+ BundleInfo bundle_info = 11;
+ ScoreChallengeInfo score_challenge_info = 13;
+ uint32 boss_challenge_id = 2;
+ }
+}
diff --git a/proto/Unk2700_DOGEKCNIIAO.proto b/proto/Unk2700_DOGEKCNIIAO.proto
new file mode 100644
index 00000000..21ea59f8
--- /dev/null
+++ b/proto/Unk2700_DOGEKCNIIAO.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_DOGEKCNIIAO {
+ uint32 Unk2700_KJFBIFHFIBO = 6;
+ uint32 level = 13;
+ uint32 monster_id = 14;
+ repeated uint32 affix_list = 11;
+}
diff --git a/proto/Unk2700_DPPCDPBBABA.proto b/proto/Unk2700_DPPCDPBBABA.proto
new file mode 100644
index 00000000..11b97d6d
--- /dev/null
+++ b/proto/Unk2700_DPPCDPBBABA.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_PIAFGFGHGHM.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_DPPCDPBBABA {
+ bool is_open = 1;
+ string content = 2;
+ uint32 Unk2700_DIFBKPIAEBB = 3;
+ Unk2700_PIAFGFGHGHM Unk2700_HMGCGJCDDEG = 4;
+ uint32 Unk2700_JEKIGDDNCAB = 5;
+}
diff --git a/proto/Unk2700_EAAGDFHHNMJ_ServerReq.proto b/proto/Unk2700_EAAGDFHHNMJ_ServerReq.proto
new file mode 100644
index 00000000..fdda7600
--- /dev/null
+++ b/proto/Unk2700_EAAGDFHHNMJ_ServerReq.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1105
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_EAAGDFHHNMJ_ServerReq {
+ repeated uint32 Unk2700_IBJECDLKPGM = 14;
+}
diff --git a/proto/Unk2700_EAAMIOAFNOD_ServerRsp.proto b/proto/Unk2700_EAAMIOAFNOD_ServerRsp.proto
new file mode 100644
index 00000000..b33b5fd8
--- /dev/null
+++ b/proto/Unk2700_EAAMIOAFNOD_ServerRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4064
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_EAAMIOAFNOD_ServerRsp {
+ int32 retcode = 9;
+}
diff --git a/proto/Unk2700_EAGIANJBNGK_ClientReq.proto b/proto/Unk2700_EAGIANJBNGK_ClientReq.proto
new file mode 100644
index 00000000..b5bfe8e8
--- /dev/null
+++ b/proto/Unk2700_EAGIANJBNGK_ClientReq.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ElementReliquaryRequest.proto";
+import "ReliquaryRequest.proto";
+import "SkillRequest.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 151
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_EAGIANJBNGK_ClientReq {
+ uint32 avatar_id = 9;
+ oneof detail {
+ SkillRequest skill_request = 553;
+ ReliquaryRequest reliquary_request = 1993;
+ ElementReliquaryRequest element_reliquary_request = 1489;
+ }
+}
diff --git a/proto/Unk2700_EAJCGENDICI.proto b/proto/Unk2700_EAJCGENDICI.proto
new file mode 100644
index 00000000..308f4af4
--- /dev/null
+++ b/proto/Unk2700_EAJCGENDICI.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_EAJCGENDICI {
+ Unk2700_EAJCGENDICI_Unk2700_NDNHCNOOCCA = 0;
+ Unk2700_EAJCGENDICI_Unk2700_GFALGAIAPOP = 1;
+ Unk2700_EAJCGENDICI_Unk2700_AAFPJPGKHPO = 2;
+ Unk2700_EAJCGENDICI_Unk2700_HFKOPLPHODM = 3;
+ Unk2700_EAJCGENDICI_Unk2700_OPIOJNLJNJN = 4;
+ Unk2700_EAJCGENDICI_Unk2700_GHHLNHAJEBA = 5;
+}
diff --git a/proto/Unk2700_EAOAMGDLJMP.proto b/proto/Unk2700_EAOAMGDLJMP.proto
new file mode 100644
index 00000000..02e4edad
--- /dev/null
+++ b/proto/Unk2700_EAOAMGDLJMP.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8617
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_EAOAMGDLJMP {}
diff --git a/proto/Unk2700_EBJCAMGPFDB.proto b/proto/Unk2700_EBJCAMGPFDB.proto
new file mode 100644
index 00000000..60bc7259
--- /dev/null
+++ b/proto/Unk2700_EBJCAMGPFDB.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8838
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_EBJCAMGPFDB {
+ uint32 stage_id = 2;
+}
diff --git a/proto/Unk2700_EBOECOIFJMP.proto b/proto/Unk2700_EBOECOIFJMP.proto
new file mode 100644
index 00000000..ddaeaabf
--- /dev/null
+++ b/proto/Unk2700_EBOECOIFJMP.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8717
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_EBOECOIFJMP {
+ bool Unk2700_PHGMKGEMCFF = 1;
+ uint32 level_id = 11;
+}
diff --git a/proto/Unk2700_ECBEAMKBGMD_ClientReq.proto b/proto/Unk2700_ECBEAMKBGMD_ClientReq.proto
new file mode 100644
index 00000000..650893e2
--- /dev/null
+++ b/proto/Unk2700_ECBEAMKBGMD_ClientReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6235
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_ECBEAMKBGMD_ClientReq {
+ bool Unk2700_DFOGBOAGMPI = 13;
+}
diff --git a/proto/Unk2700_EDCIENBEEDI.proto b/proto/Unk2700_EDCIENBEEDI.proto
new file mode 100644
index 00000000..d61266ef
--- /dev/null
+++ b/proto/Unk2700_EDCIENBEEDI.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8919
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_EDCIENBEEDI {
+ uint32 Unk2700_HABMDJOFBDG = 10;
+}
diff --git a/proto/Unk2700_EDDNHJPJBBF.proto b/proto/Unk2700_EDDNHJPJBBF.proto
new file mode 100644
index 00000000..3b83a66a
--- /dev/null
+++ b/proto/Unk2700_EDDNHJPJBBF.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8733
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_EDDNHJPJBBF {
+ uint32 schedule_id = 7;
+}
diff --git a/proto/Unk2700_EDMCLPMBEMH.proto b/proto/Unk2700_EDMCLPMBEMH.proto
new file mode 100644
index 00000000..adf99e12
--- /dev/null
+++ b/proto/Unk2700_EDMCLPMBEMH.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8387
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_EDMCLPMBEMH {
+ uint32 uid = 11;
+}
diff --git a/proto/Unk2700_EDNGHJGKEKC.proto b/proto/Unk2700_EDNGHJGKEKC.proto
new file mode 100644
index 00000000..e1a33fa9
--- /dev/null
+++ b/proto/Unk2700_EDNGHJGKEKC.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_CMKDNIANBNE.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_EDNGHJGKEKC {
+ repeated Unk2700_CMKDNIANBNE Unk2700_HDGDLPCFABI = 1;
+ string name = 2;
+}
diff --git a/proto/Unk2700_EELPPGCAKHL.proto b/proto/Unk2700_EELPPGCAKHL.proto
new file mode 100644
index 00000000..cfe626f1
--- /dev/null
+++ b/proto/Unk2700_EELPPGCAKHL.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8373
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_EELPPGCAKHL {
+ map Unk2700_BMLBMGGBFJG = 15;
+ map Unk2700_OBFPKFEGGIK = 14;
+ uint32 dungeon_id = 5;
+}
diff --git a/proto/Unk2700_EEPNCOAEKBM.proto b/proto/Unk2700_EEPNCOAEKBM.proto
new file mode 100644
index 00000000..03085cd3
--- /dev/null
+++ b/proto/Unk2700_EEPNCOAEKBM.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_EEPNCOAEKBM {
+ Unk2700_EEPNCOAEKBM_Unk2700_EAFEANPNJLO = 0;
+ Unk2700_EEPNCOAEKBM_Unk2700_PAPMIPKGFJK = 1;
+ Unk2700_EEPNCOAEKBM_Unk2700_CONEKODEFHL = 2;
+ Unk2700_EEPNCOAEKBM_Unk2700_KABLOGENHFI = 3;
+}
diff --git a/proto/Unk2700_EGKIHLIOLDM.proto b/proto/Unk2700_EGKIHLIOLDM.proto
new file mode 100644
index 00000000..29f54f84
--- /dev/null
+++ b/proto/Unk2700_EGKIHLIOLDM.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_NPOBPFNDJKK.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_EGKIHLIOLDM {
+ uint32 Unk2700_CDDONJJMFCI = 14;
+ Unk2700_NPOBPFNDJKK reason = 7;
+}
diff --git a/proto/Unk2700_EHAMOPKCIGI_ServerNotify.proto b/proto/Unk2700_EHAMOPKCIGI_ServerNotify.proto
new file mode 100644
index 00000000..05c2e081
--- /dev/null
+++ b/proto/Unk2700_EHAMOPKCIGI_ServerNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_KNGDOIDOFFB.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4805
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_EHAMOPKCIGI_ServerNotify {
+ uint32 gallery_id = 11;
+ Unk2700_KNGDOIDOFFB settle_info = 12;
+ uint32 Unk2700_HAOPLFPOLFM = 7;
+ bool is_new_record = 2;
+}
diff --git a/proto/Unk2700_EHFBIEDHILL.proto b/proto/Unk2700_EHFBIEDHILL.proto
new file mode 100644
index 00000000..8946edeb
--- /dev/null
+++ b/proto/Unk2700_EHFBIEDHILL.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8882
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_EHFBIEDHILL {
+ int32 retcode = 2;
+ uint32 activity_id = 4;
+}
diff --git a/proto/Unk2700_EJHALNBHHHD_ServerRsp.proto b/proto/Unk2700_EJHALNBHHHD_ServerRsp.proto
new file mode 100644
index 00000000..7590a104
--- /dev/null
+++ b/proto/Unk2700_EJHALNBHHHD_ServerRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_OPEBMJPOOBL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6322
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_EJHALNBHHHD_ServerRsp {
+ int32 retcode = 15;
+ uint64 Unk2700_CEPGMKAHHCD = 8;
+ Unk2700_OPEBMJPOOBL Unk2700_KHBDAPGDOJA = 1;
+}
diff --git a/proto/Unk2700_EJIOFGEEIOM.proto b/proto/Unk2700_EJIOFGEEIOM.proto
new file mode 100644
index 00000000..f00327ec
--- /dev/null
+++ b/proto/Unk2700_EJIOFGEEIOM.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8837
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_EJIOFGEEIOM {
+ int32 retcode = 9;
+ uint32 quest_id = 3;
+}
diff --git a/proto/Unk2700_EKBMEKPHJGK.proto b/proto/Unk2700_EKBMEKPHJGK.proto
new file mode 100644
index 00000000..38601852
--- /dev/null
+++ b/proto/Unk2700_EKBMEKPHJGK.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8726
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_EKBMEKPHJGK {
+ uint32 config_id = 9;
+ uint32 group_id = 11;
+}
diff --git a/proto/Unk2700_EKDHFFHMNCD.proto b/proto/Unk2700_EKDHFFHMNCD.proto
new file mode 100644
index 00000000..39b6a3ac
--- /dev/null
+++ b/proto/Unk2700_EKDHFFHMNCD.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_EKDHFFHMNCD {
+ uint32 index = 2;
+ uint64 Unk2700_FALGECBMIHD = 14;
+ uint32 Unk2700_PBAFCLCIABF = 12;
+}
diff --git a/proto/Unk2700_ELMEOJFCOFH.proto b/proto/Unk2700_ELMEOJFCOFH.proto
new file mode 100644
index 00000000..7d9000bb
--- /dev/null
+++ b/proto/Unk2700_ELMEOJFCOFH.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_ELMEOJFCOFH {
+ map Unk2700_HGBNIFAKOGI = 12;
+ uint32 Unk2700_BPDFJJNJGAJ = 3;
+ uint32 Unk2700_DCBOIFJCDHG = 15;
+ uint32 Unk2700_KDJGDPDJHLL = 6;
+ uint32 Unk2700_NGKGJJBDGMP = 7;
+}
diff --git a/proto/Unk2700_EMHAHHAKOGA.proto b/proto/Unk2700_EMHAHHAKOGA.proto
new file mode 100644
index 00000000..3bf59b1e
--- /dev/null
+++ b/proto/Unk2700_EMHAHHAKOGA.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8163
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_EMHAHHAKOGA {
+ uint32 stage_id = 2;
+}
diff --git a/proto/Unk2700_EOHBLDIKPME.proto b/proto/Unk2700_EOHBLDIKPME.proto
new file mode 100644
index 00000000..5e21d81e
--- /dev/null
+++ b/proto/Unk2700_EOHBLDIKPME.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_INMNHKOPCFB.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_EOHBLDIKPME {
+ uint32 map_id = 6;
+ Unk2700_INMNHKOPCFB Unk2700_JONOMFENDFP = 7;
+ repeated uint32 Unk2700_LDIGKKLLDOC = 3;
+ uint32 best_score = 8;
+}
diff --git a/proto/Unk2700_FADPOMMGLCH.proto b/proto/Unk2700_FADPOMMGLCH.proto
new file mode 100644
index 00000000..f01d50fa
--- /dev/null
+++ b/proto/Unk2700_FADPOMMGLCH.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8918
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_FADPOMMGLCH {
+ uint32 stage_id = 13;
+ int32 retcode = 15;
+}
diff --git a/proto/Unk2700_FCJOEKKHPLB.proto b/proto/Unk2700_FCJOEKKHPLB.proto
new file mode 100644
index 00000000..a9faea9a
--- /dev/null
+++ b/proto/Unk2700_FCJOEKKHPLB.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_FCJOEKKHPLB {
+ uint32 Unk2700_AMJKJDFKOHF = 2;
+ uint32 Unk2700_JFBLEPOMGLC = 3;
+ uint32 Unk2700_NDJKPHLIALK = 1;
+ uint32 Unk2700_HKKPKBEKCME = 6;
+ repeated uint32 Unk2700_ADPPEOELMBP = 4;
+ uint32 Unk2700_MLCEOFAMBFM = 7;
+}
diff --git a/proto/Unk2700_FCLBOLKPMGK.proto b/proto/Unk2700_FCLBOLKPMGK.proto
new file mode 100644
index 00000000..470c160e
--- /dev/null
+++ b/proto/Unk2700_FCLBOLKPMGK.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8753
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_FCLBOLKPMGK {
+ repeated uint32 item_id_list = 4;
+}
diff --git a/proto/Unk2700_FDEGJOCDDGH.proto b/proto/Unk2700_FDEGJOCDDGH.proto
new file mode 100644
index 00000000..3f599e1c
--- /dev/null
+++ b/proto/Unk2700_FDEGJOCDDGH.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_FDEGJOCDDGH {
+ uint32 cur_progress = 9;
+ uint32 challenge_index = 10;
+ bool is_success = 4;
+ uint32 challenge_id = 8;
+}
diff --git a/proto/Unk2700_FDJBLKOBFIH.proto b/proto/Unk2700_FDJBLKOBFIH.proto
new file mode 100644
index 00000000..834ff9a2
--- /dev/null
+++ b/proto/Unk2700_FDJBLKOBFIH.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8334
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_FDJBLKOBFIH {
+ int32 retcode = 5;
+}
diff --git a/proto/Unk2700_FEAENJPINFJ.proto b/proto/Unk2700_FEAENJPINFJ.proto
new file mode 100644
index 00000000..4a8edc98
--- /dev/null
+++ b/proto/Unk2700_FEAENJPINFJ.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_FEAENJPINFJ {
+ uint32 skill_id = 2;
+ bool is_unlock = 11;
+ uint32 Unk2700_LAPIBECMGOB = 1;
+ uint32 Unk2700_LKNCBOOJCGI = 14;
+}
diff --git a/proto/Unk2700_FEODEAEOOKE.proto b/proto/Unk2700_FEODEAEOOKE.proto
new file mode 100644
index 00000000..4b386f04
--- /dev/null
+++ b/proto/Unk2700_FEODEAEOOKE.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8507
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_FEODEAEOOKE {
+ uint32 level_id = 5;
+}
diff --git a/proto/Unk2700_FFMAKIPBPHE.proto b/proto/Unk2700_FFMAKIPBPHE.proto
new file mode 100644
index 00000000..c616f741
--- /dev/null
+++ b/proto/Unk2700_FFMAKIPBPHE.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8989
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_FFMAKIPBPHE {
+ int32 retcode = 15;
+}
diff --git a/proto/Unk2700_FFOBMLOCPMH_ClientNotify.proto b/proto/Unk2700_FFOBMLOCPMH_ClientNotify.proto
new file mode 100644
index 00000000..0e8d5bfd
--- /dev/null
+++ b/proto/Unk2700_FFOBMLOCPMH_ClientNotify.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6211
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_FFOBMLOCPMH_ClientNotify {}
diff --git a/proto/Unk2700_FGEEFFLBAKO.proto b/proto/Unk2700_FGEEFFLBAKO.proto
new file mode 100644
index 00000000..ae1005f2
--- /dev/null
+++ b/proto/Unk2700_FGEEFFLBAKO.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8546
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_FGEEFFLBAKO {
+ int32 retcode = 5;
+ bool Unk2700_PHGMKGEMCFF = 7;
+ uint32 level_id = 13;
+}
diff --git a/proto/Unk2700_FGJBPNIKNDE.proto b/proto/Unk2700_FGJBPNIKNDE.proto
new file mode 100644
index 00000000..06637130
--- /dev/null
+++ b/proto/Unk2700_FGJBPNIKNDE.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8398
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_FGJBPNIKNDE {}
diff --git a/proto/Unk2700_FGJFFMPOJON.proto b/proto/Unk2700_FGJFFMPOJON.proto
new file mode 100644
index 00000000..3dbab0a2
--- /dev/null
+++ b/proto/Unk2700_FGJFFMPOJON.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_FGJFFMPOJON {
+ string nickname = 7;
+ string remark_name = 3;
+ ProfilePicture profile_picture = 11;
+ map Unk2700_IFCNGIPPOAE = 9;
+ uint32 uid = 8;
+}
diff --git a/proto/Unk2700_FHOKHHBGPEG.proto b/proto/Unk2700_FHOKHHBGPEG.proto
new file mode 100644
index 00000000..b291a03f
--- /dev/null
+++ b/proto/Unk2700_FHOKHHBGPEG.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_FHOKHHBGPEG {
+ Unk2700_FHOKHHBGPEG_NONE = 0;
+ Unk2700_FHOKHHBGPEG_FAIL = 1;
+ Unk2700_FHOKHHBGPEG_SUCC = 2;
+ Unk2700_FHOKHHBGPEG_Unk2700_GGDJFCKGBGE = 3;
+}
diff --git a/proto/Unk2700_FIODAJPNBIK.proto b/proto/Unk2700_FIODAJPNBIK.proto
new file mode 100644
index 00000000..31279219
--- /dev/null
+++ b/proto/Unk2700_FIODAJPNBIK.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_AFOPONDCLKC.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8937
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_FIODAJPNBIK {
+ int32 retcode = 12;
+ repeated Unk2700_AFOPONDCLKC Unk2700_MAKCLMEGEBJ = 5;
+}
diff --git a/proto/Unk2700_FJEHHCPCBLG_ServerNotify.proto b/proto/Unk2700_FJEHHCPCBLG_ServerNotify.proto
new file mode 100644
index 00000000..5a51f256
--- /dev/null
+++ b/proto/Unk2700_FJEHHCPCBLG_ServerNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4872
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_FJEHHCPCBLG_ServerNotify {
+ uint32 Unk2700_BJHAMKKECEI = 12;
+}
diff --git a/proto/Unk2700_FJJFKOEACCE.proto b/proto/Unk2700_FJJFKOEACCE.proto
new file mode 100644
index 00000000..2893d17a
--- /dev/null
+++ b/proto/Unk2700_FJJFKOEACCE.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8450
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_FJJFKOEACCE {
+ uint32 Unk2700_EMPNNJKDMHE = 14;
+ map Unk2700_DNMNEMKIELD = 6;
+ uint32 Unk2700_GKBGMLGFIBN = 2;
+ uint32 Unk2700_OGHMDKMIKBK = 13;
+}
diff --git a/proto/Unk2700_FKCDCGCBIEA_ServerNotify.proto b/proto/Unk2700_FKCDCGCBIEA_ServerNotify.proto
new file mode 100644
index 00000000..608890fb
--- /dev/null
+++ b/proto/Unk2700_FKCDCGCBIEA_ServerNotify.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_NAPLFKNOECD.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6276
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_FKCDCGCBIEA_ServerNotify {
+ repeated Unk2700_NAPLFKNOECD var_list = 5;
+ string Unk2700_JEMDOAHDMBP = 9;
+ bool Unk2700_ANBEGPCLAAO = 15;
+ uint32 play_type = 7;
+ bool Unk3000_JHAMNNJMOCI = 4;
+}
diff --git a/proto/Unk2700_FKMOKPBJIKO.proto b/proto/Unk2700_FKMOKPBJIKO.proto
new file mode 100644
index 00000000..41369e70
--- /dev/null
+++ b/proto/Unk2700_FKMOKPBJIKO.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8482
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_FKMOKPBJIKO {
+ int32 retcode = 11;
+}
diff --git a/proto/Unk2700_FLGMLEFJHBB_ClientReq.proto b/proto/Unk2700_FLGMLEFJHBB_ClientReq.proto
new file mode 100644
index 00000000..700fb480
--- /dev/null
+++ b/proto/Unk2700_FLGMLEFJHBB_ClientReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6210
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_FLGMLEFJHBB_ClientReq {
+ bool Unk2700_FGHPHCPAFKJ = 5;
+ uint64 Unk2700_ONOOJBEABOE = 10;
+}
diff --git a/proto/Unk2700_FMGGGEDNGGN.proto b/proto/Unk2700_FMGGGEDNGGN.proto
new file mode 100644
index 00000000..dfababf8
--- /dev/null
+++ b/proto/Unk2700_FMGGGEDNGGN.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_FMGGGEDNGGN {
+ uint32 avatar_id = 1;
+ bool is_trial = 2;
+ uint32 costume_id = 3;
+}
diff --git a/proto/Unk2700_FMNAGFKECPL_ClientReq.proto b/proto/Unk2700_FMNAGFKECPL_ClientReq.proto
new file mode 100644
index 00000000..a4ae23d4
--- /dev/null
+++ b/proto/Unk2700_FMNAGFKECPL_ClientReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6222
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_FMNAGFKECPL_ClientReq {
+ uint32 room_id = 4;
+}
diff --git a/proto/Unk2700_FNHKFHGNLPP_ServerRsp.proto b/proto/Unk2700_FNHKFHGNLPP_ServerRsp.proto
new file mode 100644
index 00000000..4624d3c1
--- /dev/null
+++ b/proto/Unk2700_FNHKFHGNLPP_ServerRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_GHHCCEHGKLH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6248
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_FNHKFHGNLPP_ServerRsp {
+ repeated Unk2700_GHHCCEHGKLH Unk2700_BCIBEPMFLGN = 8;
+ int32 retcode = 14;
+}
diff --git a/proto/Unk2700_FNJHJKELICK.proto b/proto/Unk2700_FNJHJKELICK.proto
new file mode 100644
index 00000000..960dd719
--- /dev/null
+++ b/proto/Unk2700_FNJHJKELICK.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8119
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_FNJHJKELICK {
+ int32 retcode = 1;
+}
diff --git a/proto/Unk2700_FOOOKMANFPE_ClientReq.proto b/proto/Unk2700_FOOOKMANFPE_ClientReq.proto
new file mode 100644
index 00000000..521f7022
--- /dev/null
+++ b/proto/Unk2700_FOOOKMANFPE_ClientReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6249
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_FOOOKMANFPE_ClientReq {
+ uint64 Unk2700_ONOOJBEABOE = 14;
+}
diff --git a/proto/Unk2700_FPCJGEOBADP_ServerRsp.proto b/proto/Unk2700_FPCJGEOBADP_ServerRsp.proto
new file mode 100644
index 00000000..d21749ec
--- /dev/null
+++ b/proto/Unk2700_FPCJGEOBADP_ServerRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6204
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_FPCJGEOBADP_ServerRsp {
+ int32 retcode = 12;
+}
diff --git a/proto/Unk2700_FPJLFMEHHLB_ServerNotify.proto b/proto/Unk2700_FPJLFMEHHLB_ServerNotify.proto
new file mode 100644
index 00000000..96cd58ed
--- /dev/null
+++ b/proto/Unk2700_FPJLFMEHHLB_ServerNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_DPPCDPBBABA.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4060
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_FPJLFMEHHLB_ServerNotify {
+ Unk2700_DPPCDPBBABA info = 14;
+}
diff --git a/proto/Unk2700_FPOBGEBDAOD_ServerNotify.proto b/proto/Unk2700_FPOBGEBDAOD_ServerNotify.proto
new file mode 100644
index 00000000..139438ab
--- /dev/null
+++ b/proto/Unk2700_FPOBGEBDAOD_ServerNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5547
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_FPOBGEBDAOD_ServerNotify {
+ uint32 score = 7;
+ uint32 gallery_id = 9;
+}
diff --git a/proto/Unk2700_GALDCKFKPEK.proto b/proto/Unk2700_GALDCKFKPEK.proto
new file mode 100644
index 00000000..79f4198c
--- /dev/null
+++ b/proto/Unk2700_GALDCKFKPEK.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_MPELMDDJFHO.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_GALDCKFKPEK {
+ repeated Unk2700_MPELMDDJFHO Unk2700_KLOAFPMHOKI = 1;
+}
diff --git a/proto/Unk2700_GBBDJMDIDEI.proto b/proto/Unk2700_GBBDJMDIDEI.proto
new file mode 100644
index 00000000..87701579
--- /dev/null
+++ b/proto/Unk2700_GBBDJMDIDEI.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_GBBDJMDIDEI {
+ uint32 Unk2700_JIGANFOOJHB = 1;
+ uint32 main_prop_id = 12;
+}
diff --git a/proto/Unk2700_GBHAPPCDCIL.proto b/proto/Unk2700_GBHAPPCDCIL.proto
new file mode 100644
index 00000000..3398d95c
--- /dev/null
+++ b/proto/Unk2700_GBHAPPCDCIL.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_GBHAPPCDCIL {
+ bool Unk2700_IBDCFAMBGOK = 1;
+ uint32 Unk2700_IFNFCNNBPIB = 2;
+ uint32 Unk2700_PBBPGFMNMNJ = 3;
+ bool Unk2700_FKLBCNLBBNM = 4;
+ uint32 Unk2700_KENGEGJGAEL = 5;
+}
diff --git a/proto/Unk2700_GBJOLBGLELJ.proto b/proto/Unk2700_GBJOLBGLELJ.proto
new file mode 100644
index 00000000..00e65373
--- /dev/null
+++ b/proto/Unk2700_GBJOLBGLELJ.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8014
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_GBJOLBGLELJ {}
diff --git a/proto/Unk2700_GBPNAHCAKJE.proto b/proto/Unk2700_GBPNAHCAKJE.proto
new file mode 100644
index 00000000..8c514fd1
--- /dev/null
+++ b/proto/Unk2700_GBPNAHCAKJE.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_EDNGHJGKEKC.proto";
+import "Unk2700_LBPFDCBHCBL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_GBPNAHCAKJE {
+ string Unk2700_OAKBDKKBFHP = 1;
+ string entity_id = 2;
+ string lang = 3;
+ string Unk2700_NDEJPMGPBAH = 4;
+ string region = 5;
+ uint32 uid = 6;
+ repeated Unk2700_EDNGHJGKEKC Unk2700_LHPECOEIIKL = 7;
+ repeated Unk2700_LBPFDCBHCBL Unk2700_LABLGMEOEFM = 8;
+}
diff --git a/proto/Unk2700_GCPNGHFNGDP.proto b/proto/Unk2700_GCPNGHFNGDP.proto
new file mode 100644
index 00000000..54b93b64
--- /dev/null
+++ b/proto/Unk2700_GCPNGHFNGDP.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_GCPNGHFNGDP {
+ repeated uint32 Unk2700_ANAEHLBDFIC = 1;
+ repeated ItemParam Unk2700_PMMJDKJHBIG = 7;
+}
diff --git a/proto/Unk2700_GDODKDJJPMP_ServerRsp.proto b/proto/Unk2700_GDODKDJJPMP_ServerRsp.proto
new file mode 100644
index 00000000..75d341ca
--- /dev/null
+++ b/proto/Unk2700_GDODKDJJPMP_ServerRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4605
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_GDODKDJJPMP_ServerRsp {
+ uint32 group_id = 4;
+ int32 retcode = 1;
+}
diff --git a/proto/Unk2700_GECHLGFKPOD_ServerNotify.proto b/proto/Unk2700_GECHLGFKPOD_ServerNotify.proto
new file mode 100644
index 00000000..8931236a
--- /dev/null
+++ b/proto/Unk2700_GECHLGFKPOD_ServerNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_NKIDCOKNPFF.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5364
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_GECHLGFKPOD_ServerNotify {
+ Unk2700_NKIDCOKNPFF player_info = 6;
+}
diff --git a/proto/Unk2700_GEIGCHNDOAA.proto b/proto/Unk2700_GEIGCHNDOAA.proto
new file mode 100644
index 00000000..2269669e
--- /dev/null
+++ b/proto/Unk2700_GEIGCHNDOAA.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_IMGLPJNBHCH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8657
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_GEIGCHNDOAA {
+ uint32 stage_id = 7;
+ bool Unk2700_LNINCIBPIBN = 13;
+ uint32 challenge_id = 8;
+ repeated Unk2700_IMGLPJNBHCH Unk2700_DMJOJPGLFHE = 2;
+ uint32 Unk2700_HMIBIIPHBAN = 10;
+ uint32 Unk2700_LOIMAGFKMOJ = 15;
+ uint32 Unk2700_FGIIBJADECI = 11;
+ int32 retcode = 3;
+ uint32 Unk2700_AEHOPMMMHAP = 12;
+}
diff --git a/proto/Unk2700_GFMPOHAGMLO_ClientReq.proto b/proto/Unk2700_GFMPOHAGMLO_ClientReq.proto
new file mode 100644
index 00000000..f7773a84
--- /dev/null
+++ b/proto/Unk2700_GFMPOHAGMLO_ClientReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6250
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_GFMPOHAGMLO_ClientReq {}
diff --git a/proto/Unk2700_GHHCCEHGKLH.proto b/proto/Unk2700_GHHCCEHGKLH.proto
new file mode 100644
index 00000000..b370224c
--- /dev/null
+++ b/proto/Unk2700_GHHCCEHGKLH.proto
@@ -0,0 +1,39 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SocialDetail.proto";
+import "Unk2700_ELMEOJFCOFH.proto";
+import "Unk2700_OHBMICGFIIK.proto";
+import "Unk2700_PHGGAEDHLBN.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_GHHCCEHGKLH {
+ SocialDetail Unk2700_KLPJLKPKKHH = 4;
+ uint32 Unk2700_DPPILIMGOKH = 15;
+ Unk2700_ELMEOJFCOFH Unk2700_PCFIKJEDEGN = 2;
+ uint64 Unk2700_ONOOJBEABOE = 14;
+ Unk2700_PHGGAEDHLBN Unk2700_JGFDODPBGFL = 10;
+ uint32 dungeon_id = 6;
+ repeated uint32 tag_list = 1;
+ bool Unk2700_GOIIEONNFFN = 11;
+ bool Unk2700_GBCGGDONMCD = 9;
+ bool Unk2700_HBFLKFOCKBF = 3;
+ Unk2700_OHBMICGFIIK Unk2700_IKGOMKLAJLH = 12;
+}
diff --git a/proto/Unk2700_GHONKKEGHGL.proto b/proto/Unk2700_GHONKKEGHGL.proto
new file mode 100644
index 00000000..d0f025e4
--- /dev/null
+++ b/proto/Unk2700_GHONKKEGHGL.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_LHPELFJPPOD.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_GHONKKEGHGL {
+ bool is_open = 8;
+ repeated Unk2700_LHPELFJPPOD challenge_info_list = 9;
+ uint32 stage_id = 15;
+}
diff --git a/proto/Unk2700_GIAILDLPEOO_ServerRsp.proto b/proto/Unk2700_GIAILDLPEOO_ServerRsp.proto
new file mode 100644
index 00000000..87f84703
--- /dev/null
+++ b/proto/Unk2700_GIAILDLPEOO_ServerRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6241
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_GIAILDLPEOO_ServerRsp {
+ uint32 room_id = 4;
+ int32 retcode = 1;
+}
diff --git a/proto/Unk2700_GIFGEDBCPFC_ServerRsp.proto b/proto/Unk2700_GIFGEDBCPFC_ServerRsp.proto
new file mode 100644
index 00000000..abf5003b
--- /dev/null
+++ b/proto/Unk2700_GIFGEDBCPFC_ServerRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 417
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_GIFGEDBCPFC_ServerRsp {
+ int32 retcode = 1;
+ uint64 Unk2700_KHDDIJNOICK = 14;
+ uint32 parent_quest_id = 10;
+}
diff --git a/proto/Unk2700_GIFKPMNGNGB.proto b/proto/Unk2700_GIFKPMNGNGB.proto
new file mode 100644
index 00000000..2e84921d
--- /dev/null
+++ b/proto/Unk2700_GIFKPMNGNGB.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CustomGadgetTreeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8608
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_GIFKPMNGNGB {
+ uint32 entity_id = 13;
+ CustomGadgetTreeInfo Unk2700_OCIHJFOKHPK = 1;
+}
diff --git a/proto/Unk2700_GKHEKGMFBJN.proto b/proto/Unk2700_GKHEKGMFBJN.proto
new file mode 100644
index 00000000..224083be
--- /dev/null
+++ b/proto/Unk2700_GKHEKGMFBJN.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8688
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_GKHEKGMFBJN {
+ int32 retcode = 5;
+}
diff --git a/proto/Unk2700_GKKNFMNJFDP.proto b/proto/Unk2700_GKKNFMNJFDP.proto
new file mode 100644
index 00000000..160c7d32
--- /dev/null
+++ b/proto/Unk2700_GKKNFMNJFDP.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_AMKLCEFNNCC.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8261
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_GKKNFMNJFDP {
+ repeated uint32 buff_id_list = 15;
+ uint32 level_id = 5;
+ repeated Unk2700_AMKLCEFNNCC avatar_info_list = 14;
+ uint32 Unk2700_HKFEBBCMBHL = 2;
+ uint32 stage_id = 13;
+}
diff --git a/proto/Unk2700_GLAPMLGHDDC_ClientReq.proto b/proto/Unk2700_GLAPMLGHDDC_ClientReq.proto
new file mode 100644
index 00000000..4d744aa0
--- /dev/null
+++ b/proto/Unk2700_GLAPMLGHDDC_ClientReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_NOCLNCCJEGK.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5960
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_GLAPMLGHDDC_ClientReq {
+ uint32 material_id = 14;
+ Unk2700_NOCLNCCJEGK Unk2700_MHEKJGAIFBO = 10;
+ uint32 Unk2700_GMHLHKIIGIC = 7;
+}
diff --git a/proto/Unk2700_GLIILNDIPLK_ServerNotify.proto b/proto/Unk2700_GLIILNDIPLK_ServerNotify.proto
new file mode 100644
index 00000000..dba59da5
--- /dev/null
+++ b/proto/Unk2700_GLIILNDIPLK_ServerNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6341
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_GLIILNDIPLK_ServerNotify {
+ bool Unk2700_LALIEABDFFI = 12;
+ bool Unk2700_DCLHFINJEOD = 8;
+ bool Unk2700_GMICFADLAMC = 15;
+}
diff --git a/proto/Unk2700_GLLIEOABOML.proto b/proto/Unk2700_GLLIEOABOML.proto
new file mode 100644
index 00000000..41cf23b3
--- /dev/null
+++ b/proto/Unk2700_GLLIEOABOML.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8057
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_GLLIEOABOML {
+ uint32 card_id = 8;
+ uint32 level_id = 5;
+ bool Unk2700_PHGMKGEMCFF = 10;
+}
diff --git a/proto/Unk2700_GMNGEEBMABP.proto b/proto/Unk2700_GMNGEEBMABP.proto
new file mode 100644
index 00000000..0b38645a
--- /dev/null
+++ b/proto/Unk2700_GMNGEEBMABP.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8352
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_GMNGEEBMABP {
+ int32 retcode = 9;
+}
diff --git a/proto/Unk2700_GNDOKLHDHBJ_ClientReq.proto b/proto/Unk2700_GNDOKLHDHBJ_ClientReq.proto
new file mode 100644
index 00000000..a7195708
--- /dev/null
+++ b/proto/Unk2700_GNDOKLHDHBJ_ClientReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6245
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_GNDOKLHDHBJ_ClientReq {
+ uint32 room_id = 13;
+}
diff --git a/proto/Unk2700_GNOAKIGLPCG.proto b/proto/Unk2700_GNOAKIGLPCG.proto
new file mode 100644
index 00000000..cd5ea6f8
--- /dev/null
+++ b/proto/Unk2700_GNOAKIGLPCG.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8991
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_GNOAKIGLPCG {
+ repeated uint32 Unk2700_IIJKCKNHPKD = 8;
+}
diff --git a/proto/Unk2700_GNPPPIHBDLJ.proto b/proto/Unk2700_GNPPPIHBDLJ.proto
new file mode 100644
index 00000000..2f34db81
--- /dev/null
+++ b/proto/Unk2700_GNPPPIHBDLJ.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8709
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_GNPPPIHBDLJ {
+ uint32 Unk2700_CKGJEOOKFIF = 13;
+}
diff --git a/proto/Unk2700_GOHMLAFNBGF.proto b/proto/Unk2700_GOHMLAFNBGF.proto
new file mode 100644
index 00000000..53afd10e
--- /dev/null
+++ b/proto/Unk2700_GOHMLAFNBGF.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeFurnitureData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_GOHMLAFNBGF {
+ uint32 Unk2700_OALCFEGIBOL = 8;
+ repeated HomeFurnitureData Unk2700_CKPNCKDIJMB = 3;
+}
diff --git a/proto/Unk2700_GPHLCIAMDFG.proto b/proto/Unk2700_GPHLCIAMDFG.proto
new file mode 100644
index 00000000..74bfbd10
--- /dev/null
+++ b/proto/Unk2700_GPHLCIAMDFG.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8095
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_GPHLCIAMDFG {
+ uint32 schedule_id = 3;
+ uint32 uid = 12;
+}
diff --git a/proto/Unk2700_GPIHGEEKBOO_ClientReq.proto b/proto/Unk2700_GPIHGEEKBOO_ClientReq.proto
new file mode 100644
index 00000000..abb14fbf
--- /dev/null
+++ b/proto/Unk2700_GPIHGEEKBOO_ClientReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6233
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_GPIHGEEKBOO_ClientReq {
+ string Unk2700_BMBJKEOELCG = 6;
+}
diff --git a/proto/Unk2700_GPOIPAHPHJE.proto b/proto/Unk2700_GPOIPAHPHJE.proto
new file mode 100644
index 00000000..c4674cf9
--- /dev/null
+++ b/proto/Unk2700_GPOIPAHPHJE.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8967
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_GPOIPAHPHJE {
+ uint32 stage_id = 14;
+ uint32 challenge_type = 13;
+}
diff --git a/proto/Unk2700_GPPKNKGDCHJ.proto b/proto/Unk2700_GPPKNKGDCHJ.proto
new file mode 100644
index 00000000..57a144bd
--- /dev/null
+++ b/proto/Unk2700_GPPKNKGDCHJ.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_GPPKNKGDCHJ {
+ repeated ItemParam Unk2700_MNPGJOAHINC = 2;
+ uint32 uid = 6;
+ repeated ItemParam Unk2700_LBIKFNBNEBC = 9;
+}
diff --git a/proto/Unk2700_HBLAGOMHKPL_ClientRsp.proto b/proto/Unk2700_HBLAGOMHKPL_ClientRsp.proto
new file mode 100644
index 00000000..77007bb5
--- /dev/null
+++ b/proto/Unk2700_HBLAGOMHKPL_ClientRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 137
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_HBLAGOMHKPL_ClientRsp {
+ int32 retcode = 12;
+}
diff --git a/proto/Unk2700_HBOFACHAGIF_ServerNotify.proto b/proto/Unk2700_HBOFACHAGIF_ServerNotify.proto
new file mode 100644
index 00000000..b46ee287
--- /dev/null
+++ b/proto/Unk2700_HBOFACHAGIF_ServerNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_EKDHFFHMNCD.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 9072
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_HBOFACHAGIF_ServerNotify {
+ map Unk2700_MEANPNKMDFG = 2;
+}
diff --git a/proto/Unk2700_HDBFJJOBIAP_ClientReq.proto b/proto/Unk2700_HDBFJJOBIAP_ClientReq.proto
new file mode 100644
index 00000000..eb03fc9d
--- /dev/null
+++ b/proto/Unk2700_HDBFJJOBIAP_ClientReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_OPEBMJPOOBL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6325
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_HDBFJJOBIAP_ClientReq {
+ uint64 Unk2700_CEPGMKAHHCD = 7;
+ Unk2700_OPEBMJPOOBL Unk2700_KHBDAPGDOJA = 10;
+}
diff --git a/proto/Unk2700_HEMFKLPNNOM.proto b/proto/Unk2700_HEMFKLPNNOM.proto
new file mode 100644
index 00000000..3eafeb28
--- /dev/null
+++ b/proto/Unk2700_HEMFKLPNNOM.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_HEMFKLPNNOM {
+ Unk2700_HEMFKLPNNOM_Unk2700_ODJKANKMPPJ = 0;
+ Unk2700_HEMFKLPNNOM_Unk2700_EFGLHEIODFN = 1;
+ Unk2700_HEMFKLPNNOM_Unk2700_JPBBBCFGHAK = 2;
+ Unk2700_HEMFKLPNNOM_Unk2700_IDCMGHBHBFH = 3;
+ Unk2700_HEMFKLPNNOM_Unk2700_ODDBNNDFMBO = 4;
+ Unk2700_HEMFKLPNNOM_Unk2700_AGIDMOGJOBD = 5;
+}
diff --git a/proto/Unk2700_HENCIJOPCIF.proto b/proto/Unk2700_HENCIJOPCIF.proto
new file mode 100644
index 00000000..0cbe6fab
--- /dev/null
+++ b/proto/Unk2700_HENCIJOPCIF.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_HENCIJOPCIF {
+ uint32 Unk2700_EMIELBMCCPF = 14;
+ repeated ItemParam reward_item_list = 5;
+}
diff --git a/proto/Unk2700_HFCDIGNAAPJ.proto b/proto/Unk2700_HFCDIGNAAPJ.proto
new file mode 100644
index 00000000..153190bf
--- /dev/null
+++ b/proto/Unk2700_HFCDIGNAAPJ.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8129
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_HFCDIGNAAPJ {
+ uint32 Unk2700_OBDGPNILPND = 9;
+ uint32 Unk2700_KKHAKNLGBLJ = 13;
+}
diff --git a/proto/Unk2700_HFMDKDHCJCM.proto b/proto/Unk2700_HFMDKDHCJCM.proto
new file mode 100644
index 00000000..eb44fe78
--- /dev/null
+++ b/proto/Unk2700_HFMDKDHCJCM.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_HFMDKDHCJCM {
+ Vector Unk2700_CMOMNFNGCGB = 1;
+}
diff --git a/proto/Unk2700_HFPELHFDCIB.proto b/proto/Unk2700_HFPELHFDCIB.proto
new file mode 100644
index 00000000..398a6268
--- /dev/null
+++ b/proto/Unk2700_HFPELHFDCIB.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_HFPELHFDCIB {
+ uint32 entity_id = 2;
+ Vector Unk2700_CMOMNFNGCGB = 13;
+}
diff --git a/proto/Unk2700_HGFFGMCODNC.proto b/proto/Unk2700_HGFFGMCODNC.proto
new file mode 100644
index 00000000..7c38a327
--- /dev/null
+++ b/proto/Unk2700_HGFFGMCODNC.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_HGFFGMCODNC {
+ uint32 group_id = 4;
+ uint32 gadget_id = 7;
+ Vector pos = 8;
+}
diff --git a/proto/Unk2700_HGMCBHFFDLJ.proto b/proto/Unk2700_HGMCBHFFDLJ.proto
new file mode 100644
index 00000000..14871d19
--- /dev/null
+++ b/proto/Unk2700_HGMCBHFFDLJ.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8826
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_HGMCBHFFDLJ {}
diff --git a/proto/Unk2700_HGMCNJOPDAA.proto b/proto/Unk2700_HGMCNJOPDAA.proto
new file mode 100644
index 00000000..ada69174
--- /dev/null
+++ b/proto/Unk2700_HGMCNJOPDAA.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_HGMCNJOPDAA {
+ Unk2700_HGMCNJOPDAA_NONE = 0;
+ Unk2700_HGMCNJOPDAA_Unk2700_COJANCPMOAI = 1;
+}
diff --git a/proto/Unk2700_HGMOIKODALP_ServerRsp.proto b/proto/Unk2700_HGMOIKODALP_ServerRsp.proto
new file mode 100644
index 00000000..4013cb16
--- /dev/null
+++ b/proto/Unk2700_HGMOIKODALP_ServerRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6220
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_HGMOIKODALP_ServerRsp {
+ int32 retcode = 14;
+ uint64 Unk2700_ONOOJBEABOE = 11;
+}
diff --git a/proto/Unk2700_HHAMNOIDBPJ.proto b/proto/Unk2700_HHAMNOIDBPJ.proto
new file mode 100644
index 00000000..ad25f9cc
--- /dev/null
+++ b/proto/Unk2700_HHAMNOIDBPJ.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_HHAMNOIDBPJ {
+ float Unk2700_JFDNAOAAFMM = 9;
+}
diff --git a/proto/Unk2700_HHGMCHANCBJ_ServerNotify.proto b/proto/Unk2700_HHGMCHANCBJ_ServerNotify.proto
new file mode 100644
index 00000000..8e5bdb3a
--- /dev/null
+++ b/proto/Unk2700_HHGMCHANCBJ_ServerNotify.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_ADGLMHECKKJ.proto";
+import "Unk2700_KBBDJNLFAKD.proto";
+import "Unk2700_NLFDMMFNMIO.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6217
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_HHGMCHANCBJ_ServerNotify {
+ Unk2700_KBBDJNLFAKD Unk2700_LGBODABIKLL = 14;
+ Unk2700_ADGLMHECKKJ Unk2700_NBAIINBBBPK = 3;
+ Unk2700_NLFDMMFNMIO Unk2700_EJHNBDLLLFO = 10;
+ repeated uint32 Unk2700_EIOPOPABBNC = 12;
+}
diff --git a/proto/Unk2700_HIHKGMLLOGD.proto b/proto/Unk2700_HIHKGMLLOGD.proto
new file mode 100644
index 00000000..2c2eeb27
--- /dev/null
+++ b/proto/Unk2700_HIHKGMLLOGD.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_HIHKGMLLOGD {
+ repeated uint32 Unk2700_ONOGHAHICAA = 1;
+ repeated uint32 Unk2700_FGBAGFMGKOO = 4;
+ uint32 max_progress = 2;
+ uint32 Unk2700_OBDGPNILPND = 13;
+ uint32 progress = 5;
+ uint32 Unk2700_HJNLDGMIHBL = 12;
+ uint32 Unk2700_BIMPFNHLMBI = 9;
+}
diff --git a/proto/Unk2700_HIIFAMCBJCD_ServerRsp.proto b/proto/Unk2700_HIIFAMCBJCD_ServerRsp.proto
new file mode 100644
index 00000000..3ef0af1f
--- /dev/null
+++ b/proto/Unk2700_HIIFAMCBJCD_ServerRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4206
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_HIIFAMCBJCD_ServerRsp {
+ int32 retcode = 10;
+ uint32 type_id = 5;
+ uint32 Unk2700_LEKOKKMDNAO = 14;
+}
diff --git a/proto/Unk2700_HJKOHHGBMJP.proto b/proto/Unk2700_HJKOHHGBMJP.proto
new file mode 100644
index 00000000..6d27e6d5
--- /dev/null
+++ b/proto/Unk2700_HJKOHHGBMJP.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8933
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_HJKOHHGBMJP {
+ bool Unk2700_GHGIOMEHIAN = 10;
+ int32 retcode = 1;
+ bool Unk2700_ONGMFKHIBNB = 6;
+ uint32 stage_id = 15;
+ bool Unk2700_MNHBGOMNPBB = 12;
+ bool Unk2700_AOFHDOOKHKF = 4;
+ uint32 final_score = 13;
+ uint32 challenge_id = 5;
+ bool is_new_record = 9;
+}
diff --git a/proto/Unk2700_HJLFNKLPFBH.proto b/proto/Unk2700_HJLFNKLPFBH.proto
new file mode 100644
index 00000000..519c194e
--- /dev/null
+++ b/proto/Unk2700_HJLFNKLPFBH.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_AGIDJODJNEA.proto";
+import "Unk2700_FMGGGEDNGGN.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_HJLFNKLPFBH {
+ Unk2700_FMGGGEDNGGN avatar = 2;
+ uint32 level = 14;
+ uint32 Unk2700_EGKOIPOHCHG = 13;
+ repeated Unk2700_AGIDJODJNEA Unk2700_JCKLLFKOFCG = 9;
+}
diff --git a/proto/Unk2700_HKADKMFMBPG.proto b/proto/Unk2700_HKADKMFMBPG.proto
new file mode 100644
index 00000000..6c70677b
--- /dev/null
+++ b/proto/Unk2700_HKADKMFMBPG.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8017
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_HKADKMFMBPG {
+ map Unk2700_IFCNGIPPOAE = 2;
+ uint32 schedule_id = 14;
+}
diff --git a/proto/Unk2700_HLHHNGHJLAO.proto b/proto/Unk2700_HLHHNGHJLAO.proto
new file mode 100644
index 00000000..9fb08c3b
--- /dev/null
+++ b/proto/Unk2700_HLHHNGHJLAO.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_MOFABPNGIKP.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_HLHHNGHJLAO {
+ uint32 kill_monster_count = 12;
+ uint32 kill_special_monster_count = 8;
+ uint32 Unk2700_OFKHLGLOPCM = 10;
+ uint32 gallery_id = 2;
+ Unk2700_MOFABPNGIKP reason = 11;
+ uint32 final_score = 13;
+}
diff --git a/proto/Unk2700_HMFCCGCKHCA.proto b/proto/Unk2700_HMFCCGCKHCA.proto
new file mode 100644
index 00000000..9332787d
--- /dev/null
+++ b/proto/Unk2700_HMFCCGCKHCA.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8946
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_HMFCCGCKHCA {}
diff --git a/proto/Unk2700_HMHHLEHFBLB.proto b/proto/Unk2700_HMHHLEHFBLB.proto
new file mode 100644
index 00000000..7306e209
--- /dev/null
+++ b/proto/Unk2700_HMHHLEHFBLB.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8713
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_HMHHLEHFBLB {
+ int32 retcode = 13;
+}
diff --git a/proto/Unk2700_HMMFPDMLGEM.proto b/proto/Unk2700_HMMFPDMLGEM.proto
new file mode 100644
index 00000000..ee1bcffb
--- /dev/null
+++ b/proto/Unk2700_HMMFPDMLGEM.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8554
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_HMMFPDMLGEM {
+ uint32 schedule_id = 15;
+ int32 retcode = 7;
+}
diff --git a/proto/Unk2700_HNFGBBECGMJ.proto b/proto/Unk2700_HNFGBBECGMJ.proto
new file mode 100644
index 00000000..cb0fbb50
--- /dev/null
+++ b/proto/Unk2700_HNFGBBECGMJ.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8607
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_HNFGBBECGMJ {
+ uint32 id = 8;
+}
diff --git a/proto/Unk2700_HOPDLJLBKIC_ServerRsp.proto b/proto/Unk2700_HOPDLJLBKIC_ServerRsp.proto
new file mode 100644
index 00000000..29712f49
--- /dev/null
+++ b/proto/Unk2700_HOPDLJLBKIC_ServerRsp.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_NOCLNCCJEGK.proto";
+import "WidgetCoolDownData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6056
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_HOPDLJLBKIC_ServerRsp {
+ int32 retcode = 14;
+ uint32 material_id = 11;
+ Unk2700_NOCLNCCJEGK Unk2700_MHEKJGAIFBO = 6;
+ WidgetCoolDownData Unk2700_LNPJLPODIGB = 10;
+ uint32 Unk2700_GMHLHKIIGIC = 15;
+}
diff --git a/proto/Unk2700_IAADLJBLOIN_ServerNotify.proto b/proto/Unk2700_IAADLJBLOIN_ServerNotify.proto
new file mode 100644
index 00000000..d8366143
--- /dev/null
+++ b/proto/Unk2700_IAADLJBLOIN_ServerNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4092
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_IAADLJBLOIN_ServerNotify {
+ bool is_open = 9;
+ uint32 Unk2700_JEKIGDDNCAB = 10;
+}
diff --git a/proto/Unk2700_IAAPADOAMIA.proto b/proto/Unk2700_IAAPADOAMIA.proto
new file mode 100644
index 00000000..ec02d321
--- /dev/null
+++ b/proto/Unk2700_IAAPADOAMIA.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8414
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_IAAPADOAMIA {
+ uint32 Unk2700_HCKAMFPGMJN = 14;
+ uint32 Unk2700_CHHJBPDPICI = 7;
+ uint32 quest_id = 11;
+ repeated ItemParam item_list = 10;
+ bool Unk2700_AGFNJHAMDBD = 9;
+ repeated uint32 Unk2700_AJKDPJOKBED = 6;
+ uint32 Unk2700_OEDDPDJEEPC = 3;
+}
diff --git a/proto/Unk2700_IACKJNNMCAC_ClientReq.proto b/proto/Unk2700_IACKJNNMCAC_ClientReq.proto
new file mode 100644
index 00000000..abaa2f1a
--- /dev/null
+++ b/proto/Unk2700_IACKJNNMCAC_ClientReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4523
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_IACKJNNMCAC_ClientReq {
+ uint32 group_id = 14;
+}
diff --git a/proto/Unk2700_IBEKDNOGMLA.proto b/proto/Unk2700_IBEKDNOGMLA.proto
new file mode 100644
index 00000000..989bd4e5
--- /dev/null
+++ b/proto/Unk2700_IBEKDNOGMLA.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_INMNHKOPCFB.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_IBEKDNOGMLA {
+ Unk2700_INMNHKOPCFB Unk2700_JONOMFENDFP = 5;
+ repeated uint32 Unk2700_MJLHEFIGIKD = 2;
+ repeated uint32 exit_point_id_list = 13;
+}
diff --git a/proto/Unk2700_IBOKDNKBMII.proto b/proto/Unk2700_IBOKDNKBMII.proto
new file mode 100644
index 00000000..330c4727
--- /dev/null
+++ b/proto/Unk2700_IBOKDNKBMII.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8825
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_IBOKDNKBMII {
+ uint32 Unk2700_MOKOAHDHAGA = 8;
+}
diff --git a/proto/Unk2700_ICABIPHHPKE.proto b/proto/Unk2700_ICABIPHHPKE.proto
new file mode 100644
index 00000000..f7e2a36c
--- /dev/null
+++ b/proto/Unk2700_ICABIPHHPKE.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8028
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_ICABIPHHPKE {
+ repeated uint32 Unk2700_GGNBBHMGLAN = 15;
+ int32 retcode = 1;
+}
diff --git a/proto/Unk2700_ICPNKAALJEP.proto b/proto/Unk2700_ICPNKAALJEP.proto
new file mode 100644
index 00000000..b6d1adc9
--- /dev/null
+++ b/proto/Unk2700_ICPNKAALJEP.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_KLJLJGJOBDI.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_ICPNKAALJEP {
+ bool is_new_record = 8;
+ Unk2700_KLJLJGJOBDI settle_info = 14;
+}
diff --git a/proto/Unk2700_IDADEMGCJBF_ClientNotify.proto b/proto/Unk2700_IDADEMGCJBF_ClientNotify.proto
new file mode 100644
index 00000000..a78566a7
--- /dev/null
+++ b/proto/Unk2700_IDADEMGCJBF_ClientNotify.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6243
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_IDADEMGCJBF_ClientNotify {}
diff --git a/proto/Unk2700_IDAGMLJOJMP.proto b/proto/Unk2700_IDAGMLJOJMP.proto
new file mode 100644
index 00000000..3984fa7e
--- /dev/null
+++ b/proto/Unk2700_IDAGMLJOJMP.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8799
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_IDAGMLJOJMP {
+ int32 retcode = 13;
+}
diff --git a/proto/Unk2700_IDGCNKONBBJ.proto b/proto/Unk2700_IDGCNKONBBJ.proto
new file mode 100644
index 00000000..1faa670b
--- /dev/null
+++ b/proto/Unk2700_IDGCNKONBBJ.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8793
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_IDGCNKONBBJ {
+ int32 retcode = 4;
+}
diff --git a/proto/Unk2700_IEFAGBHIODK.proto b/proto/Unk2700_IEFAGBHIODK.proto
new file mode 100644
index 00000000..fe99a6b4
--- /dev/null
+++ b/proto/Unk2700_IEFAGBHIODK.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8402
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_IEFAGBHIODK {
+ int32 retcode = 5;
+ repeated uint32 Unk2700_CPOJCHEOPLB = 13;
+ uint32 level_id = 10;
+ uint32 time = 8;
+}
diff --git a/proto/Unk2700_IEFGLPNHHAJ.proto b/proto/Unk2700_IEFGLPNHHAJ.proto
new file mode 100644
index 00000000..e6caf335
--- /dev/null
+++ b/proto/Unk2700_IEFGLPNHHAJ.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_IEFGLPNHHAJ {
+ repeated uint32 Unk2700_OKEAMNBIBDC = 10;
+ repeated uint32 Unk2700_DOBMDALKEOF = 7;
+}
diff --git a/proto/Unk2700_IEGOOOECBFH.proto b/proto/Unk2700_IEGOOOECBFH.proto
new file mode 100644
index 00000000..dc6bbe08
--- /dev/null
+++ b/proto/Unk2700_IEGOOOECBFH.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_HIHKGMLLOGD.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8880
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_IEGOOOECBFH {
+ Unk2700_HIHKGMLLOGD Unk2700_BABEGIGEEIB = 13;
+ int32 retcode = 12;
+}
diff --git a/proto/Unk2700_IEPIBFMCJNJ.proto b/proto/Unk2700_IEPIBFMCJNJ.proto
new file mode 100644
index 00000000..f62c7f9e
--- /dev/null
+++ b/proto/Unk2700_IEPIBFMCJNJ.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_IEPIBFMCJNJ {
+ uint32 uid = 15;
+ string nickname = 3;
+ string remark_name = 10;
+ ProfilePicture profile_picture = 14;
+ map Unk2700_IFCNGIPPOAE = 8;
+}
diff --git a/proto/Unk2700_IGAFEBCFJEJ.proto b/proto/Unk2700_IGAFEBCFJEJ.proto
new file mode 100644
index 00000000..115e0a3d
--- /dev/null
+++ b/proto/Unk2700_IGAFEBCFJEJ.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_IGAFEBCFJEJ {
+ uint64 Unk2700_EPEFCCMPLCP = 13;
+ uint32 Unk2700_GCGDABPLCFK = 3;
+}
diff --git a/proto/Unk2700_IGJLOMCPLLE.proto b/proto/Unk2700_IGJLOMCPLLE.proto
new file mode 100644
index 00000000..2d6132c7
--- /dev/null
+++ b/proto/Unk2700_IGJLOMCPLLE.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_IGJLOMCPLLE {
+ uint32 block_id = 8;
+ Vector rot = 12;
+ uint32 guid = 4;
+ Vector pos = 1;
+}
diff --git a/proto/Unk2700_IGPIIHEDJLJ_ServerRsp.proto b/proto/Unk2700_IGPIIHEDJLJ_ServerRsp.proto
new file mode 100644
index 00000000..3c8c6826
--- /dev/null
+++ b/proto/Unk2700_IGPIIHEDJLJ_ServerRsp.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_KBBDJNLFAKD.proto";
+import "Unk2700_NLFDMMFNMIO.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6218
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_IGPIIHEDJLJ_ServerRsp {
+ Unk2700_NLFDMMFNMIO Unk2700_EJHNBDLLLFO = 14;
+ Unk2700_KBBDJNLFAKD Unk2700_LGBODABIKLL = 2;
+ int32 retcode = 10;
+ map Unk2700_DDGNPJLHKKH = 6;
+}
diff --git a/proto/Unk2700_IHLONDFBCOE_ClientReq.proto b/proto/Unk2700_IHLONDFBCOE_ClientReq.proto
new file mode 100644
index 00000000..6a98a87d
--- /dev/null
+++ b/proto/Unk2700_IHLONDFBCOE_ClientReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_OPEBMJPOOBL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6320
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_IHLONDFBCOE_ClientReq {
+ Unk2700_OPEBMJPOOBL Unk2700_KHBDAPGDOJA = 13;
+}
diff --git a/proto/Unk2700_IHOOCHJACEL.proto b/proto/Unk2700_IHOOCHJACEL.proto
new file mode 100644
index 00000000..9848d5d6
--- /dev/null
+++ b/proto/Unk2700_IHOOCHJACEL.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_BGKMAAINPCO.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8325
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_IHOOCHJACEL {
+ uint32 level_id = 7;
+ repeated Unk2700_BGKMAAINPCO Unk2700_GMAEHKMDIGG = 13;
+ uint32 difficulty_id = 10;
+}
diff --git a/proto/Unk2700_IHPFBKANGMJ.proto b/proto/Unk2700_IHPFBKANGMJ.proto
new file mode 100644
index 00000000..562fbc02
--- /dev/null
+++ b/proto/Unk2700_IHPFBKANGMJ.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8771
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_IHPFBKANGMJ {
+ uint32 level_id = 13;
+}
diff --git a/proto/Unk2700_IJFEPCBOLDF.proto b/proto/Unk2700_IJFEPCBOLDF.proto
new file mode 100644
index 00000000..e4831fa5
--- /dev/null
+++ b/proto/Unk2700_IJFEPCBOLDF.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8756
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_IJFEPCBOLDF {
+ bool is_new_record = 9;
+ bool Unk2700_MMNILGLDHHD = 3;
+ uint32 level_id = 15;
+ uint32 score = 8;
+}
diff --git a/proto/Unk2700_IJLANPFECKC.proto b/proto/Unk2700_IJLANPFECKC.proto
new file mode 100644
index 00000000..ae7cba76
--- /dev/null
+++ b/proto/Unk2700_IJLANPFECKC.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8277
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_IJLANPFECKC {
+ uint32 stage_id = 9;
+ uint32 challenge_id = 1;
+}
diff --git a/proto/Unk2700_ILBBAKACCHA_ClientReq.proto b/proto/Unk2700_ILBBAKACCHA_ClientReq.proto
new file mode 100644
index 00000000..0c512385
--- /dev/null
+++ b/proto/Unk2700_ILBBAKACCHA_ClientReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 470
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_ILBBAKACCHA_ClientReq {
+ uint32 parent_quest_id = 15;
+}
diff --git a/proto/Unk2700_ILLDDDFLKHP.proto b/proto/Unk2700_ILLDDDFLKHP.proto
new file mode 100644
index 00000000..d156bd2f
--- /dev/null
+++ b/proto/Unk2700_ILLDDDFLKHP.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8959
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_ILLDDDFLKHP {
+ uint32 gallery_id = 14;
+ int32 retcode = 5;
+}
diff --git a/proto/Unk2700_IMGLPJNBHCH.proto b/proto/Unk2700_IMGLPJNBHCH.proto
new file mode 100644
index 00000000..7a42e66e
--- /dev/null
+++ b/proto/Unk2700_IMGLPJNBHCH.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_IMGLPJNBHCH {
+ uint32 Unk2700_IIEIPINHLBN = 5;
+ uint32 Unk2700_AIKKJGOLLHK = 13;
+}
diff --git a/proto/Unk2700_IMHNKDHHGMA.proto b/proto/Unk2700_IMHNKDHHGMA.proto
new file mode 100644
index 00000000..9bc54884
--- /dev/null
+++ b/proto/Unk2700_IMHNKDHHGMA.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_JCOIDFNDHPB.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8186
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_IMHNKDHHGMA {
+ uint32 gallery_id = 10;
+ Unk2700_JCOIDFNDHPB settle_info = 13;
+}
diff --git a/proto/Unk2700_IMMPPANFEPP.proto b/proto/Unk2700_IMMPPANFEPP.proto
new file mode 100644
index 00000000..6b17474f
--- /dev/null
+++ b/proto/Unk2700_IMMPPANFEPP.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_IMMPPANFEPP {
+ uint32 guid = 11;
+ uint32 Unk2700_MAABPJMPILD = 6;
+}
diff --git a/proto/Unk2700_INBDPOIMAHK_ClientReq.proto b/proto/Unk2700_INBDPOIMAHK_ClientReq.proto
new file mode 100644
index 00000000..f4d7aa2f
--- /dev/null
+++ b/proto/Unk2700_INBDPOIMAHK_ClientReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6242
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_INBDPOIMAHK_ClientReq {
+ repeated uint32 tag_list = 1;
+ uint64 Unk2700_ONOOJBEABOE = 5;
+}
diff --git a/proto/Unk2700_INMNHKOPCFB.proto b/proto/Unk2700_INMNHKOPCFB.proto
new file mode 100644
index 00000000..2dccabe3
--- /dev/null
+++ b/proto/Unk2700_INMNHKOPCFB.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_CBMGMANEDNA.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_INMNHKOPCFB {
+ repeated Unk2700_CBMGMANEDNA info_list = 15;
+}
diff --git a/proto/Unk2700_INOMEGGAGOP.proto b/proto/Unk2700_INOMEGGAGOP.proto
new file mode 100644
index 00000000..f0c952ef
--- /dev/null
+++ b/proto/Unk2700_INOMEGGAGOP.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_AIMMLILLOKB.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8132
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_INOMEGGAGOP {
+ repeated Unk2700_AIMMLILLOKB Unk2700_DFGCIBJFNBC = 5;
+ uint32 schedule_id = 10;
+ int32 retcode = 9;
+}
diff --git a/proto/Unk2700_IOLMLCCBAKP.proto b/proto/Unk2700_IOLMLCCBAKP.proto
new file mode 100644
index 00000000..4a3dc226
--- /dev/null
+++ b/proto/Unk2700_IOLMLCCBAKP.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_BGKMAAINPCO.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_IOLMLCCBAKP {
+ repeated Unk2700_BGKMAAINPCO Unk2700_GMAEHKMDIGG = 10;
+ bool is_open = 9;
+ uint32 level_id = 14;
+ uint32 best_score = 5;
+}
diff --git a/proto/Unk2700_IOONEPPHCJP.proto b/proto/Unk2700_IOONEPPHCJP.proto
new file mode 100644
index 00000000..e6c6e41f
--- /dev/null
+++ b/proto/Unk2700_IOONEPPHCJP.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_IOONEPPHCJP {
+ uint32 Unk2700_BPDFJJNJGAJ = 1;
+ uint32 Unk2700_KDJGDPDJHLL = 2;
+ map Unk2700_HGBNIFAKOGI = 3;
+}
diff --git a/proto/Unk2700_IPGJEAEFJMM_ServerRsp.proto b/proto/Unk2700_IPGJEAEFJMM_ServerRsp.proto
new file mode 100644
index 00000000..c251aeba
--- /dev/null
+++ b/proto/Unk2700_IPGJEAEFJMM_ServerRsp.proto
@@ -0,0 +1,41 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DropSubfieldType.proto";
+import "MusicBriefInfo.proto";
+import "MusicRecord.proto";
+import "Unk2700_OPEBMJPOOBL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6318
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_IPGJEAEFJMM_ServerRsp {
+ uint64 Unk2700_CEPGMKAHHCD = 15;
+ Unk2700_OPEBMJPOOBL Unk2700_KHBDAPGDOJA = 10;
+ int32 retcode = 2;
+ DropSubfieldType Unk2700_MJNIHFCKJMN = 14;
+ oneof Unk2700_MIPPJKBFLOO {
+ MusicRecord music_record = 4;
+ }
+ oneof Unk2700_ILHNBMNOMHO {
+ MusicBriefInfo music_brief_info = 1819;
+ }
+}
diff --git a/proto/Unk2700_JACACCPGMGC.proto b/proto/Unk2700_JACACCPGMGC.proto
new file mode 100644
index 00000000..58253450
--- /dev/null
+++ b/proto/Unk2700_JACACCPGMGC.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_MIMJBGMEMCA.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_JACACCPGMGC {
+ repeated Unk2700_MIMJBGMEMCA Unk2700_IDGMODJPBGF = 11;
+ uint32 level_id = 14;
+}
diff --git a/proto/Unk2700_JCBJHCFEONO.proto b/proto/Unk2700_JCBJHCFEONO.proto
new file mode 100644
index 00000000..fe0bfa09
--- /dev/null
+++ b/proto/Unk2700_JCBJHCFEONO.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_NOGODJOJDGF.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_JCBJHCFEONO {
+ repeated Unk2700_NOGODJOJDGF Unk2700_AIMBFNOKKHE = 8;
+ uint32 timestamp = 3;
+}
diff --git a/proto/Unk2700_JCKGJAELBMB.proto b/proto/Unk2700_JCKGJAELBMB.proto
new file mode 100644
index 00000000..42833734
--- /dev/null
+++ b/proto/Unk2700_JCKGJAELBMB.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8704
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_JCKGJAELBMB {
+ uint32 finish_time = 3;
+ uint32 level_id = 11;
+}
diff --git a/proto/Unk2700_JCNIPOJMFMH.proto b/proto/Unk2700_JCNIPOJMFMH.proto
new file mode 100644
index 00000000..b1188e3b
--- /dev/null
+++ b/proto/Unk2700_JCNIPOJMFMH.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_EEPNCOAEKBM.proto";
+import "Unk2700_LELADCCDNJH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_JCNIPOJMFMH {
+ repeated Unk2700_EEPNCOAEKBM Unk2700_OCBDODAGPNF = 12;
+ repeated Unk2700_LELADCCDNJH level_list = 6;
+ repeated uint32 Unk2700_EGPCJLGGGLK = 10;
+ repeated Unk2700_EEPNCOAEKBM Unk2700_CPJMLMCOCLA = 13;
+}
diff --git a/proto/Unk2700_JCOECJGPNOL_ServerRsp.proto b/proto/Unk2700_JCOECJGPNOL_ServerRsp.proto
new file mode 100644
index 00000000..aca905c4
--- /dev/null
+++ b/proto/Unk2700_JCOECJGPNOL_ServerRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5929
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_JCOECJGPNOL_ServerRsp {
+ int32 retcode = 8;
+}
diff --git a/proto/Unk2700_JCOIDFNDHPB.proto b/proto/Unk2700_JCOIDFNDHPB.proto
new file mode 100644
index 00000000..31b963ec
--- /dev/null
+++ b/proto/Unk2700_JCOIDFNDHPB.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_HLHHNGHJLAO.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_JCOIDFNDHPB {
+ Unk2700_HLHHNGHJLAO settle_info = 13;
+ bool is_new_record = 12;
+}
diff --git a/proto/Unk2700_JDMPECKFGIG_ServerNotify.proto b/proto/Unk2700_JDMPECKFGIG_ServerNotify.proto
new file mode 100644
index 00000000..c772928b
--- /dev/null
+++ b/proto/Unk2700_JDMPECKFGIG_ServerNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4639
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_JDMPECKFGIG_ServerNotify {
+ bool is_enter_edit_mode = 15;
+}
diff --git a/proto/Unk2700_JDPMOMKAPIF.proto b/proto/Unk2700_JDPMOMKAPIF.proto
new file mode 100644
index 00000000..d6f9297c
--- /dev/null
+++ b/proto/Unk2700_JDPMOMKAPIF.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_KJDPNIKDKEJ.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_JDPMOMKAPIF {
+ uint32 id = 13;
+ repeated Unk2700_KJDPNIKDKEJ Unk2700_KPOACBFLPKP = 10;
+}
diff --git a/proto/Unk2700_JEFIMHGLOJF.proto b/proto/Unk2700_JEFIMHGLOJF.proto
new file mode 100644
index 00000000..91eb4c3f
--- /dev/null
+++ b/proto/Unk2700_JEFIMHGLOJF.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8096
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_JEFIMHGLOJF {
+ uint32 Unk2700_MCGIJIGJCIG = 4;
+ bool is_success = 9;
+ repeated uint32 Unk2700_LOMDDJKOMCK = 12;
+ uint32 stage_id = 15;
+}
diff --git a/proto/Unk2700_JEHIAJHHIMP_ServerNotify.proto b/proto/Unk2700_JEHIAJHHIMP_ServerNotify.proto
new file mode 100644
index 00000000..29186360
--- /dev/null
+++ b/proto/Unk2700_JEHIAJHHIMP_ServerNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 109
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_JEHIAJHHIMP_ServerNotify {
+ string nickname = 7;
+}
diff --git a/proto/Unk2700_JFGFIDBPGBK.proto b/proto/Unk2700_JFGFIDBPGBK.proto
new file mode 100644
index 00000000..6a861823
--- /dev/null
+++ b/proto/Unk2700_JFGFIDBPGBK.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8381
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_JFGFIDBPGBK {
+ int32 retcode = 12;
+}
diff --git a/proto/Unk2700_JHMIHJFFJBO.proto b/proto/Unk2700_JHMIHJFFJBO.proto
new file mode 100644
index 00000000..f9153a48
--- /dev/null
+++ b/proto/Unk2700_JHMIHJFFJBO.proto
@@ -0,0 +1,38 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_FEAENJPINFJ.proto";
+import "Unk2700_IMGLPJNBHCH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8862
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_JHMIHJFFJBO {
+ repeated Unk2700_IMGLPJNBHCH Unk2700_DMJOJPGLFHE = 15;
+ uint32 Unk2700_AEHOPMMMHAP = 13;
+ uint32 Unk2700_HMIBIIPHBAN = 2;
+ repeated Unk2700_FEAENJPINFJ Unk2700_FLMLLJIHOAI = 8;
+ uint32 Unk2700_LOIMAGFKMOJ = 6;
+ uint32 stage_id = 12;
+ uint32 challenge_id = 11;
+ uint32 Unk2700_FGIIBJADECI = 14;
+ int32 retcode = 7;
+}
diff --git a/proto/Unk2700_JJAFAJIKDDK_ServerRsp.proto b/proto/Unk2700_JJAFAJIKDDK_ServerRsp.proto
new file mode 100644
index 00000000..6324d089
--- /dev/null
+++ b/proto/Unk2700_JJAFAJIKDDK_ServerRsp.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MusicBriefInfo.proto";
+import "Unk2700_OPEBMJPOOBL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6307
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_JJAFAJIKDDK_ServerRsp {
+ uint64 Unk2700_CEPGMKAHHCD = 3;
+ Unk2700_OPEBMJPOOBL Unk2700_KHBDAPGDOJA = 11;
+ int32 retcode = 4;
+ oneof Unk2700_ILHNBMNOMHO {
+ MusicBriefInfo music_brief_info = 2;
+ }
+}
diff --git a/proto/Unk2700_JJCDNAHAPKD_ClientReq.proto b/proto/Unk2700_JJCDNAHAPKD_ClientReq.proto
new file mode 100644
index 00000000..66ee5213
--- /dev/null
+++ b/proto/Unk2700_JJCDNAHAPKD_ClientReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_KBBDJNLFAKD.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6226
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_JJCDNAHAPKD_ClientReq {
+ uint64 Unk2700_ONOOJBEABOE = 11;
+ uint32 dungeon_id = 12;
+ Unk2700_KBBDJNLFAKD Unk2700_LGBODABIKLL = 10;
+}
diff --git a/proto/Unk2700_JKFGMBAMNDA_ServerNotify.proto b/proto/Unk2700_JKFGMBAMNDA_ServerNotify.proto
new file mode 100644
index 00000000..73efa86b
--- /dev/null
+++ b/proto/Unk2700_JKFGMBAMNDA_ServerNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BuildingInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5320
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_JKFGMBAMNDA_ServerNotify {
+ uint32 Unk2700_MDJOPHOHFDB = 5;
+ repeated BuildingInfo building_list = 3;
+ uint32 Unk2700_COFBIGLBNGP = 13;
+}
diff --git a/proto/Unk2700_JKOKBPFCILA_ClientReq.proto b/proto/Unk2700_JKOKBPFCILA_ClientReq.proto
new file mode 100644
index 00000000..ec1cf7c2
--- /dev/null
+++ b/proto/Unk2700_JKOKBPFCILA_ClientReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 467
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_JKOKBPFCILA_ClientReq {
+ uint32 quest_id = 4;
+}
diff --git a/proto/Unk2700_JLHKOLGFAMI.proto b/proto/Unk2700_JLHKOLGFAMI.proto
new file mode 100644
index 00000000..72e5878e
--- /dev/null
+++ b/proto/Unk2700_JLHKOLGFAMI.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_JLHKOLGFAMI {
+ uint32 level_id = 10;
+ uint32 score = 7;
+ uint32 Unk2700_HKFEBBCMBHL = 5;
+ uint32 Unk2700_FHEHGDABALE = 2;
+}
diff --git a/proto/Unk2700_JLOFMANHGHI_ClientReq.proto b/proto/Unk2700_JLOFMANHGHI_ClientReq.proto
new file mode 100644
index 00000000..517b3cad
--- /dev/null
+++ b/proto/Unk2700_JLOFMANHGHI_ClientReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6247
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_JLOFMANHGHI_ClientReq {}
diff --git a/proto/Unk2700_JMPCGMBHJLG.proto b/proto/Unk2700_JMPCGMBHJLG.proto
new file mode 100644
index 00000000..8582ac1f
--- /dev/null
+++ b/proto/Unk2700_JMPCGMBHJLG.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_MLMEFKLMOEF.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_JMPCGMBHJLG {
+ uint32 Unk2700_MBEMKCGABIB = 3;
+ repeated uint32 Unk2700_FJJDHBFLCCH = 2;
+ repeated Unk2700_MLMEFKLMOEF Unk2700_JDBFOILOOIF = 7;
+}
diff --git a/proto/Unk2700_JNCINBLCNNL.proto b/proto/Unk2700_JNCINBLCNNL.proto
new file mode 100644
index 00000000..32fee0f5
--- /dev/null
+++ b/proto/Unk2700_JNCINBLCNNL.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8696
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_JNCINBLCNNL {
+ repeated uint32 Unk2700_DMPIDNKAJML = 3;
+ uint32 schedule_id = 4;
+ int32 retcode = 10;
+}
diff --git a/proto/Unk2700_JOEPIGNPDGH.proto b/proto/Unk2700_JOEPIGNPDGH.proto
new file mode 100644
index 00000000..222a1e26
--- /dev/null
+++ b/proto/Unk2700_JOEPIGNPDGH.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_JOEPIGNPDGH {
+ Unk2700_JOEPIGNPDGH_Unk2700_GIGONJIGKBM = 0;
+ Unk2700_JOEPIGNPDGH_Unk2700_AEKNMJMKIPN = 1;
+ Unk2700_JOEPIGNPDGH_Unk2700_LKCIHNNHIFO = 2;
+ Unk2700_JOEPIGNPDGH_Unk2700_EPAPGLMBAEB = 3;
+}
diff --git a/proto/Unk2700_JOHOODKBINN_ClientReq.proto b/proto/Unk2700_JOHOODKBINN_ClientReq.proto
new file mode 100644
index 00000000..ef91f025
--- /dev/null
+++ b/proto/Unk2700_JOHOODKBINN_ClientReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4256
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_JOHOODKBINN_ClientReq {
+ Vector pos = 10;
+ uint32 entity_id = 15;
+ uint32 material_id = 6;
+}
diff --git a/proto/Unk2700_JPGAAHJBLKB.proto b/proto/Unk2700_JPGAAHJBLKB.proto
new file mode 100644
index 00000000..1cc97891
--- /dev/null
+++ b/proto/Unk2700_JPGAAHJBLKB.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_JPGAAHJBLKB {
+ uint64 avatar_id = 3;
+ bool is_trial = 13;
+}
diff --git a/proto/Unk2700_JPLFIOOMCGG.proto b/proto/Unk2700_JPLFIOOMCGG.proto
new file mode 100644
index 00000000..b759642e
--- /dev/null
+++ b/proto/Unk2700_JPLFIOOMCGG.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8142
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_JPLFIOOMCGG {
+ int32 retcode = 10;
+}
diff --git a/proto/Unk2700_KAJNLGIDKAB_ServerRsp.proto b/proto/Unk2700_KAJNLGIDKAB_ServerRsp.proto
new file mode 100644
index 00000000..0261f8e1
--- /dev/null
+++ b/proto/Unk2700_KAJNLGIDKAB_ServerRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4289
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_KAJNLGIDKAB_ServerRsp {
+ int32 retcode = 9;
+ uint32 entity_id = 4;
+ uint32 material_id = 8;
+ Vector pos = 10;
+}
diff --git a/proto/Unk2700_KBBDJNLFAKD.proto b/proto/Unk2700_KBBDJNLFAKD.proto
new file mode 100644
index 00000000..3dab1d40
--- /dev/null
+++ b/proto/Unk2700_KBBDJNLFAKD.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_KBBDJNLFAKD {
+ Unk2700_KBBDJNLFAKD_Unk2700_FACJMMHAOLB = 0;
+ Unk2700_KBBDJNLFAKD_Unk2700_IAPAEBBEILN = 1;
+ Unk2700_KBBDJNLFAKD_Unk2700_MPJODMAIHEL = 2;
+ Unk2700_KBBDJNLFAKD_Unk2700_KPNLCPIJPAH = 3;
+}
diff --git a/proto/Unk2700_KDDPDHGPGEF_ServerRsp.proto b/proto/Unk2700_KDDPDHGPGEF_ServerRsp.proto
new file mode 100644
index 00000000..b7237bbe
--- /dev/null
+++ b/proto/Unk2700_KDDPDHGPGEF_ServerRsp.proto
@@ -0,0 +1,37 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ElementReliquaryResponse.proto";
+import "ReliquaryResponse.proto";
+import "SkillResponse.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 123
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_KDDPDHGPGEF_ServerRsp {
+ int32 retcode = 6;
+ uint32 avatar_id = 15;
+ oneof detail {
+ SkillResponse skill_response = 1022;
+ ReliquaryResponse reliquary_response = 196;
+ ElementReliquaryResponse element_reliquary_response = 167;
+ }
+}
diff --git a/proto/Unk2700_KDFNIGOBLEK.proto b/proto/Unk2700_KDFNIGOBLEK.proto
new file mode 100644
index 00000000..291add3e
--- /dev/null
+++ b/proto/Unk2700_KDFNIGOBLEK.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8308
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_KDFNIGOBLEK {
+ int32 retcode = 2;
+ uint32 card_id = 8;
+ uint32 level_id = 5;
+ bool Unk2700_PHGMKGEMCFF = 12;
+}
diff --git a/proto/Unk2700_KDNNKELPJFL.proto b/proto/Unk2700_KDNNKELPJFL.proto
new file mode 100644
index 00000000..9b66dc65
--- /dev/null
+++ b/proto/Unk2700_KDNNKELPJFL.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8777
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_KDNNKELPJFL {
+ int32 retcode = 6;
+}
diff --git a/proto/Unk2700_KEMOFNEAOOO_ClientRsp.proto b/proto/Unk2700_KEMOFNEAOOO_ClientRsp.proto
new file mode 100644
index 00000000..468f9e29
--- /dev/null
+++ b/proto/Unk2700_KEMOFNEAOOO_ClientRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1182
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_KEMOFNEAOOO_ClientRsp {
+ repeated uint32 Unk2700_IBJECDLKPGM = 7;
+}
diff --git a/proto/Unk2700_KFPEIHHCCLA.proto b/proto/Unk2700_KFPEIHHCCLA.proto
new file mode 100644
index 00000000..a147b81f
--- /dev/null
+++ b/proto/Unk2700_KFPEIHHCCLA.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8978
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_KFPEIHHCCLA {
+ int32 retcode = 2;
+ uint32 id = 15;
+}
diff --git a/proto/Unk2700_KGHOJPDNMKK_ServerRsp.proto b/proto/Unk2700_KGHOJPDNMKK_ServerRsp.proto
new file mode 100644
index 00000000..a8d44404
--- /dev/null
+++ b/proto/Unk2700_KGHOJPDNMKK_ServerRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_IMMPPANFEPP.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4641
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_KGHOJPDNMKK_ServerRsp {
+ int32 retcode = 13;
+ Unk2700_IMMPPANFEPP Unk2700_JJBKBKPEIBC = 14;
+}
diff --git a/proto/Unk2700_KGNJIBIMAHI.proto b/proto/Unk2700_KGNJIBIMAHI.proto
new file mode 100644
index 00000000..c9d4d4d8
--- /dev/null
+++ b/proto/Unk2700_KGNJIBIMAHI.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8842
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_KGNJIBIMAHI {
+ bool is_new = 12;
+ int32 retcode = 6;
+ repeated uint32 affix_list = 8;
+ uint32 Unk2700_BPNCECAFPDK = 11;
+}
diff --git a/proto/Unk2700_KHDMDKKDOCD.proto b/proto/Unk2700_KHDMDKKDOCD.proto
new file mode 100644
index 00000000..49a0d40c
--- /dev/null
+++ b/proto/Unk2700_KHDMDKKDOCD.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_KHDMDKKDOCD {
+ uint64 avatar_guid = 8;
+ bool is_trial = 2;
+}
diff --git a/proto/Unk2700_KHLJJPGOELG_ClientReq.proto b/proto/Unk2700_KHLJJPGOELG_ClientReq.proto
new file mode 100644
index 00000000..4ebb5163
--- /dev/null
+++ b/proto/Unk2700_KHLJJPGOELG_ClientReq.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_KLPINMKOEPE.proto";
+import "Unk2700_PHGGAEDHLBN.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6225
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_KHLJJPGOELG_ClientReq {
+ Unk2700_KLPINMKOEPE Unk2700_MDIJOHEFFHI = 5;
+ bool Unk2700_FHHLMJALLMN = 7;
+ Unk2700_PHGGAEDHLBN Unk2700_JGFDODPBGFL = 13;
+}
diff --git a/proto/Unk2700_KIGGOKAEFHM.proto b/proto/Unk2700_KIGGOKAEFHM.proto
new file mode 100644
index 00000000..cf0ca8ce
--- /dev/null
+++ b/proto/Unk2700_KIGGOKAEFHM.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_KIGGOKAEFHM {
+ repeated ItemParam item_list = 2;
+ uint32 uid = 8;
+ ProfilePicture profile_picture = 1;
+ string nickname = 12;
+}
diff --git a/proto/Unk2700_KIHEEAGDGIL_ServerNotify.proto b/proto/Unk2700_KIHEEAGDGIL_ServerNotify.proto
new file mode 100644
index 00000000..5dc66f84
--- /dev/null
+++ b/proto/Unk2700_KIHEEAGDGIL_ServerNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_DPPCDPBBABA.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 108
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_KIHEEAGDGIL_ServerNotify {
+ Unk2700_DPPCDPBBABA info = 13;
+}
diff --git a/proto/Unk2700_KIIOGMKFNNP_ServerRsp.proto b/proto/Unk2700_KIIOGMKFNNP_ServerRsp.proto
new file mode 100644
index 00000000..99be67ee
--- /dev/null
+++ b/proto/Unk2700_KIIOGMKFNNP_ServerRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4615
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_KIIOGMKFNNP_ServerRsp {
+ int32 retcode = 15;
+}
diff --git a/proto/Unk2700_KJDPNIKDKEJ.proto b/proto/Unk2700_KJDPNIKDKEJ.proto
new file mode 100644
index 00000000..5cb55b73
--- /dev/null
+++ b/proto/Unk2700_KJDPNIKDKEJ.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_HEMFKLPNNOM.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_KJDPNIKDKEJ {
+ Unk2700_HEMFKLPNNOM type = 8;
+ int32 value = 4;
+}
diff --git a/proto/Unk2700_KJODHFMHMNC.proto b/proto/Unk2700_KJODHFMHMNC.proto
new file mode 100644
index 00000000..d6449e27
--- /dev/null
+++ b/proto/Unk2700_KJODHFMHMNC.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_KJODHFMHMNC {
+ uint32 id = 1;
+ bool Unk2700_MMNILGLDHHD = 14;
+}
diff --git a/proto/Unk2700_KKEDIMOKCGD.proto b/proto/Unk2700_KKEDIMOKCGD.proto
new file mode 100644
index 00000000..17130c71
--- /dev/null
+++ b/proto/Unk2700_KKEDIMOKCGD.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_EEPNCOAEKBM.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8218
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_KKEDIMOKCGD {
+ bool Unk2700_NHBDAFBHNMH = 9;
+ Unk2700_EEPNCOAEKBM Unk2700_KEAGHCIIGGN = 10;
+}
diff --git a/proto/Unk2700_KLJLJGJOBDI.proto b/proto/Unk2700_KLJLJGJOBDI.proto
new file mode 100644
index 00000000..e719b336
--- /dev/null
+++ b/proto/Unk2700_KLJLJGJOBDI.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_NCNPNMFFONG.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_KLJLJGJOBDI {
+ uint32 Unk2700_CDDONJJMFCI = 8;
+ Unk2700_NCNPNMFFONG reason = 7;
+ uint32 final_score = 13;
+ uint32 Unk2700_FFCCLGIFGIP = 15;
+}
diff --git a/proto/Unk2700_KLPINMKOEPE.proto b/proto/Unk2700_KLPINMKOEPE.proto
new file mode 100644
index 00000000..acbcd7ee
--- /dev/null
+++ b/proto/Unk2700_KLPINMKOEPE.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_IGJLOMCPLLE.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_KLPINMKOEPE {
+ uint32 room_id = 15;
+ repeated Unk2700_IGJLOMCPLLE Unk2700_ICMKKOMLHIH = 4;
+}
diff --git a/proto/Unk2700_KMIDCPLAGMN.proto b/proto/Unk2700_KMIDCPLAGMN.proto
new file mode 100644
index 00000000..4c034aea
--- /dev/null
+++ b/proto/Unk2700_KMIDCPLAGMN.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8848
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_KMIDCPLAGMN {
+ uint32 schedule_id = 7;
+ int32 retcode = 3;
+ map Unk2700_IFCNGIPPOAE = 14;
+}
diff --git a/proto/Unk2700_KMNPMLCHELD_ServerRsp.proto b/proto/Unk2700_KMNPMLCHELD_ServerRsp.proto
new file mode 100644
index 00000000..a1b690d7
--- /dev/null
+++ b/proto/Unk2700_KMNPMLCHELD_ServerRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6201
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_KMNPMLCHELD_ServerRsp {
+ int32 retcode = 12;
+}
diff --git a/proto/Unk2700_KNGDOIDOFFB.proto b/proto/Unk2700_KNGDOIDOFFB.proto
new file mode 100644
index 00000000..f4b2d062
--- /dev/null
+++ b/proto/Unk2700_KNGDOIDOFFB.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_MOFABPNGIKP.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_KNGDOIDOFFB {
+ uint32 Unk2700_HLEMPIKMBMP = 6;
+ Unk2700_MOFABPNGIKP reason = 4;
+ uint32 Unk2700_OMCCFBBDJMI = 1;
+}
diff --git a/proto/Unk2700_KNGFOEKOODA_ServerRsp.proto b/proto/Unk2700_KNGFOEKOODA_ServerRsp.proto
new file mode 100644
index 00000000..d03ec25c
--- /dev/null
+++ b/proto/Unk2700_KNGFOEKOODA_ServerRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2163
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_KNGFOEKOODA_ServerRsp {
+ uint32 activity_id = 4;
+ int32 retcode = 6;
+ uint32 schedule_id = 11;
+}
diff --git a/proto/Unk2700_KNMDFCBLIIG_ServerRsp.proto b/proto/Unk2700_KNMDFCBLIIG_ServerRsp.proto
new file mode 100644
index 00000000..56db8542
--- /dev/null
+++ b/proto/Unk2700_KNMDFCBLIIG_ServerRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 384
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_KNMDFCBLIIG_ServerRsp {
+ uint32 entity_id = 10;
+}
diff --git a/proto/Unk2700_KOGOPPONCHB_ClientReq.proto b/proto/Unk2700_KOGOPPONCHB_ClientReq.proto
new file mode 100644
index 00000000..9688cf02
--- /dev/null
+++ b/proto/Unk2700_KOGOPPONCHB_ClientReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4208
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_KOGOPPONCHB_ClientReq {
+ uint32 type_id = 2;
+ uint32 Unk2700_LEKOKKMDNAO = 14;
+}
diff --git a/proto/Unk2700_KPGMEMHEEMD.proto b/proto/Unk2700_KPGMEMHEEMD.proto
new file mode 100644
index 00000000..9bd88d25
--- /dev/null
+++ b/proto/Unk2700_KPGMEMHEEMD.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_GPPKNKGDCHJ.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8185
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_KPGMEMHEEMD {
+ int32 retcode = 14;
+ Unk2700_GPPKNKGDCHJ Unk2700_AAOHOIJEOEG = 3;
+}
diff --git a/proto/Unk2700_KPMMEBNMMCL.proto b/proto/Unk2700_KPMMEBNMMCL.proto
new file mode 100644
index 00000000..38456318
--- /dev/null
+++ b/proto/Unk2700_KPMMEBNMMCL.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_HJLFNKLPFBH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8363
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_KPMMEBNMMCL {
+ repeated uint32 Unk2700_OKGKHPCMNMN = 1;
+ repeated Unk2700_HJLFNKLPFBH Unk2700_ELOOIKFNJCG = 8;
+}
diff --git a/proto/Unk2700_KPNPJPPHOKA.proto b/proto/Unk2700_KPNPJPPHOKA.proto
new file mode 100644
index 00000000..b980abcb
--- /dev/null
+++ b/proto/Unk2700_KPNPJPPHOKA.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BalloonGalleryInfo.proto";
+import "RacingGalleryInfo.proto";
+import "SeekFurnitureGalleryInfo.proto";
+import "StakePlayGalleryInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_KPNPJPPHOKA {
+ uint32 group_id = 5;
+ oneof detail {
+ RacingGalleryInfo racing_gallery_info = 467;
+ BalloonGalleryInfo balloon_gallery_info = 1410;
+ StakePlayGalleryInfo stake_play_info = 347;
+ SeekFurnitureGalleryInfo seek_furniture_gallery_info = 1822;
+ }
+}
diff --git a/proto/Unk2700_LAFHGMOPCCM_ServerNotify.proto b/proto/Unk2700_LAFHGMOPCCM_ServerNotify.proto
new file mode 100644
index 00000000..8bf46115
--- /dev/null
+++ b/proto/Unk2700_LAFHGMOPCCM_ServerNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5553
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_LAFHGMOPCCM_ServerNotify {
+ uint32 gallery_id = 13;
+}
diff --git a/proto/Unk2700_LBIDBGLGKCJ.proto b/proto/Unk2700_LBIDBGLGKCJ.proto
new file mode 100644
index 00000000..e0f1207d
--- /dev/null
+++ b/proto/Unk2700_LBIDBGLGKCJ.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_LBIDBGLGKCJ {
+ bool Unk2700_MMNILGLDHHD = 7;
+ uint32 max_score = 9;
+ uint32 id = 4;
+}
diff --git a/proto/Unk2700_LBJKLAGNDEJ_ClientReq.proto b/proto/Unk2700_LBJKLAGNDEJ_ClientReq.proto
new file mode 100644
index 00000000..52ddd39c
--- /dev/null
+++ b/proto/Unk2700_LBJKLAGNDEJ_ClientReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4759
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_LBJKLAGNDEJ_ClientReq {
+ uint32 group_id = 2;
+}
diff --git a/proto/Unk2700_LBOAEFMECCP.proto b/proto/Unk2700_LBOAEFMECCP.proto
new file mode 100644
index 00000000..e8fef96f
--- /dev/null
+++ b/proto/Unk2700_LBOAEFMECCP.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_LBOAEFMECCP {
+ repeated uint32 Unk2700_POMENCDDAGL = 11;
+ uint32 id = 7;
+}
diff --git a/proto/Unk2700_LBOPCDPFJEC.proto b/proto/Unk2700_LBOPCDPFJEC.proto
new file mode 100644
index 00000000..72da433a
--- /dev/null
+++ b/proto/Unk2700_LBOPCDPFJEC.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8062
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_LBOPCDPFJEC {
+ int32 retcode = 4;
+}
diff --git a/proto/Unk2700_LBPFDCBHCBL.proto b/proto/Unk2700_LBPFDCBHCBL.proto
new file mode 100644
index 00000000..c7462f39
--- /dev/null
+++ b/proto/Unk2700_LBPFDCBHCBL.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_LBPFDCBHCBL {
+ string name = 1;
+ string value = 2;
+}
diff --git a/proto/Unk2700_LCFGKHHIAEH_ServerNotify.proto b/proto/Unk2700_LCFGKHHIAEH_ServerNotify.proto
new file mode 100644
index 00000000..2aa396e1
--- /dev/null
+++ b/proto/Unk2700_LCFGKHHIAEH_ServerNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4014
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_LCFGKHHIAEH_ServerNotify {
+ string signature = 12;
+}
diff --git a/proto/Unk2700_LDJLMCAHHEN.proto b/proto/Unk2700_LDJLMCAHHEN.proto
new file mode 100644
index 00000000..e1951070
--- /dev/null
+++ b/proto/Unk2700_LDJLMCAHHEN.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_HJLFNKLPFBH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8748
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_LDJLMCAHHEN {
+ repeated Unk2700_HJLFNKLPFBH Unk2700_OHECOOHPNHG = 6;
+}
diff --git a/proto/Unk2700_LELADCCDNJH.proto b/proto/Unk2700_LELADCCDNJH.proto
new file mode 100644
index 00000000..52766a51
--- /dev/null
+++ b/proto/Unk2700_LELADCCDNJH.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_LELADCCDNJH {
+ uint32 Unk2700_FACFKJKIBBO = 1;
+ uint32 id = 2;
+ bool is_finished = 7;
+ bool Unk2700_MJDCFONLGKN = 9;
+ bool Unk2700_AKAAHELAGHJ = 10;
+}
diff --git a/proto/Unk2700_LEMPLKGOOJC.proto b/proto/Unk2700_LEMPLKGOOJC.proto
new file mode 100644
index 00000000..4430893a
--- /dev/null
+++ b/proto/Unk2700_LEMPLKGOOJC.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8362
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_LEMPLKGOOJC {
+ int32 retcode = 4;
+}
diff --git a/proto/Unk2700_LGAGHFKFFDO_ServerRsp.proto b/proto/Unk2700_LGAGHFKFFDO_ServerRsp.proto
new file mode 100644
index 00000000..6ca9c909
--- /dev/null
+++ b/proto/Unk2700_LGAGHFKFFDO_ServerRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_OPEBMJPOOBL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6349
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_LGAGHFKFFDO_ServerRsp {
+ uint64 Unk2700_CEPGMKAHHCD = 14;
+ int32 retcode = 15;
+ Unk2700_OPEBMJPOOBL Unk2700_KHBDAPGDOJA = 13;
+}
diff --git a/proto/Unk2700_LGGAIDMLDIA_ServerReq.proto b/proto/Unk2700_LGGAIDMLDIA_ServerReq.proto
new file mode 100644
index 00000000..d8a57eab
--- /dev/null
+++ b/proto/Unk2700_LGGAIDMLDIA_ServerReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 177
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_LGGAIDMLDIA_ServerReq {}
diff --git a/proto/Unk2700_LGHJBAEBJKE_ServerRsp.proto b/proto/Unk2700_LGHJBAEBJKE_ServerRsp.proto
new file mode 100644
index 00000000..11e0bf38
--- /dev/null
+++ b/proto/Unk2700_LGHJBAEBJKE_ServerRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_MIBBHAEMAGI.proto";
+import "Unk2700_OGKIDNPMMKG.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6227
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_LGHJBAEBJKE_ServerRsp {
+ int32 retcode = 10;
+ Unk2700_OGKIDNPMMKG Unk2700_HKIFDFGHJOK = 14;
+ repeated Unk2700_MIBBHAEMAGI Unk2700_KLOAFPMHOKI = 5;
+}
diff --git a/proto/Unk2700_LHMOFCJCIKM.proto b/proto/Unk2700_LHMOFCJCIKM.proto
new file mode 100644
index 00000000..26894efc
--- /dev/null
+++ b/proto/Unk2700_LHMOFCJCIKM.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 9000
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_LHMOFCJCIKM {}
diff --git a/proto/Unk2700_LHPELFJPPOD.proto b/proto/Unk2700_LHPELFJPPOD.proto
new file mode 100644
index 00000000..04cac9d1
--- /dev/null
+++ b/proto/Unk2700_LHPELFJPPOD.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_LHPELFJPPOD {
+ bool Unk2700_GHGIOMEHIAN = 13;
+ uint32 best_score = 7;
+ uint32 challenge_id = 3;
+}
diff --git a/proto/Unk2700_LIJCBOBECHJ.proto b/proto/Unk2700_LIJCBOBECHJ.proto
new file mode 100644
index 00000000..d1bf5578
--- /dev/null
+++ b/proto/Unk2700_LIJCBOBECHJ.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8964
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_LIJCBOBECHJ {}
diff --git a/proto/Unk2700_LJINJNECBIA.proto b/proto/Unk2700_LJINJNECBIA.proto
new file mode 100644
index 00000000..24f88473
--- /dev/null
+++ b/proto/Unk2700_LJINJNECBIA.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8113
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_LJINJNECBIA {
+ uint32 schedule_id = 3;
+}
diff --git a/proto/Unk2700_LKFKCNJFGIF_ServerRsp.proto b/proto/Unk2700_LKFKCNJFGIF_ServerRsp.proto
new file mode 100644
index 00000000..84d4a784
--- /dev/null
+++ b/proto/Unk2700_LKFKCNJFGIF_ServerRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 458
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_LKFKCNJFGIF_ServerRsp {
+ uint32 quest_id = 4;
+ int32 retcode = 11;
+ repeated uint32 lacked_npc_list = 8;
+ repeated uint32 lacked_place_list = 5;
+ map lacked_npc_map = 10;
+ map lacked_place_map = 2;
+}
diff --git a/proto/Unk2700_LKPBBMPFPPE_ClientReq.proto b/proto/Unk2700_LKPBBMPFPPE_ClientReq.proto
new file mode 100644
index 00000000..acc64aca
--- /dev/null
+++ b/proto/Unk2700_LKPBBMPFPPE_ClientReq.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DropSubfieldType.proto";
+import "Unk2700_CKMOPKMKCAO.proto";
+import "Unk2700_OPEBMJPOOBL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6326
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_LKPBBMPFPPE_ClientReq {
+ Unk2700_OPEBMJPOOBL Unk2700_KHBDAPGDOJA = 8;
+ uint64 Unk2700_CEPGMKAHHCD = 5;
+ DropSubfieldType Unk2700_MJNIHFCKJMN = 6;
+ bool Unk2700_CAOIKBJJFIH = 11;
+ Unk2700_CKMOPKMKCAO Unk2700_BFPCGJEDDFK = 13;
+}
diff --git a/proto/Unk2700_LLBCBPADBNO.proto b/proto/Unk2700_LLBCBPADBNO.proto
new file mode 100644
index 00000000..71866c6d
--- /dev/null
+++ b/proto/Unk2700_LLBCBPADBNO.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_DIEGJDEIDKO.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8154
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_LLBCBPADBNO {
+ Unk2700_DIEGJDEIDKO explore_info = 12;
+ Unk2700_DIEGJDEIDKO battle_info = 4;
+}
diff --git a/proto/Unk2700_LLGDCAKMCKL.proto b/proto/Unk2700_LLGDCAKMCKL.proto
new file mode 100644
index 00000000..973d3ac2
--- /dev/null
+++ b/proto/Unk2700_LLGDCAKMCKL.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_DMPIJLBHEAE.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_LLGDCAKMCKL {
+ repeated Unk2700_DMPIJLBHEAE challenge_info_list = 9;
+ bool is_open = 10;
+ uint32 stage_id = 2;
+}
diff --git a/proto/Unk2700_LMAKABBJNLN.proto b/proto/Unk2700_LMAKABBJNLN.proto
new file mode 100644
index 00000000..b087633d
--- /dev/null
+++ b/proto/Unk2700_LMAKABBJNLN.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_FGJFFMPOJON.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8253
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_LMAKABBJNLN {
+ int32 retcode = 6;
+ repeated Unk2700_FGJFFMPOJON Unk2700_COOFMKLNBND = 11;
+ uint32 schedule_id = 10;
+}
diff --git a/proto/Unk2700_LNBBLNNPNBE_ServerNotify.proto b/proto/Unk2700_LNBBLNNPNBE_ServerNotify.proto
new file mode 100644
index 00000000..b7340161
--- /dev/null
+++ b/proto/Unk2700_LNBBLNNPNBE_ServerNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_JCBJHCFEONO.proto";
+import "Unk2700_MOFABPNGIKP.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4583
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_LNBBLNNPNBE_ServerNotify {
+ uint32 gallery_id = 15;
+ Unk2700_JCBJHCFEONO Unk2700_GIHGLFNAGJD = 5;
+ Unk2700_MOFABPNGIKP reason = 4;
+}
diff --git a/proto/Unk2700_LNMFIHNFKOO.proto b/proto/Unk2700_LNMFIHNFKOO.proto
new file mode 100644
index 00000000..f85bd311
--- /dev/null
+++ b/proto/Unk2700_LNMFIHNFKOO.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8572
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_LNMFIHNFKOO {
+ uint32 uid = 12;
+ repeated ItemParam item_list = 11;
+}
diff --git a/proto/Unk2700_LOHBMOKOPLH_ServerNotify.proto b/proto/Unk2700_LOHBMOKOPLH_ServerNotify.proto
new file mode 100644
index 00000000..685b9285
--- /dev/null
+++ b/proto/Unk2700_LOHBMOKOPLH_ServerNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4608
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_LOHBMOKOPLH_ServerNotify {
+ repeated uint32 Unk2700_KMEKMNONMGE = 11;
+}
diff --git a/proto/Unk2700_LPMIMLCNEDA.proto b/proto/Unk2700_LPMIMLCNEDA.proto
new file mode 100644
index 00000000..209919a1
--- /dev/null
+++ b/proto/Unk2700_LPMIMLCNEDA.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8518
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_LPMIMLCNEDA {
+ uint32 stage_id = 2;
+ uint32 challenge_id = 7;
+}
diff --git a/proto/Unk2700_MBIAJKLACBG.proto b/proto/Unk2700_MBIAJKLACBG.proto
new file mode 100644
index 00000000..9d305571
--- /dev/null
+++ b/proto/Unk2700_MBIAJKLACBG.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GroupLinkBundle.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5757
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_MBIAJKLACBG {
+ GroupLinkBundle bundle = 11;
+}
diff --git a/proto/Unk2700_MBIDJDLLBNM.proto b/proto/Unk2700_MBIDJDLLBNM.proto
new file mode 100644
index 00000000..f5174bef
--- /dev/null
+++ b/proto/Unk2700_MBIDJDLLBNM.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_MBIDJDLLBNM {
+ uint32 open_time = 5;
+ uint32 id = 1;
+ Vector pos = 14;
+ uint32 max_score = 2;
+}
diff --git a/proto/Unk2700_MCJIOOELGHG_ServerNotify.proto b/proto/Unk2700_MCJIOOELGHG_ServerNotify.proto
new file mode 100644
index 00000000..fcf10d81
--- /dev/null
+++ b/proto/Unk2700_MCJIOOELGHG_ServerNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_JDPMOMKAPIF.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6033
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_MCJIOOELGHG_ServerNotify {
+ repeated Unk2700_JDPMOMKAPIF Unk2700_KBMKGNGFGFO = 6;
+}
diff --git a/proto/Unk2700_MCOFAKMDMEF_ServerRsp.proto b/proto/Unk2700_MCOFAKMDMEF_ServerRsp.proto
new file mode 100644
index 00000000..050cf27b
--- /dev/null
+++ b/proto/Unk2700_MCOFAKMDMEF_ServerRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_OPEBMJPOOBL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6345
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_MCOFAKMDMEF_ServerRsp {
+ repeated uint64 Unk2700_AOOAAECDCOA = 15;
+ int32 retcode = 10;
+ Unk2700_OPEBMJPOOBL Unk2700_KHBDAPGDOJA = 12;
+}
diff --git a/proto/Unk2700_MDGKMNEBIBA.proto b/proto/Unk2700_MDGKMNEBIBA.proto
new file mode 100644
index 00000000..13c26ae9
--- /dev/null
+++ b/proto/Unk2700_MDGKMNEBIBA.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_HJLFNKLPFBH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8038
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_MDGKMNEBIBA {
+ Unk2700_HJLFNKLPFBH Unk2700_GIMLODDEDJH = 2;
+}
diff --git a/proto/Unk2700_MDPHLPEGFCG_ClientReq.proto b/proto/Unk2700_MDPHLPEGFCG_ClientReq.proto
new file mode 100644
index 00000000..d12f1611
--- /dev/null
+++ b/proto/Unk2700_MDPHLPEGFCG_ClientReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4020
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_MDPHLPEGFCG_ClientReq {}
diff --git a/proto/Unk2700_MEBFPBDNPGO_ServerNotify.proto b/proto/Unk2700_MEBFPBDNPGO_ServerNotify.proto
new file mode 100644
index 00000000..cae46370
--- /dev/null
+++ b/proto/Unk2700_MEBFPBDNPGO_ServerNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4847
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_MEBFPBDNPGO_ServerNotify {
+ repeated uint32 Unk2700_ELJPLMIHNIP = 11;
+}
diff --git a/proto/Unk2700_MEFJECGAFNH_ServerNotify.proto b/proto/Unk2700_MEFJECGAFNH_ServerNotify.proto
new file mode 100644
index 00000000..c161292d
--- /dev/null
+++ b/proto/Unk2700_MEFJECGAFNH_ServerNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5338
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_MEFJECGAFNH_ServerNotify {
+ uint32 left_monsters = 8;
+}
diff --git a/proto/Unk2700_MENCEGPEFAK.proto b/proto/Unk2700_MENCEGPEFAK.proto
new file mode 100644
index 00000000..7ea55948
--- /dev/null
+++ b/proto/Unk2700_MENCEGPEFAK.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8791
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_MENCEGPEFAK {
+ int32 retcode = 2;
+}
diff --git a/proto/Unk2700_MFAIPHGDPBL.proto b/proto/Unk2700_MFAIPHGDPBL.proto
new file mode 100644
index 00000000..accb95e4
--- /dev/null
+++ b/proto/Unk2700_MFAIPHGDPBL.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8345
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_MFAIPHGDPBL {
+ uint32 Unk2700_LKBHLHIHJGL = 1;
+}
diff --git a/proto/Unk2700_MFINCDMFGLD_ServerNotify.proto b/proto/Unk2700_MFINCDMFGLD_ServerNotify.proto
new file mode 100644
index 00000000..9be983a1
--- /dev/null
+++ b/proto/Unk2700_MFINCDMFGLD_ServerNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 152
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_MFINCDMFGLD_ServerNotify {
+ bool is_open = 8;
+ uint32 Unk2700_JEKIGDDNCAB = 12;
+}
diff --git a/proto/Unk2700_MHMBDFKOOLJ_ClientNotify.proto b/proto/Unk2700_MHMBDFKOOLJ_ClientNotify.proto
new file mode 100644
index 00000000..41faa67b
--- /dev/null
+++ b/proto/Unk2700_MHMBDFKOOLJ_ClientNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6234
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_MHMBDFKOOLJ_ClientNotify {
+ int32 retcode = 15;
+}
diff --git a/proto/Unk2700_MHPCNKJGEJN.proto b/proto/Unk2700_MHPCNKJGEJN.proto
new file mode 100644
index 00000000..ccf751dc
--- /dev/null
+++ b/proto/Unk2700_MHPCNKJGEJN.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_MHPCNKJGEJN {
+ uint32 Unk3000_CNGDFAGEACD = 3;
+}
diff --git a/proto/Unk2700_MIBBHAEMAGI.proto b/proto/Unk2700_MIBBHAEMAGI.proto
new file mode 100644
index 00000000..02dc1e7e
--- /dev/null
+++ b/proto/Unk2700_MIBBHAEMAGI.proto
@@ -0,0 +1,38 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_BMBAIACNLDF.proto";
+import "Unk2700_ELMEOJFCOFH.proto";
+import "Unk2700_OHBMICGFIIK.proto";
+import "Unk2700_PHGGAEDHLBN.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_MIBBHAEMAGI {
+ Unk2700_PHGGAEDHLBN Unk2700_JGFDODPBGFL = 2;
+ bool Unk2700_GBCGGDONMCD = 13;
+ Unk2700_OHBMICGFIIK Unk2700_IKGOMKLAJLH = 7;
+ uint64 Unk2700_ONOOJBEABOE = 10;
+ uint32 Unk2700_BPMLPHIMJAF = 14;
+ repeated uint32 tag_list = 15;
+ uint32 dungeon_id = 5;
+ uint32 Unk2700_DPPILIMGOKH = 12;
+ Unk2700_BMBAIACNLDF state = 1;
+ Unk2700_ELMEOJFCOFH Unk2700_PCFIKJEDEGN = 4;
+}
diff --git a/proto/Unk2700_MIBHNLEMICB.proto b/proto/Unk2700_MIBHNLEMICB.proto
new file mode 100644
index 00000000..09866c68
--- /dev/null
+++ b/proto/Unk2700_MIBHNLEMICB.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8462
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_MIBHNLEMICB {
+ repeated ItemParam item_list = 7;
+ uint32 quest_id = 4;
+}
diff --git a/proto/Unk2700_MIEJMGNBPJE.proto b/proto/Unk2700_MIEJMGNBPJE.proto
new file mode 100644
index 00000000..8e7fb6e6
--- /dev/null
+++ b/proto/Unk2700_MIEJMGNBPJE.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8377
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_MIEJMGNBPJE {
+ uint32 stage_id = 1;
+}
diff --git a/proto/Unk2700_MIMJBGMEMCA.proto b/proto/Unk2700_MIMJBGMEMCA.proto
new file mode 100644
index 00000000..5754ca75
--- /dev/null
+++ b/proto/Unk2700_MIMJBGMEMCA.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_MIMJBGMEMCA {
+ bool Unk2700_MMNILGLDHHD = 1;
+ uint32 Unk2700_LINCFMHPMDP = 2;
+ uint32 Unk2700_FACFKJKIBBO = 8;
+ bool Unk2700_PEDCFBJLHGP = 7;
+}
diff --git a/proto/Unk2700_MJAIKMBPKCD.proto b/proto/Unk2700_MJAIKMBPKCD.proto
new file mode 100644
index 00000000..1f8476b0
--- /dev/null
+++ b/proto/Unk2700_MJAIKMBPKCD.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8569
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_MJAIKMBPKCD {
+ int32 retcode = 10;
+ uint32 gallery_id = 14;
+}
diff --git a/proto/Unk2700_MJCCKKHJNMP_ServerRsp.proto b/proto/Unk2700_MJCCKKHJNMP_ServerRsp.proto
new file mode 100644
index 00000000..d0b069b3
--- /dev/null
+++ b/proto/Unk2700_MJCCKKHJNMP_ServerRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_GHHCCEHGKLH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6212
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_MJCCKKHJNMP_ServerRsp {
+ int32 retcode = 13;
+ repeated Unk2700_GHHCCEHGKLH Unk2700_BCIBEPMFLGN = 7;
+}
diff --git a/proto/Unk2700_MJGFEHOMKJE.proto b/proto/Unk2700_MJGFEHOMKJE.proto
new file mode 100644
index 00000000..bb867979
--- /dev/null
+++ b/proto/Unk2700_MJGFEHOMKJE.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_GHONKKEGHGL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_MJGFEHOMKJE {
+ repeated Unk2700_GHONKKEGHGL Unk2700_PHKHIPLDOOA = 6;
+}
diff --git a/proto/Unk2700_MKAFBOPFDEF_ServerNotify.proto b/proto/Unk2700_MKAFBOPFDEF_ServerNotify.proto
new file mode 100644
index 00000000..4276d72f
--- /dev/null
+++ b/proto/Unk2700_MKAFBOPFDEF_ServerNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 430
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_MKAFBOPFDEF_ServerNotify {
+ bool Unk2700_DFMMBCLLBEN = 5;
+}
diff --git a/proto/Unk2700_MKLLNAHEJJC_ServerRsp.proto b/proto/Unk2700_MKLLNAHEJJC_ServerRsp.proto
new file mode 100644
index 00000000..b36100ba
--- /dev/null
+++ b/proto/Unk2700_MKLLNAHEJJC_ServerRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_CCEOEOHLAPK.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4287
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_MKLLNAHEJJC_ServerRsp {
+ Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 9;
+}
diff --git a/proto/Unk2700_MKMDOIKBBEP.proto b/proto/Unk2700_MKMDOIKBBEP.proto
new file mode 100644
index 00000000..0cdbd789
--- /dev/null
+++ b/proto/Unk2700_MKMDOIKBBEP.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_HIHKGMLLOGD.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8026
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_MKMDOIKBBEP {
+ Unk2700_HIHKGMLLOGD Unk2700_BABEGIGEEIB = 10;
+ int32 retcode = 5;
+ bool Unk2700_DJAPHKALAHA = 1;
+}
diff --git a/proto/Unk2700_MLMEFKLMOEF.proto b/proto/Unk2700_MLMEFKLMOEF.proto
new file mode 100644
index 00000000..0adb8fb8
--- /dev/null
+++ b/proto/Unk2700_MLMEFKLMOEF.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_EAJCGENDICI.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_MLMEFKLMOEF {
+ int32 value = 5;
+ Unk2700_EAJCGENDICI type = 4;
+}
diff --git a/proto/Unk2700_MLMJFIGJJEH_ServerNotify.proto b/proto/Unk2700_MLMJFIGJJEH_ServerNotify.proto
new file mode 100644
index 00000000..b1fa3649
--- /dev/null
+++ b/proto/Unk2700_MLMJFIGJJEH_ServerNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_IMMPPANFEPP.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4878
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_MLMJFIGJJEH_ServerNotify {
+ repeated Unk2700_IMMPPANFEPP Unk2700_FEGCOKJJBGO = 12;
+}
diff --git a/proto/Unk2700_MMDCAFMGACC_ServerNotify.proto b/proto/Unk2700_MMDCAFMGACC_ServerNotify.proto
new file mode 100644
index 00000000..0d925163
--- /dev/null
+++ b/proto/Unk2700_MMDCAFMGACC_ServerNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_ADGLMHECKKJ.proto";
+import "Unk2700_KBBDJNLFAKD.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6221
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_MMDCAFMGACC_ServerNotify {
+ Unk2700_ADGLMHECKKJ Unk2700_NBAIINBBBPK = 9;
+ repeated uint32 Unk2700_EIOPOPABBNC = 14;
+ Unk2700_KBBDJNLFAKD Unk2700_LGBODABIKLL = 15;
+}
diff --git a/proto/Unk2700_MMFIJILOCOP_ClientReq.proto b/proto/Unk2700_MMFIJILOCOP_ClientReq.proto
new file mode 100644
index 00000000..d1d253de
--- /dev/null
+++ b/proto/Unk2700_MMFIJILOCOP_ClientReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_IMMPPANFEPP.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4486
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_MMFIJILOCOP_ClientReq {
+ Unk2700_IMMPPANFEPP Unk2700_JJBKBKPEIBC = 1;
+}
diff --git a/proto/Unk2700_MMJJMKMHANL.proto b/proto/Unk2700_MMJJMKMHANL.proto
new file mode 100644
index 00000000..a10c78f3
--- /dev/null
+++ b/proto/Unk2700_MMJJMKMHANL.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_MMJJMKMHANL {
+ uint32 dungeon_id = 11;
+ uint32 Unk2700_FMOFEBIAOFO = 3;
+}
diff --git a/proto/Unk2700_MNIBEMEMGMO.proto b/proto/Unk2700_MNIBEMEMGMO.proto
new file mode 100644
index 00000000..41e53c20
--- /dev/null
+++ b/proto/Unk2700_MNIBEMEMGMO.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_HJLFNKLPFBH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8514
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_MNIBEMEMGMO {
+ repeated Unk2700_HJLFNKLPFBH Unk2700_BNHNCPPADPJ = 10;
+ uint32 Unk2700_KGMFDCOMCOF = 6;
+ uint32 Unk2700_MLMJABGLDPH = 8;
+ bool Unk2700_NHMJKBGEHID = 7;
+}
diff --git a/proto/Unk2700_MOFABPNGIKP.proto b/proto/Unk2700_MOFABPNGIKP.proto
new file mode 100644
index 00000000..9fc0d80e
--- /dev/null
+++ b/proto/Unk2700_MOFABPNGIKP.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_MOFABPNGIKP {
+ Unk2700_MOFABPNGIKP_Unk2700_DGJFKKIBLCJ = 0;
+ Unk2700_MOFABPNGIKP_Unk2700_IANMLLDEIJH = 1;
+ Unk2700_MOFABPNGIKP_Unk2700_CCBNMEBCOKM = 2;
+ Unk2700_MOFABPNGIKP_Unk2700_CABFGAEJAIA = 3;
+ Unk2700_MOFABPNGIKP_Unk2700_JFPKBELPINO = 4;
+ Unk2700_MOFABPNGIKP_Unk2700_ECHKDKLKPLH = 5;
+ Unk2700_MOFABPNGIKP_Unk2700_NALBIHIEGAF = 6;
+ Unk2700_MOFABPNGIKP_Unk2700_KNAHCHDLEOM = 7;
+ Unk2700_MOFABPNGIKP_Unk2700_CAIOEECIPIM = 8;
+ Unk2700_MOFABPNGIKP_Unk2700_IEICHGLOIAL = 9;
+}
diff --git a/proto/Unk2700_MPELMDDJFHO.proto b/proto/Unk2700_MPELMDDJFHO.proto
new file mode 100644
index 00000000..3f5253b6
--- /dev/null
+++ b/proto/Unk2700_MPELMDDJFHO.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_GBHAPPCDCIL.proto";
+import "Unk2700_IOONEPPHCJP.proto";
+import "Unk2700_PDGLEKKMCBD.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_MPELMDDJFHO {
+ uint64 Unk2700_ONOOJBEABOE = 1;
+ uint32 dungeon_id = 2;
+ string Unk2700_MONNIDCNDFI = 3;
+ repeated uint32 tag_list = 4;
+ Unk2700_GBHAPPCDCIL Unk2700_JGFDODPBGFL = 5;
+ Unk2700_IOONEPPHCJP Unk2700_PCFIKJEDEGN = 6;
+ Unk2700_PDGLEKKMCBD Unk2700_IKGOMKLAJLH = 7;
+}
diff --git a/proto/Unk2700_MPPAHFFHIPI_ServerNotify.proto b/proto/Unk2700_MPPAHFFHIPI_ServerNotify.proto
new file mode 100644
index 00000000..f37c58ed
--- /dev/null
+++ b/proto/Unk2700_MPPAHFFHIPI_ServerNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4187
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_MPPAHFFHIPI_ServerNotify {
+ uint32 match_id = 9;
+}
diff --git a/proto/Unk2700_NAEHEDLGLKA.proto b/proto/Unk2700_NAEHEDLGLKA.proto
new file mode 100644
index 00000000..4cf8a5b9
--- /dev/null
+++ b/proto/Unk2700_NAEHEDLGLKA.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8257
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_NAEHEDLGLKA {}
diff --git a/proto/Unk2700_NAFAIMHFEFG.proto b/proto/Unk2700_NAFAIMHFEFG.proto
new file mode 100644
index 00000000..2a2ffeae
--- /dev/null
+++ b/proto/Unk2700_NAFAIMHFEFG.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_NAFAIMHFEFG {
+ Vector pos = 10;
+ uint32 group_id = 2;
+ uint32 config_id = 11;
+}
diff --git a/proto/Unk2700_NAPLFKNOECD.proto b/proto/Unk2700_NAPLFKNOECD.proto
new file mode 100644
index 00000000..c299fb0e
--- /dev/null
+++ b/proto/Unk2700_NAPLFKNOECD.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_NAPLFKNOECD {
+ uint32 type = 15;
+ float Unk2700_KJGKBENCNKF = 11;
+ float value = 3;
+ float Unk2700_POGMHNNJKDM = 10;
+}
diff --git a/proto/Unk2700_NBFJOJPCCEK_ServerRsp.proto b/proto/Unk2700_NBFJOJPCCEK_ServerRsp.proto
new file mode 100644
index 00000000..64d3d063
--- /dev/null
+++ b/proto/Unk2700_NBFJOJPCCEK_ServerRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6057
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_NBFJOJPCCEK_ServerRsp {
+ int32 retcode = 6;
+}
diff --git a/proto/Unk2700_NBFOJLAHFCA_ServerNotify.proto b/proto/Unk2700_NBFOJLAHFCA_ServerNotify.proto
new file mode 100644
index 00000000..113c5df0
--- /dev/null
+++ b/proto/Unk2700_NBFOJLAHFCA_ServerNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_JMPCGMBHJLG.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5928
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_NBFOJLAHFCA_ServerNotify {
+ repeated Unk2700_JMPCGMBHJLG Unk2700_KKDHNGGEFDI = 12;
+ uint32 Unk2700_BHOEBCNOEEG = 4;
+}
diff --git a/proto/Unk2700_NCJLMACGOCD_ClientNotify.proto b/proto/Unk2700_NCJLMACGOCD_ClientNotify.proto
new file mode 100644
index 00000000..5f1bdbde
--- /dev/null
+++ b/proto/Unk2700_NCJLMACGOCD_ClientNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 933
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_NCJLMACGOCD_ClientNotify {
+ uint32 Unk2700_CCPALMMFDFC = 5;
+ uint32 Unk2700_NEMOEIFHIFC = 10;
+ uint32 dungeon_id = 3;
+}
diff --git a/proto/Unk2700_NCMPMILICGJ.proto b/proto/Unk2700_NCMPMILICGJ.proto
new file mode 100644
index 00000000..4d5a0467
--- /dev/null
+++ b/proto/Unk2700_NCMPMILICGJ.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8407
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_NCMPMILICGJ {
+ uint32 Unk2700_IGMHNDNGNPG = 3;
+ uint32 Unk2700_KIAHJKGOLGO = 7;
+ uint32 avatar_id = 11;
+}
diff --git a/proto/Unk2700_NCNPNMFFONG.proto b/proto/Unk2700_NCNPNMFFONG.proto
new file mode 100644
index 00000000..3696651c
--- /dev/null
+++ b/proto/Unk2700_NCNPNMFFONG.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_NCNPNMFFONG {
+ Unk2700_NCNPNMFFONG_Unk2700_EOOLPOEEAPH = 0;
+ Unk2700_NCNPNMFFONG_Unk2700_GLPMMPCFDLN = 1;
+ Unk2700_NCNPNMFFONG_Unk2700_MFPLNPDOELM = 2;
+ Unk2700_NCNPNMFFONG_Unk2700_EPFDAAKBKML = 3;
+ Unk2700_NCNPNMFFONG_Unk2700_PMAPHIADDJF = 4;
+ Unk2700_NCNPNMFFONG_Unk2700_BLJLDKHIPGD = 5;
+ Unk2700_NCNPNMFFONG_Unk2700_EOPEJCDHJCF = 6;
+}
diff --git a/proto/Unk2700_NCPLKHGCOAH.proto b/proto/Unk2700_NCPLKHGCOAH.proto
new file mode 100644
index 00000000..185f2550
--- /dev/null
+++ b/proto/Unk2700_NCPLKHGCOAH.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8767
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_NCPLKHGCOAH {
+ uint32 entity_id = 11;
+}
diff --git a/proto/Unk2700_NDDBFNNHLFE.proto b/proto/Unk2700_NDDBFNNHLFE.proto
new file mode 100644
index 00000000..1d7937fa
--- /dev/null
+++ b/proto/Unk2700_NDDBFNNHLFE.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_DJKEGIEIKHG.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8340
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_NDDBFNNHLFE {
+ Unk2700_DJKEGIEIKHG settle_info = 13;
+ uint32 gallery_id = 5;
+}
diff --git a/proto/Unk2700_NEHPMNPAAKC.proto b/proto/Unk2700_NEHPMNPAAKC.proto
new file mode 100644
index 00000000..e3a17694
--- /dev/null
+++ b/proto/Unk2700_NEHPMNPAAKC.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8806
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_NEHPMNPAAKC {
+ uint32 schedule_id = 6;
+}
diff --git a/proto/Unk2700_NELNFCMDMHE_ServerRsp.proto b/proto/Unk2700_NELNFCMDMHE_ServerRsp.proto
new file mode 100644
index 00000000..9ea7e4c0
--- /dev/null
+++ b/proto/Unk2700_NELNFCMDMHE_ServerRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6314
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_NELNFCMDMHE_ServerRsp {
+ int32 retcode = 7;
+}
diff --git a/proto/Unk2700_NFGNGFLNOOJ_ServerNotify.proto b/proto/Unk2700_NFGNGFLNOOJ_ServerNotify.proto
new file mode 100644
index 00000000..4f12b90d
--- /dev/null
+++ b/proto/Unk2700_NFGNGFLNOOJ_ServerNotify.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_CHLNIDHHGLE.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4811
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_NFGNGFLNOOJ_ServerNotify {
+ uint32 gallery_id = 1;
+ Unk2700_CHLNIDHHGLE settle_info = 5;
+ uint32 Unk2700_HAOPLFPOLFM = 6;
+ bool is_new_record = 4;
+}
diff --git a/proto/Unk2700_NGEKONFLEBB.proto b/proto/Unk2700_NGEKONFLEBB.proto
new file mode 100644
index 00000000..88497546
--- /dev/null
+++ b/proto/Unk2700_NGEKONFLEBB.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8703
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_NGEKONFLEBB {
+ uint32 difficulty = 5;
+ uint32 gadget_entity_id = 15;
+}
diff --git a/proto/Unk2700_NGPMINKIOPK.proto b/proto/Unk2700_NGPMINKIOPK.proto
new file mode 100644
index 00000000..f68227c1
--- /dev/null
+++ b/proto/Unk2700_NGPMINKIOPK.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_PPIBANCGGNI.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8956
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_NGPMINKIOPK {
+ Unk2700_PPIBANCGGNI settle_info = 6;
+ uint32 gallery_id = 2;
+}
diff --git a/proto/Unk2700_NIMPHALPEPO_ClientNotify.proto b/proto/Unk2700_NIMPHALPEPO_ClientNotify.proto
new file mode 100644
index 00000000..58b2ba87
--- /dev/null
+++ b/proto/Unk2700_NIMPHALPEPO_ClientNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6236
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_NIMPHALPEPO_ClientNotify {
+ uint32 Unk2700_MKIMFKIGBCL = 13;
+ uint64 Unk2700_ONOOJBEABOE = 12;
+}
diff --git a/proto/Unk2700_NINHGODEMHH_ServerNotify.proto b/proto/Unk2700_NINHGODEMHH_ServerNotify.proto
new file mode 100644
index 00000000..681a9d60
--- /dev/null
+++ b/proto/Unk2700_NINHGODEMHH_ServerNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2155
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_NINHGODEMHH_ServerNotify {
+ uint32 schedule_id = 1;
+ uint32 activity_id = 3;
+}
diff --git a/proto/Unk2700_NJNMEFINDCF.proto b/proto/Unk2700_NJNMEFINDCF.proto
new file mode 100644
index 00000000..9cbd6468
--- /dev/null
+++ b/proto/Unk2700_NJNMEFINDCF.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8093
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_NJNMEFINDCF {
+ int32 retcode = 6;
+ uint32 level_id = 1;
+}
diff --git a/proto/Unk2700_NKIDCOKNPFF.proto b/proto/Unk2700_NKIDCOKNPFF.proto
new file mode 100644
index 00000000..a71e51a7
--- /dev/null
+++ b/proto/Unk2700_NKIDCOKNPFF.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_NKIDCOKNPFF {
+ uint32 uid = 4;
+ uint32 building_points = 9;
+ uint32 Unk2700_CDOKENJJJMH = 3;
+}
diff --git a/proto/Unk2700_NKIEIGPLMIO.proto b/proto/Unk2700_NKIEIGPLMIO.proto
new file mode 100644
index 00000000..2af3f039
--- /dev/null
+++ b/proto/Unk2700_NKIEIGPLMIO.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8459
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_NKIEIGPLMIO {
+ uint32 challenge_type = 1;
+ int32 retcode = 4;
+ uint32 stage_id = 7;
+}
diff --git a/proto/Unk2700_NLBJHDNKPCC.proto b/proto/Unk2700_NLBJHDNKPCC.proto
new file mode 100644
index 00000000..3b2b6170
--- /dev/null
+++ b/proto/Unk2700_NLBJHDNKPCC.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_GPPKNKGDCHJ.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8626
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_NLBJHDNKPCC {
+ int32 retcode = 6;
+ repeated Unk2700_GPPKNKGDCHJ Unk2700_AAOHOIJEOEG = 14;
+}
diff --git a/proto/Unk2700_NLFDMMFNMIO.proto b/proto/Unk2700_NLFDMMFNMIO.proto
new file mode 100644
index 00000000..1d7b3a8e
--- /dev/null
+++ b/proto/Unk2700_NLFDMMFNMIO.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_KLPINMKOEPE.proto";
+import "Unk2700_PHGGAEDHLBN.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_NLFDMMFNMIO {
+ Unk2700_PHGGAEDHLBN Unk2700_JGFDODPBGFL = 1;
+ repeated Unk2700_KLPINMKOEPE Unk2700_AAGBIFHNNPP = 15;
+ uint32 dungeon_id = 3;
+ uint64 Unk2700_ONOOJBEABOE = 10;
+}
diff --git a/proto/Unk2700_NLJBCGILMIE.proto b/proto/Unk2700_NLJBCGILMIE.proto
new file mode 100644
index 00000000..0018c6e1
--- /dev/null
+++ b/proto/Unk2700_NLJBCGILMIE.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8281
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_NLJBCGILMIE {
+ int32 retcode = 4;
+ repeated uint32 item_id_list = 7;
+}
diff --git a/proto/Unk2700_NMEENGOJOKD.proto b/proto/Unk2700_NMEENGOJOKD.proto
new file mode 100644
index 00000000..c7655ddb
--- /dev/null
+++ b/proto/Unk2700_NMEENGOJOKD.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8930
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_NMEENGOJOKD {
+ map Unk2700_DACHHINLDDJ = 12;
+}
diff --git a/proto/Unk2700_NMJCGMOOIFP.proto b/proto/Unk2700_NMJCGMOOIFP.proto
new file mode 100644
index 00000000..2304faed
--- /dev/null
+++ b/proto/Unk2700_NMJCGMOOIFP.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8061
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_NMJCGMOOIFP {
+ uint32 level_id = 15;
+ uint32 gallery_id = 4;
+}
diff --git a/proto/Unk2700_NMJIMIKKIME.proto b/proto/Unk2700_NMJIMIKKIME.proto
new file mode 100644
index 00000000..9f43dc0e
--- /dev/null
+++ b/proto/Unk2700_NMJIMIKKIME.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_HJLFNKLPFBH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8943
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_NMJIMIKKIME {
+ repeated uint32 Unk2700_OKGKHPCMNMN = 9;
+ repeated Unk2700_HJLFNKLPFBH Unk2700_ELOOIKFNJCG = 11;
+}
diff --git a/proto/Unk2700_NNDKOICOGGH_ServerNotify.proto b/proto/Unk2700_NNDKOICOGGH_ServerNotify.proto
new file mode 100644
index 00000000..a7e06ffa
--- /dev/null
+++ b/proto/Unk2700_NNDKOICOGGH_ServerNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5539
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_NNDKOICOGGH_ServerNotify {
+ uint32 gallery_id = 13;
+ bool Unk2700_INDLFDCOFDG = 11;
+ uint32 buff_id = 14;
+}
diff --git a/proto/Unk2700_NNMDBDNIMHN_ServerRsp.proto b/proto/Unk2700_NNMDBDNIMHN_ServerRsp.proto
new file mode 100644
index 00000000..ec147ab6
--- /dev/null
+++ b/proto/Unk2700_NNMDBDNIMHN_ServerRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_KPNPJPPHOKA.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4538
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_NNMDBDNIMHN_ServerRsp {
+ Unk2700_KPNPJPPHOKA Unk2700_IFNLJDCJJED = 7;
+ int32 retcode = 11;
+ uint32 Unk2700_MAPJLIDACPN = 1;
+}
diff --git a/proto/Unk2700_NOCLNCCJEGK.proto b/proto/Unk2700_NOCLNCCJEGK.proto
new file mode 100644
index 00000000..e73f7eac
--- /dev/null
+++ b/proto/Unk2700_NOCLNCCJEGK.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_NOCLNCCJEGK {
+ Unk2700_NOCLNCCJEGK_NONE = 0;
+ Unk2700_NOCLNCCJEGK_Unk2700_ODIJEIGEGED = 1;
+}
diff --git a/proto/Unk2700_NOGODJOJDGF.proto b/proto/Unk2700_NOGODJOJDGF.proto
new file mode 100644
index 00000000..5aaad030
--- /dev/null
+++ b/proto/Unk2700_NOGODJOJDGF.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_OCDMIOKNHHH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_NOGODJOJDGF {
+ uint32 score = 12;
+ Unk2700_OCDMIOKNHHH player_info = 10;
+}
diff --git a/proto/Unk2700_NPOBPFNDJKK.proto b/proto/Unk2700_NPOBPFNDJKK.proto
new file mode 100644
index 00000000..cdd241ce
--- /dev/null
+++ b/proto/Unk2700_NPOBPFNDJKK.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_NPOBPFNDJKK {
+ Unk2700_NPOBPFNDJKK_Unk2700_PGICIHIAMBF = 0;
+ Unk2700_NPOBPFNDJKK_Unk2700_OALJEIJHGKL = 1;
+ Unk2700_NPOBPFNDJKK_Unk2700_JDIGCAMIBIA = 2;
+ Unk2700_NPOBPFNDJKK_Unk2700_KBGKJADDAAF = 3;
+ Unk2700_NPOBPFNDJKK_Unk2700_MNPNGKHMFNA = 4;
+ Unk2700_NPOBPFNDJKK_Unk2700_NBCDOEINJLJ = 5;
+ Unk2700_NPOBPFNDJKK_Unk2700_PHLJKMGKCBM = 6;
+}
diff --git a/proto/Unk2700_OBCKNDBAPGE.proto b/proto/Unk2700_OBCKNDBAPGE.proto
new file mode 100644
index 00000000..d2b3cd1b
--- /dev/null
+++ b/proto/Unk2700_OBCKNDBAPGE.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8072
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_OBCKNDBAPGE {
+ uint32 gadget_id = 9;
+ uint32 group_id = 2;
+}
diff --git a/proto/Unk2700_OBDHJJHLIKJ.proto b/proto/Unk2700_OBDHJJHLIKJ.proto
new file mode 100644
index 00000000..74da2240
--- /dev/null
+++ b/proto/Unk2700_OBDHJJHLIKJ.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8523
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_OBDHJJHLIKJ {
+ uint32 Unk2700_MAOAHHBCKIA = 2;
+ uint32 activity_id = 3;
+}
diff --git a/proto/Unk2700_OCAJADDLPBB.proto b/proto/Unk2700_OCAJADDLPBB.proto
new file mode 100644
index 00000000..1a39d9b0
--- /dev/null
+++ b/proto/Unk2700_OCAJADDLPBB.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8718
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_OCAJADDLPBB {
+ uint32 Unk2700_LFALEEDODEC = 7;
+}
diff --git a/proto/Unk2700_OCDMIOKNHHH.proto b/proto/Unk2700_OCDMIOKNHHH.proto
new file mode 100644
index 00000000..b7039449
--- /dev/null
+++ b/proto/Unk2700_OCDMIOKNHHH.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ProfilePicture.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_OCDMIOKNHHH {
+ string online_id = 14;
+ string psn_id = 6;
+ string nickname = 15;
+ uint32 player_level = 4;
+ uint32 uid = 2;
+ ProfilePicture profile_picture = 5;
+}
diff --git a/proto/Unk2700_OCOKILBJIPJ.proto b/proto/Unk2700_OCOKILBJIPJ.proto
new file mode 100644
index 00000000..2190139b
--- /dev/null
+++ b/proto/Unk2700_OCOKILBJIPJ.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_OCOKILBJIPJ {
+ Unk2700_OCOKILBJIPJ_Unk2700_MPGOEMPNCEH = 0;
+ Unk2700_OCOKILBJIPJ_Unk2700_PDKBOLMIHMA = 1;
+ Unk2700_OCOKILBJIPJ_Unk2700_MCEBEJONJGH = 2;
+ Unk2700_OCOKILBJIPJ_Unk2700_MCNDLHHBBGJ = 3;
+}
diff --git a/proto/Unk2700_ODBNBICOCFK.proto b/proto/Unk2700_ODBNBICOCFK.proto
new file mode 100644
index 00000000..364df4f5
--- /dev/null
+++ b/proto/Unk2700_ODBNBICOCFK.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8054
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_ODBNBICOCFK {
+ uint32 Unk2700_AOJDMJPGBOL = 2;
+}
diff --git a/proto/Unk2700_ODJKHILOILK.proto b/proto/Unk2700_ODJKHILOILK.proto
new file mode 100644
index 00000000..f239cd10
--- /dev/null
+++ b/proto/Unk2700_ODJKHILOILK.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PotionStage.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8067
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_ODJKHILOILK {
+ int32 retcode = 11;
+ PotionStage Unk2700_BBEEMJECIAA = 14;
+}
diff --git a/proto/Unk2700_OEDLCGKNGLH.proto b/proto/Unk2700_OEDLCGKNGLH.proto
new file mode 100644
index 00000000..f16f44ef
--- /dev/null
+++ b/proto/Unk2700_OEDLCGKNGLH.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8686
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_OEDLCGKNGLH {
+ uint32 level_id = 2;
+ int32 retcode = 14;
+}
diff --git a/proto/Unk2700_OFDBHGHAJBD_ServerNotify.proto b/proto/Unk2700_OFDBHGHAJBD_ServerNotify.proto
new file mode 100644
index 00000000..2e7d20fb
--- /dev/null
+++ b/proto/Unk2700_OFDBHGHAJBD_ServerNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_MIBBHAEMAGI.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6223
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_OFDBHGHAJBD_ServerNotify {
+ Unk2700_MIBBHAEMAGI Unk2700_JIFAAPCJOHK = 12;
+}
diff --git a/proto/Unk2700_OGHMHELMBNN_ServerRsp.proto b/proto/Unk2700_OGHMHELMBNN_ServerRsp.proto
new file mode 100644
index 00000000..b05dbee6
--- /dev/null
+++ b/proto/Unk2700_OGHMHELMBNN_ServerRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4488
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_OGHMHELMBNN_ServerRsp {
+ int32 retcode = 7;
+}
diff --git a/proto/Unk2700_OGKIDNPMMKG.proto b/proto/Unk2700_OGKIDNPMMKG.proto
new file mode 100644
index 00000000..6ef42c44
--- /dev/null
+++ b/proto/Unk2700_OGKIDNPMMKG.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_HGMCNJOPDAA.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_OGKIDNPMMKG {
+ Unk2700_HGMCNJOPDAA Unk2700_MINEHKAGOGA = 11;
+ uint32 expire_time = 6;
+ uint64 Unk2700_ONOOJBEABOE = 5;
+}
diff --git a/proto/Unk2700_OHBMICGFIIK.proto b/proto/Unk2700_OHBMICGFIIK.proto
new file mode 100644
index 00000000..b34e8eb5
--- /dev/null
+++ b/proto/Unk2700_OHBMICGFIIK.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_OHBMICGFIIK {
+ uint32 Unk2700_DABMGCIOKCK = 4;
+ uint32 Unk2700_BKJABFANBIM = 12;
+ uint32 Unk2700_PGBNOPOIHIK = 7;
+ uint32 Unk2700_DJNLHEBADGE = 2;
+}
diff --git a/proto/Unk2700_OHDDPIFAPPD.proto b/proto/Unk2700_OHDDPIFAPPD.proto
new file mode 100644
index 00000000..9c719505
--- /dev/null
+++ b/proto/Unk2700_OHDDPIFAPPD.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8125
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_OHDDPIFAPPD {
+ bool is_new = 10;
+ uint32 Unk2700_GJOFNJGEDDE = 3;
+ int32 retcode = 4;
+ uint32 Unk2700_BPNCECAFPDK = 6;
+ uint32 quest_id = 15;
+ repeated uint32 affix_list = 2;
+}
diff --git a/proto/Unk2700_OHIKIOLLMHM.proto b/proto/Unk2700_OHIKIOLLMHM.proto
new file mode 100644
index 00000000..34b71bcf
--- /dev/null
+++ b/proto/Unk2700_OHIKIOLLMHM.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8233
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_OHIKIOLLMHM {
+ uint32 uid = 5;
+ uint32 schedule_id = 1;
+ map Unk2700_IFCNGIPPOAE = 4;
+}
diff --git a/proto/Unk2700_OHOKEEGPPBG.proto b/proto/Unk2700_OHOKEEGPPBG.proto
new file mode 100644
index 00000000..41194533
--- /dev/null
+++ b/proto/Unk2700_OHOKEEGPPBG.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_OHOKEEGPPBG {
+ repeated ItemParam reward_item_list = 4;
+ uint32 uid = 3;
+}
diff --git a/proto/Unk2700_OJHJBKHIPLA_ClientReq.proto b/proto/Unk2700_OJHJBKHIPLA_ClientReq.proto
new file mode 100644
index 00000000..6518c234
--- /dev/null
+++ b/proto/Unk2700_OJHJBKHIPLA_ClientReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2009
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_OJHJBKHIPLA_ClientReq {
+ uint32 schedule_id = 15;
+ uint32 activity_id = 12;
+}
diff --git a/proto/Unk2700_OJJNGIHDJEH.proto b/proto/Unk2700_OJJNGIHDJEH.proto
new file mode 100644
index 00000000..b3351118
--- /dev/null
+++ b/proto/Unk2700_OJJNGIHDJEH.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_OCDMIOKNHHH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_OJJNGIHDJEH {
+ uint32 Unk2700_OMCCFBBDJMI = 1;
+ uint32 timestamp = 8;
+ Unk2700_OCDMIOKNHHH player_info = 12;
+}
diff --git a/proto/Unk2700_OJLJMJLKNGJ_ClientReq.proto b/proto/Unk2700_OJLJMJLKNGJ_ClientReq.proto
new file mode 100644
index 00000000..e3bca9e8
--- /dev/null
+++ b/proto/Unk2700_OJLJMJLKNGJ_ClientReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6203
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_OJLJMJLKNGJ_ClientReq {
+ uint32 room_id = 2;
+}
diff --git a/proto/Unk2700_OKEKCGDGPDA.proto b/proto/Unk2700_OKEKCGDGPDA.proto
new file mode 100644
index 00000000..11c94a25
--- /dev/null
+++ b/proto/Unk2700_OKEKCGDGPDA.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8396
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_OKEKCGDGPDA {
+ uint32 gallery_id = 4;
+}
diff --git a/proto/Unk2700_OKNDIGOKMMC.proto b/proto/Unk2700_OKNDIGOKMMC.proto
new file mode 100644
index 00000000..26f57fd8
--- /dev/null
+++ b/proto/Unk2700_OKNDIGOKMMC.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8426
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_OKNDIGOKMMC {
+ int32 retcode = 15;
+}
diff --git a/proto/Unk2700_OLKJCGDHENH.proto b/proto/Unk2700_OLKJCGDHENH.proto
new file mode 100644
index 00000000..5ed2a206
--- /dev/null
+++ b/proto/Unk2700_OLKJCGDHENH.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8343
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_OLKJCGDHENH {
+ int32 retcode = 8;
+}
diff --git a/proto/Unk2700_ONCHFHBBCBN.proto b/proto/Unk2700_ONCHFHBBCBN.proto
new file mode 100644
index 00000000..54cdd185
--- /dev/null
+++ b/proto/Unk2700_ONCHFHBBCBN.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_OCDMIOKNHHH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_ONCHFHBBCBN {
+ uint32 hit_count = 12;
+ uint32 score = 11;
+ Unk2700_OCDMIOKNHHH player_info = 5;
+ uint32 timestamp = 2;
+}
diff --git a/proto/Unk2700_ONKMCKLJNAL.proto b/proto/Unk2700_ONKMCKLJNAL.proto
new file mode 100644
index 00000000..e9ef4e6d
--- /dev/null
+++ b/proto/Unk2700_ONKMCKLJNAL.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8401
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_ONKMCKLJNAL {
+ uint32 id = 2;
+}
diff --git a/proto/Unk2700_OPEBMJPOOBL.proto b/proto/Unk2700_OPEBMJPOOBL.proto
new file mode 100644
index 00000000..0f19a245
--- /dev/null
+++ b/proto/Unk2700_OPEBMJPOOBL.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_OPEBMJPOOBL {
+ Unk2700_OPEBMJPOOBL_NONE = 0;
+ Unk2700_OPEBMJPOOBL_Unk2700_HONBFAOIDKK = 1;
+}
diff --git a/proto/Unk2700_PBGBOLJMIIB.proto b/proto/Unk2700_PBGBOLJMIIB.proto
new file mode 100644
index 00000000..f22c52a8
--- /dev/null
+++ b/proto/Unk2700_PBGBOLJMIIB.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8924
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_PBGBOLJMIIB {
+ uint32 activity_id = 14;
+}
diff --git a/proto/Unk2700_PCBGAIAJPHH.proto b/proto/Unk2700_PCBGAIAJPHH.proto
new file mode 100644
index 00000000..fdab8b4a
--- /dev/null
+++ b/proto/Unk2700_PCBGAIAJPHH.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8758
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_PCBGAIAJPHH {
+ uint32 level_id = 7;
+}
diff --git a/proto/Unk2700_PDGJFHAGMKD.proto b/proto/Unk2700_PDGJFHAGMKD.proto
new file mode 100644
index 00000000..6e916b9e
--- /dev/null
+++ b/proto/Unk2700_PDGJFHAGMKD.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8447
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_PDGJFHAGMKD {
+ int32 retcode = 3;
+}
diff --git a/proto/Unk2700_PDGLEKKMCBD.proto b/proto/Unk2700_PDGLEKKMCBD.proto
new file mode 100644
index 00000000..3d8d01d8
--- /dev/null
+++ b/proto/Unk2700_PDGLEKKMCBD.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_PDGLEKKMCBD {
+ uint32 Unk2700_PGBNOPOIHIK = 1;
+ uint32 Unk2700_BKJABFANBIM = 2;
+ uint32 Unk2700_DJNLHEBADGE = 3;
+ uint32 Unk2700_DABMGCIOKCK = 4;
+}
diff --git a/proto/Unk2700_PEDJGJMHMHH.proto b/proto/Unk2700_PEDJGJMHMHH.proto
new file mode 100644
index 00000000..83f0eca8
--- /dev/null
+++ b/proto/Unk2700_PEDJGJMHMHH.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_EOHBLDIKPME.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_PEDJGJMHMHH {
+ uint32 open_time = 8;
+ uint32 level_id = 15;
+ Unk2700_EOHBLDIKPME Unk2700_EAKNBKIIJHB = 7;
+ Unk2700_EOHBLDIKPME Unk2700_HIHOANFAKEA = 11;
+}
diff --git a/proto/Unk2700_PFFKAEPBEHE_ServerRsp.proto b/proto/Unk2700_PFFKAEPBEHE_ServerRsp.proto
new file mode 100644
index 00000000..0f229884
--- /dev/null
+++ b/proto/Unk2700_PFFKAEPBEHE_ServerRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6214
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_PFFKAEPBEHE_ServerRsp {
+ int32 retcode = 2;
+}
diff --git a/proto/Unk2700_PFOLNOBIKFB.proto b/proto/Unk2700_PFOLNOBIKFB.proto
new file mode 100644
index 00000000..aae857cb
--- /dev/null
+++ b/proto/Unk2700_PFOLNOBIKFB.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8833
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_PFOLNOBIKFB {
+ bool Unk2700_PIDPNNOGBJB = 4;
+ bool Unk2700_DCGOILIDPNK = 3;
+ int32 retcode = 1;
+}
diff --git a/proto/Unk2700_PGFLJBBEBKG.proto b/proto/Unk2700_PGFLJBBEBKG.proto
new file mode 100644
index 00000000..26d19b40
--- /dev/null
+++ b/proto/Unk2700_PGFLJBBEBKG.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_PGFLJBBEBKG {
+ uint64 Unk2700_ONOOJBEABOE = 1;
+ uint32 Unk2700_MKIMFKIGBCL = 2;
+}
diff --git a/proto/Unk2700_PHFADCJDBOF.proto b/proto/Unk2700_PHFADCJDBOF.proto
new file mode 100644
index 00000000..ca2332c6
--- /dev/null
+++ b/proto/Unk2700_PHFADCJDBOF.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8559
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_PHFADCJDBOF {
+ uint32 schedule_id = 8;
+}
diff --git a/proto/Unk2700_PHGGAEDHLBN.proto b/proto/Unk2700_PHGGAEDHLBN.proto
new file mode 100644
index 00000000..0d953678
--- /dev/null
+++ b/proto/Unk2700_PHGGAEDHLBN.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_PHGGAEDHLBN {
+ repeated uint32 Unk2700_ANHJAFDEACF = 1;
+ bool Unk2700_IBDCFAMBGOK = 14;
+ uint32 Unk2700_KENGEGJGAEL = 6;
+ uint32 Unk2700_DOIMMBJDALB = 4;
+ bool Unk2700_FKLBCNLBBNM = 3;
+ uint32 Unk2700_IFNFCNNBPIB = 10;
+ uint32 Unk2700_PBBPGFMNMNJ = 9;
+}
diff --git a/proto/Unk2700_PHLEDBIFIFL.proto b/proto/Unk2700_PHLEDBIFIFL.proto
new file mode 100644
index 00000000..e104549b
--- /dev/null
+++ b/proto/Unk2700_PHLEDBIFIFL.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8165
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_PHLEDBIFIFL {
+ uint32 level_id = 12;
+ uint32 difficulty = 4;
+}
diff --git a/proto/Unk2700_PIAFGFGHGHM.proto b/proto/Unk2700_PIAFGFGHGHM.proto
new file mode 100644
index 00000000..771d1f86
--- /dev/null
+++ b/proto/Unk2700_PIAFGFGHGHM.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2700_PIAFGFGHGHM {
+ Unk2700_PIAFGFGHGHM_Unk2700_LKEBMNKGKCP = 0;
+ Unk2700_PIAFGFGHGHM_Unk2700_PJHOMLBMENK = 1;
+ Unk2700_PIAFGFGHGHM_Unk2700_MPGMPAOGMCB = 2;
+}
diff --git a/proto/Unk2700_PIEJLIIGLGM_ServerRsp.proto b/proto/Unk2700_PIEJLIIGLGM_ServerRsp.proto
new file mode 100644
index 00000000..53062c51
--- /dev/null
+++ b/proto/Unk2700_PIEJLIIGLGM_ServerRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6237
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_PIEJLIIGLGM_ServerRsp {
+ int32 retcode = 3;
+}
diff --git a/proto/Unk2700_PIEJMALFKIF.proto b/proto/Unk2700_PIEJMALFKIF.proto
new file mode 100644
index 00000000..723bbf53
--- /dev/null
+++ b/proto/Unk2700_PIEJMALFKIF.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_KHDMDKKDOCD.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8531
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_PIEJMALFKIF {
+ uint32 stage_id = 13;
+ uint32 Unk2700_FHEHGDABALE = 7;
+ repeated Unk2700_KHDMDKKDOCD dungeon_avatar_list = 6;
+ uint32 level_id = 8;
+ uint32 Unk2700_HKFEBBCMBHL = 5;
+}
diff --git a/proto/Unk2700_PILILDPMNNA.proto b/proto/Unk2700_PILILDPMNNA.proto
new file mode 100644
index 00000000..c8efefc2
--- /dev/null
+++ b/proto/Unk2700_PILILDPMNNA.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_PILILDPMNNA {
+ uint32 difficulty = 7;
+ repeated uint32 Unk2700_EGBDDLOBCDL = 4;
+ bool Unk2700_MMFHBHNKLDG = 9;
+ uint32 stage_id = 12;
+ uint32 Unk2700_PPEBOKBCPLE = 3;
+}
diff --git a/proto/Unk2700_PJCMAELKFEP.proto b/proto/Unk2700_PJCMAELKFEP.proto
new file mode 100644
index 00000000..cb97c068
--- /dev/null
+++ b/proto/Unk2700_PJCMAELKFEP.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8367
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_PJCMAELKFEP {
+ uint32 gallery_id = 13;
+}
diff --git a/proto/Unk2700_PJPMOLPHNEH.proto b/proto/Unk2700_PJPMOLPHNEH.proto
new file mode 100644
index 00000000..2579187d
--- /dev/null
+++ b/proto/Unk2700_PJPMOLPHNEH.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8895
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_PJPMOLPHNEH {
+ uint32 Unk2700_HLHIAHAELDA = 1;
+ bool Unk2700_MMNILGLDHHD = 3;
+ uint32 Unk2700_PPEBOKBCPLE = 2;
+}
diff --git a/proto/Unk2700_PKAPCOBGIJL.proto b/proto/Unk2700_PKAPCOBGIJL.proto
new file mode 100644
index 00000000..9d6e55c9
--- /dev/null
+++ b/proto/Unk2700_PKAPCOBGIJL.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_PKAPCOBGIJL {
+ uint32 Unk2700_OOJCLILDIHM = 1;
+ uint32 Unk2700_KDNLGNDLDNM = 10;
+}
diff --git a/proto/Unk2700_PKCLMDHHPFI.proto b/proto/Unk2700_PKCLMDHHPFI.proto
new file mode 100644
index 00000000..14c6db24
--- /dev/null
+++ b/proto/Unk2700_PKCLMDHHPFI.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_KIGGOKAEFHM.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8423
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_PKCLMDHHPFI {
+ repeated Unk2700_KIGGOKAEFHM Unk2700_HHODMCCNGKE = 8;
+ int32 retcode = 6;
+}
diff --git a/proto/Unk2700_PKKJEOFNLCF.proto b/proto/Unk2700_PKKJEOFNLCF.proto
new file mode 100644
index 00000000..97249606
--- /dev/null
+++ b/proto/Unk2700_PKKJEOFNLCF.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8983
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_PKKJEOFNLCF {
+ int32 retcode = 3;
+ uint32 Unk2700_CKGJEOOKFIF = 8;
+}
diff --git a/proto/Unk2700_PMKNJBJPLBH.proto b/proto/Unk2700_PMKNJBJPLBH.proto
new file mode 100644
index 00000000..cf994378
--- /dev/null
+++ b/proto/Unk2700_PMKNJBJPLBH.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_HJLFNKLPFBH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8385
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_PMKNJBJPLBH {
+ int32 retcode = 11;
+ repeated Unk2700_HJLFNKLPFBH Unk2700_BBGHICEDLBB = 13;
+ repeated uint32 Unk2700_GGNBBHMGLAN = 12;
+ repeated Unk2700_HJLFNKLPFBH avatar_list = 9;
+}
diff --git a/proto/Unk2700_PPBALCAKIBD.proto b/proto/Unk2700_PPBALCAKIBD.proto
new file mode 100644
index 00000000..5f15d1d5
--- /dev/null
+++ b/proto/Unk2700_PPBALCAKIBD.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8273
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2700_PPBALCAKIBD {}
diff --git a/proto/Unk2700_PPIBANCGGNI.proto b/proto/Unk2700_PPIBANCGGNI.proto
new file mode 100644
index 00000000..c86291f4
--- /dev/null
+++ b/proto/Unk2700_PPIBANCGGNI.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_MOFABPNGIKP.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2700_PPIBANCGGNI {
+ Unk2700_MOFABPNGIKP reason = 7;
+}
diff --git a/proto/Unk2700_PPOGMFAKBMK_ServerRsp.proto b/proto/Unk2700_PPOGMFAKBMK_ServerRsp.proto
new file mode 100644
index 00000000..8992541a
--- /dev/null
+++ b/proto/Unk2700_PPOGMFAKBMK_ServerRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6219
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2700_PPOGMFAKBMK_ServerRsp {
+ int32 retcode = 3;
+}
diff --git a/proto/Unk2800_ACHELBEEBIP.proto b/proto/Unk2800_ACHELBEEBIP.proto
new file mode 100644
index 00000000..5da674d7
--- /dev/null
+++ b/proto/Unk2800_ACHELBEEBIP.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21800
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_ACHELBEEBIP {
+ int32 retcode = 2;
+ bool is_success = 15;
+ uint32 level_id = 3;
+}
diff --git a/proto/Unk2800_ANGFAFEJBAE.proto b/proto/Unk2800_ANGFAFEJBAE.proto
new file mode 100644
index 00000000..e3bf3fb3
--- /dev/null
+++ b/proto/Unk2800_ANGFAFEJBAE.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 846
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_ANGFAFEJBAE {
+ int32 retcode = 15;
+}
diff --git a/proto/Unk2800_BDAPFODFMNE.proto b/proto/Unk2800_BDAPFODFMNE.proto
new file mode 100644
index 00000000..0c38e10e
--- /dev/null
+++ b/proto/Unk2800_BDAPFODFMNE.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 24550
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2800_BDAPFODFMNE {}
diff --git a/proto/Unk2800_BEMANDBNPJB.proto b/proto/Unk2800_BEMANDBNPJB.proto
new file mode 100644
index 00000000..a7e02720
--- /dev/null
+++ b/proto/Unk2800_BEMANDBNPJB.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ExhibitionDisplayInfo.proto";
+import "OnlinePlayerInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2800_BEMANDBNPJB {
+ OnlinePlayerInfo player_info = 13;
+ repeated ExhibitionDisplayInfo card_list = 11;
+}
diff --git a/proto/Unk2800_BOFEHJBJELJ.proto b/proto/Unk2800_BOFEHJBJELJ.proto
new file mode 100644
index 00000000..6dd52d66
--- /dev/null
+++ b/proto/Unk2800_BOFEHJBJELJ.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8574
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_BOFEHJBJELJ {
+ int32 retcode = 9;
+}
diff --git a/proto/Unk2800_BPOJIIDEADD.proto b/proto/Unk2800_BPOJIIDEADD.proto
new file mode 100644
index 00000000..11655839
--- /dev/null
+++ b/proto/Unk2800_BPOJIIDEADD.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2800_BPOJIIDEADD {
+ uint32 Unk2800_MMPELBBNFOD = 8;
+ uint32 open_time = 11;
+ uint32 Unk2800_MGPEODNKEEC = 5;
+ uint32 level_id = 12;
+ bool is_finished = 9;
+ bool is_open = 3;
+}
diff --git a/proto/Unk2800_CEAECGGBOKL.proto b/proto/Unk2800_CEAECGGBOKL.proto
new file mode 100644
index 00000000..3fcaad9b
--- /dev/null
+++ b/proto/Unk2800_CEAECGGBOKL.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2800_CEAECGGBOKL {
+ uint32 Unk2800_KDLIIGEGDDH = 15;
+ uint32 Unk2800_ENMCNIPGGIA = 12;
+ uint32 Unk2800_DEIGAGPAJGK = 14;
+ uint32 dungeon_id = 4;
+ uint32 Unk2800_JKOGDAMMBIN = 13;
+}
diff --git a/proto/Unk2800_CGODFDDALAG.proto b/proto/Unk2800_CGODFDDALAG.proto
new file mode 100644
index 00000000..48e27d97
--- /dev/null
+++ b/proto/Unk2800_CGODFDDALAG.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2800_CGODFDDALAG {
+ uint32 stage_id = 10;
+ bool is_open = 3;
+ uint32 open_time = 12;
+ bool Unk2800_GCPNBJIJEDA = 15;
+}
diff --git a/proto/Unk2800_CGPNLBNMPCM.proto b/proto/Unk2800_CGPNLBNMPCM.proto
new file mode 100644
index 00000000..7faf0165
--- /dev/null
+++ b/proto/Unk2800_CGPNLBNMPCM.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2800_CGPNLBNMPCM {
+ uint32 open_time = 7;
+ bool is_open = 14;
+ uint32 stage_id = 10;
+ uint32 best_score = 13;
+}
diff --git a/proto/Unk2800_CHEDEMEDPPM.proto b/proto/Unk2800_CHEDEMEDPPM.proto
new file mode 100644
index 00000000..26ad5e6c
--- /dev/null
+++ b/proto/Unk2800_CHEDEMEDPPM.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5565
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_CHEDEMEDPPM {
+ uint32 point_id = 7;
+ uint32 coin = 15;
+ uint32 Unk2800_EOFOECJJMLJ = 3;
+ uint32 Unk2800_BAEEDEAADIA = 13;
+}
diff --git a/proto/Unk2800_COCHLKHLCPO.proto b/proto/Unk2800_COCHLKHLCPO.proto
new file mode 100644
index 00000000..5d157f8a
--- /dev/null
+++ b/proto/Unk2800_COCHLKHLCPO.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23467
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2800_COCHLKHLCPO {
+ uint32 level_id = 5;
+}
diff --git a/proto/Unk2800_DKDJCLLNGNL.proto b/proto/Unk2800_DKDJCLLNGNL.proto
new file mode 100644
index 00000000..66d3449a
--- /dev/null
+++ b/proto/Unk2800_DKDJCLLNGNL.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8346
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2800_DKDJCLLNGNL {}
diff --git a/proto/Unk2800_DNKCFLKHKJG.proto b/proto/Unk2800_DNKCFLKHKJG.proto
new file mode 100644
index 00000000..b0e36224
--- /dev/null
+++ b/proto/Unk2800_DNKCFLKHKJG.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 876
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2800_DNKCFLKHKJG {
+ uint32 Unk2800_LEHIJIPEONO = 3;
+ uint32 gadget_entity_id = 8;
+}
diff --git a/proto/Unk2800_DPINLADLBFA.proto b/proto/Unk2800_DPINLADLBFA.proto
new file mode 100644
index 00000000..7ff74d55
--- /dev/null
+++ b/proto/Unk2800_DPINLADLBFA.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1902
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2800_DPINLADLBFA {}
diff --git a/proto/Unk2800_ECCLDPCADCJ.proto b/proto/Unk2800_ECCLDPCADCJ.proto
new file mode 100644
index 00000000..99b2869d
--- /dev/null
+++ b/proto/Unk2800_ECCLDPCADCJ.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1921
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_ECCLDPCADCJ {}
diff --git a/proto/Unk2800_EKGCCBDIKFI.proto b/proto/Unk2800_EKGCCBDIKFI.proto
new file mode 100644
index 00000000..e36f71b4
--- /dev/null
+++ b/proto/Unk2800_EKGCCBDIKFI.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21851
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_EKGCCBDIKFI {
+ int32 retcode = 12;
+ bool is_success = 6;
+}
diff --git a/proto/Unk2800_FDLKPKFOIIK.proto b/proto/Unk2800_FDLKPKFOIIK.proto
new file mode 100644
index 00000000..1fe98139
--- /dev/null
+++ b/proto/Unk2800_FDLKPKFOIIK.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2800_FDLKPKFOIIK {
+ Unk2800_FDLKPKFOIIK_NONE = 0;
+ Unk2800_FDLKPKFOIIK_START = 1;
+ Unk2800_FDLKPKFOIIK_Unk2800_FDPBDHDHAKO = 2;
+}
diff --git a/proto/Unk2800_FGFMMFAKDEL.proto b/proto/Unk2800_FGFMMFAKDEL.proto
new file mode 100644
index 00000000..1b50ba70
--- /dev/null
+++ b/proto/Unk2800_FGFMMFAKDEL.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2800_FGFMMFAKDEL {
+ uint32 Unk2800_HKEDPPELJDD = 7;
+ bool Unk2800_FOGGAIHLNOP = 3;
+ bool Unk2800_NKKMCEKPKLA = 2;
+ uint32 gear_id = 11;
+ uint32 Unk2800_JJFDKELDLEM = 6;
+}
diff --git a/proto/Unk2800_FHCJIICLONO.proto b/proto/Unk2800_FHCJIICLONO.proto
new file mode 100644
index 00000000..34dc318e
--- /dev/null
+++ b/proto/Unk2800_FHCJIICLONO.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21025
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_FHCJIICLONO {
+ uint32 level_id = 9;
+ int32 retcode = 2;
+}
diff --git a/proto/Unk2800_FMAOEPEBKHB.proto b/proto/Unk2800_FMAOEPEBKHB.proto
new file mode 100644
index 00000000..3768b91b
--- /dev/null
+++ b/proto/Unk2800_FMAOEPEBKHB.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2800_FMAOEPEBKHB {
+ Unk2800_FMAOEPEBKHB_Unk2800_IBMPPHFLKEO = 0;
+ Unk2800_FMAOEPEBKHB_Unk2800_GFHGOAMCAJH = 1;
+ Unk2800_FMAOEPEBKHB_Unk2800_FOBCHIGNEJB = 2;
+}
diff --git a/proto/Unk2800_GDDLBKEENNA.proto b/proto/Unk2800_GDDLBKEENNA.proto
new file mode 100644
index 00000000..fbe082cc
--- /dev/null
+++ b/proto/Unk2800_GDDLBKEENNA.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ExhibitionDisplayInfo.proto";
+import "Unk2700_MOFABPNGIKP.proto";
+import "Unk2800_BEMANDBNPJB.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 24601
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_GDDLBKEENNA {
+ bool is_new_record = 13;
+ Unk2700_MOFABPNGIKP reason = 1;
+ repeated Unk2800_BEMANDBNPJB settle_info_list = 8;
+ repeated ExhibitionDisplayInfo score_list = 6;
+ uint32 Unk2700_CDDONJJMFCI = 15;
+}
diff --git a/proto/Unk2800_HHPCNJGKIPP.proto b/proto/Unk2800_HHPCNJGKIPP.proto
new file mode 100644
index 00000000..d1244f2a
--- /dev/null
+++ b/proto/Unk2800_HHPCNJGKIPP.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23388
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_HHPCNJGKIPP {
+ int32 retcode = 6;
+}
diff --git a/proto/Unk2800_HKBAEOMCFOD.proto b/proto/Unk2800_HKBAEOMCFOD.proto
new file mode 100644
index 00000000..9e553c11
--- /dev/null
+++ b/proto/Unk2800_HKBAEOMCFOD.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 145
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_HKBAEOMCFOD {
+ uint32 giving_id = 10;
+ int32 retcode = 6;
+}
diff --git a/proto/Unk2800_IBDOMAIDPGK.proto b/proto/Unk2800_IBDOMAIDPGK.proto
new file mode 100644
index 00000000..1922176d
--- /dev/null
+++ b/proto/Unk2800_IBDOMAIDPGK.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2800_FMAOEPEBKHB.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5594
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_IBDOMAIDPGK {
+ Unk2800_FMAOEPEBKHB Unk2800_ENJGEFBCLOL = 11;
+ uint32 end_time = 12;
+ bool Unk2800_OCCCDEMDONA = 7;
+ uint32 gallery_id = 14;
+}
diff --git a/proto/Unk2800_IECLGDFOMFJ.proto b/proto/Unk2800_IECLGDFOMFJ.proto
new file mode 100644
index 00000000..47ab15db
--- /dev/null
+++ b/proto/Unk2800_IECLGDFOMFJ.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2800_PHPHMILPOLC.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8513
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_IECLGDFOMFJ {
+ uint32 schedule_id = 14;
+ repeated Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 3;
+ uint32 activity_id = 10;
+}
diff --git a/proto/Unk2800_IGKGDAGGCEC.proto b/proto/Unk2800_IGKGDAGGCEC.proto
new file mode 100644
index 00000000..8d2c89a6
--- /dev/null
+++ b/proto/Unk2800_IGKGDAGGCEC.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1684
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2800_IGKGDAGGCEC {
+ uint64 cur_avatar_guid = 8;
+ repeated uint64 avatar_team_guid_list = 3;
+}
diff --git a/proto/Unk2800_IILBEPIEBJO.proto b/proto/Unk2800_IILBEPIEBJO.proto
new file mode 100644
index 00000000..4fa468e9
--- /dev/null
+++ b/proto/Unk2800_IILBEPIEBJO.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8476
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2800_IILBEPIEBJO {
+ uint32 gallery_id = 5;
+}
diff --git a/proto/Unk2800_ILKIAECAAKG.proto b/proto/Unk2800_ILKIAECAAKG.proto
new file mode 100644
index 00000000..5d50d3aa
--- /dev/null
+++ b/proto/Unk2800_ILKIAECAAKG.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3004
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2800_ILKIAECAAKG {
+ uint32 reminder_id = 15;
+}
diff --git a/proto/Unk2800_IMLDGLIMODE.proto b/proto/Unk2800_IMLDGLIMODE.proto
new file mode 100644
index 00000000..5be691f2
--- /dev/null
+++ b/proto/Unk2800_IMLDGLIMODE.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk2800_IMLDGLIMODE {
+ Unk2800_IMLDGLIMODE_NONE = 0;
+ Unk2800_IMLDGLIMODE_Unk2800_FIPMFJALDJM = 1;
+ Unk2800_IMLDGLIMODE_Unk2800_OFNLGLLMMED = 2;
+}
diff --git a/proto/Unk2800_IOBHBFFAONO.proto b/proto/Unk2800_IOBHBFFAONO.proto
new file mode 100644
index 00000000..9f16eb6c
--- /dev/null
+++ b/proto/Unk2800_IOBHBFFAONO.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_MOFABPNGIKP.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2800_IOBHBFFAONO {
+ uint32 param1 = 7;
+ uint32 param2 = 2;
+ Unk2700_MOFABPNGIKP reason = 3;
+ uint32 param3 = 6;
+ uint32 Unk2800_NGGPIECNHJA = 12;
+ uint32 gallery_id = 1;
+}
diff --git a/proto/Unk2800_JCPNICABMAF.proto b/proto/Unk2800_JCPNICABMAF.proto
new file mode 100644
index 00000000..e5c8616c
--- /dev/null
+++ b/proto/Unk2800_JCPNICABMAF.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2800_IMLDGLIMODE.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5504
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_JCPNICABMAF {
+ uint32 coin = 10;
+ Unk2800_IMLDGLIMODE stage = 8;
+ uint32 kill_monster_count = 4;
+ uint32 progress = 15;
+}
diff --git a/proto/Unk2800_JIPMJPAKIKE.proto b/proto/Unk2800_JIPMJPAKIKE.proto
new file mode 100644
index 00000000..4c7c21c4
--- /dev/null
+++ b/proto/Unk2800_JIPMJPAKIKE.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2800_JIPMJPAKIKE {
+ bool is_finished = 7;
+ uint32 Unk2800_MMPELBBNFOD = 10;
+ bool is_open = 5;
+ uint32 Unk2800_MGPEODNKEEC = 6;
+}
diff --git a/proto/Unk2800_JKLFAJKDLDG.proto b/proto/Unk2800_JKLFAJKDLDG.proto
new file mode 100644
index 00000000..7f198187
--- /dev/null
+++ b/proto/Unk2800_JKLFAJKDLDG.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2800_JKLFAJKDLDG {
+ uint32 quest_id = 13;
+ uint32 point_id = 6;
+}
diff --git a/proto/Unk2800_KFNCDHFHJPD.proto b/proto/Unk2800_KFNCDHFHJPD.proto
new file mode 100644
index 00000000..afd1cdf1
--- /dev/null
+++ b/proto/Unk2800_KFNCDHFHJPD.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8996
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_KFNCDHFHJPD {
+ int32 retcode = 3;
+}
diff --git a/proto/Unk2800_KHLHFFHGEHA.proto b/proto/Unk2800_KHLHFFHGEHA.proto
new file mode 100644
index 00000000..e58baacc
--- /dev/null
+++ b/proto/Unk2800_KHLHFFHGEHA.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2800_FGFMMFAKDEL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21834
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2800_KHLHFFHGEHA {
+ bool is_success = 4;
+ bool Unk2800_ICNCEKIJNJA = 12;
+ repeated Unk2800_FGFMMFAKDEL Unk2800_EGJDBBGNMFI = 9;
+ uint32 level_id = 5;
+}
diff --git a/proto/Unk2800_KILFIICJLEE.proto b/proto/Unk2800_KILFIICJLEE.proto
new file mode 100644
index 00000000..f3c5c559
--- /dev/null
+++ b/proto/Unk2800_KILFIICJLEE.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5593
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2800_KILFIICJLEE {
+ uint32 gallery_id = 15;
+}
diff --git a/proto/Unk2800_KJEOLFNEOPF.proto b/proto/Unk2800_KJEOLFNEOPF.proto
new file mode 100644
index 00000000..dfe4b1cd
--- /dev/null
+++ b/proto/Unk2800_KJEOLFNEOPF.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1768
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_KJEOLFNEOPF {
+ repeated uint64 avatar_team_guid_list = 14;
+ int32 retcode = 7;
+ uint64 cur_avatar_guid = 15;
+}
diff --git a/proto/Unk2800_KOMBBIEEGCP.proto b/proto/Unk2800_KOMBBIEEGCP.proto
new file mode 100644
index 00000000..b4487a7a
--- /dev/null
+++ b/proto/Unk2800_KOMBBIEEGCP.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5522
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_KOMBBIEEGCP {
+ uint32 gallery_id = 2;
+ uint32 coin = 9;
+ uint32 Unk2800_LBPCDCHOOLJ = 11;
+}
diff --git a/proto/Unk2800_KPJKAJLNAED.proto b/proto/Unk2800_KPJKAJLNAED.proto
new file mode 100644
index 00000000..d3dfeb82
--- /dev/null
+++ b/proto/Unk2800_KPJKAJLNAED.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 874
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_KPJKAJLNAED {
+ int32 retcode = 12;
+}
diff --git a/proto/Unk2800_LGIKLPBOJOI.proto b/proto/Unk2800_LGIKLPBOJOI.proto
new file mode 100644
index 00000000..4fb4fdc9
--- /dev/null
+++ b/proto/Unk2800_LGIKLPBOJOI.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8145
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2800_LGIKLPBOJOI {
+ repeated uint32 Unk2800_AEKPBKAAHFL = 14;
+ uint32 activity_id = 7;
+}
diff --git a/proto/Unk2800_LIBCDGDJMDF.proto b/proto/Unk2800_LIBCDGDJMDF.proto
new file mode 100644
index 00000000..8edcf668
--- /dev/null
+++ b/proto/Unk2800_LIBCDGDJMDF.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5527
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_LIBCDGDJMDF {
+ uint32 gallery_id = 9;
+ int32 retcode = 5;
+}
diff --git a/proto/Unk2800_MBKLJLMLIKF.proto b/proto/Unk2800_MBKLJLMLIKF.proto
new file mode 100644
index 00000000..dbe5ce7b
--- /dev/null
+++ b/proto/Unk2800_MBKLJLMLIKF.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2800_MBKLJLMLIKF {
+ uint32 stage_id = 13;
+ bool is_open = 14;
+ uint32 best_score = 4;
+}
diff --git a/proto/Unk2800_MHCFAGCKGIB.proto b/proto/Unk2800_MHCFAGCKGIB.proto
new file mode 100644
index 00000000..7eba55e9
--- /dev/null
+++ b/proto/Unk2800_MHCFAGCKGIB.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DungeonEntryInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2800_MHCFAGCKGIB {
+ uint32 scene_id = 12;
+ uint32 point_id = 6;
+ repeated DungeonEntryInfo dungeon_entry_list = 1;
+ uint32 recommend_dungeon_id = 8;
+}
diff --git a/proto/Unk2800_MNBDNGKGDGF.proto b/proto/Unk2800_MNBDNGKGDGF.proto
new file mode 100644
index 00000000..c5a7f593
--- /dev/null
+++ b/proto/Unk2800_MNBDNGKGDGF.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8004
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_MNBDNGKGDGF {
+ uint32 gallery_id = 13;
+ int32 retcode = 8;
+}
diff --git a/proto/Unk2800_NHEOHBNFHJD.proto b/proto/Unk2800_NHEOHBNFHJD.proto
new file mode 100644
index 00000000..fccb2211
--- /dev/null
+++ b/proto/Unk2800_NHEOHBNFHJD.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2800_IOBHBFFAONO.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8870
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk2800_NHEOHBNFHJD {
+ Unk2800_IOBHBFFAONO settle_info = 11;
+ uint32 stage_id = 7;
+ bool is_new_record = 2;
+ uint32 gallery_id = 1;
+}
diff --git a/proto/Unk2800_OFIHDGFMDGB.proto b/proto/Unk2800_OFIHDGFMDGB.proto
new file mode 100644
index 00000000..15f4e372
--- /dev/null
+++ b/proto/Unk2800_OFIHDGFMDGB.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 171
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2800_OFIHDGFMDGB {
+ uint32 giving_id = 4;
+}
diff --git a/proto/Unk2800_OMGNOBICOCD.proto b/proto/Unk2800_OMGNOBICOCD.proto
new file mode 100644
index 00000000..b12e9f1c
--- /dev/null
+++ b/proto/Unk2800_OMGNOBICOCD.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CustomGadgetTreeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 843
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2800_OMGNOBICOCD {
+ uint32 Unk2800_DPEOIJKEAPB = 14;
+ CustomGadgetTreeInfo Unk2700_OCIHJFOKHPK = 11;
+ uint32 gadget_entity_id = 10;
+}
diff --git a/proto/Unk2800_OOKIPFHPJMG.proto b/proto/Unk2800_OOKIPFHPJMG.proto
new file mode 100644
index 00000000..e949413f
--- /dev/null
+++ b/proto/Unk2800_OOKIPFHPJMG.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21054
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk2800_OOKIPFHPJMG {
+ bool is_success = 8;
+}
diff --git a/proto/Unk2800_PHPHMILPOLC.proto b/proto/Unk2800_PHPHMILPOLC.proto
new file mode 100644
index 00000000..545747c0
--- /dev/null
+++ b/proto/Unk2800_PHPHMILPOLC.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2800_FDLKPKFOIIK.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk2800_PHPHMILPOLC {
+ Unk2800_FDLKPKFOIIK state = 10;
+ uint32 Unk2800_CLOCMPFBGMD = 4;
+}
diff --git a/proto/Unk3000_ACNMEFGKHKO.proto b/proto/Unk3000_ACNMEFGKHKO.proto
new file mode 100644
index 00000000..50b45f1a
--- /dev/null
+++ b/proto/Unk3000_ACNMEFGKHKO.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4622
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_ACNMEFGKHKO {
+ int32 retcode = 13;
+ uint32 Unk3000_LOFNFMJFGNB = 1;
+ uint32 Unk3000_DEDHCIKCAGH = 3;
+ uint32 Unk3000_HCAJDIBHKDG = 2;
+}
diff --git a/proto/Unk3000_AFMFIPPDAJE.proto b/proto/Unk3000_AFMFIPPDAJE.proto
new file mode 100644
index 00000000..952f1f61
--- /dev/null
+++ b/proto/Unk3000_AFMFIPPDAJE.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4576
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_AFMFIPPDAJE {
+ map Unk3000_OBLCKELHBGH = 3;
+ uint32 Unk3000_LOFNFMJFGNB = 12;
+}
diff --git a/proto/Unk3000_AGDEGMCKIAF.proto b/proto/Unk3000_AGDEGMCKIAF.proto
new file mode 100644
index 00000000..b86e2d83
--- /dev/null
+++ b/proto/Unk3000_AGDEGMCKIAF.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 20702
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_AGDEGMCKIAF {
+ int32 retcode = 5;
+}
diff --git a/proto/Unk3000_AHNHHIOAHBC.proto b/proto/Unk3000_AHNHHIOAHBC.proto
new file mode 100644
index 00000000..ae7db209
--- /dev/null
+++ b/proto/Unk3000_AHNHHIOAHBC.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk3000_AHNHHIOAHBC {
+ Unk3000_AHNHHIOAHBC_NONE = 0;
+ Unk3000_AHNHHIOAHBC_Unk3000_IKCFCMNEEAO = 1;
+ Unk3000_AHNHHIOAHBC_Unk3000_BCPDDCDJHHA = 2;
+ Unk3000_AHNHHIOAHBC_FINISHED = 3;
+}
diff --git a/proto/Unk3000_ALPEACOMIPG.proto b/proto/Unk3000_ALPEACOMIPG.proto
new file mode 100644
index 00000000..0f012e1f
--- /dev/null
+++ b/proto/Unk3000_ALPEACOMIPG.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_ECGHJKANPJK.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_ALPEACOMIPG {
+ repeated Unk3000_ECGHJKANPJK Unk2700_PHKHIPLDOOA = 10;
+ uint32 Unk3000_FJENMMCFMGD = 7;
+ repeated uint32 Unk3000_HKABHFLDNKF = 6;
+}
diff --git a/proto/Unk3000_AMGHKNBNNPD.proto b/proto/Unk3000_AMGHKNBNNPD.proto
new file mode 100644
index 00000000..bb075062
--- /dev/null
+++ b/proto/Unk3000_AMGHKNBNNPD.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_AMGHKNBNNPD {
+ float Unk3000_OFFBBHIKDIN = 1;
+ repeated uint32 animator_state_id_list = 2;
+ uint32 entity_id = 3;
+ bool need_set_is_in_air = 13;
+ float speed = 12;
+ float Unk3000_PJPFIPOLNAH = 8;
+ bool check_animator_state_on_exit_only = 11;
+ string override_collider = 14;
+ Vector target_pos = 10;
+}
diff --git a/proto/Unk3000_BGPMEPKCLPA.proto b/proto/Unk3000_BGPMEPKCLPA.proto
new file mode 100644
index 00000000..c1a84585
--- /dev/null
+++ b/proto/Unk3000_BGPMEPKCLPA.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_CMEPCFFDIGL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_BGPMEPKCLPA {
+ repeated Unk3000_CMEPCFFDIGL Unk3000_MKIJEIKFIJP = 3;
+}
diff --git a/proto/Unk3000_BMLKKNEINNF.proto b/proto/Unk3000_BMLKKNEINNF.proto
new file mode 100644
index 00000000..3deb3a2b
--- /dev/null
+++ b/proto/Unk3000_BMLKKNEINNF.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MailData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1481
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_BMLKKNEINNF {
+ string Unk3000_HJKCLHGMBFC = 9;
+ repeated MailData mail_list = 5;
+ uint32 Unk3000_OJIKNBEGAKL = 11;
+ uint32 Unk3000_DKLGOIEPECB = 4;
+ bool Unk2700_OPEHLDAGICF = 7;
+ int32 retcode = 14;
+}
diff --git a/proto/Unk3000_BOBIJEDOFKG.proto b/proto/Unk3000_BOBIJEDOFKG.proto
new file mode 100644
index 00000000..f0ed9266
--- /dev/null
+++ b/proto/Unk3000_BOBIJEDOFKG.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_BOBIJEDOFKG {
+ bool is_open = 9;
+ uint32 id = 14;
+}
diff --git a/proto/Unk3000_CMEPCFFDIGL.proto b/proto/Unk3000_CMEPCFFDIGL.proto
new file mode 100644
index 00000000..0b73679c
--- /dev/null
+++ b/proto/Unk3000_CMEPCFFDIGL.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_GDKMIBFADKD.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_CMEPCFFDIGL {
+ int32 level = 10;
+ repeated Unk3000_GDKMIBFADKD Unk3000_MKIJEIKFIJP = 6;
+}
diff --git a/proto/Unk3000_CMKEPEDFOKE.proto b/proto/Unk3000_CMKEPEDFOKE.proto
new file mode 100644
index 00000000..5aa93c8c
--- /dev/null
+++ b/proto/Unk3000_CMKEPEDFOKE.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 22391
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_CMKEPEDFOKE {}
diff --git a/proto/Unk3000_CNDHIGKNELM.proto b/proto/Unk3000_CNDHIGKNELM.proto
new file mode 100644
index 00000000..591f87e4
--- /dev/null
+++ b/proto/Unk3000_CNDHIGKNELM.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_BGPMEPKCLPA.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6173
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_CNDHIGKNELM {
+ int32 query_id = 3;
+ int32 retcode = 14;
+ Unk3000_BGPMEPKCLPA Unk3000_ADJJOGDKIKL = 8;
+}
diff --git a/proto/Unk3000_CPCMICDDBCH.proto b/proto/Unk3000_CPCMICDDBCH.proto
new file mode 100644
index 00000000..85ebd8b7
--- /dev/null
+++ b/proto/Unk3000_CPCMICDDBCH.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 20011
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_CPCMICDDBCH {
+ uint32 Unk3000_MKFIPLFHJNE = 10;
+ uint32 level_id = 15;
+}
diff --git a/proto/Unk3000_DCAHJINNNDM.proto b/proto/Unk3000_DCAHJINNNDM.proto
new file mode 100644
index 00000000..b52b2379
--- /dev/null
+++ b/proto/Unk3000_DCAHJINNNDM.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CustomGadgetTreeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23107
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_DCAHJINNNDM {
+ uint32 entity_id = 2;
+ CustomGadgetTreeInfo Unk2700_OCIHJFOKHPK = 11;
+}
diff --git a/proto/Unk3000_DCHMAMFIFOF.proto b/proto/Unk3000_DCHMAMFIFOF.proto
new file mode 100644
index 00000000..cfc31210
--- /dev/null
+++ b/proto/Unk3000_DCHMAMFIFOF.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_DCHMAMFIFOF {
+ uint32 Unk3000_PAFIGDFHGNA = 1;
+ uint32 finish_time = 4;
+ uint32 param = 14;
+}
diff --git a/proto/Unk3000_DCLAGIJJEHB.proto b/proto/Unk3000_DCLAGIJJEHB.proto
new file mode 100644
index 00000000..177be344
--- /dev/null
+++ b/proto/Unk3000_DCLAGIJJEHB.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_ENLDIHLGNCK.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 402
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_DCLAGIJJEHB {
+ uint32 parent_quest_id = 2;
+ repeated Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 1;
+}
diff --git a/proto/Unk3000_DFIIBIGPHGE.proto b/proto/Unk3000_DFIIBIGPHGE.proto
new file mode 100644
index 00000000..b2b736c7
--- /dev/null
+++ b/proto/Unk3000_DFIIBIGPHGE.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1731
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_DFIIBIGPHGE {
+ uint32 Unk3000_GCAJHPHIEAA = 4;
+}
diff --git a/proto/Unk3000_DHEOMDCCMMC.proto b/proto/Unk3000_DHEOMDCCMMC.proto
new file mode 100644
index 00000000..5f6b6453
--- /dev/null
+++ b/proto/Unk3000_DHEOMDCCMMC.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 429
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_DHEOMDCCMMC {
+ uint32 Unk3000_CCNCELKPPFN = 7;
+ uint32 Unk3000_CIOLEGEHDAC = 11;
+ uint32 Unk3000_OIIEJOKFHPP = 2;
+}
diff --git a/proto/Unk3000_DHOFMKPKFMF.proto b/proto/Unk3000_DHOFMKPKFMF.proto
new file mode 100644
index 00000000..03b5e1d8
--- /dev/null
+++ b/proto/Unk3000_DHOFMKPKFMF.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AvatarTeam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1749
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_DHOFMKPKFMF {
+ repeated uint64 temp_avatar_guid_list = 6;
+ map avatar_team_map = 3;
+ repeated uint32 Unk3000_NIGPICLBHMA = 1;
+}
diff --git a/proto/Unk3000_DJNBNBMIECP.proto b/proto/Unk3000_DJNBNBMIECP.proto
new file mode 100644
index 00000000..601b647a
--- /dev/null
+++ b/proto/Unk3000_DJNBNBMIECP.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5588
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_DJNBNBMIECP {
+ uint32 score = 3;
+}
diff --git a/proto/Unk3000_DLCDJPKNGBD.proto b/proto/Unk3000_DLCDJPKNGBD.proto
new file mode 100644
index 00000000..27fc37d5
--- /dev/null
+++ b/proto/Unk3000_DLCDJPKNGBD.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 185
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_DLCDJPKNGBD {
+ bool Unk3000_FGIJKFANKEI = 8;
+ uint32 Unk3000_LHIINBOCMFN = 14;
+ uint32 Unk3000_HMLGHBEKCOF = 9;
+ uint32 Unk3000_EMJDLANPPNF = 1;
+}
diff --git a/proto/Unk3000_DPEJONKFONL.proto b/proto/Unk3000_DPEJONKFONL.proto
new file mode 100644
index 00000000..b75a9450
--- /dev/null
+++ b/proto/Unk3000_DPEJONKFONL.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21750
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_DPEJONKFONL {
+ uint32 param = 1;
+ uint32 Unk3000_PAFIGDFHGNA = 4;
+}
diff --git a/proto/Unk3000_EBNMMLENEII.proto b/proto/Unk3000_EBNMMLENEII.proto
new file mode 100644
index 00000000..ae42a7c1
--- /dev/null
+++ b/proto/Unk3000_EBNMMLENEII.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_JACOCADDNFE.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 24857
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_EBNMMLENEII {
+ repeated Unk3000_JACOCADDNFE avatar_info_list = 13;
+}
diff --git a/proto/Unk3000_ECGHJKANPJK.proto b/proto/Unk3000_ECGHJKANPJK.proto
new file mode 100644
index 00000000..0ad25f63
--- /dev/null
+++ b/proto/Unk3000_ECGHJKANPJK.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_ECGHJKANPJK {
+ uint32 stage_id = 9;
+ bool is_open = 1;
+}
diff --git a/proto/Unk3000_EDGJEBLODLF.proto b/proto/Unk3000_EDGJEBLODLF.proto
new file mode 100644
index 00000000..d30633c4
--- /dev/null
+++ b/proto/Unk3000_EDGJEBLODLF.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 416
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_EDGJEBLODLF {
+ uint32 Unk3000_CFDMLGKNLKL = 2;
+ uint32 Unk3000_CIOLEGEHDAC = 13;
+ uint32 Unk3000_FDGFAHAOEPP = 5;
+ int32 retcode = 8;
+}
diff --git a/proto/Unk3000_EHJALCDEBKK.proto b/proto/Unk3000_EHJALCDEBKK.proto
new file mode 100644
index 00000000..c341d56b
--- /dev/null
+++ b/proto/Unk3000_EHJALCDEBKK.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23381
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_EHJALCDEBKK {
+ uint32 level_id = 11;
+ int32 retcode = 9;
+}
diff --git a/proto/Unk3000_EMGMOECAJDK.proto b/proto/Unk3000_EMGMOECAJDK.proto
new file mode 100644
index 00000000..cc635c6b
--- /dev/null
+++ b/proto/Unk3000_EMGMOECAJDK.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6092
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_EMGMOECAJDK {
+ repeated uint32 Unk3000_CNNFGFBBBFP = 3;
+}
diff --git a/proto/Unk3000_EMMKKLIECLB.proto b/proto/Unk3000_EMMKKLIECLB.proto
new file mode 100644
index 00000000..203cee67
--- /dev/null
+++ b/proto/Unk3000_EMMKKLIECLB.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_EMMKKLIECLB {
+ Vector tree_pos = 12;
+ uint32 tree_type = 8;
+}
diff --git a/proto/Unk3000_ENLDIHLGNCK.proto b/proto/Unk3000_ENLDIHLGNCK.proto
new file mode 100644
index 00000000..dab2da8a
--- /dev/null
+++ b/proto/Unk3000_ENLDIHLGNCK.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_GDDGGJIFNCH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_ENLDIHLGNCK {
+ uint32 Unk3000_CIOLEGEHDAC = 3;
+ repeated Unk3000_GDDGGJIFNCH Unk3000_NLFPKDOBNCD = 15;
+}
diff --git a/proto/Unk3000_EOLNDBMGCBP.proto b/proto/Unk3000_EOLNDBMGCBP.proto
new file mode 100644
index 00000000..6d0ce396
--- /dev/null
+++ b/proto/Unk3000_EOLNDBMGCBP.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4473
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_EOLNDBMGCBP {}
diff --git a/proto/Unk3000_EPHGPACBEHL.proto b/proto/Unk3000_EPHGPACBEHL.proto
new file mode 100644
index 00000000..08de5c4b
--- /dev/null
+++ b/proto/Unk3000_EPHGPACBEHL.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1497
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_EPHGPACBEHL {
+ bool Unk2700_OPEHLDAGICF = 13;
+}
diff --git a/proto/Unk3000_FAPNAHAEPBF.proto b/proto/Unk3000_FAPNAHAEPBF.proto
new file mode 100644
index 00000000..103da3fb
--- /dev/null
+++ b/proto/Unk3000_FAPNAHAEPBF.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21880
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_FAPNAHAEPBF {
+ int32 retcode = 8;
+ uint32 gallery_id = 6;
+}
diff --git a/proto/Unk3000_FENDDMMFAME.proto b/proto/Unk3000_FENDDMMFAME.proto
new file mode 100644
index 00000000..aad4bbf2
--- /dev/null
+++ b/proto/Unk3000_FENDDMMFAME.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_FENDDMMFAME {
+ bool is_open = 15;
+ uint32 level_id = 10;
+ uint32 stage_id = 9;
+ bool is_finished = 3;
+}
diff --git a/proto/Unk3000_FFOBEKMOHOI.proto b/proto/Unk3000_FFOBEKMOHOI.proto
new file mode 100644
index 00000000..5d62bec5
--- /dev/null
+++ b/proto/Unk3000_FFOBEKMOHOI.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_FENDDMMFAME.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_FFOBEKMOHOI {
+ repeated Unk3000_FENDDMMFAME Unk2700_PHKHIPLDOOA = 5;
+}
diff --git a/proto/Unk3000_FIPHHGCJIMO.proto b/proto/Unk3000_FIPHHGCJIMO.proto
new file mode 100644
index 00000000..4a00e482
--- /dev/null
+++ b/proto/Unk3000_FIPHHGCJIMO.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_JACOCADDNFE.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23678
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_FIPHHGCJIMO {
+ repeated Unk3000_JACOCADDNFE avatar_info_list = 6;
+}
diff --git a/proto/Unk3000_FLOEPMMABMH.proto b/proto/Unk3000_FLOEPMMABMH.proto
new file mode 100644
index 00000000..47bf5452
--- /dev/null
+++ b/proto/Unk3000_FLOEPMMABMH.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_FLOEPMMABMH {
+ uint32 level_id = 13;
+ uint32 max_score = 14;
+ bool is_open = 1;
+}
diff --git a/proto/Unk3000_FPDBJJJLKEP.proto b/proto/Unk3000_FPDBJJJLKEP.proto
new file mode 100644
index 00000000..4e64bd9c
--- /dev/null
+++ b/proto/Unk3000_FPDBJJJLKEP.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_BGPMEPKCLPA.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6103
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_FPDBJJJLKEP {
+ Unk3000_BGPMEPKCLPA Unk3000_ADJJOGDKIKL = 2;
+ int32 query_id = 13;
+ int32 retcode = 11;
+}
diff --git a/proto/Unk3000_GCBMILHPIKA.proto b/proto/Unk3000_GCBMILHPIKA.proto
new file mode 100644
index 00000000..9107f020
--- /dev/null
+++ b/proto/Unk3000_GCBMILHPIKA.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4659
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_GCBMILHPIKA {
+ int32 retcode = 10;
+ repeated Unk3000_PPGINNAFPIF Unk3000_EBIEGNHLMFP = 5;
+
+ message Unk3000_PPGINNAFPIF {
+ uint32 Unk3000_CLMLONOEHLB = 7;
+ uint32 Unk3000_HCAJDIBHKDG = 12;
+ uint32 next_refresh_time = 14;
+ uint32 Unk3000_LOFNFMJFGNB = 2;
+ }
+}
diff --git a/proto/Unk3000_GDDGGJIFNCH.proto b/proto/Unk3000_GDDGGJIFNCH.proto
new file mode 100644
index 00000000..a1009fb4
--- /dev/null
+++ b/proto/Unk3000_GDDGGJIFNCH.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_GDDGGJIFNCH {
+ uint32 Unk3000_CFDMLGKNLKL = 8;
+ bool Unk3000_HONINDEHLNO = 15;
+ bool Unk3000_FIMENALCAKG = 10;
+ bool Unk3000_BJGNKDEGLGC = 6;
+ uint32 Unk3000_HPHLGFDHBON = 5;
+}
diff --git a/proto/Unk3000_GDKMIBFADKD.proto b/proto/Unk3000_GDKMIBFADKD.proto
new file mode 100644
index 00000000..33701303
--- /dev/null
+++ b/proto/Unk3000_GDKMIBFADKD.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_GDKMIBFADKD {
+ int64 index = 8;
+ int32 area = 5;
+ Vector Unk3000_AOEGLPPFIFD = 1;
+}
diff --git a/proto/Unk3000_GDMEIKLAMIB.proto b/proto/Unk3000_GDMEIKLAMIB.proto
new file mode 100644
index 00000000..786edbeb
--- /dev/null
+++ b/proto/Unk3000_GDMEIKLAMIB.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3295
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_GDMEIKLAMIB {
+ uint32 group_id = 6;
+ uint32 scene_id = 9;
+ uint32 config_id = 12;
+}
diff --git a/proto/Unk3000_GMLAHHCDKOI.proto b/proto/Unk3000_GMLAHHCDKOI.proto
new file mode 100644
index 00000000..5f18347e
--- /dev/null
+++ b/proto/Unk3000_GMLAHHCDKOI.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_LLBHCMKJJHB.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 841
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_GMLAHHCDKOI {
+ repeated Unk3000_LLBHCMKJJHB Unk3000_LHBOCEKGGIF = 14;
+}
diff --git a/proto/Unk3000_GNLFOLGMEPN.proto b/proto/Unk3000_GNLFOLGMEPN.proto
new file mode 100644
index 00000000..6aebe7e7
--- /dev/null
+++ b/proto/Unk3000_GNLFOLGMEPN.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21208
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_GNLFOLGMEPN {
+ int32 retcode = 5;
+}
diff --git a/proto/Unk3000_HBIPKOBMGGD.proto b/proto/Unk3000_HBIPKOBMGGD.proto
new file mode 100644
index 00000000..e5e4a783
--- /dev/null
+++ b/proto/Unk3000_HBIPKOBMGGD.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_HKHFFDEMNKN.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5995
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_HBIPKOBMGGD {
+ repeated Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 3;
+}
diff --git a/proto/Unk3000_HDJHHOCABBK.proto b/proto/Unk3000_HDJHHOCABBK.proto
new file mode 100644
index 00000000..7a5cec96
--- /dev/null
+++ b/proto/Unk3000_HDJHHOCABBK.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_HDJHHOCABBK {
+ bool is_done = 12;
+ uint32 Unk3000_LIHPABKOAIP = 6;
+ uint32 Unk3000_AEGHMLLEOJF = 10;
+ float region_radius = 7;
+ bool is_open = 9;
+ uint32 open_time = 8;
+ Vector region_center_pos = 11;
+ uint32 scene_id = 13;
+ uint32 Unk3000_KNNPMAMOCOM = 15;
+ uint32 region_id = 1;
+}
diff --git a/proto/Unk3000_HGBNOCJBDEK.proto b/proto/Unk3000_HGBNOCJBDEK.proto
new file mode 100644
index 00000000..6ba88286
--- /dev/null
+++ b/proto/Unk3000_HGBNOCJBDEK.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_HGBNOCJBDEK {
+ bool is_finished = 11;
+ uint32 stage_id = 6;
+ bool is_open = 9;
+}
diff --git a/proto/Unk3000_HIJKNFBBCFC.proto b/proto/Unk3000_HIJKNFBBCFC.proto
new file mode 100644
index 00000000..cb16adc5
--- /dev/null
+++ b/proto/Unk3000_HIJKNFBBCFC.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23948
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_HIJKNFBBCFC {
+ uint32 Unk3000_PAFIGDFHGNA = 6;
+ uint32 param = 11;
+ int32 retcode = 12;
+}
diff --git a/proto/Unk3000_HKHFFDEMNKN.proto b/proto/Unk3000_HKHFFDEMNKN.proto
new file mode 100644
index 00000000..808d8612
--- /dev/null
+++ b/proto/Unk3000_HKHFFDEMNKN.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WidgetSlotData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_HKHFFDEMNKN {
+ uint32 uid = 14;
+ repeated WidgetSlotData slot_list = 13;
+}
diff --git a/proto/Unk3000_HPFGNOIGNAG.proto b/proto/Unk3000_HPFGNOIGNAG.proto
new file mode 100644
index 00000000..48100f02
--- /dev/null
+++ b/proto/Unk3000_HPFGNOIGNAG.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21961
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_HPFGNOIGNAG {
+ bool Unk3000_PHIIBCMNPEK = 11;
+ bool Unk3000_NFLEINABPPC = 7;
+ uint32 round = 15;
+ uint32 stage_id = 8;
+ uint32 level_id = 10;
+}
diff --git a/proto/Unk3000_IBMFJMGHCNC.proto b/proto/Unk3000_IBMFJMGHCNC.proto
new file mode 100644
index 00000000..e83f93e7
--- /dev/null
+++ b/proto/Unk3000_IBMFJMGHCNC.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6060
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_IBMFJMGHCNC {
+ int32 retcode = 8;
+ uint32 material_id = 6;
+}
diff --git a/proto/Unk3000_IBNIGBFIEEF.proto b/proto/Unk3000_IBNIGBFIEEF.proto
new file mode 100644
index 00000000..7b82552b
--- /dev/null
+++ b/proto/Unk3000_IBNIGBFIEEF.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1735
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_IBNIGBFIEEF {
+ int32 retcode = 4;
+}
diff --git a/proto/Unk3000_ICLKJJNGOHN.proto b/proto/Unk3000_ICLKJJNGOHN.proto
new file mode 100644
index 00000000..158e3046
--- /dev/null
+++ b/proto/Unk3000_ICLKJJNGOHN.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_KEJLPBEOHNH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_ICLKJJNGOHN {
+ bool is_finished = 10;
+ uint32 max_score = 3;
+ uint32 stage_id = 4;
+ repeated Unk3000_KEJLPBEOHNH Unk2700_GMAEHKMDIGG = 6;
+}
diff --git a/proto/Unk3000_IGCECHKNKOO.proto b/proto/Unk3000_IGCECHKNKOO.proto
new file mode 100644
index 00000000..22706d30
--- /dev/null
+++ b/proto/Unk3000_IGCECHKNKOO.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21804
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_IGCECHKNKOO {
+ int32 retcode = 6;
+ uint32 level_id = 9;
+}
diff --git a/proto/Unk3000_IIBHKLNAHHC.proto b/proto/Unk3000_IIBHKLNAHHC.proto
new file mode 100644
index 00000000..44506c58
--- /dev/null
+++ b/proto/Unk3000_IIBHKLNAHHC.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_IIBHKLNAHHC {
+ uint32 level_id = 15;
+ uint32 max_score = 9;
+ bool is_open = 10;
+}
diff --git a/proto/Unk3000_ILLNKBDNGKP.proto b/proto/Unk3000_ILLNKBDNGKP.proto
new file mode 100644
index 00000000..59a8852d
--- /dev/null
+++ b/proto/Unk3000_ILLNKBDNGKP.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_DCHMAMFIFOF.proto";
+import "Unk3000_HGBNOCJBDEK.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_ILLNKBDNGKP {
+ repeated Unk3000_HGBNOCJBDEK Unk2700_PHKHIPLDOOA = 5;
+ repeated Unk3000_DCHMAMFIFOF Unk3000_AIENCMLMCBE = 7;
+}
diff --git a/proto/Unk3000_IMLAPBGLBFF.proto b/proto/Unk3000_IMLAPBGLBFF.proto
new file mode 100644
index 00000000..e9dfae94
--- /dev/null
+++ b/proto/Unk3000_IMLAPBGLBFF.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1687
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_IMLAPBGLBFF {}
diff --git a/proto/Unk3000_INJDOLGMLAG.proto b/proto/Unk3000_INJDOLGMLAG.proto
new file mode 100644
index 00000000..b549891b
--- /dev/null
+++ b/proto/Unk3000_INJDOLGMLAG.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk3000_INJDOLGMLAG {
+ Unk3000_INJDOLGMLAG_Unk3000_AHABODBKNKA = 0;
+ Unk3000_INJDOLGMLAG_Unk3000_IGJICIAJPFD = 1;
+ Unk3000_INJDOLGMLAG_Unk3000_KEEDEFPAJJG = 2;
+}
diff --git a/proto/Unk3000_IPAKLDNKDAO.proto b/proto/Unk3000_IPAKLDNKDAO.proto
new file mode 100644
index 00000000..8280a9f0
--- /dev/null
+++ b/proto/Unk3000_IPAKLDNKDAO.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6275
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_IPAKLDNKDAO {
+ uint32 Unk3000_FJIJOIMJMPF = 8;
+}
diff --git a/proto/Unk3000_JACOCADDNFE.proto b/proto/Unk3000_JACOCADDNFE.proto
new file mode 100644
index 00000000..9906bdd3
--- /dev/null
+++ b/proto/Unk3000_JACOCADDNFE.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_JACOCADDNFE {
+ bool is_trial = 8;
+ uint64 avatar_id = 2;
+}
diff --git a/proto/Unk3000_JDCOHPBDPED.proto b/proto/Unk3000_JDCOHPBDPED.proto
new file mode 100644
index 00000000..8f847d56
--- /dev/null
+++ b/proto/Unk3000_JDCOHPBDPED.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CompoundQueueData.proto";
+import "ItemParam.proto";
+import "Unk3000_PKHPBOIDLEA.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 125
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_JDCOHPBDPED {
+ repeated ItemParam Unk3100_HFOFIMOGDBD = 2;
+ Unk3000_PKHPBOIDLEA Unk3000_CNOABNNCPOL = 6;
+ int32 retcode = 7;
+ repeated CompoundQueueData compound_que_data_list = 1;
+}
diff --git a/proto/Unk3000_JFOGFMJDFFF.proto b/proto/Unk3000_JFOGFMJDFFF.proto
new file mode 100644
index 00000000..433d8841
--- /dev/null
+++ b/proto/Unk3000_JFOGFMJDFFF.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_JFOGFMJDFFF {
+ bool Unk3000_ADJNBMKCHAA = 9;
+}
diff --git a/proto/Unk3000_JIEPEGAHDNH.proto b/proto/Unk3000_JIEPEGAHDNH.proto
new file mode 100644
index 00000000..dc4bfa69
--- /dev/null
+++ b/proto/Unk3000_JIEPEGAHDNH.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 24152
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_JIEPEGAHDNH {
+ uint32 level_id = 1;
+ int32 retcode = 8;
+}
diff --git a/proto/Unk3000_JIMGCFDPFCK.proto b/proto/Unk3000_JIMGCFDPFCK.proto
new file mode 100644
index 00000000..61eca5ab
--- /dev/null
+++ b/proto/Unk3000_JIMGCFDPFCK.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 20754
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_JIMGCFDPFCK {
+ uint32 Unk2700_MDJOPHOHFDB = 11;
+ uint32 total_num = 5;
+}
diff --git a/proto/Unk3000_KEJGDDMMBLP.proto b/proto/Unk3000_KEJGDDMMBLP.proto
new file mode 100644
index 00000000..06f19ee7
--- /dev/null
+++ b/proto/Unk3000_KEJGDDMMBLP.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_PONJHEGKBBP.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6376
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_KEJGDDMMBLP {
+ repeated Unk3000_PONJHEGKBBP Unk3000_EIHLJGPJDJM = 14;
+}
diff --git a/proto/Unk3000_KEJLPBEOHNH.proto b/proto/Unk3000_KEJLPBEOHNH.proto
new file mode 100644
index 00000000..e93bdb66
--- /dev/null
+++ b/proto/Unk3000_KEJLPBEOHNH.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_JACOCADDNFE.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_KEJLPBEOHNH {
+ repeated Unk3000_JACOCADDNFE avatar_info_list = 13;
+}
diff --git a/proto/Unk3000_KGDKKLOOIPG.proto b/proto/Unk3000_KGDKKLOOIPG.proto
new file mode 100644
index 00000000..0396cf2f
--- /dev/null
+++ b/proto/Unk3000_KGDKKLOOIPG.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 457
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_KGDKKLOOIPG {
+ int32 retcode = 15;
+ uint32 Unk3000_CCNCELKPPFN = 14;
+ uint32 Unk3000_OIIEJOKFHPP = 13;
+ uint32 Unk3000_CIOLEGEHDAC = 1;
+}
diff --git a/proto/Unk3000_KHFMBKILMMD.proto b/proto/Unk3000_KHFMBKILMMD.proto
new file mode 100644
index 00000000..7ece94a2
--- /dev/null
+++ b/proto/Unk3000_KHFMBKILMMD.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 24081
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_KHFMBKILMMD {
+ int32 retcode = 12;
+}
diff --git a/proto/Unk3000_KIDDGDPKBEN.proto b/proto/Unk3000_KIDDGDPKBEN.proto
new file mode 100644
index 00000000..4abbe9b5
--- /dev/null
+++ b/proto/Unk3000_KIDDGDPKBEN.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1729
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_KIDDGDPKBEN {
+ uint32 Unk3000_GCAJHPHIEAA = 15;
+ int32 retcode = 4;
+}
diff --git a/proto/Unk3000_KJNIKBPKAED.proto b/proto/Unk3000_KJNIKBPKAED.proto
new file mode 100644
index 00000000..34321b4c
--- /dev/null
+++ b/proto/Unk3000_KJNIKBPKAED.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 461
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_KJNIKBPKAED {
+ int32 retcode = 5;
+ uint32 Unk3000_CFDMLGKNLKL = 14;
+ uint32 Unk3000_CIOLEGEHDAC = 13;
+}
diff --git a/proto/Unk3000_KKHPGFINACH.proto b/proto/Unk3000_KKHPGFINACH.proto
new file mode 100644
index 00000000..ebd8e4b8
--- /dev/null
+++ b/proto/Unk3000_KKHPGFINACH.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 24602
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_KKHPGFINACH {
+ uint32 level_id = 12;
+}
diff --git a/proto/Unk3000_KOKEHAPLNHF.proto b/proto/Unk3000_KOKEHAPLNHF.proto
new file mode 100644
index 00000000..13de827c
--- /dev/null
+++ b/proto/Unk3000_KOKEHAPLNHF.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6190
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_KOKEHAPLNHF {
+ int32 Unk3000_ACPIAKFPDND = 12;
+ uint32 scene_id = 10;
+ int32 query_id = 11;
+
+ enum Unk3000_GKFABJEJMKB {
+ Unk3000_GKFABJEJMKB_Unk3000_IEAAFHCHOIA = 0;
+ Unk3000_GKFABJEJMKB_Unk3000_DBHGONMGIOJ = 1;
+ }
+}
diff --git a/proto/Unk3000_LAIAGAPKPLB.proto b/proto/Unk3000_LAIAGAPKPLB.proto
new file mode 100644
index 00000000..5ccb94b3
--- /dev/null
+++ b/proto/Unk3000_LAIAGAPKPLB.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3113
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_LAIAGAPKPLB {
+ repeated uint32 Unk3000_KJJKONKEINI = 7;
+}
diff --git a/proto/Unk3000_LBNFMLHLBIH.proto b/proto/Unk3000_LBNFMLHLBIH.proto
new file mode 100644
index 00000000..3a2e4252
--- /dev/null
+++ b/proto/Unk3000_LBNFMLHLBIH.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MathQuaternion.proto";
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_LBNFMLHLBIH {
+ Unk3000_GPHBIBGMHJN type = 2;
+ int32 Unk3000_MFHLAJACMFA = 11;
+ MathQuaternion rotation = 7;
+ Vector center = 13;
+ Vector Unk3000_LNHPLNEBBIP = 14;
+
+ enum Unk3000_GPHBIBGMHJN {
+ Unk3000_GPHBIBGMHJN_OBSTACLE_SHAPE_CAPSULE = 0;
+ Unk3000_GPHBIBGMHJN_OBSTACLE_SHAPE_BOX = 1;
+ }
+}
diff --git a/proto/Unk3000_LHEMAMBKEKI.proto b/proto/Unk3000_LHEMAMBKEKI.proto
new file mode 100644
index 00000000..1893803f
--- /dev/null
+++ b/proto/Unk3000_LHEMAMBKEKI.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6107
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_LHEMAMBKEKI {
+ int32 retcode = 7;
+}
diff --git a/proto/Unk3000_LJIMEHHNHJA.proto b/proto/Unk3000_LJIMEHHNHJA.proto
new file mode 100644
index 00000000..7b0a4917
--- /dev/null
+++ b/proto/Unk3000_LJIMEHHNHJA.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3152
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_LJIMEHHNHJA {
+ int32 retcode = 4;
+ repeated uint32 Unk3000_CKLBBGHIIFC = 6;
+}
diff --git a/proto/Unk3000_LLBCFCDMCID.proto b/proto/Unk3000_LLBCFCDMCID.proto
new file mode 100644
index 00000000..43b693cd
--- /dev/null
+++ b/proto/Unk3000_LLBCFCDMCID.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_JACOCADDNFE.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 24312
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_LLBCFCDMCID {
+ uint32 stage_id = 13;
+ uint32 difficulty = 2;
+ repeated Unk3000_JACOCADDNFE avatar_info_list = 7;
+}
diff --git a/proto/Unk3000_LLBHCMKJJHB.proto b/proto/Unk3000_LLBHCMKJJHB.proto
new file mode 100644
index 00000000..7b90d486
--- /dev/null
+++ b/proto/Unk3000_LLBHCMKJJHB.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_LLBHCMKJJHB {
+ uint32 scene_id = 5;
+ Vector pos = 9;
+ uint32 group_id = 7;
+ uint32 config_id = 3;
+}
diff --git a/proto/Unk3000_LNCOEOMFKAO.proto b/proto/Unk3000_LNCOEOMFKAO.proto
new file mode 100644
index 00000000..1ca9988e
--- /dev/null
+++ b/proto/Unk3000_LNCOEOMFKAO.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_LNCOEOMFKAO {
+ uint32 Unk3000_JCGKNMJFPGC = 1;
+ uint32 Unk3000_DGDIBEKBBLG = 2;
+}
diff --git a/proto/Unk3000_MEFJDDHIAOK.proto b/proto/Unk3000_MEFJDDHIAOK.proto
new file mode 100644
index 00000000..816ba139
--- /dev/null
+++ b/proto/Unk3000_MEFJDDHIAOK.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6135
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_MEFJDDHIAOK {
+ uint32 version = 14;
+ uint32 scene_id = 15;
+}
diff --git a/proto/Unk3000_MFCAIADEPGJ.proto b/proto/Unk3000_MFCAIADEPGJ.proto
new file mode 100644
index 00000000..8680b3da
--- /dev/null
+++ b/proto/Unk3000_MFCAIADEPGJ.proto
@@ -0,0 +1,40 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6198
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_MFCAIADEPGJ {
+ Unk3000_PNOAFGLCLPG query_status = 7;
+ repeated int64 index = 3;
+ repeated Vector corners = 14;
+ repeated int32 level = 1;
+ int32 retcode = 8;
+ int32 query_id = 9;
+
+ enum Unk3000_PNOAFGLCLPG {
+ Unk3000_PNOAFGLCLPG_STATUS_FAIL = 0;
+ Unk3000_PNOAFGLCLPG_STATUS_SUCC = 1;
+ Unk3000_PNOAFGLCLPG_STATUS_PARTIAL = 2;
+ }
+}
diff --git a/proto/Unk3000_MFHOOFLHNPH.proto b/proto/Unk3000_MFHOOFLHNPH.proto
new file mode 100644
index 00000000..75c04066
--- /dev/null
+++ b/proto/Unk3000_MFHOOFLHNPH.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 419
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_MFHOOFLHNPH {
+ uint32 Unk3000_CFDMLGKNLKL = 2;
+ uint32 Unk3000_CIOLEGEHDAC = 4;
+}
diff --git a/proto/Unk3000_MOIPPIJMIJC.proto b/proto/Unk3000_MOIPPIJMIJC.proto
new file mode 100644
index 00000000..deb6e361
--- /dev/null
+++ b/proto/Unk3000_MOIPPIJMIJC.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_INJDOLGMLAG.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3323
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_MOIPPIJMIJC {
+ uint32 Unk3000_BBNOIPMEOOJ = 14;
+ Unk3000_INJDOLGMLAG Unk3000_ABHKMADEKEA = 11;
+}
diff --git a/proto/Unk3000_NBGBGODDBMP.proto b/proto/Unk3000_NBGBGODDBMP.proto
new file mode 100644
index 00000000..71536153
--- /dev/null
+++ b/proto/Unk3000_NBGBGODDBMP.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_LBNFMLHLBIH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6121
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_NBGBGODDBMP {
+ bool Unk3000_PHOPHGOGIIK = 12;
+ Unk3000_LBNFMLHLBIH Unk3000_APCKCDLMGMN = 13;
+ int32 query_id = 9;
+ uint32 scene_id = 3;
+}
diff --git a/proto/Unk3000_NHPPMHHJPMJ.proto b/proto/Unk3000_NHPPMHHJPMJ.proto
new file mode 100644
index 00000000..731b26ec
--- /dev/null
+++ b/proto/Unk3000_NHPPMHHJPMJ.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 20005
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_NHPPMHHJPMJ {
+ uint32 final_score = 11;
+ uint32 Unk3000_MKFIPLFHJNE = 15;
+ bool is_success = 6;
+ uint32 level_id = 10;
+ bool is_new_record = 2;
+}
diff --git a/proto/Unk3000_NJNPNJDFEOL.proto b/proto/Unk3000_NJNPNJDFEOL.proto
new file mode 100644
index 00000000..8e9af976
--- /dev/null
+++ b/proto/Unk3000_NJNPNJDFEOL.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6112
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_NJNPNJDFEOL {}
diff --git a/proto/Unk3000_NLFNMGEJDPG.proto b/proto/Unk3000_NLFNMGEJDPG.proto
new file mode 100644
index 00000000..760dc986
--- /dev/null
+++ b/proto/Unk3000_NLFNMGEJDPG.proto
@@ -0,0 +1,22 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_NLFNMGEJDPG {}
diff --git a/proto/Unk3000_NMEJCJFJPHM.proto b/proto/Unk3000_NMEJCJFJPHM.proto
new file mode 100644
index 00000000..7d3469fa
--- /dev/null
+++ b/proto/Unk3000_NMEJCJFJPHM.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 24923
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_NMEJCJFJPHM {
+ uint32 level_id = 1;
+ int32 retcode = 13;
+}
diff --git a/proto/Unk3000_NMENEAHJGKE.proto b/proto/Unk3000_NMENEAHJGKE.proto
new file mode 100644
index 00000000..74f7dad5
--- /dev/null
+++ b/proto/Unk3000_NMENEAHJGKE.proto
@@ -0,0 +1,50 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6172
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_NMENEAHJGKE {
+ Vector source_pos = 10;
+ bool Unk3000_HAACAHAJJOC = 5;
+ bool Unk3000_GIIFEGOPHDF = 13;
+ int32 Unk3000_FNEDHNGIFNC = 15;
+ Unk3000_MPAGIMDCEDK query_type = 8;
+ Unk3000_BCDLJFDFBFH Unk3000_OBGPENBMEGG = 1;
+ Vector destination_pos = 9;
+ int32 query_id = 11;
+ uint32 scene_id = 6;
+
+ enum Unk3000_MPAGIMDCEDK {
+ Unk3000_MPAGIMDCEDK_OPTION_NONE = 0;
+ Unk3000_MPAGIMDCEDK_OPTION_NORMAL = 1;
+ }
+
+ enum Unk3000_BCDLJFDFBFH {
+ Unk3000_BCDLJFDFBFH_Unk3000_HLJABAKPIOI = 0;
+ Unk3000_BCDLJFDFBFH_Unk3000_ICILODFJDCO = 1;
+ Unk3000_BCDLJFDFBFH_Unk3000_IHILBIFGFEE = 2;
+ Unk3000_BCDLJFDFBFH_Unk3000_IDPBKAOFEJD = 3;
+ }
+}
diff --git a/proto/Unk3000_NNPCGEAHNHM.proto b/proto/Unk3000_NNPCGEAHNHM.proto
new file mode 100644
index 00000000..49c5aa96
--- /dev/null
+++ b/proto/Unk3000_NNPCGEAHNHM.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_BOBIJEDOFKG.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6268
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_NNPCGEAHNHM {
+ repeated Unk3000_BOBIJEDOFKG Unk3000_ALGOLKMONEF = 8;
+}
diff --git a/proto/Unk3000_NOMEJNJKGGL.proto b/proto/Unk3000_NOMEJNJKGGL.proto
new file mode 100644
index 00000000..673d1c82
--- /dev/null
+++ b/proto/Unk3000_NOMEJNJKGGL.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_EMMKKLIECLB.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3345
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_NOMEJNJKGGL {
+ repeated Unk3000_EMMKKLIECLB Unk3000_GGGLAIIIJOJ = 5;
+}
diff --git a/proto/Unk3000_NPPMPMGBBLM.proto b/proto/Unk3000_NPPMPMGBBLM.proto
new file mode 100644
index 00000000..c87b1a3d
--- /dev/null
+++ b/proto/Unk3000_NPPMPMGBBLM.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_AHNHHIOAHBC.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6368
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_NPPMPMGBBLM {
+ uint32 Unk3000_JPONGJJLGKF = 7;
+ Unk3000_AHNHHIOAHBC Unk3000_HPKDIOBGGHN = 12;
+ Unk3000_AHNHHIOAHBC Unk3000_OAFAKPMJCEN = 15;
+ uint32 Unk3000_BIACMOKGHKF = 8;
+}
diff --git a/proto/Unk3000_ODGMCFAFADH.proto b/proto/Unk3000_ODGMCFAFADH.proto
new file mode 100644
index 00000000..ee0248ed
--- /dev/null
+++ b/proto/Unk3000_ODGMCFAFADH.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5907
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_ODGMCFAFADH {
+ bool is_active = 15;
+ uint32 material_id = 3;
+}
diff --git a/proto/Unk3000_OFMFFECMKLE.proto b/proto/Unk3000_OFMFFECMKLE.proto
new file mode 100644
index 00000000..9045292f
--- /dev/null
+++ b/proto/Unk3000_OFMFFECMKLE.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_FLOEPMMABMH.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_OFMFFECMKLE {
+ repeated Unk3000_FLOEPMMABMH Unk2700_FIKHCFMEOAJ = 11;
+}
diff --git a/proto/Unk3000_OJOAECCPCBP.proto b/proto/Unk3000_OJOAECCPCBP.proto
new file mode 100644
index 00000000..26f2aa72
--- /dev/null
+++ b/proto/Unk3000_OJOAECCPCBP.proto
@@ -0,0 +1,22 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_OJOAECCPCBP {}
diff --git a/proto/Unk3000_OMCBMAHOLHB.proto b/proto/Unk3000_OMCBMAHOLHB.proto
new file mode 100644
index 00000000..208a0b20
--- /dev/null
+++ b/proto/Unk3000_OMCBMAHOLHB.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_OMCBMAHOLHB {
+ uint32 buff_id = 6;
+ uint64 Unk3000_KDOLDNMNHGL = 9;
+ uint64 Unk3000_OKIDNAAKOJC = 4;
+}
diff --git a/proto/Unk3000_PCGBDJJOIHH.proto b/proto/Unk3000_PCGBDJJOIHH.proto
new file mode 100644
index 00000000..9f565374
--- /dev/null
+++ b/proto/Unk3000_PCGBDJJOIHH.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3475
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_PCGBDJJOIHH {
+ uint32 target_entity_id = 14;
+ uint32 source_entity_id = 12;
+}
diff --git a/proto/Unk3000_PDNJDOBPEKA.proto b/proto/Unk3000_PDNJDOBPEKA.proto
new file mode 100644
index 00000000..1aa2fc2b
--- /dev/null
+++ b/proto/Unk3000_PDNJDOBPEKA.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 22882
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_PDNJDOBPEKA {
+ uint32 gallery_id = 6;
+}
diff --git a/proto/Unk3000_PHCPMFMFOMO.proto b/proto/Unk3000_PHCPMFMFOMO.proto
new file mode 100644
index 00000000..90c5d5e9
--- /dev/null
+++ b/proto/Unk3000_PHCPMFMFOMO.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23864
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_PHCPMFMFOMO {
+ uint32 Unk3000_OHKPPFPNKNF = 14;
+ uint32 reminder_id = 6;
+}
diff --git a/proto/Unk3000_PILFPILPMFO.proto b/proto/Unk3000_PILFPILPMFO.proto
new file mode 100644
index 00000000..1a363397
--- /dev/null
+++ b/proto/Unk3000_PILFPILPMFO.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3336
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_PILFPILPMFO {
+ int32 retcode = 2;
+}
diff --git a/proto/Unk3000_PJLAPMPPIAG.proto b/proto/Unk3000_PJLAPMPPIAG.proto
new file mode 100644
index 00000000..da65a415
--- /dev/null
+++ b/proto/Unk3000_PJLAPMPPIAG.proto
@@ -0,0 +1,38 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk2700_MOFABPNGIKP.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 20681
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3000_PJLAPMPPIAG {
+ bool is_new_record = 4;
+ uint32 gallery_id = 6;
+ uint32 score = 5;
+ Unk2700_MOFABPNGIKP reason = 2;
+ uint32 Unk3000_OGFOAOCCGNK = 13;
+ uint32 remain_time = 10;
+ uint32 Unk3000_HKMKHPMIIPF = 1;
+ uint32 Unk3000_GDFHJBOCONO = 8;
+ bool is_success = 7;
+ uint32 level_id = 11;
+}
diff --git a/proto/Unk3000_PKHPBOIDLEA.proto b/proto/Unk3000_PKHPBOIDLEA.proto
new file mode 100644
index 00000000..eda22a77
--- /dev/null
+++ b/proto/Unk3000_PKHPBOIDLEA.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk3000_PKHPBOIDLEA {
+ Unk3000_PKHPBOIDLEA_Unk3000_KANMGBLJEHC = 0;
+ Unk3000_PKHPBOIDLEA_Unk3000_ICFILKDKFNL = 1;
+ Unk3000_PKHPBOIDLEA_Unk3000_FBFKPBGLMAD = 2;
+ Unk3000_PKHPBOIDLEA_Unk3000_KEOIEIKLFDN = 3;
+}
diff --git a/proto/Unk3000_PNIEIHDLIDN.proto b/proto/Unk3000_PNIEIHDLIDN.proto
new file mode 100644
index 00000000..5efdb65f
--- /dev/null
+++ b/proto/Unk3000_PNIEIHDLIDN.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2207
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_PNIEIHDLIDN {
+ uint32 add_progress = 4;
+ uint32 stage = 2;
+ uint32 watcher_id = 12;
+}
diff --git a/proto/Unk3000_PONJHEGKBBP.proto b/proto/Unk3000_PONJHEGKBBP.proto
new file mode 100644
index 00000000..9c67acdd
--- /dev/null
+++ b/proto/Unk3000_PONJHEGKBBP.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3000_AHNHHIOAHBC.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3000_PONJHEGKBBP {
+ map Unk3000_MKNODEKEGJF = 6;
+ uint32 Unk3000_JPONGJJLGKF = 12;
+}
diff --git a/proto/Unk3000_PPDLLPNMJMK.proto b/proto/Unk3000_PPDLLPNMJMK.proto
new file mode 100644
index 00000000..a112de9f
--- /dev/null
+++ b/proto/Unk3000_PPDLLPNMJMK.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 500
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3000_PPDLLPNMJMK {
+ uint32 Unk3000_CFDMLGKNLKL = 4;
+ uint32 Unk3000_CIOLEGEHDAC = 9;
+}
diff --git a/proto/Unk3100_ADOMNIEPKEK.proto b/proto/Unk3100_ADOMNIEPKEK.proto
new file mode 100644
index 00000000..a76cc625
--- /dev/null
+++ b/proto/Unk3100_ADOMNIEPKEK.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3259
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3100_ADOMNIEPKEK {
+ repeated uint32 entity_id_list = 7;
+}
diff --git a/proto/Unk3100_AHIKHIOFBJJ.proto b/proto/Unk3100_AHIKHIOFBJJ.proto
new file mode 100644
index 00000000..406693bd
--- /dev/null
+++ b/proto/Unk3100_AHIKHIOFBJJ.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_AHIKHIOFBJJ {
+ bool is_open = 7;
+ uint32 gadget_id = 8;
+}
diff --git a/proto/Unk3100_AILMJOHBIDC.proto b/proto/Unk3100_AILMJOHBIDC.proto
new file mode 100644
index 00000000..05f9cd26
--- /dev/null
+++ b/proto/Unk3100_AILMJOHBIDC.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 24201
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_AILMJOHBIDC {
+ repeated uint32 Unk3100_KHPFAPCPGBE = 15;
+ uint32 coin_c = 12;
+ uint32 Unk3100_BCHHFFJEJCD = 4;
+}
diff --git a/proto/Unk3100_ALLPCCMKIGD.proto b/proto/Unk3100_ALLPCCMKIGD.proto
new file mode 100644
index 00000000..d757c990
--- /dev/null
+++ b/proto/Unk3100_ALLPCCMKIGD.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21700
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3100_ALLPCCMKIGD {
+ uint32 Unk3100_HGKBAEHFMKI = 1;
+ repeated uint32 Unk3100_CKOJIKGDEPO = 14;
+}
diff --git a/proto/Unk3100_ANELMFHNGHE.proto b/proto/Unk3100_ANELMFHNGHE.proto
new file mode 100644
index 00000000..89210d0b
--- /dev/null
+++ b/proto/Unk3100_ANELMFHNGHE.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 22864
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3100_ANELMFHNGHE {
+ uint32 Unk3100_IFHHJEFBLNI = 5;
+}
diff --git a/proto/Unk3100_APOOGGMHCJI.proto b/proto/Unk3100_APOOGGMHCJI.proto
new file mode 100644
index 00000000..72200fb0
--- /dev/null
+++ b/proto/Unk3100_APOOGGMHCJI.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_APOOGGMHCJI {
+ uint32 Unk3100_LINPNGLHPDL = 10;
+ bool is_open = 11;
+ bool Unk2700_MMNILGLDHHD = 5;
+ uint32 stage_id = 1;
+}
diff --git a/proto/Unk3100_BDEGPHDCIDN.proto b/proto/Unk3100_BDEGPHDCIDN.proto
new file mode 100644
index 00000000..02e01d39
--- /dev/null
+++ b/proto/Unk3100_BDEGPHDCIDN.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_BDEGPHDCIDN {
+ uint32 stage_id = 14;
+ uint32 level_id = 11;
+ bool Unk2700_MMNILGLDHHD = 8;
+ bool is_open = 6;
+}
diff --git a/proto/Unk3100_BPALEKJDCCC.proto b/proto/Unk3100_BPALEKJDCCC.proto
new file mode 100644
index 00000000..63566cfb
--- /dev/null
+++ b/proto/Unk3100_BPALEKJDCCC.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 24244
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_BPALEKJDCCC {
+ uint32 Unk3000_OHKPPFPNKNF = 10;
+}
diff --git a/proto/Unk3100_CEKADDKEFOB.proto b/proto/Unk3100_CEKADDKEFOB.proto
new file mode 100644
index 00000000..88b7722a
--- /dev/null
+++ b/proto/Unk3100_CEKADDKEFOB.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3100_GINCGFOCGAI.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 20676
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3100_CEKADDKEFOB {
+ uint32 Unk3100_IFHHJEFBLNI = 9;
+ repeated Unk3100_GINCGFOCGAI Unk3100_AELOKNKDCDE = 3;
+}
diff --git a/proto/Unk3100_DFOIHKPBGPD.proto b/proto/Unk3100_DFOIHKPBGPD.proto
new file mode 100644
index 00000000..7c67de33
--- /dev/null
+++ b/proto/Unk3100_DFOIHKPBGPD.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21780
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3100_DFOIHKPBGPD {
+ uint32 stage_id = 7;
+}
diff --git a/proto/Unk3100_DJEOICDIKKD.proto b/proto/Unk3100_DJEOICDIKKD.proto
new file mode 100644
index 00000000..e5b8e923
--- /dev/null
+++ b/proto/Unk3100_DJEOICDIKKD.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21951
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_DJEOICDIKKD {
+ int32 retcode = 4;
+}
diff --git a/proto/Unk3100_DNDKAGHCAKF.proto b/proto/Unk3100_DNDKAGHCAKF.proto
new file mode 100644
index 00000000..05871a12
--- /dev/null
+++ b/proto/Unk3100_DNDKAGHCAKF.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 20626
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3100_DNDKAGHCAKF {
+ uint32 Unk3100_CIJIHEGPEMB = 10;
+}
diff --git a/proto/Unk3100_DPCPLEIJPDB.proto b/proto/Unk3100_DPCPLEIJPDB.proto
new file mode 100644
index 00000000..defa25bb
--- /dev/null
+++ b/proto/Unk3100_DPCPLEIJPDB.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5563
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_DPCPLEIJPDB {
+ uint32 Unk3100_CHGHHBNGNHH = 6;
+ bool is_start = 8;
+ uint32 Unk3100_MPJOMKKCHKC = 12;
+ bool is_success = 7;
+ uint32 Unk3100_KAKJMGFBOOH = 13;
+ uint32 Unk3100_CDJOHNPJAAB = 11;
+ uint32 Unk3100_EDMNOAPJIDC = 1;
+}
diff --git a/proto/Unk3100_EDNBMJJHOKM.proto b/proto/Unk3100_EDNBMJJHOKM.proto
new file mode 100644
index 00000000..0e5552e6
--- /dev/null
+++ b/proto/Unk3100_EDNBMJJHOKM.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 24712
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_EDNBMJJHOKM {
+ int32 retcode = 5;
+}
diff --git a/proto/Unk3100_ENNGOAOEIKE.proto b/proto/Unk3100_ENNGOAOEIKE.proto
new file mode 100644
index 00000000..9b2dc0fe
--- /dev/null
+++ b/proto/Unk3100_ENNGOAOEIKE.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21814
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_ENNGOAOEIKE {
+ int32 retcode = 2;
+ repeated uint32 Unk3100_CKOJIKGDEPO = 3;
+ uint32 Unk3100_HGKBAEHFMKI = 14;
+}
diff --git a/proto/Unk3100_FGDECIHNIJG.proto b/proto/Unk3100_FGDECIHNIJG.proto
new file mode 100644
index 00000000..b101163f
--- /dev/null
+++ b/proto/Unk3100_FGDECIHNIJG.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3100_MCIBDBBEKEK.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6395
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_FGDECIHNIJG {
+ repeated Unk3100_MCIBDBBEKEK Unk3100_IMPDKHPHALG = 2;
+}
diff --git a/proto/Unk3100_FHDBCIIMLLP.proto b/proto/Unk3100_FHDBCIIMLLP.proto
new file mode 100644
index 00000000..c4ee86f9
--- /dev/null
+++ b/proto/Unk3100_FHDBCIIMLLP.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3100_BDEGPHDCIDN.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_FHDBCIIMLLP {
+ bool is_open = 5;
+ uint32 Unk3100_OJNFPCDHBLH = 11;
+ uint32 open_time = 3;
+ bool Unk2700_MMNILGLDHHD = 10;
+ uint32 stage_id = 4;
+ map Unk3100_PBAJFKPPMMF = 2;
+}
diff --git a/proto/Unk3100_FKKBIDJONKF.proto b/proto/Unk3100_FKKBIDJONKF.proto
new file mode 100644
index 00000000..7912d0dc
--- /dev/null
+++ b/proto/Unk3100_FKKBIDJONKF.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_FKKBIDJONKF {
+ bool Unk2700_MMNILGLDHHD = 6;
+ uint32 open_time = 7;
+ bool is_open = 5;
+ uint32 stage_id = 3;
+}
diff --git a/proto/Unk3100_FMAINCNFHOL.proto b/proto/Unk3100_FMAINCNFHOL.proto
new file mode 100644
index 00000000..51193584
--- /dev/null
+++ b/proto/Unk3100_FMAINCNFHOL.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 22181
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_FMAINCNFHOL {
+ int32 retcode = 6;
+ uint32 Unk3100_FOOACIGDBFB = 3;
+}
diff --git a/proto/Unk3100_GINCGFOCGAI.proto b/proto/Unk3100_GINCGFOCGAI.proto
new file mode 100644
index 00000000..0cbec524
--- /dev/null
+++ b/proto/Unk3100_GINCGFOCGAI.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_GINCGFOCGAI {
+ repeated uint32 Unk3100_CKOJIKGDEPO = 5;
+ uint32 Unk3100_MBKPGAKHKBG = 9;
+ uint32 Unk3100_CIJIHEGPEMB = 2;
+ uint32 Unk3100_JBLGMELHEEM = 7;
+ repeated uint32 Unk3100_MMIDNFAOMHG = 15;
+}
diff --git a/proto/Unk3100_HEJFCDEKFOE.proto b/proto/Unk3100_HEJFCDEKFOE.proto
new file mode 100644
index 00000000..80f48a1a
--- /dev/null
+++ b/proto/Unk3100_HEJFCDEKFOE.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_HEJFCDEKFOE {
+ uint32 open_time = 10;
+ bool Unk2700_MMNILGLDHHD = 3;
+ bool is_open = 9;
+ uint32 Unk3100_HBJLJFAPPCC = 12;
+ uint32 stage_id = 7;
+}
diff --git a/proto/Unk3100_HJALLGOLFGL.proto b/proto/Unk3100_HJALLGOLFGL.proto
new file mode 100644
index 00000000..9d0859ae
--- /dev/null
+++ b/proto/Unk3100_HJALLGOLFGL.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum Unk3100_HJALLGOLFGL {
+ Unk3100_HJALLGOLFGL_Unk3100_KAADIPNHPAM = 0;
+ Unk3100_HJALLGOLFGL_Unk3100_CAHECEKOFPF = 1;
+ Unk3100_HJALLGOLFGL_Unk3100_KHCKNDLKPAB = 2;
+ Unk3100_HJALLGOLFGL_Unk3100_CNAOCFDKPBN = 3;
+ Unk3100_HJALLGOLFGL_Unk3100_DOPCNHIOGOB = 4;
+}
diff --git a/proto/Unk3100_IALGADDCFNN.proto b/proto/Unk3100_IALGADDCFNN.proto
new file mode 100644
index 00000000..6ff084ae
--- /dev/null
+++ b/proto/Unk3100_IALGADDCFNN.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_IALGADDCFNN {
+ repeated uint32 Unk3100_CKABCMCIPLM = 5;
+ repeated uint32 Unk3100_CJIAFHOLGPB = 14;
+ repeated uint32 Unk3100_CKOJIKGDEPO = 2;
+ uint32 Unk3100_MBDCDNHEDFO = 3;
+ uint32 Unk3100_CIJIHEGPEMB = 10;
+}
diff --git a/proto/Unk3100_IHGFOKNPCKJ.proto b/proto/Unk3100_IHGFOKNPCKJ.proto
new file mode 100644
index 00000000..accb3b10
--- /dev/null
+++ b/proto/Unk3100_IHGFOKNPCKJ.proto
@@ -0,0 +1,40 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3160
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_IHGFOKNPCKJ {
+ Vector look_pos = 8;
+ uint32 template_id = 5;
+ Vector follow_pos = 2;
+ uint32 entity_id = 12;
+ repeated string other_params = 13;
+ Unk3100_DDADIDBLJGO Unk3100_JHIMHLNPLGA = 9;
+
+ enum Unk3100_DDADIDBLJGO {
+ Unk3100_DDADIDBLJGO_Unk3100_CHMICKLPAKA = 0;
+ Unk3100_DDADIDBLJGO_Unk3100_GEJFGKILBLO = 1;
+ Unk3100_DDADIDBLJGO_Unk3100_HAFBECHLCIE = 2;
+ }
+}
diff --git a/proto/Unk3100_IOJKKDNELHE.proto b/proto/Unk3100_IOJKKDNELHE.proto
new file mode 100644
index 00000000..9efb2e50
--- /dev/null
+++ b/proto/Unk3100_IOJKKDNELHE.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3100_APOOGGMHCJI.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_IOJKKDNELHE {
+ uint32 open_time = 1;
+ uint32 stage_id = 15;
+ bool Unk2700_MMNILGLDHHD = 13;
+ bool is_open = 10;
+ map Unk3100_EAGEPOFAMDB = 2;
+}
diff --git a/proto/Unk3100_JBBEJECGEFI.proto b/proto/Unk3100_JBBEJECGEFI.proto
new file mode 100644
index 00000000..c6956ebf
--- /dev/null
+++ b/proto/Unk3100_JBBEJECGEFI.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 22830
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_JBBEJECGEFI {
+ uint32 stage_id = 11;
+}
diff --git a/proto/Unk3100_JJKFAMDHEBL.proto b/proto/Unk3100_JJKFAMDHEBL.proto
new file mode 100644
index 00000000..04d58dd0
--- /dev/null
+++ b/proto/Unk3100_JJKFAMDHEBL.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 24860
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_JJKFAMDHEBL {
+ uint32 Unk3100_CIJIHEGPEMB = 15;
+ int32 retcode = 9;
+ repeated uint32 Unk3100_CKOJIKGDEPO = 2;
+}
diff --git a/proto/Unk3100_JJNBDPJAFKK.proto b/proto/Unk3100_JJNBDPJAFKK.proto
new file mode 100644
index 00000000..7d3393be
--- /dev/null
+++ b/proto/Unk3100_JJNBDPJAFKK.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5526
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_JJNBDPJAFKK {
+ uint32 Unk3100_MPJOMKKCHKC = 3;
+ uint32 Unk3100_HFOHBJOGEPJ = 7;
+ uint32 Unk3100_CHEKINPIFFM = 9;
+ uint32 Unk3100_CDJOHNPJAAB = 1;
+ uint32 Unk3100_KAKJMGFBOOH = 5;
+ uint32 Unk3100_EDMNOAPJIDC = 10;
+ uint32 Unk3100_CHGHHBNGNHH = 4;
+ uint32 Unk3100_OIOIEMJMNNI = 14;
+}
diff --git a/proto/Unk3100_JKGDHFGAJMH.proto b/proto/Unk3100_JKGDHFGAJMH.proto
new file mode 100644
index 00000000..7b6725ec
--- /dev/null
+++ b/proto/Unk3100_JKGDHFGAJMH.proto
@@ -0,0 +1,40 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3100_JKGDHFGAJMH_FirstStageInfo.proto";
+import "Unk3100_JKGDHFGAJMH_SecondStageInfo.proto";
+import "Unk3100_JKGDHFGAJMH_ThirdStageInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 20324
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_JKGDHFGAJMH {
+ bool Unk3100_CNJDDIKJHLL = 11;
+ uint32 stage_id = 9;
+ uint32 Unk3100_ONLIFLEFPBO = 12;
+ uint32 Unk3100_PPEIAMHIJBP = 6;
+ bool is_new_record = 1;
+ oneof info {
+ Unk3100_JKGDHFGAJMH_FirstStageInfo first_stage_info = 4;
+ Unk3100_JKGDHFGAJMH_SecondStageInfo second_stage_info = 10;
+ Unk3100_JKGDHFGAJMH_ThirdStageInfo third_stage_info = 8;
+ }
+}
diff --git a/proto/Unk3100_JKGDHFGAJMH_FirstStageInfo.proto b/proto/Unk3100_JKGDHFGAJMH_FirstStageInfo.proto
new file mode 100644
index 00000000..b62b89bc
--- /dev/null
+++ b/proto/Unk3100_JKGDHFGAJMH_FirstStageInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_JKGDHFGAJMH_FirstStageInfo {
+ uint32 Unk3100_KCFEMMIGNPG = 10;
+ uint32 Unk3100_BKOPHMFCPGD = 2;
+ uint32 Unk3100_OMMEHLGCBHP = 6;
+ uint32 score = 14;
+}
diff --git a/proto/Unk3100_JKGDHFGAJMH_SecondStageInfo.proto b/proto/Unk3100_JKGDHFGAJMH_SecondStageInfo.proto
new file mode 100644
index 00000000..a758623b
--- /dev/null
+++ b/proto/Unk3100_JKGDHFGAJMH_SecondStageInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_JKGDHFGAJMH_SecondStageInfo {
+ map Unk3100_IDNCFGLFIPF = 6;
+ uint32 Unk3100_IFMAFOGLKOO = 7;
+ uint32 total_num = 15;
+}
diff --git a/proto/Unk3100_JKGDHFGAJMH_ThirdStageInfo.proto b/proto/Unk3100_JKGDHFGAJMH_ThirdStageInfo.proto
new file mode 100644
index 00000000..35b006ca
--- /dev/null
+++ b/proto/Unk3100_JKGDHFGAJMH_ThirdStageInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_JKGDHFGAJMH_ThirdStageInfo {
+ uint32 left_time = 13;
+ bool is_success = 9;
+}
diff --git a/proto/Unk3100_JLKDDKHHFPO.proto b/proto/Unk3100_JLKDDKHHFPO.proto
new file mode 100644
index 00000000..3f9f1140
--- /dev/null
+++ b/proto/Unk3100_JLKDDKHHFPO.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_JLKDDKHHFPO {
+ uint32 Unk3100_FOOACIGDBFB = 7;
+ repeated ItemParam Unk3100_FGHHLOJHMIK = 9;
+}
diff --git a/proto/Unk3100_JNOIANKCPPG.proto b/proto/Unk3100_JNOIANKCPPG.proto
new file mode 100644
index 00000000..3a34c9e9
--- /dev/null
+++ b/proto/Unk3100_JNOIANKCPPG.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 20086
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_JNOIANKCPPG {
+ uint32 Unk3100_LINPNGLHPDL = 3;
+}
diff --git a/proto/Unk3100_KLKDONEJEEG.proto b/proto/Unk3100_KLKDONEJEEG.proto
new file mode 100644
index 00000000..85eb7f2a
--- /dev/null
+++ b/proto/Unk3100_KLKDONEJEEG.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23462
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_KLKDONEJEEG {
+ repeated uint32 Unk3100_EKPCGKFHODO = 8;
+ uint32 Unk3100_IFHHJEFBLNI = 12;
+ repeated uint32 Unk3100_ENBGIALBGIN = 10;
+ repeated uint32 Unk3100_FBGLNABGPMH = 11;
+ uint32 Unk3100_IOCOGKAIBEN = 9;
+ uint32 Unk3100_NMPJHOLLDGD = 1;
+ map Unk3100_CJIDDCFJDDJ = 3;
+ int32 retcode = 7;
+ uint32 Unk3100_JCIBNDGDKPK = 14;
+ uint32 Unk3100_PKFCBGPFEOE = 15;
+}
diff --git a/proto/Unk3100_LDKPEAGMAGH.proto b/proto/Unk3100_LDKPEAGMAGH.proto
new file mode 100644
index 00000000..6c01a6d6
--- /dev/null
+++ b/proto/Unk3100_LDKPEAGMAGH.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 20993
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_LDKPEAGMAGH {
+ int32 retcode = 1;
+}
diff --git a/proto/Unk3100_LFIMJOCPILC.proto b/proto/Unk3100_LFIMJOCPILC.proto
new file mode 100644
index 00000000..5147ae80
--- /dev/null
+++ b/proto/Unk3100_LFIMJOCPILC.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_LFIMJOCPILC {
+ repeated double Unk3100_KMAEGMEJGCK = 1;
+}
diff --git a/proto/Unk3100_MCIBDBBEKEK.proto b/proto/Unk3100_MCIBDBBEKEK.proto
new file mode 100644
index 00000000..9e39d1b6
--- /dev/null
+++ b/proto/Unk3100_MCIBDBBEKEK.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_MCIBDBBEKEK {
+ repeated uint32 Unk3100_NNOCAMHJFAO = 8;
+ uint32 Unk3100_NDGIJLCIEDB = 13;
+}
diff --git a/proto/Unk3100_MDELBDDANOC.proto b/proto/Unk3100_MDELBDDANOC.proto
new file mode 100644
index 00000000..7b8bc54f
--- /dev/null
+++ b/proto/Unk3100_MDELBDDANOC.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_MDELBDDANOC {
+ Vector init_pos = 13;
+ Vector forward = 2;
+}
diff --git a/proto/Unk3100_MDGBODAFNDA.proto b/proto/Unk3100_MDGBODAFNDA.proto
new file mode 100644
index 00000000..37a888ef
--- /dev/null
+++ b/proto/Unk3100_MDGBODAFNDA.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3100_MCIBDBBEKEK.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6370
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_MDGBODAFNDA {
+ repeated Unk3100_MCIBDBBEKEK Unk3100_DAOIJMIAAKP = 13;
+}
diff --git a/proto/Unk3100_MFCGFACPOGJ.proto b/proto/Unk3100_MFCGFACPOGJ.proto
new file mode 100644
index 00000000..6d35d9bf
--- /dev/null
+++ b/proto/Unk3100_MFCGFACPOGJ.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 573
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_MFCGFACPOGJ {
+ repeated uint32 Unk3100_MKNPIHFAGEP = 1;
+}
diff --git a/proto/Unk3100_MHHKLJEDNHN.proto b/proto/Unk3100_MHHKLJEDNHN.proto
new file mode 100644
index 00000000..170ab75c
--- /dev/null
+++ b/proto/Unk3100_MHHKLJEDNHN.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 20731
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3100_MHHKLJEDNHN {}
diff --git a/proto/Unk3100_NBBMHKJHJJI.proto b/proto/Unk3100_NBBMHKJHJJI.proto
new file mode 100644
index 00000000..42d50428
--- /dev/null
+++ b/proto/Unk3100_NBBMHKJHJJI.proto
@@ -0,0 +1,48 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3100_IALGADDCFNN.proto";
+import "Unk3100_OMJPPGKDLEE.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_NBBMHKJHJJI {
+ bool Unk3100_PKKNECFBEBP = 1485;
+ bool Unk3100_IOHCNCOBALE = 15;
+ Unk3100_OMJPPGKDLEE Unk3100_CLGDGELKHLC = 11;
+ uint32 Unk3100_IFHHJEFBLNI = 7;
+ repeated uint32 Unk3100_GJLOIJIFDNI = 207;
+ bool Unk3100_FDBHCFMGHFD = 5;
+ repeated uint32 Unk3100_GIAEBCAMHIE = 8;
+ bool Unk3100_BHHJOJIOHNE = 10;
+ uint32 Unk3100_DMEBALJKLPF = 1800;
+ bool Unk3100_OECBCJGJIGJ = 2;
+ repeated uint32 Unk3100_BKOCJPHIPMJ = 14;
+ uint32 Unk3100_HHBELCHEDDM = 3;
+ map Unk3100_COPOPELALCM = 6;
+ uint32 Unk3100_NCEDBIKIAEK = 1798;
+ repeated uint32 Unk3100_CNBFLLOBGAH = 4;
+ bool Unk3100_FHADKJOEFMO = 366;
+ uint32 Unk3100_ELDLKBJPCCN = 1;
+ repeated Unk3100_IALGADDCFNN Unk3100_EBCHINDDHKP = 9;
+ uint32 Unk3100_JBLGMELHEEM = 760;
+ bool Unk3100_IDNAMCONOOL = 12;
+ bool Unk3100_IEBALILDNKL = 876;
+ repeated uint32 Unk3100_KHPFAPCPGBE = 13;
+}
diff --git a/proto/Unk3100_NNJNENGFHII.proto b/proto/Unk3100_NNJNENGFHII.proto
new file mode 100644
index 00000000..c5e2e002
--- /dev/null
+++ b/proto/Unk3100_NNJNENGFHII.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23147
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_NNJNENGFHII {
+ uint32 Unk3100_BCHHFFJEJCD = 5;
+ uint32 coin_c = 11;
+}
diff --git a/proto/Unk3100_OCAPENGJILJ.proto b/proto/Unk3100_OCAPENGJILJ.proto
new file mode 100644
index 00000000..24f43289
--- /dev/null
+++ b/proto/Unk3100_OCAPENGJILJ.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_OCAPENGJILJ {
+ bool is_open = 12;
+ uint32 open_time = 14;
+ uint32 stage_id = 8;
+}
diff --git a/proto/Unk3100_OEAPOMDPBDE.proto b/proto/Unk3100_OEAPOMDPBDE.proto
new file mode 100644
index 00000000..ee4df4ed
--- /dev/null
+++ b/proto/Unk3100_OEAPOMDPBDE.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3100_GINCGFOCGAI.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21248
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3100_OEAPOMDPBDE {
+ uint32 Unk3100_CIJIHEGPEMB = 6;
+ repeated Unk3100_GINCGFOCGAI Unk3100_AELOKNKDCDE = 9;
+ repeated uint32 Unk3100_CKOJIKGDEPO = 8;
+}
diff --git a/proto/Unk3100_OGIPKMEFMDI.proto b/proto/Unk3100_OGIPKMEFMDI.proto
new file mode 100644
index 00000000..67aa7689
--- /dev/null
+++ b/proto/Unk3100_OGIPKMEFMDI.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 22130
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_OGIPKMEFMDI {
+ uint32 Unk3100_POICNOLDOEK = 7;
+ uint32 Unk3100_IFHHJEFBLNI = 2;
+ uint32 Unk3100_PECHEBLPBAD = 5;
+ int32 retcode = 8;
+}
diff --git a/proto/Unk3100_OIDABBJEMCG.proto b/proto/Unk3100_OIDABBJEMCG.proto
new file mode 100644
index 00000000..50fd7bbd
--- /dev/null
+++ b/proto/Unk3100_OIDABBJEMCG.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CustomGadgetTreeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 20846
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3100_OIDABBJEMCG {
+ uint32 entity_id = 6;
+ CustomGadgetTreeInfo Unk2700_OCIHJFOKHPK = 11;
+}
diff --git a/proto/Unk3100_OMJOFLDLNDG.proto b/proto/Unk3100_OMJOFLDLNDG.proto
new file mode 100644
index 00000000..a526d715
--- /dev/null
+++ b/proto/Unk3100_OMJOFLDLNDG.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 24142
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_OMJOFLDLNDG {
+ uint32 Unk3100_LINPNGLHPDL = 7;
+}
diff --git a/proto/Unk3100_OMJPPGKDLEE.proto b/proto/Unk3100_OMJPPGKDLEE.proto
new file mode 100644
index 00000000..2db66ed7
--- /dev/null
+++ b/proto/Unk3100_OMJPPGKDLEE.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3100_JLKDDKHHFPO.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Unk3100_OMJPPGKDLEE {
+ map Unk3100_JHDGDENAJHO = 13;
+}
diff --git a/proto/Unk3100_PEBEPNKENON.proto b/proto/Unk3100_PEBEPNKENON.proto
new file mode 100644
index 00000000..1aba2e63
--- /dev/null
+++ b/proto/Unk3100_PEBEPNKENON.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23141
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message Unk3100_PEBEPNKENON {
+ repeated ItemParam Unk3100_JDNHCGPELBA = 3;
+ uint32 Unk3100_FOOACIGDBFB = 5;
+}
diff --git a/proto/Unk3100_PPAENPFDOOO.proto b/proto/Unk3100_PPAENPFDOOO.proto
new file mode 100644
index 00000000..3e42d9b9
--- /dev/null
+++ b/proto/Unk3100_PPAENPFDOOO.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 20733
+// EnetChannelId: 0
+// EnetIsReliable: true
+message Unk3100_PPAENPFDOOO {
+ int32 retcode = 1;
+ uint32 Unk3100_MBDCDNHEDFO = 6;
+ uint32 Unk3100_CIJIHEGPEMB = 10;
+}
diff --git a/proto/UnlockAvatarTalentReq.proto b/proto/UnlockAvatarTalentReq.proto
new file mode 100644
index 00000000..6fa9bd5b
--- /dev/null
+++ b/proto/UnlockAvatarTalentReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1072
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message UnlockAvatarTalentReq {
+ uint32 talent_id = 13;
+ uint64 avatar_guid = 3;
+}
diff --git a/proto/UnlockAvatarTalentRsp.proto b/proto/UnlockAvatarTalentRsp.proto
new file mode 100644
index 00000000..49827f19
--- /dev/null
+++ b/proto/UnlockAvatarTalentRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1098
+// EnetChannelId: 0
+// EnetIsReliable: true
+message UnlockAvatarTalentRsp {
+ uint32 talent_id = 2;
+ int32 retcode = 3;
+ uint64 avatar_guid = 10;
+}
diff --git a/proto/UnlockCoopChapterReq.proto b/proto/UnlockCoopChapterReq.proto
new file mode 100644
index 00000000..b734e639
--- /dev/null
+++ b/proto/UnlockCoopChapterReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1970
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message UnlockCoopChapterReq {
+ uint32 chapter_id = 3;
+}
diff --git a/proto/UnlockCoopChapterRsp.proto b/proto/UnlockCoopChapterRsp.proto
new file mode 100644
index 00000000..18fea832
--- /dev/null
+++ b/proto/UnlockCoopChapterRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1995
+// EnetChannelId: 0
+// EnetIsReliable: true
+message UnlockCoopChapterRsp {
+ uint32 chapter_id = 4;
+ int32 retcode = 6;
+}
diff --git a/proto/UnlockNameCardNotify.proto b/proto/UnlockNameCardNotify.proto
new file mode 100644
index 00000000..d1d2bd54
--- /dev/null
+++ b/proto/UnlockNameCardNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4006
+// EnetChannelId: 0
+// EnetIsReliable: true
+message UnlockNameCardNotify {
+ uint32 name_card_id = 8;
+}
diff --git a/proto/UnlockPersonalLineReq.proto b/proto/UnlockPersonalLineReq.proto
new file mode 100644
index 00000000..4e71ec07
--- /dev/null
+++ b/proto/UnlockPersonalLineReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 449
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message UnlockPersonalLineReq {
+ uint32 personal_line_id = 4;
+}
diff --git a/proto/UnlockPersonalLineRsp.proto b/proto/UnlockPersonalLineRsp.proto
new file mode 100644
index 00000000..fc02cacd
--- /dev/null
+++ b/proto/UnlockPersonalLineRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 491
+// EnetChannelId: 0
+// EnetIsReliable: true
+message UnlockPersonalLineRsp {
+ int32 retcode = 4;
+ uint32 personal_line_id = 10;
+ oneof param {
+ uint32 level = 11;
+ uint32 chapter_id = 6;
+ }
+}
diff --git a/proto/UnlockTransPointReq.proto b/proto/UnlockTransPointReq.proto
new file mode 100644
index 00000000..8be9ed09
--- /dev/null
+++ b/proto/UnlockTransPointReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3035
+// EnetChannelId: 1
+// EnetIsReliable: true
+// IsAllowClient: true
+message UnlockTransPointReq {
+ uint32 point_id = 12;
+ uint32 scene_id = 10;
+}
diff --git a/proto/UnlockTransPointRsp.proto b/proto/UnlockTransPointRsp.proto
new file mode 100644
index 00000000..15ac7d1a
--- /dev/null
+++ b/proto/UnlockTransPointRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3426
+// EnetChannelId: 1
+// EnetIsReliable: true
+message UnlockTransPointRsp {
+ int32 retcode = 12;
+}
diff --git a/proto/UnlockedFurnitureFormulaDataNotify.proto b/proto/UnlockedFurnitureFormulaDataNotify.proto
new file mode 100644
index 00000000..42cc46ef
--- /dev/null
+++ b/proto/UnlockedFurnitureFormulaDataNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4846
+// EnetChannelId: 0
+// EnetIsReliable: true
+message UnlockedFurnitureFormulaDataNotify {
+ repeated uint32 furniture_id_list = 15;
+ bool is_all = 11;
+}
diff --git a/proto/UnlockedFurnitureSuiteDataNotify.proto b/proto/UnlockedFurnitureSuiteDataNotify.proto
new file mode 100644
index 00000000..3547c2fc
--- /dev/null
+++ b/proto/UnlockedFurnitureSuiteDataNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4454
+// EnetChannelId: 0
+// EnetIsReliable: true
+message UnlockedFurnitureSuiteDataNotify {
+ bool is_all = 10;
+ repeated uint32 furniture_suite_id_list = 5;
+}
diff --git a/proto/UnmarkEntityInMinMapNotify.proto b/proto/UnmarkEntityInMinMapNotify.proto
new file mode 100644
index 00000000..db6a4107
--- /dev/null
+++ b/proto/UnmarkEntityInMinMapNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 219
+// EnetChannelId: 0
+// EnetIsReliable: true
+message UnmarkEntityInMinMapNotify {
+ uint32 entity_id = 8;
+}
diff --git a/proto/UpdateAbilityCreatedMovingPlatformNotify.proto b/proto/UpdateAbilityCreatedMovingPlatformNotify.proto
new file mode 100644
index 00000000..f9ed16ec
--- /dev/null
+++ b/proto/UpdateAbilityCreatedMovingPlatformNotify.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 881
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message UpdateAbilityCreatedMovingPlatformNotify {
+ uint32 entity_id = 4;
+ OpType op_type = 3;
+
+ enum OpType {
+ OP_TYPE_NONE = 0;
+ OP_TYPE_ACTIVATE = 1;
+ OP_TYPE_DEACTIVATE = 2;
+ }
+}
diff --git a/proto/UpdatePS4BlockListReq.proto b/proto/UpdatePS4BlockListReq.proto
new file mode 100644
index 00000000..aa9f2ab9
--- /dev/null
+++ b/proto/UpdatePS4BlockListReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4046
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message UpdatePS4BlockListReq {
+ repeated string psn_id_list = 10;
+}
diff --git a/proto/UpdatePS4BlockListRsp.proto b/proto/UpdatePS4BlockListRsp.proto
new file mode 100644
index 00000000..930ccd77
--- /dev/null
+++ b/proto/UpdatePS4BlockListRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4041
+// EnetChannelId: 0
+// EnetIsReliable: true
+message UpdatePS4BlockListRsp {
+ int32 retcode = 7;
+}
diff --git a/proto/UpdatePS4FriendListNotify.proto b/proto/UpdatePS4FriendListNotify.proto
new file mode 100644
index 00000000..9e79d2c9
--- /dev/null
+++ b/proto/UpdatePS4FriendListNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4039
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message UpdatePS4FriendListNotify {
+ repeated string psn_id_list = 15;
+}
diff --git a/proto/UpdatePS4FriendListReq.proto b/proto/UpdatePS4FriendListReq.proto
new file mode 100644
index 00000000..d15baf2b
--- /dev/null
+++ b/proto/UpdatePS4FriendListReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4089
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message UpdatePS4FriendListReq {
+ repeated string psn_id_list = 4;
+}
diff --git a/proto/UpdatePS4FriendListRsp.proto b/proto/UpdatePS4FriendListRsp.proto
new file mode 100644
index 00000000..cbbc81c1
--- /dev/null
+++ b/proto/UpdatePS4FriendListRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4059
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message UpdatePS4FriendListRsp {
+ int32 retcode = 5;
+ repeated string psn_id_list = 2;
+}
diff --git a/proto/UpdatePlayerShowAvatarListReq.proto b/proto/UpdatePlayerShowAvatarListReq.proto
new file mode 100644
index 00000000..311d4e9f
--- /dev/null
+++ b/proto/UpdatePlayerShowAvatarListReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4067
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message UpdatePlayerShowAvatarListReq {
+ bool is_show_avatar = 15;
+ repeated uint32 show_avatar_id_list = 13;
+}
diff --git a/proto/UpdatePlayerShowAvatarListRsp.proto b/proto/UpdatePlayerShowAvatarListRsp.proto
new file mode 100644
index 00000000..f87b2a91
--- /dev/null
+++ b/proto/UpdatePlayerShowAvatarListRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4058
+// EnetChannelId: 0
+// EnetIsReliable: true
+message UpdatePlayerShowAvatarListRsp {
+ repeated uint32 show_avatar_id_list = 1;
+ bool is_show_avatar = 3;
+ int32 retcode = 10;
+}
diff --git a/proto/UpdatePlayerShowNameCardListReq.proto b/proto/UpdatePlayerShowNameCardListReq.proto
new file mode 100644
index 00000000..5fa5ffc1
--- /dev/null
+++ b/proto/UpdatePlayerShowNameCardListReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4002
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message UpdatePlayerShowNameCardListReq {
+ repeated uint32 show_name_card_id_list = 15;
+}
diff --git a/proto/UpdatePlayerShowNameCardListRsp.proto b/proto/UpdatePlayerShowNameCardListRsp.proto
new file mode 100644
index 00000000..4f9216c1
--- /dev/null
+++ b/proto/UpdatePlayerShowNameCardListRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4019
+// EnetChannelId: 0
+// EnetIsReliable: true
+message UpdatePlayerShowNameCardListRsp {
+ int32 retcode = 13;
+ repeated uint32 show_name_card_id_list = 12;
+}
diff --git a/proto/UpdateRedPointNotify.proto b/proto/UpdateRedPointNotify.proto
new file mode 100644
index 00000000..1d4b81b1
--- /dev/null
+++ b/proto/UpdateRedPointNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "RedPointData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 93
+// EnetChannelId: 0
+// EnetIsReliable: true
+message UpdateRedPointNotify {
+ repeated RedPointData red_point_list = 12;
+}
diff --git a/proto/UpdateReunionWatcherNotify.proto b/proto/UpdateReunionWatcherNotify.proto
new file mode 100644
index 00000000..9f3cc92f
--- /dev/null
+++ b/proto/UpdateReunionWatcherNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ReunionWatcherInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5091
+// EnetChannelId: 0
+// EnetIsReliable: true
+message UpdateReunionWatcherNotify {
+ uint32 mission_id = 3;
+ ReunionWatcherInfo watcher_info = 10;
+}
diff --git a/proto/UpgradeRoguelikeShikigamiReq.proto b/proto/UpgradeRoguelikeShikigamiReq.proto
new file mode 100644
index 00000000..d05c3b1c
--- /dev/null
+++ b/proto/UpgradeRoguelikeShikigamiReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8151
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message UpgradeRoguelikeShikigamiReq {
+ uint32 upgrade_level = 6;
+ uint32 shikigami_group_id = 15;
+}
diff --git a/proto/UpgradeRoguelikeShikigamiRsp.proto b/proto/UpgradeRoguelikeShikigamiRsp.proto
new file mode 100644
index 00000000..22a794a3
--- /dev/null
+++ b/proto/UpgradeRoguelikeShikigamiRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 8966
+// EnetChannelId: 0
+// EnetIsReliable: true
+message UpgradeRoguelikeShikigamiRsp {
+ int32 retcode = 10;
+ uint32 shikigami_group_id = 14;
+ uint32 cur_level = 4;
+}
diff --git a/proto/UseItemReq.proto b/proto/UseItemReq.proto
new file mode 100644
index 00000000..124bb934
--- /dev/null
+++ b/proto/UseItemReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 690
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message UseItemReq {
+ uint32 count = 13;
+ uint64 target_guid = 14;
+ uint64 guid = 10;
+ bool is_enter_mp_dungeon_team = 15;
+ uint32 option_idx = 7;
+}
diff --git a/proto/UseItemRsp.proto b/proto/UseItemRsp.proto
new file mode 100644
index 00000000..052574ca
--- /dev/null
+++ b/proto/UseItemRsp.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 673
+// EnetChannelId: 0
+// EnetIsReliable: true
+message UseItemRsp {
+ uint64 guid = 5;
+ uint64 target_guid = 1;
+ uint32 item_id = 4;
+ uint32 option_idx = 8;
+ int32 retcode = 14;
+}
diff --git a/proto/UseMiracleRingReq.proto b/proto/UseMiracleRingReq.proto
new file mode 100644
index 00000000..f11925c7
--- /dev/null
+++ b/proto/UseMiracleRingReq.proto
@@ -0,0 +1,38 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5226
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message UseMiracleRingReq {
+ uint32 miracle_ring_op_type = 13;
+ Vector pos = 8;
+ Vector rot = 7;
+
+ enum MiracleRingOpType {
+ MIRACLE_RING_OP_TYPE_NONE = 0;
+ MIRACLE_RING_OP_TYPE_PLACE = 1;
+ MIRACLE_RING_OP_TYPE_RETRACT = 2;
+ }
+}
diff --git a/proto/UseMiracleRingRsp.proto b/proto/UseMiracleRingRsp.proto
new file mode 100644
index 00000000..95c6dd77
--- /dev/null
+++ b/proto/UseMiracleRingRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5218
+// EnetChannelId: 0
+// EnetIsReliable: true
+message UseMiracleRingRsp {
+ int32 retcode = 11;
+ uint32 miracle_ring_op_type = 7;
+}
diff --git a/proto/UseWidgetCreateGadgetReq.proto b/proto/UseWidgetCreateGadgetReq.proto
new file mode 100644
index 00000000..589d64a7
--- /dev/null
+++ b/proto/UseWidgetCreateGadgetReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4293
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message UseWidgetCreateGadgetReq {
+ Vector pos = 15;
+ Vector rot = 12;
+ uint32 material_id = 4;
+}
diff --git a/proto/UseWidgetCreateGadgetRsp.proto b/proto/UseWidgetCreateGadgetRsp.proto
new file mode 100644
index 00000000..ec9bc4d8
--- /dev/null
+++ b/proto/UseWidgetCreateGadgetRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4290
+// EnetChannelId: 0
+// EnetIsReliable: true
+message UseWidgetCreateGadgetRsp {
+ int32 retcode = 15;
+ uint32 material_id = 12;
+}
diff --git a/proto/UseWidgetRetractGadgetReq.proto b/proto/UseWidgetRetractGadgetReq.proto
new file mode 100644
index 00000000..b5bb386d
--- /dev/null
+++ b/proto/UseWidgetRetractGadgetReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4286
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message UseWidgetRetractGadgetReq {
+ uint32 entity_id = 3;
+}
diff --git a/proto/UseWidgetRetractGadgetRsp.proto b/proto/UseWidgetRetractGadgetRsp.proto
new file mode 100644
index 00000000..01132af7
--- /dev/null
+++ b/proto/UseWidgetRetractGadgetRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4261
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message UseWidgetRetractGadgetRsp {
+ int32 retcode = 6;
+ uint32 entity_id = 14;
+}
diff --git a/proto/Vector.proto b/proto/Vector.proto
new file mode 100644
index 00000000..2e15d0cf
--- /dev/null
+++ b/proto/Vector.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Vector {
+ float x = 1;
+ float y = 2;
+ float z = 3;
+}
diff --git a/proto/Vector3Int.proto b/proto/Vector3Int.proto
new file mode 100644
index 00000000..df923143
--- /dev/null
+++ b/proto/Vector3Int.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Vector3Int {
+ int32 x = 1;
+ int32 y = 2;
+ int32 z = 3;
+}
diff --git a/proto/VectorPlane.proto b/proto/VectorPlane.proto
new file mode 100644
index 00000000..bf140ff4
--- /dev/null
+++ b/proto/VectorPlane.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message VectorPlane {
+ float x = 1;
+ float y = 2;
+}
diff --git a/proto/VehicleInfo.proto b/proto/VehicleInfo.proto
new file mode 100644
index 00000000..6de37993
--- /dev/null
+++ b/proto/VehicleInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "VehicleMember.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message VehicleInfo {
+ repeated VehicleMember member_list = 1;
+ uint32 owner_uid = 2;
+ float cur_stamina = 3;
+}
diff --git a/proto/VehicleInteractReq.proto b/proto/VehicleInteractReq.proto
new file mode 100644
index 00000000..96e0c09e
--- /dev/null
+++ b/proto/VehicleInteractReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "VehicleInteractType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 865
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message VehicleInteractReq {
+ VehicleInteractType interact_type = 8;
+ uint32 pos = 12;
+ uint32 entity_id = 15;
+}
diff --git a/proto/VehicleInteractRsp.proto b/proto/VehicleInteractRsp.proto
new file mode 100644
index 00000000..ac0ab828
--- /dev/null
+++ b/proto/VehicleInteractRsp.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "VehicleInteractType.proto";
+import "VehicleMember.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 804
+// EnetChannelId: 0
+// EnetIsReliable: true
+message VehicleInteractRsp {
+ VehicleInteractType interact_type = 15;
+ VehicleMember member = 3;
+ uint32 entity_id = 2;
+ int32 retcode = 1;
+}
diff --git a/proto/VehicleInteractType.proto b/proto/VehicleInteractType.proto
new file mode 100644
index 00000000..3563cebf
--- /dev/null
+++ b/proto/VehicleInteractType.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum VehicleInteractType {
+ VEHICLE_INTERACT_TYPE_NONE = 0;
+ VEHICLE_INTERACT_TYPE_IN = 1;
+ VEHICLE_INTERACT_TYPE_OUT = 2;
+}
diff --git a/proto/VehicleLocationInfo.proto b/proto/VehicleLocationInfo.proto
new file mode 100644
index 00000000..909cba93
--- /dev/null
+++ b/proto/VehicleLocationInfo.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message VehicleLocationInfo {
+ Vector rot = 14;
+ uint32 entity_id = 15;
+ float cur_hp = 11;
+ uint32 owner_uid = 5;
+ Vector pos = 1;
+ repeated uint32 uid_list = 3;
+ uint32 gadget_id = 13;
+ float max_hp = 6;
+}
diff --git a/proto/VehicleMember.proto b/proto/VehicleMember.proto
new file mode 100644
index 00000000..76c24611
--- /dev/null
+++ b/proto/VehicleMember.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message VehicleMember {
+ uint32 uid = 1;
+ uint64 avatar_guid = 2;
+ uint32 pos = 3;
+}
diff --git a/proto/VehicleStaminaNotify.proto b/proto/VehicleStaminaNotify.proto
new file mode 100644
index 00000000..2a11b98e
--- /dev/null
+++ b/proto/VehicleStaminaNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 834
+// EnetChannelId: 0
+// EnetIsReliable: true
+message VehicleStaminaNotify {
+ uint32 entity_id = 6;
+ float cur_stamina = 14;
+}
diff --git a/proto/ViewCodexReq.proto b/proto/ViewCodexReq.proto
new file mode 100644
index 00000000..f9748aab
--- /dev/null
+++ b/proto/ViewCodexReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CodexTypeData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4202
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ViewCodexReq {
+ repeated CodexTypeData type_data_list = 10;
+}
diff --git a/proto/ViewCodexRsp.proto b/proto/ViewCodexRsp.proto
new file mode 100644
index 00000000..08588ccf
--- /dev/null
+++ b/proto/ViewCodexRsp.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CodexTypeData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4201
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ViewCodexRsp {
+ int32 retcode = 12;
+ repeated uint32 Unk2800_IPOCJIPGNEJ = 10;
+ repeated uint32 Unk2700_DFJJHFHHIHF = 3;
+ repeated CodexTypeData type_data_list = 9;
+ repeated uint32 Unk2800_OIPJCEPGJCF = 15;
+}
diff --git a/proto/VintageDetailInfo.proto b/proto/VintageDetailInfo.proto
new file mode 100644
index 00000000..d6f7d936
--- /dev/null
+++ b/proto/VintageDetailInfo.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3100_AHIKHIOFBJJ.proto";
+import "Unk3100_FHDBCIIMLLP.proto";
+import "Unk3100_HEJFCDEKFOE.proto";
+import "Unk3100_IOJKKDNELHE.proto";
+import "Unk3100_NBBMHKJHJJI.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message VintageDetailInfo {
+ Unk3100_NBBMHKJHJJI Unk3100_HPMEDDOLJEN = 2;
+ map Unk3100_FOLAAJODNCM = 7;
+ Unk3100_AHIKHIOFBJJ Unk3100_ACDPMGMDILG = 5;
+ map Unk3100_DLDFBOLFAKD = 13;
+ map Unk3100_JDOCJKEEEHO = 4;
+ bool is_content_closed = 11;
+}
diff --git a/proto/VisionType.proto b/proto/VisionType.proto
new file mode 100644
index 00000000..ffb61eb2
--- /dev/null
+++ b/proto/VisionType.proto
@@ -0,0 +1,43 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum VisionType {
+ VISION_TYPE_NONE = 0;
+ VISION_TYPE_MEET = 1;
+ VISION_TYPE_REBORN = 2;
+ VISION_TYPE_REPLACE = 3;
+ VISION_TYPE_WAYPOINT_REBORN = 4;
+ VISION_TYPE_MISS = 5;
+ VISION_TYPE_DIE = 6;
+ VISION_TYPE_GATHER_ESCAPE = 7;
+ VISION_TYPE_REFRESH = 8;
+ VISION_TYPE_TRANSPORT = 9;
+ VISION_TYPE_REPLACE_DIE = 10;
+ VISION_TYPE_REPLACE_NO_NOTIFY = 11;
+ VISION_TYPE_BORN = 12;
+ VISION_TYPE_PICKUP = 13;
+ VISION_TYPE_REMOVE = 14;
+ VISION_TYPE_CHANGE_COSTUME = 15;
+ VISION_TYPE_FISH_REFRESH = 16;
+ VISION_TYPE_FISH_BIG_SHOCK = 17;
+ VISION_TYPE_FISH_QTE_SUCC = 18;
+ VISION_TYPE_Unk2700_EPFKMOIPADB = 19;
+}
diff --git a/proto/WatcherAllDataNotify.proto b/proto/WatcherAllDataNotify.proto
new file mode 100644
index 00000000..9b865241
--- /dev/null
+++ b/proto/WatcherAllDataNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2272
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WatcherAllDataNotify {
+ repeated uint32 watcher_list = 4;
+}
diff --git a/proto/WatcherChangeNotify.proto b/proto/WatcherChangeNotify.proto
new file mode 100644
index 00000000..4ec9b6bc
--- /dev/null
+++ b/proto/WatcherChangeNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2298
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WatcherChangeNotify {
+ repeated uint32 removed_watcher_list = 2;
+ repeated uint32 new_watcher_list = 15;
+}
diff --git a/proto/WatcherEventNotify.proto b/proto/WatcherEventNotify.proto
new file mode 100644
index 00000000..b3d6924a
--- /dev/null
+++ b/proto/WatcherEventNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2212
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message WatcherEventNotify {
+ uint32 add_progress = 6;
+ uint32 watcher_id = 9;
+}
diff --git a/proto/WatcherEventTypeNotify.proto b/proto/WatcherEventTypeNotify.proto
new file mode 100644
index 00000000..9512c872
--- /dev/null
+++ b/proto/WatcherEventTypeNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2235
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message WatcherEventTypeNotify {
+ repeated uint32 param_list = 14;
+ uint32 add_progress = 15;
+ uint32 watcher_trigger_type = 11;
+}
diff --git a/proto/WaterSpiritActivityDetailInfo.proto b/proto/WaterSpiritActivityDetailInfo.proto
new file mode 100644
index 00000000..56b7c6ae
--- /dev/null
+++ b/proto/WaterSpiritActivityDetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message WaterSpiritActivityDetailInfo {
+ map search_time_map = 9;
+ uint32 region_search_id = 2;
+ uint32 mp_play_id = 15;
+}
diff --git a/proto/WaterSpritePhaseFinishNotify.proto b/proto/WaterSpritePhaseFinishNotify.proto
new file mode 100644
index 00000000..e0089c18
--- /dev/null
+++ b/proto/WaterSpritePhaseFinishNotify.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2025
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WaterSpritePhaseFinishNotify {}
diff --git a/proto/Weapon.proto b/proto/Weapon.proto
new file mode 100644
index 00000000..900f1a89
--- /dev/null
+++ b/proto/Weapon.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message Weapon {
+ uint32 level = 1;
+ uint32 exp = 2;
+ uint32 promote_level = 3;
+ map affix_map = 4;
+}
diff --git a/proto/WeaponAwakenReq.proto b/proto/WeaponAwakenReq.proto
new file mode 100644
index 00000000..53b382c0
--- /dev/null
+++ b/proto/WeaponAwakenReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 695
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message WeaponAwakenReq {
+ uint64 item_guid = 10;
+ map affix_level_map = 7;
+ uint64 target_weapon_guid = 9;
+}
diff --git a/proto/WeaponAwakenRsp.proto b/proto/WeaponAwakenRsp.proto
new file mode 100644
index 00000000..73e23ad1
--- /dev/null
+++ b/proto/WeaponAwakenRsp.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 606
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WeaponAwakenRsp {
+ int32 retcode = 9;
+ uint64 avatar_guid = 10;
+ map old_affix_level_map = 4;
+ uint32 target_weapon_awaken_level = 2;
+ uint64 target_weapon_guid = 15;
+ map cur_affix_level_map = 11;
+}
diff --git a/proto/WeaponPromoteReq.proto b/proto/WeaponPromoteReq.proto
new file mode 100644
index 00000000..76393527
--- /dev/null
+++ b/proto/WeaponPromoteReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 622
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message WeaponPromoteReq {
+ uint64 target_weapon_guid = 5;
+}
diff --git a/proto/WeaponPromoteRsp.proto b/proto/WeaponPromoteRsp.proto
new file mode 100644
index 00000000..182a789b
--- /dev/null
+++ b/proto/WeaponPromoteRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 665
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WeaponPromoteRsp {
+ uint64 target_weapon_guid = 3;
+ uint32 old_promote_level = 7;
+ uint32 cur_promote_level = 12;
+ int32 retcode = 4;
+}
diff --git a/proto/WeaponUpgradeReq.proto b/proto/WeaponUpgradeReq.proto
new file mode 100644
index 00000000..ba4a80a1
--- /dev/null
+++ b/proto/WeaponUpgradeReq.proto
@@ -0,0 +1,32 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 639
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message WeaponUpgradeReq {
+ repeated uint64 food_weapon_guid_list = 1;
+ repeated ItemParam item_param_list = 15;
+ uint64 target_weapon_guid = 4;
+}
diff --git a/proto/WeaponUpgradeRsp.proto b/proto/WeaponUpgradeRsp.proto
new file mode 100644
index 00000000..fdeaa7ae
--- /dev/null
+++ b/proto/WeaponUpgradeRsp.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 653
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WeaponUpgradeRsp {
+ uint32 cur_level = 7;
+ int32 retcode = 11;
+ uint32 old_level = 8;
+ repeated ItemParam item_param_list = 2;
+ uint64 target_weapon_guid = 6;
+}
diff --git a/proto/WearEquipReq.proto b/proto/WearEquipReq.proto
new file mode 100644
index 00000000..47e63bd4
--- /dev/null
+++ b/proto/WearEquipReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 697
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message WearEquipReq {
+ uint64 equip_guid = 7;
+ uint64 avatar_guid = 5;
+}
diff --git a/proto/WearEquipRsp.proto b/proto/WearEquipRsp.proto
new file mode 100644
index 00000000..d12cd85d
--- /dev/null
+++ b/proto/WearEquipRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 681
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WearEquipRsp {
+ int32 retcode = 5;
+ uint64 equip_guid = 1;
+ uint64 avatar_guid = 7;
+}
diff --git a/proto/WeatherInfo.proto b/proto/WeatherInfo.proto
new file mode 100644
index 00000000..eea9ba2e
--- /dev/null
+++ b/proto/WeatherInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message WeatherInfo {
+ uint32 weather_area_id = 1;
+}
diff --git a/proto/WeekendDjinnInfo.proto b/proto/WeekendDjinnInfo.proto
new file mode 100644
index 00000000..28407ccc
--- /dev/null
+++ b/proto/WeekendDjinnInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message WeekendDjinnInfo {
+ Vector rot = 14;
+ Vector pos = 10;
+}
diff --git a/proto/WeeklyBossResinDiscountInfo.proto b/proto/WeeklyBossResinDiscountInfo.proto
new file mode 100644
index 00000000..4a73d175
--- /dev/null
+++ b/proto/WeeklyBossResinDiscountInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message WeeklyBossResinDiscountInfo {
+ uint32 discount_num = 1;
+ uint32 discount_num_limit = 2;
+ uint32 resin_cost = 3;
+ uint32 original_resin_cost = 4;
+}
diff --git a/proto/WidgetActiveChangeNotify.proto b/proto/WidgetActiveChangeNotify.proto
new file mode 100644
index 00000000..3a99be87
--- /dev/null
+++ b/proto/WidgetActiveChangeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WidgetSlotData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4280
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WidgetActiveChangeNotify {
+ repeated WidgetSlotData widget_data_list = 5;
+}
diff --git a/proto/WidgetCameraInfo.proto b/proto/WidgetCameraInfo.proto
new file mode 100644
index 00000000..3cffc020
--- /dev/null
+++ b/proto/WidgetCameraInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message WidgetCameraInfo {
+ uint32 target_entity_id = 4;
+}
diff --git a/proto/WidgetCoolDownData.proto b/proto/WidgetCoolDownData.proto
new file mode 100644
index 00000000..0eb729d2
--- /dev/null
+++ b/proto/WidgetCoolDownData.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message WidgetCoolDownData {
+ bool is_success = 5;
+ uint64 cool_down_time = 4;
+ uint32 id = 15;
+}
diff --git a/proto/WidgetCoolDownNotify.proto b/proto/WidgetCoolDownNotify.proto
new file mode 100644
index 00000000..9f237b30
--- /dev/null
+++ b/proto/WidgetCoolDownNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WidgetCoolDownData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4295
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WidgetCoolDownNotify {
+ repeated WidgetCoolDownData normal_cool_down_data_list = 1;
+ repeated WidgetCoolDownData group_cool_down_data_list = 12;
+}
diff --git a/proto/WidgetCreateLocationInfo.proto b/proto/WidgetCreateLocationInfo.proto
new file mode 100644
index 00000000..ee77e823
--- /dev/null
+++ b/proto/WidgetCreateLocationInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message WidgetCreateLocationInfo {
+ Vector rot = 3;
+ Vector pos = 10;
+}
diff --git a/proto/WidgetCreatorInfo.proto b/proto/WidgetCreatorInfo.proto
new file mode 100644
index 00000000..bbbaa1c3
--- /dev/null
+++ b/proto/WidgetCreatorInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WidgetCreateLocationInfo.proto";
+import "WidgetCreatorOpType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message WidgetCreatorInfo {
+ WidgetCreatorOpType op_type = 10;
+ uint32 entity_id = 1;
+ WidgetCreateLocationInfo location_info = 12;
+}
diff --git a/proto/WidgetCreatorOpType.proto b/proto/WidgetCreatorOpType.proto
new file mode 100644
index 00000000..eb0d8ac6
--- /dev/null
+++ b/proto/WidgetCreatorOpType.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum WidgetCreatorOpType {
+ WIDGET_CREATOR_OP_TYPE_NONE = 0;
+ WIDGET_CREATOR_OP_TYPE_RETRACT = 1;
+ WIDGET_CREATOR_OP_TYPE_RETRACT_AND_CREATE = 2;
+}
diff --git a/proto/WidgetDoBagReq.proto b/proto/WidgetDoBagReq.proto
new file mode 100644
index 00000000..108aa82e
--- /dev/null
+++ b/proto/WidgetDoBagReq.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WidgetCreateLocationInfo.proto";
+import "WidgetCreatorInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4255
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message WidgetDoBagReq {
+ uint32 material_id = 9;
+ oneof op_info {
+ WidgetCreateLocationInfo location_info = 832;
+ WidgetCreatorInfo widget_creator_info = 1497;
+ }
+}
diff --git a/proto/WidgetDoBagRsp.proto b/proto/WidgetDoBagRsp.proto
new file mode 100644
index 00000000..d9b8c104
--- /dev/null
+++ b/proto/WidgetDoBagRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4296
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WidgetDoBagRsp {
+ int32 retcode = 10;
+ uint32 material_id = 3;
+}
diff --git a/proto/WidgetGadgetAllDataNotify.proto b/proto/WidgetGadgetAllDataNotify.proto
new file mode 100644
index 00000000..847fedab
--- /dev/null
+++ b/proto/WidgetGadgetAllDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WidgetGadgetData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4284
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WidgetGadgetAllDataNotify {
+ repeated WidgetGadgetData widget_gadget_data = 13;
+}
diff --git a/proto/WidgetGadgetData.proto b/proto/WidgetGadgetData.proto
new file mode 100644
index 00000000..9e20a81f
--- /dev/null
+++ b/proto/WidgetGadgetData.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message WidgetGadgetData {
+ repeated uint32 gadget_entity_id_list = 1;
+ uint32 gadget_id = 8;
+}
diff --git a/proto/WidgetGadgetDataNotify.proto b/proto/WidgetGadgetDataNotify.proto
new file mode 100644
index 00000000..6868444b
--- /dev/null
+++ b/proto/WidgetGadgetDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WidgetGadgetData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4266
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WidgetGadgetDataNotify {
+ WidgetGadgetData widget_gadget_data = 12;
+}
diff --git a/proto/WidgetGadgetDestroyNotify.proto b/proto/WidgetGadgetDestroyNotify.proto
new file mode 100644
index 00000000..3fd5abcc
--- /dev/null
+++ b/proto/WidgetGadgetDestroyNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4274
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WidgetGadgetDestroyNotify {
+ uint32 entity_id = 15;
+}
diff --git a/proto/WidgetReportReq.proto b/proto/WidgetReportReq.proto
new file mode 100644
index 00000000..0e69772c
--- /dev/null
+++ b/proto/WidgetReportReq.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4291
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message WidgetReportReq {
+ bool Unk2700_MFEHMLBNNAG = 5;
+ bool is_client_collect = 14;
+ bool is_clear_hint = 13;
+ uint32 material_id = 15;
+}
diff --git a/proto/WidgetReportRsp.proto b/proto/WidgetReportRsp.proto
new file mode 100644
index 00000000..ed86b510
--- /dev/null
+++ b/proto/WidgetReportRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4292
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WidgetReportRsp {
+ int32 retcode = 14;
+ uint32 material_id = 4;
+}
diff --git a/proto/WidgetSlotChangeNotify.proto b/proto/WidgetSlotChangeNotify.proto
new file mode 100644
index 00000000..28a762d4
--- /dev/null
+++ b/proto/WidgetSlotChangeNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WidgetSlotData.proto";
+import "WidgetSlotOp.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4267
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WidgetSlotChangeNotify {
+ WidgetSlotOp op = 11;
+ WidgetSlotData slot = 8;
+}
diff --git a/proto/WidgetSlotData.proto b/proto/WidgetSlotData.proto
new file mode 100644
index 00000000..206dbd71
--- /dev/null
+++ b/proto/WidgetSlotData.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WidgetSlotTag.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message WidgetSlotData {
+ uint32 cd_over_time = 9;
+ WidgetSlotTag tag = 14;
+ uint32 material_id = 11;
+ bool is_active = 12;
+}
diff --git a/proto/WidgetSlotOp.proto b/proto/WidgetSlotOp.proto
new file mode 100644
index 00000000..4b73e495
--- /dev/null
+++ b/proto/WidgetSlotOp.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum WidgetSlotOp {
+ WIDGET_SLOT_OP_ATTACH = 0;
+ WIDGET_SLOT_OP_DETACH = 1;
+}
diff --git a/proto/WidgetSlotTag.proto b/proto/WidgetSlotTag.proto
new file mode 100644
index 00000000..24bb1954
--- /dev/null
+++ b/proto/WidgetSlotTag.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+enum WidgetSlotTag {
+ WIDGET_SLOT_TAG_QUICK_USE = 0;
+ WIDGET_SLOT_TAG_ATTACH_AVATAR = 1;
+}
diff --git a/proto/WidgetThunderBirdFeatherInfo.proto b/proto/WidgetThunderBirdFeatherInfo.proto
new file mode 100644
index 00000000..3f251526
--- /dev/null
+++ b/proto/WidgetThunderBirdFeatherInfo.proto
@@ -0,0 +1,24 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message WidgetThunderBirdFeatherInfo {
+ repeated uint32 entity_id_list = 4;
+}
diff --git a/proto/WidgetUseAttachAbilityGroupChangeNotify.proto b/proto/WidgetUseAttachAbilityGroupChangeNotify.proto
new file mode 100644
index 00000000..3644f29b
--- /dev/null
+++ b/proto/WidgetUseAttachAbilityGroupChangeNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4258
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WidgetUseAttachAbilityGroupChangeNotify {
+ bool is_attach = 6;
+ uint32 material_id = 11;
+}
diff --git a/proto/WindFieldDetailInfo.proto b/proto/WindFieldDetailInfo.proto
new file mode 100644
index 00000000..cf330634
--- /dev/null
+++ b/proto/WindFieldDetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3100_OCAPENGJILJ.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message WindFieldDetailInfo {
+ repeated Unk3100_OCAPENGJILJ Unk2700_PHKHIPLDOOA = 11;
+}
diff --git a/proto/WindFieldDungeonSettleInfo.proto b/proto/WindFieldDungeonSettleInfo.proto
new file mode 100644
index 00000000..36a5b3a0
--- /dev/null
+++ b/proto/WindFieldDungeonSettleInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Unk3100_HJALLGOLFGL.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message WindFieldDungeonSettleInfo {
+ repeated uint32 Unk3100_ABGAMIOBKAB = 11;
+ repeated uint32 Unk3100_MPGPNBOHCMC = 7;
+ Unk3100_HJALLGOLFGL Unk3100_AOFJAJACNAJ = 2;
+}
diff --git a/proto/WindSeedClientNotify.proto b/proto/WindSeedClientNotify.proto
new file mode 100644
index 00000000..4ef59f05
--- /dev/null
+++ b/proto/WindSeedClientNotify.proto
@@ -0,0 +1,49 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "Vector.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 1199
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WindSeedClientNotify {
+ oneof notify {
+ RefreshNotify refresh_notify = 14;
+ AddWindBulletNotify add_wind_bullet_notify = 6;
+ AreaNotify area_notify = 4;
+ }
+
+ message RefreshNotify {
+ uint32 refresh_num = 9;
+ }
+
+ message AddWindBulletNotify {
+ Vector seed_pos = 6;
+ uint32 catch_player_uid = 8;
+ uint32 seed_entity_id = 7;
+ }
+
+ message AreaNotify {
+ bytes area_code = 5;
+ uint32 area_id = 10;
+ uint32 area_type = 7;
+ }
+}
diff --git a/proto/WinterCampActivityDetailInfo.proto b/proto/WinterCampActivityDetailInfo.proto
new file mode 100644
index 00000000..a79e1deb
--- /dev/null
+++ b/proto/WinterCampActivityDetailInfo.proto
@@ -0,0 +1,35 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ItemParam.proto";
+import "Unk2700_DIEGJDEIDKO.proto";
+import "Unk2700_MBIDJDLLBNM.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message WinterCampActivityDetailInfo {
+ repeated Unk2700_MBIDJDLLBNM Unk2700_FBMHFJHDJNB = 9;
+ Unk2700_DIEGJDEIDKO battle_info = 10;
+ repeated uint32 Unk2700_GALHBPGEGNL = 8;
+ repeated uint32 Unk2700_DKCGOPBHJHA = 14;
+ repeated uint32 Unk2700_OOBOCEALLBE = 6;
+ bool is_content_closed = 15;
+ Unk2700_DIEGJDEIDKO explore_info = 11;
+ repeated ItemParam Unk2700_CFENLEBIKGG = 2;
+}
diff --git a/proto/WorktopInfo.proto b/proto/WorktopInfo.proto
new file mode 100644
index 00000000..66d2db06
--- /dev/null
+++ b/proto/WorktopInfo.proto
@@ -0,0 +1,25 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message WorktopInfo {
+ repeated uint32 option_list = 1;
+ bool is_guest_can_operate = 2;
+}
diff --git a/proto/WorktopOptionNotify.proto b/proto/WorktopOptionNotify.proto
new file mode 100644
index 00000000..e393b147
--- /dev/null
+++ b/proto/WorktopOptionNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 835
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WorktopOptionNotify {
+ uint32 gadget_entity_id = 11;
+ repeated uint32 option_list = 8;
+}
diff --git a/proto/WorldAllRoutineTypeNotify.proto b/proto/WorldAllRoutineTypeNotify.proto
new file mode 100644
index 00000000..78153927
--- /dev/null
+++ b/proto/WorldAllRoutineTypeNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WorldRoutineTypeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3518
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WorldAllRoutineTypeNotify {
+ repeated WorldRoutineTypeInfo world_routine_type_list = 12;
+}
diff --git a/proto/WorldDataNotify.proto b/proto/WorldDataNotify.proto
new file mode 100644
index 00000000..d730ece1
--- /dev/null
+++ b/proto/WorldDataNotify.proto
@@ -0,0 +1,36 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PropValue.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3308
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message WorldDataNotify {
+ map world_prop_map = 9;
+
+ enum DataType {
+ DATA_TYPE_NONE = 0;
+ DATA_TYPE_WORLD_LEVEL = 1;
+ DATA_TYPE_IS_IN_MP_MODE = 2;
+ }
+}
diff --git a/proto/WorldOwnerBlossomBriefInfoNotify.proto b/proto/WorldOwnerBlossomBriefInfoNotify.proto
new file mode 100644
index 00000000..50529274
--- /dev/null
+++ b/proto/WorldOwnerBlossomBriefInfoNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BlossomBriefInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2735
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message WorldOwnerBlossomBriefInfoNotify {
+ repeated BlossomBriefInfo brief_info_list = 13;
+}
diff --git a/proto/WorldOwnerBlossomScheduleInfoNotify.proto b/proto/WorldOwnerBlossomScheduleInfoNotify.proto
new file mode 100644
index 00000000..b9563ac9
--- /dev/null
+++ b/proto/WorldOwnerBlossomScheduleInfoNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "BlossomScheduleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 2707
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message WorldOwnerBlossomScheduleInfoNotify {
+ BlossomScheduleInfo schedule_info = 3;
+}
diff --git a/proto/WorldOwnerDailyTaskNotify.proto b/proto/WorldOwnerDailyTaskNotify.proto
new file mode 100644
index 00000000..780e5579
--- /dev/null
+++ b/proto/WorldOwnerDailyTaskNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DailyTaskInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 102
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message WorldOwnerDailyTaskNotify {
+ uint32 filter_city_id = 2;
+ repeated DailyTaskInfo task_list = 1;
+}
diff --git a/proto/WorldPlayerDieNotify.proto b/proto/WorldPlayerDieNotify.proto
new file mode 100644
index 00000000..9a648a44
--- /dev/null
+++ b/proto/WorldPlayerDieNotify.proto
@@ -0,0 +1,34 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayerDieType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 285
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WorldPlayerDieNotify {
+ PlayerDieType die_type = 12;
+ uint32 murderer_entity_id = 15;
+ oneof entity {
+ uint32 monster_id = 8;
+ uint32 gadget_id = 4;
+ }
+}
diff --git a/proto/WorldPlayerInfoNotify.proto b/proto/WorldPlayerInfoNotify.proto
new file mode 100644
index 00000000..ea82530e
--- /dev/null
+++ b/proto/WorldPlayerInfoNotify.proto
@@ -0,0 +1,33 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "OnlinePlayerInfo.proto";
+import "Unk3000_HKHFFDEMNKN.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3116
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message WorldPlayerInfoNotify {
+ repeated Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;
+ repeated OnlinePlayerInfo player_info_list = 14;
+ repeated uint32 player_uid_list = 11;
+}
diff --git a/proto/WorldPlayerLocationNotify.proto b/proto/WorldPlayerLocationNotify.proto
new file mode 100644
index 00000000..2d5d0875
--- /dev/null
+++ b/proto/WorldPlayerLocationNotify.proto
@@ -0,0 +1,31 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayerLocationInfo.proto";
+import "PlayerWorldLocationInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 258
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WorldPlayerLocationNotify {
+ repeated PlayerWorldLocationInfo player_world_loc_list = 8;
+ repeated PlayerLocationInfo player_loc_list = 15;
+}
diff --git a/proto/WorldPlayerRTTNotify.proto b/proto/WorldPlayerRTTNotify.proto
new file mode 100644
index 00000000..b03f8098
--- /dev/null
+++ b/proto/WorldPlayerRTTNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "PlayerRTTInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 22
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WorldPlayerRTTNotify {
+ repeated PlayerRTTInfo player_rtt_list = 1;
+}
diff --git a/proto/WorldPlayerReviveReq.proto b/proto/WorldPlayerReviveReq.proto
new file mode 100644
index 00000000..91251941
--- /dev/null
+++ b/proto/WorldPlayerReviveReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 225
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message WorldPlayerReviveReq {}
diff --git a/proto/WorldPlayerReviveRsp.proto b/proto/WorldPlayerReviveRsp.proto
new file mode 100644
index 00000000..9d1a58c5
--- /dev/null
+++ b/proto/WorldPlayerReviveRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 278
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WorldPlayerReviveRsp {
+ int32 retcode = 3;
+}
diff --git a/proto/WorldRoutineChangeNotify.proto b/proto/WorldRoutineChangeNotify.proto
new file mode 100644
index 00000000..49a7b133
--- /dev/null
+++ b/proto/WorldRoutineChangeNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WorldRoutineInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3507
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WorldRoutineChangeNotify {
+ WorldRoutineInfo routine_info = 3;
+ uint32 routine_type = 11;
+}
diff --git a/proto/WorldRoutineInfo.proto b/proto/WorldRoutineInfo.proto
new file mode 100644
index 00000000..77664542
--- /dev/null
+++ b/proto/WorldRoutineInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message WorldRoutineInfo {
+ uint32 progress = 4;
+ bool is_finished = 14;
+ uint32 finish_progress = 3;
+ uint32 routine_id = 11;
+}
diff --git a/proto/WorldRoutineTypeCloseNotify.proto b/proto/WorldRoutineTypeCloseNotify.proto
new file mode 100644
index 00000000..a438191f
--- /dev/null
+++ b/proto/WorldRoutineTypeCloseNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3502
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WorldRoutineTypeCloseNotify {
+ uint32 routine_type = 7;
+}
diff --git a/proto/WorldRoutineTypeInfo.proto b/proto/WorldRoutineTypeInfo.proto
new file mode 100644
index 00000000..293ac1f0
--- /dev/null
+++ b/proto/WorldRoutineTypeInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WorldRoutineInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message WorldRoutineTypeInfo {
+ uint32 routine_type = 13;
+ uint32 next_refresh_time = 12;
+ repeated WorldRoutineInfo world_routine_info_list = 3;
+}
diff --git a/proto/WorldRoutineTypeRefreshNotify.proto b/proto/WorldRoutineTypeRefreshNotify.proto
new file mode 100644
index 00000000..0612b940
--- /dev/null
+++ b/proto/WorldRoutineTypeRefreshNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "WorldRoutineTypeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3525
+// EnetChannelId: 0
+// EnetIsReliable: true
+message WorldRoutineTypeRefreshNotify {
+ WorldRoutineTypeInfo world_routine_type = 7;
+}