diff --git a/LICENSE b/LICENSE
new file mode 100644
index 00000000..be3f7b28
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,661 @@
+ GNU AFFERO GENERAL PUBLIC LICENSE
+ Version 3, 19 November 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU Affero General Public License is a free, copyleft license for
+software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+our General Public Licenses are intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+ A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate. Many developers of free software are heartened and
+encouraged by the resulting cooperation. However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+ The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community. It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server. Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+ An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals. This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing under
+this license.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU Affero General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Remote Network Interaction; Use with the GNU General Public License.
+
+ Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your version
+supports such interaction) an opportunity to receive the Corresponding
+Source of your version by providing access to the Corresponding Source
+from a network server at no charge, through some standard or customary
+means of facilitating copying of software. This Corresponding Source
+shall include the Corresponding Source for any work covered by version 3
+of the GNU General Public License that is incorporated pursuant to the
+following paragraph.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the work with which it is combined will remain governed by version
+3 of the GNU General Public License.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU Affero General Public License from time to time. Such new versions
+will be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU Affero General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU Affero General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU Affero General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source. For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code. There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for the
+specific requirements.
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU AGPL, see
+.
diff --git a/cmdid.csv b/cmdid.csv
new file mode 100644
index 00000000..303bbaee
--- /dev/null
+++ b/cmdid.csv
@@ -0,0 +1,2052 @@
+AbilityChangeNotify,1131
+AbilityInvocationFailNotify,1107
+AbilityInvocationFixedNotify,1172
+AbilityInvocationsNotify,1198
+AcceptCityReputationRequestReq,2890
+AcceptCityReputationRequestRsp,2873
+AchievementAllDataNotify,2676
+AchievementUpdateNotify,2668
+ActivityAcceptAllGiveGiftReq,8113
+ActivityAcceptAllGiveGiftRsp,8132
+ActivityAcceptGiveGiftReq,8095
+ActivityAcceptGiveGiftRsp,8502
+ActivityBannerClearReq,2009
+ActivityBannerClearRsp,2163
+ActivityBannerNotify,2155
+ActivityCoinInfoNotify,2008
+ActivityCondStateChangeNotify,2140
+ActivityDisableTransferPointInteractionNotify,8982
+ActivityGetCanGiveFriendGiftReq,8559
+ActivityGetCanGiveFriendGiftRsp,8848
+ActivityGetFriendGiftWishListReq,8806
+ActivityGetFriendGiftWishListRsp,8253
+ActivityGetRecvGiftListReq,8725
+ActivityGetRecvGiftListRsp,8120
+ActivityGiveFriendGiftReq,8233
+ActivityGiveFriendGiftRsp,8696
+ActivityHaveRecvGiftNotify,8733
+ActivityInfoNotify,2060
+ActivityPlayOpenAnimNotify,2157
+ActivityPushTipsInfoNotify,8513
+ActivityReadPushTipsReq,8145
+ActivityReadPushTipsRsp,8574
+ActivitySaleChangeNotify,2071
+ActivityScheduleInfoNotify,2073
+ActivitySelectAvatarCardReq,2028
+ActivitySelectAvatarCardRsp,2189
+ActivitySetGiftWishReq,8017
+ActivitySetGiftWishRsp,8554
+ActivityTakeAllScoreRewardReq,8372
+ActivityTakeAllScoreRewardRsp,8043
+ActivityTakeScoreRewardReq,8971
+ActivityTakeScoreRewardRsp,8583
+ActivityTakeWatcherRewardBatchReq,2159
+ActivityTakeWatcherRewardBatchRsp,2109
+ActivityTakeWatcherRewardReq,2038
+ActivityTakeWatcherRewardRsp,2034
+ActivityUpdateWatcherNotify,2156
+AddAranaraCollectionNotify,6368
+AddBackupAvatarTeamReq,1687
+AddBackupAvatarTeamRsp,1735
+AddBlacklistReq,4088
+AddBlacklistRsp,4026
+AddFriendNotify,4022
+AddNoGachaAvatarCardNotify,1655
+AddQuestContentProgressReq,421
+AddQuestContentProgressRsp,403
+AddRandTaskInfoNotify,119
+AddSeenMonsterNotify,223
+AdjustWorldLevelReq,164
+AdjustWorldLevelRsp,138
+AllCoopInfoNotify,1976
+AllMarkPointNotify,3283
+AllSeenMonsterNotify,271
+AllShareCDDataNotify,9072
+AllWidgetBackgroundActiveStateNotify,6092
+AllWidgetDataNotify,4271
+AnchorPointDataNotify,4276
+AnchorPointOpReq,4257
+AnchorPointOpRsp,4252
+AnimatorForceSetAirMoveNotify,374
+AntiAddictNotify,180
+AranaraCollectionDataNotify,6376
+AreaPlayInfoNotify,3323
+ArenaChallengeFinishNotify,2030
+AskAddFriendNotify,4065
+AskAddFriendReq,4007
+AskAddFriendRsp,4021
+AssociateInferenceWordReq,429
+AssociateInferenceWordRsp,457
+AsterLargeInfoNotify,2146
+AsterLittleInfoNotify,2068
+AsterMidCampInfoNotify,2133
+AsterMidInfoNotify,2031
+AsterMiscInfoNotify,2036
+AsterProgressInfoNotify,2016
+AvatarAddNotify,1769
+AvatarBuffAddNotify,388
+AvatarBuffDelNotify,326
+AvatarCardChangeReq,688
+AvatarCardChangeRsp,626
+AvatarChangeAnimHashReq,1711
+AvatarChangeAnimHashRsp,1647
+AvatarChangeCostumeNotify,1644
+AvatarChangeCostumeReq,1778
+AvatarChangeCostumeRsp,1645
+AvatarChangeElementTypeReq,1785
+AvatarChangeElementTypeRsp,1651
+AvatarDataNotify,1633
+AvatarDelNotify,1773
+AvatarDieAnimationEndReq,1610
+AvatarDieAnimationEndRsp,1694
+AvatarEnterElementViewNotify,334
+AvatarEquipAffixStartNotify,1662
+AvatarEquipChangeNotify,647
+AvatarExpeditionAllDataReq,1722
+AvatarExpeditionAllDataRsp,1648
+AvatarExpeditionCallBackReq,1752
+AvatarExpeditionCallBackRsp,1726
+AvatarExpeditionDataNotify,1771
+AvatarExpeditionGetRewardReq,1623
+AvatarExpeditionGetRewardRsp,1784
+AvatarExpeditionStartReq,1715
+AvatarExpeditionStartRsp,1719
+AvatarFetterDataNotify,1782
+AvatarFetterLevelRewardReq,1653
+AvatarFetterLevelRewardRsp,1606
+AvatarFightPropNotify,1207
+AvatarFightPropUpdateNotify,1221
+AvatarFlycloakChangeNotify,1643
+AvatarFollowRouteNotify,3458
+AvatarGainCostumeNotify,1677
+AvatarGainFlycloakNotify,1656
+AvatarLifeStateChangeNotify,1290
+AvatarPromoteGetRewardReq,1696
+AvatarPromoteGetRewardRsp,1683
+AvatarPromoteReq,1664
+AvatarPromoteRsp,1639
+AvatarPropChangeReasonNotify,1273
+AvatarPropNotify,1231
+AvatarSatiationDataNotify,1693
+AvatarSkillChangeNotify,1097
+AvatarSkillDepotChangeNotify,1035
+AvatarSkillInfoNotify,1090
+AvatarSkillMaxChargeCountNotify,1003
+AvatarSkillUpgradeReq,1075
+AvatarSkillUpgradeRsp,1048
+AvatarTeamAllDataNotify,1749
+AvatarTeamUpdateNotify,1706
+AvatarUnlockTalentNotify,1012
+AvatarUpgradeReq,1770
+AvatarUpgradeRsp,1701
+AvatarWearFlycloakReq,1737
+AvatarWearFlycloakRsp,1698
+BackMyWorldReq,286
+BackMyWorldRsp,201
+BackPlayCustomDungeonOfficialReq,6203
+BackPlayCustomDungeonOfficialRsp,6204
+BackRebornGalleryReq,5593
+BackRebornGalleryRsp,5527
+BargainOfferPriceReq,493
+BargainOfferPriceRsp,427
+BargainStartNotify,404
+BargainTerminateNotify,494
+BartenderCancelLevelReq,8771
+BartenderCancelLevelRsp,8686
+BartenderCancelOrderReq,8442
+BartenderCancelOrderRsp,8837
+BartenderCompleteOrderReq,8414
+BartenderCompleteOrderRsp,8125
+BartenderFinishLevelReq,8227
+BartenderFinishLevelRsp,8093
+BartenderGetFormulaReq,8462
+BartenderGetFormulaRsp,8842
+BartenderLevelProgressNotify,8756
+BartenderStartLevelReq,8507
+BartenderStartLevelRsp,8402
+BattlePassAllDataNotify,2626
+BattlePassBuySuccNotify,2614
+BattlePassCurScheduleUpdateNotify,2607
+BattlePassMissionDelNotify,2625
+BattlePassMissionUpdateNotify,2618
+BeginCameraSceneLookNotify,270
+BeginCameraSceneLookWithTemplateNotify,3160
+BigTalentPointConvertReq,1007
+BigTalentPointConvertRsp,1021
+BlessingAcceptAllGivePicReq,2045
+BlessingAcceptAllGivePicRsp,2044
+BlessingAcceptGivePicReq,2006
+BlessingAcceptGivePicRsp,2055
+BlessingGetAllRecvPicRecordListReq,2096
+BlessingGetAllRecvPicRecordListRsp,2083
+BlessingGetFriendPicListReq,2043
+BlessingGetFriendPicListRsp,2056
+BlessingGiveFriendPicReq,2062
+BlessingGiveFriendPicRsp,2053
+BlessingRecvFriendPicNotify,2178
+BlessingRedeemRewardReq,2137
+BlessingRedeemRewardRsp,2098
+BlessingScanReq,2081
+BlessingScanRsp,2093
+BlitzRushParkourRestartReq,8653
+BlitzRushParkourRestartRsp,8944
+BlossomBriefInfoNotify,2712
+BlossomChestCreateNotify,2721
+BlossomChestInfoNotify,890
+BonusActivityInfoReq,2548
+BonusActivityInfoRsp,2597
+BonusActivityUpdateNotify,2575
+BossChestActivateNotify,803
+BounceConjuringSettleNotify,8084
+BuoyantCombatSettleNotify,8305
+BuyBattlePassLevelReq,2647
+BuyBattlePassLevelRsp,2637
+BuyGoodsReq,712
+BuyGoodsRsp,735
+BuyResinReq,602
+BuyResinRsp,619
+CalcWeaponUpgradeReturnItemsReq,633
+CalcWeaponUpgradeReturnItemsRsp,684
+CanUseSkillNotify,1005
+CancelCityReputationRequestReq,2899
+CancelCityReputationRequestRsp,2831
+CancelCoopTaskReq,1997
+CancelCoopTaskRsp,1987
+CancelFinishParentQuestNotify,424
+CardProductRewardNotify,4107
+CataLogFinishedGlobalWatcherAllDataNotify,6370
+CataLogNewFinishedGlobalWatcherNotify,6395
+ChallengeDataNotify,953
+ChallengeRecordNotify,993
+ChangeAvatarReq,1640
+ChangeAvatarRsp,1607
+ChangeCustomDungeonRoomReq,6222
+ChangeCustomDungeonRoomRsp,6244
+ChangeGameTimeReq,173
+ChangeGameTimeRsp,199
+ChangeMailStarNotify,1448
+ChangeMpTeamAvatarReq,1708
+ChangeMpTeamAvatarRsp,1753
+ChangeServerGlobalValueNotify,27
+ChangeTeamNameReq,1603
+ChangeTeamNameRsp,1666
+ChangeWidgetBackgroundActiveStateReq,5907
+ChangeWidgetBackgroundActiveStateRsp,6060
+ChangeWorldToSingleModeNotify,3006
+ChangeWorldToSingleModeReq,3066
+ChangeWorldToSingleModeRsp,3282
+ChannelerSlabCheckEnterLoopDungeonReq,8745
+ChannelerSlabCheckEnterLoopDungeonRsp,8452
+ChannelerSlabEnterLoopDungeonReq,8869
+ChannelerSlabEnterLoopDungeonRsp,8081
+ChannelerSlabLoopDungeonChallengeInfoNotify,8224
+ChannelerSlabLoopDungeonSelectConditionReq,8503
+ChannelerSlabLoopDungeonSelectConditionRsp,8509
+ChannelerSlabLoopDungeonTakeFirstPassRewardReq,8589
+ChannelerSlabLoopDungeonTakeFirstPassRewardRsp,8539
+ChannelerSlabLoopDungeonTakeScoreRewardReq,8684
+ChannelerSlabLoopDungeonTakeScoreRewardRsp,8433
+ChannelerSlabOneOffDungeonInfoNotify,8729
+ChannelerSlabOneOffDungeonInfoReq,8409
+ChannelerSlabOneOffDungeonInfoRsp,8268
+ChannelerSlabSaveAssistInfoReq,8416
+ChannelerSlabSaveAssistInfoRsp,8932
+ChannelerSlabStageActiveChallengeIndexNotify,8734
+ChannelerSlabStageOneofDungeonNotify,8203
+ChannelerSlabTakeoffBuffReq,8516
+ChannelerSlabTakeoffBuffRsp,8237
+ChannelerSlabWearBuffReq,8107
+ChannelerSlabWearBuffRsp,8600
+ChapterStateNotify,405
+CharAmusementSettleNotify,23133
+ChatChannelDataNotify,4998
+ChatChannelUpdateNotify,5025
+ChatHistoryNotify,3496
+CheckAddItemExceedLimitNotify,692
+CheckGroupReplacedReq,3113
+CheckGroupReplacedRsp,3152
+CheckSegmentCRCNotify,39
+CheckSegmentCRCReq,53
+CheckUgcStateReq,6342
+CheckUgcStateRsp,6314
+CheckUgcUpdateReq,6320
+CheckUgcUpdateRsp,6345
+ChessEscapedMonstersNotify,5314
+ChessLeftMonstersNotify,5360
+ChessManualRefreshCardsReq,5389
+ChessManualRefreshCardsRsp,5359
+ChessPickCardNotify,5380
+ChessPickCardReq,5333
+ChessPickCardRsp,5384
+ChessPlayerInfoNotify,5332
+ChessSelectedCardsNotify,5392
+ChooseCurAvatarTeamReq,1796
+ChooseCurAvatarTeamRsp,1661
+CityReputationDataNotify,2805
+CityReputationLevelupNotify,2807
+ClearRoguelikeCurseNotify,8207
+ClientAIStateNotify,1181
+ClientAbilitiesInitFinishCombineNotify,1103
+ClientAbilityChangeNotify,1175
+ClientAbilityInitBeginNotify,1112
+ClientAbilityInitFinishNotify,1135
+ClientBulletCreateNotify,4
+ClientCollectorDataNotify,4264
+ClientHashDebugNotify,3086
+ClientLoadingCostumeVerificationNotify,3487
+ClientLockGameTimeNotify,114
+ClientNewMailNotify,1499
+ClientPauseNotify,260
+ClientReconnectNotify,75
+ClientRemoveCombatEndModifierNotify,1182
+ClientReportNotify,81
+ClientScriptEventNotify,213
+ClientTransmitReq,291
+ClientTransmitRsp,224
+ClientTriggerEventNotify,148
+CloseCommonTipsNotify,3194
+ClosedItemNotify,614
+CodexDataFullNotify,4205
+CodexDataUpdateNotify,4207
+CombatInvocationsNotify,319
+CombineDataNotify,659
+CombineFormulaDataNotify,632
+CombineReq,643
+CombineRsp,674
+CommonPlayerTipsNotify,8466
+CompoundDataNotify,146
+CompoundUnlockNotify,128
+CookDataNotify,195
+CookGradeDataNotify,134
+CookRecipeDataNotify,106
+CoopCgShowNotify,1983
+CoopCgUpdateNotify,1994
+CoopChapterUpdateNotify,1972
+CoopDataNotify,1979
+CoopPointUpdateNotify,1991
+CoopProgressUpdateNotify,1998
+CoopRewardUpdateNotify,1999
+CreateMassiveEntityNotify,367
+CreateMassiveEntityReq,342
+CreateMassiveEntityRsp,330
+CreateVehicleReq,893
+CreateVehicleRsp,827
+CrystalLinkDungeonInfoNotify,8858
+CrystalLinkEnterDungeonReq,8325
+CrystalLinkEnterDungeonRsp,8147
+CrystalLinkRestartDungeonReq,8022
+CrystalLinkRestartDungeonRsp,8119
+CustomDungeonBattleRecordNotify,6236
+CustomDungeonOfficialNotify,6221
+CustomDungeonRecoverNotify,6217
+CustomDungeonUpdateNotify,6223
+CutSceneBeginNotify,296
+CutSceneEndNotify,215
+CutSceneFinishNotify,262
+DailyTaskDataNotify,158
+DailyTaskFilterCityReq,111
+DailyTaskFilterCityRsp,144
+DailyTaskProgressNotify,170
+DailyTaskScoreRewardNotify,117
+DailyTaskUnlockedCitiesNotify,186
+DataResVersionNotify,167
+DealAddFriendReq,4003
+DealAddFriendRsp,4090
+DeathZoneInfoNotify,6268
+DeathZoneObserveNotify,3475
+DebugNotify,101
+DelBackupAvatarTeamReq,1731
+DelBackupAvatarTeamRsp,1729
+DelMailReq,1421
+DelMailRsp,1403
+DelScenePlayTeamEntityNotify,3318
+DelTeamEntityNotify,302
+DeleteFriendNotify,4053
+DeleteFriendReq,4031
+DeleteFriendRsp,4075
+DeshretObeliskChestInfoNotify,841
+DestroyMassiveEntityNotify,358
+DestroyMaterialReq,640
+DestroyMaterialRsp,618
+DigActivityChangeGadgetStateReq,8464
+DigActivityChangeGadgetStateRsp,8430
+DigActivityMarkPointChangeNotify,8109
+DisableRoguelikeTrapNotify,8259
+DoGachaReq,1512
+DoGachaRsp,1535
+DoRoguelikeDungeonCardGachaReq,8148
+DoRoguelikeDungeonCardGachaRsp,8472
+DoSetPlayerBornDataNotify,147
+DraftGuestReplyInviteNotify,5490
+DraftGuestReplyInviteReq,5421
+DraftGuestReplyInviteRsp,5403
+DraftGuestReplyTwiceConfirmNotify,5497
+DraftGuestReplyTwiceConfirmReq,5431
+DraftGuestReplyTwiceConfirmRsp,5475
+DraftInviteResultNotify,5473
+DraftOwnerInviteNotify,5407
+DraftOwnerStartInviteReq,5412
+DraftOwnerStartInviteRsp,5435
+DraftOwnerTwiceConfirmNotify,5499
+DraftTwiceConfirmResultNotify,5448
+DragonSpineChapterFinishNotify,2069
+DragonSpineChapterOpenNotify,2022
+DragonSpineChapterProgressChangeNotify,2065
+DragonSpineCoinChangeNotify,2088
+DropHintNotify,650
+DropItemReq,699
+DropItemRsp,631
+DungeonCandidateTeamChangeAvatarReq,956
+DungeonCandidateTeamChangeAvatarRsp,942
+DungeonCandidateTeamCreateReq,995
+DungeonCandidateTeamCreateRsp,906
+DungeonCandidateTeamDismissNotify,963
+DungeonCandidateTeamInfoNotify,927
+DungeonCandidateTeamInviteNotify,994
+DungeonCandidateTeamInviteReq,934
+DungeonCandidateTeamInviteRsp,950
+DungeonCandidateTeamKickReq,943
+DungeonCandidateTeamKickRsp,974
+DungeonCandidateTeamLeaveReq,976
+DungeonCandidateTeamLeaveRsp,946
+DungeonCandidateTeamPlayerLeaveNotify,926
+DungeonCandidateTeamRefuseNotify,988
+DungeonCandidateTeamReplyInviteReq,941
+DungeonCandidateTeamReplyInviteRsp,949
+DungeonCandidateTeamSetChangingAvatarReq,918
+DungeonCandidateTeamSetChangingAvatarRsp,966
+DungeonCandidateTeamSetReadyReq,991
+DungeonCandidateTeamSetReadyRsp,924
+DungeonChallengeBeginNotify,947
+DungeonChallengeFinishNotify,939
+DungeonDataNotify,982
+DungeonDieOptionReq,975
+DungeonDieOptionRsp,948
+DungeonEntryInfoReq,972
+DungeonEntryInfoRsp,998
+DungeonEntryToBeExploreNotify,3147
+DungeonFollowNotify,922
+DungeonGetStatueDropReq,965
+DungeonGetStatueDropRsp,904
+DungeonInterruptChallengeReq,917
+DungeonInterruptChallengeRsp,902
+DungeonPlayerDieNotify,931
+DungeonPlayerDieReq,981
+DungeonPlayerDieRsp,905
+DungeonRestartInviteNotify,957
+DungeonRestartInviteReplyNotify,987
+DungeonRestartInviteReplyReq,1000
+DungeonRestartInviteReplyRsp,916
+DungeonRestartReq,961
+DungeonRestartResultNotify,940
+DungeonRestartRsp,929
+DungeonReviseLevelNotify,933
+DungeonReviseLevelNotify,968
+DungeonSettleNotify,999
+DungeonShowReminderNotify,997
+DungeonSlipRevivePointActivateReq,958
+DungeonSlipRevivePointActivateRsp,970
+DungeonWayPointActivateReq,990
+DungeonWayPointActivateRsp,973
+DungeonWayPointNotify,903
+EchoNotify,65
+EchoShellTakeRewardReq,8114
+EchoShellTakeRewardRsp,8797
+EchoShellUpdateNotify,8150
+EffigyChallengeInfoNotify,2090
+EffigyChallengeResultNotify,2046
+EffigyChallengeV2ChooseSkillReq,21269
+EffigyChallengeV2ChooseSkillRsp,22448
+EffigyChallengeV2DungeonInfoNotify,22835
+EffigyChallengeV2EnterDungeonReq,23489
+EffigyChallengeV2EnterDungeonRsp,24917
+EffigyChallengeV2RestartDungeonReq,24522
+EffigyChallengeV2RestartDungeonRsp,23167
+EndCameraSceneLookNotify,217
+EnterChessDungeonReq,8191
+EnterChessDungeonRsp,8592
+EnterCustomDungeonReq,6226
+EnterCustomDungeonRsp,6218
+EnterFishingReq,5826
+EnterFishingRsp,5818
+EnterFungusFighterPlotDungeonReq,23053
+EnterFungusFighterPlotDungeonRsp,21008
+EnterFungusFighterTrainingDungeonReq,23860
+EnterFungusFighterTrainingDungeonRsp,21593
+EnterIrodoriChessDungeonReq,8717
+EnterIrodoriChessDungeonRsp,8546
+EnterMechanicusDungeonReq,3931
+EnterMechanicusDungeonRsp,3975
+EnterRogueDiaryDungeonReq,8943
+EnterRogueDiaryDungeonRsp,8352
+EnterRoguelikeDungeonNotify,8652
+EnterSceneDoneReq,277
+EnterSceneDoneRsp,237
+EnterScenePeerNotify,252
+EnterSceneReadyReq,208
+EnterSceneReadyRsp,209
+EnterSceneWeatherAreaNotify,256
+EnterTransPointRegionNotify,205
+EnterTrialAvatarActivityDungeonReq,2118
+EnterTrialAvatarActivityDungeonRsp,2183
+EnterWorldAreaReq,250
+EnterWorldAreaRsp,243
+EntityAiKillSelfNotify,340
+EntityAiSyncNotify,400
+EntityAuthorityChangeNotify,394
+EntityConfigHashNotify,3189
+EntityFightPropChangeReasonNotify,1203
+EntityFightPropNotify,1212
+EntityFightPropUpdateNotify,1235
+EntityForceSyncReq,274
+EntityForceSyncRsp,276
+EntityJumpNotify,222
+EntityMoveRoomNotify,3178
+EntityPropNotify,1272
+EntityTagChangeNotify,3316
+EquipRoguelikeRuneReq,8306
+EquipRoguelikeRuneRsp,8705
+EvtAiSyncCombatThreatInfoNotify,329
+EvtAiSyncSkillCdNotify,376
+EvtAnimatorParameterNotify,398
+EvtAnimatorStateChangedNotify,331
+EvtAvatarEnterFocusNotify,304
+EvtAvatarExitFocusNotify,393
+EvtAvatarLockChairReq,318
+EvtAvatarLockChairRsp,366
+EvtAvatarSitDownNotify,324
+EvtAvatarStandUpNotify,356
+EvtAvatarUpdateFocusNotify,327
+EvtBeingHealedNotify,333
+EvtBeingHitNotify,372
+EvtBeingHitsCombineNotify,346
+EvtBulletDeactiveNotify,397
+EvtBulletHitNotify,348
+EvtBulletMoveNotify,365
+EvtCostStaminaNotify,373
+EvtCreateGadgetNotify,307
+EvtDestroyGadgetNotify,321
+EvtDestroyServerGadgetNotify,387
+EvtDoSkillSuccNotify,335
+EvtEntityRenderersChangedNotify,343
+EvtEntityStartDieEndNotify,381
+EvtFaceToDirNotify,390
+EvtFaceToEntityNotify,303
+EvtLocalGadgetOwnerLeaveSceneNotify,384
+EvtRushMoveNotify,375
+EvtSetAttackTargetNotify,399
+ExclusiveRuleNotify,101
+ExecuteGadgetLuaReq,269
+ExecuteGadgetLuaRsp,210
+ExecuteGroupTriggerReq,257
+ExecuteGroupTriggerRsp,300
+ExitCustomDungeonTryReq,6247
+ExitCustomDungeonTryRsp,6237
+ExitFishingReq,5814
+ExitFishingRsp,5847
+ExitSceneWeatherAreaNotify,242
+ExitTransPointRegionNotify,282
+ExpeditionChallengeEnterRegionNotify,2154
+ExpeditionChallengeFinishedNotify,2091
+ExpeditionRecallReq,2131
+ExpeditionRecallRsp,2129
+ExpeditionStartReq,2087
+ExpeditionStartRsp,2135
+ExpeditionTakeRewardReq,2149
+ExpeditionTakeRewardRsp,2080
+FindHilichurlAcceptQuestNotify,8659
+FindHilichurlFinishSecondQuestNotify,8901
+FinishDeliveryNotify,2089
+FinishLanternProjectionReq,8704
+FinishLanternProjectionRsp,8713
+FinishMainCoopReq,1952
+FinishMainCoopRsp,1981
+FinishedParentQuestNotify,435
+FinishedParentQuestUpdateNotify,407
+FinishedTalkIdListNotify,573
+FireworksLaunchDataNotify,5928
+FireworksReformDataNotify,6033
+FishAttractNotify,5837
+FishBaitGoneNotify,5823
+FishBattleBeginReq,5820
+FishBattleBeginRsp,5845
+FishBattleEndReq,5841
+FishBattleEndRsp,5842
+FishBiteReq,5844
+FishBiteRsp,5849
+FishCastRodReq,5802
+FishCastRodRsp,5831
+FishChosenNotify,5829
+FishEscapeNotify,5822
+FishPoolDataNotify,5848
+FishingGallerySettleNotify,8780
+FleurFairBalloonSettleNotify,2099
+FleurFairBuffEnergyNotify,5324
+FleurFairFallSettleNotify,2017
+FleurFairFinishGalleryStageNotify,5342
+FleurFairMusicGameSettleReq,2194
+FleurFairMusicGameSettleRsp,2113
+FleurFairMusicGameStartReq,2167
+FleurFairMusicGameStartRsp,2079
+FleurFairReplayMiniGameReq,2181
+FleurFairReplayMiniGameRsp,2052
+FleurFairStageSettleNotify,5356
+FlightActivityRestartReq,2037
+FlightActivityRestartRsp,2165
+FlightActivitySettleNotify,2195
+FocusAvatarReq,1654
+FocusAvatarRsp,1681
+ForceAddPlayerFriendReq,4057
+ForceAddPlayerFriendRsp,4100
+ForceDragAvatarNotify,3235
+ForceDragBackTransferNotify,3145
+ForgeDataNotify,680
+ForgeFormulaDataNotify,689
+ForgeGetQueueDataReq,646
+ForgeGetQueueDataRsp,641
+ForgeQueueDataNotify,676
+ForgeQueueManipulateReq,624
+ForgeQueueManipulateRsp,656
+ForgeStartReq,649
+ForgeStartRsp,691
+FoundationNotify,847
+FoundationReq,805
+FoundationRsp,882
+FriendInfoChangeNotify,4032
+FungusCaptureSettleNotify,5506
+FungusCultivateReq,21749
+FungusCultivateRsp,23532
+FungusFighterClearTrainingRuntimeDataReq,24137
+FungusFighterClearTrainingRuntimeDataRsp,22991
+FungusFighterPlotInfoNotify,22174
+FungusFighterRestartTraningDungeonReq,23980
+FungusFighterRestartTraningDungeonRsp,22890
+FungusFighterRuntimeDataNotify,24674
+FungusFighterTrainingGallerySettleNotify,23931
+FungusFighterTrainingInfoNotify,5595
+FungusFighterTrainingSelectFungusReq,23903
+FungusFighterTrainingSelectFungusRsp,21570
+FungusFighterUseBackupFungusReq,21266
+FungusFighterUseBackupFungusRsp,23428
+FungusRenameReq,22006
+FungusRenameRsp,20066
+FunitureMakeMakeInfoChangeNotify,4898
+FurnitureCurModuleArrangeCountNotify,4498
+FurnitureMakeBeHelpedNotify,4578
+FurnitureMakeCancelReq,4555
+FurnitureMakeCancelRsp,4683
+FurnitureMakeFinishNotify,4841
+FurnitureMakeHelpReq,4865
+FurnitureMakeHelpRsp,4756
+FurnitureMakeReq,4477
+FurnitureMakeRsp,4782
+FurnitureMakeStartReq,4633
+FurnitureMakeStartRsp,4729
+GCGApplyInviteBattleNotify,7820
+GCGApplyInviteBattleReq,7730
+GCGApplyInviteBattleRsp,7304
+GCGAskDuelReq,7237
+GCGAskDuelRsp,7869
+GCGBasicDataNotify,7319
+GCGBossChallengeUpdateNotify,7073
+GCGChallengeUpdateNotify,7268
+GCGClientSettleReq,7506
+GCGClientSettleRsp,7105
+GCGDSCardBackUnlockNotify,7265
+GCGDSCardFaceUnlockNotify,7049
+GCGDSCardNumChangeNotify,7358
+GCGDSCardProficiencyNotify,7680
+GCGDSChangeCardBackReq,7292
+GCGDSChangeCardBackRsp,7044
+GCGDSChangeCardFaceReq,7169
+GCGDSChangeCardFaceRsp,7331
+GCGDSChangeCurDeckReq,7131
+GCGDSChangeCurDeckRsp,7301
+GCGDSChangeDeckNameReq,7432
+GCGDSChangeDeckNameRsp,7916
+GCGDSChangeFieldReq,7541
+GCGDSChangeFieldRsp,7444
+GCGDSCurDeckChangeNotify,7796
+GCGDSDataNotify,7122
+GCGDSDeckSaveReq,7104
+GCGDSDeckSaveRsp,7269
+GCGDSDeckUnlockNotify,7732
+GCGDSDeleteDeckReq,7988
+GCGDSDeleteDeckRsp,7524
+GCGDSFieldUnlockNotify,7333
+GCGGameBriefDataNotify,7539
+GCGGrowthLevelNotify,7736
+GCGGrowthLevelRewardNotify,7477
+GCGGrowthLevelTakeRewardReq,7051
+GCGGrowthLevelTakeRewardRsp,7670
+GCGHeartBeatNotify,7224
+GCGInitFinishReq,7684
+GCGInitFinishRsp,7433
+GCGInviteBattleNotify,7692
+GCGInviteGuestBattleReq,7783
+GCGInviteGuestBattleRsp,7251
+GCGLevelChallengeFinishNotify,7629
+GCGLevelChallengeNotify,7055
+GCGMessagePackNotify,7516
+GCGNewCardInfoNotify,7203
+GCGOperationReq,7107
+GCGOperationRsp,7600
+GCGResourceStateNotify,7876
+GCGSettleNotify,7769
+GCGSettleOptionReq,7124
+GCGSettleOptionRsp,7735
+GCGSkillPreviewAskReq,7509
+GCGSkillPreviewAskRsp,7409
+GCGSkillPreviewNotify,7503
+GCGStartChallengeReq,7595
+GCGStartChallengeRsp,7763
+GCGTCInviteReq,7922
+GCGTCInviteRsp,7328
+GCGTCTavernChallengeDataNotify,7294
+GCGTCTavernChallengeUpdateNotify,7184
+GCGTCTavernInfoNotify,7011
+GCGTavernNpcInfoNotify,7290
+GCGWeekChallengeInfoNotify,7615
+GCGWorldChallengeUnlockNotify,7204
+GMShowNavMeshReq,2357
+GMShowNavMeshRsp,2400
+GMShowObstacleReq,2361
+GMShowObstacleRsp,2329
+GachaActivityCreateRobotReq,8614
+GachaActivityCreateRobotRsp,8610
+GachaActivityNextStageReq,8257
+GachaActivityNextStageRsp,8918
+GachaActivityPercentNotify,8450
+GachaActivityResetReq,8163
+GachaActivityResetRsp,8240
+GachaActivityTakeRewardReq,8930
+GachaActivityTakeRewardRsp,8768
+GachaActivityUpdateElemNotify,8919
+GachaOpenWishNotify,1503
+GachaSimpleInfoNotify,1590
+GachaWishReq,1507
+GachaWishRsp,1521
+GadgetAutoPickDropInfoNotify,897
+GadgetChainLevelChangeNotify,822
+GadgetChainLevelUpdateNotify,853
+GadgetChangeLevelTagReq,843
+GadgetChangeLevelTagRsp,874
+GadgetCustomTreeInfoNotify,850
+GadgetGeneralRewardInfoNotify,848
+GadgetInteractReq,872
+GadgetInteractRsp,898
+GadgetPlayDataNotify,831
+GadgetPlayStartNotify,873
+GadgetPlayStopNotify,899
+GadgetPlayUidOpNotify,875
+GadgetStateNotify,812
+GadgetTalkChangeNotify,839
+GalleryBalloonScoreNotify,5512
+GalleryBalloonShootNotify,5598
+GalleryBounceConjuringHitNotify,5505
+GalleryBrokenFloorFallNotify,5575
+GalleryBulletHitNotify,5531
+GalleryCrystalLinkBuffInfoNotify,5539
+GalleryCrystalLinkKillMonsterNotify,5547
+GalleryFallCatchNotify,5507
+GalleryFallScoreNotify,5521
+GalleryFlowerCatchNotify,5573
+GalleryIslandPartyDownHillInfoNotify,5522
+GalleryPreStartNotify,5599
+GalleryStartNotify,5572
+GalleryStopNotify,5535
+GallerySumoKillMonsterNotify,5582
+GalleryWillStartCountdownNotify,5594
+GearActivityFinishPlayGearReq,21834
+GearActivityFinishPlayGearRsp,21800
+GearActivityFinishPlayPictureReq,21054
+GearActivityFinishPlayPictureRsp,21851
+GearActivityStartPlayGearReq,23467
+GearActivityStartPlayGearRsp,21025
+GearActivityStartPlayPictureReq,24550
+GearActivityStartPlayPictureRsp,23388
+GetActivityInfoReq,2095
+GetActivityInfoRsp,2041
+GetActivityScheduleReq,2136
+GetActivityScheduleRsp,2107
+GetActivityShopSheetInfoReq,703
+GetActivityShopSheetInfoRsp,790
+GetAllActivatedBargainDataReq,463
+GetAllActivatedBargainDataRsp,495
+GetAllH5ActivityInfoReq,5668
+GetAllH5ActivityInfoRsp,5676
+GetAllMailNotify,1497
+GetAllMailReq,1431
+GetAllMailResultNotify,1481
+GetAllMailRsp,1475
+GetAllSceneGalleryInfoReq,5503
+GetAllSceneGalleryInfoRsp,5590
+GetAllUnlockNameCardReq,4027
+GetAllUnlockNameCardRsp,4094
+GetAreaExplorePointReq,241
+GetAreaExplorePointRsp,249
+GetAuthSalesmanInfoReq,2070
+GetAuthSalesmanInfoRsp,2004
+GetAuthkeyReq,1490
+GetAuthkeyRsp,1473
+GetBargainDataReq,488
+GetBargainDataRsp,426
+GetBattlePassProductReq,2644
+GetBattlePassProductRsp,2649
+GetBlossomBriefInfoListReq,2772
+GetBlossomBriefInfoListRsp,2798
+GetBonusActivityRewardReq,2581
+GetBonusActivityRewardRsp,2505
+GetChatEmojiCollectionReq,4068
+GetChatEmojiCollectionRsp,4033
+GetCityHuntingOfferReq,4325
+GetCityHuntingOfferRsp,4307
+GetCityReputationInfoReq,2872
+GetCityReputationInfoRsp,2898
+GetCityReputationMapInfoReq,2875
+GetCityReputationMapInfoRsp,2848
+GetCompoundDataReq,141
+GetCompoundDataRsp,149
+GetCustomDungeonReq,6209
+GetCustomDungeonRsp,6227
+GetDailyDungeonEntryInfoReq,930
+GetDailyDungeonEntryInfoRsp,967
+GetDungeonEntryExploreConditionReq,3165
+GetDungeonEntryExploreConditionRsp,3269
+GetExpeditionAssistInfoListReq,2150
+GetExpeditionAssistInfoListRsp,2035
+GetFriendShowAvatarInfoReq,4070
+GetFriendShowAvatarInfoRsp,4017
+GetFriendShowNameCardInfoReq,4061
+GetFriendShowNameCardInfoRsp,4029
+GetFurnitureCurModuleArrangeCountReq,4711
+GetGachaInfoReq,1572
+GetGachaInfoRsp,1598
+GetGameplayRecommendationReq,151
+GetGameplayRecommendationRsp,123
+GetHomeExchangeWoodInfoReq,4473
+GetHomeExchangeWoodInfoRsp,4659
+GetHomeLevelUpRewardReq,4557
+GetHomeLevelUpRewardRsp,4603
+GetHuntingOfferRewardReq,4302
+GetHuntingOfferRewardRsp,4331
+GetInvestigationMonsterReq,1901
+GetInvestigationMonsterRsp,1910
+GetMailItemReq,1435
+GetMailItemRsp,1407
+GetMapAreaReq,3108
+GetMapAreaRsp,3328
+GetMapMarkTipsReq,3463
+GetMapMarkTipsRsp,3327
+GetMechanicusInfoReq,3972
+GetMechanicusInfoRsp,3998
+GetNextResourceInfoReq,192
+GetNextResourceInfoRsp,120
+GetOnlinePlayerInfoReq,82
+GetOnlinePlayerInfoRsp,47
+GetOnlinePlayerListReq,90
+GetOnlinePlayerListRsp,73
+GetOpActivityInfoReq,5172
+GetOpActivityInfoRsp,5198
+GetParentQuestVideoKeyReq,470
+GetParentQuestVideoKeyRsp,417
+GetPlayerAskFriendListReq,4018
+GetPlayerAskFriendListRsp,4066
+GetPlayerBlacklistReq,4049
+GetPlayerBlacklistRsp,4091
+GetPlayerFriendListReq,4072
+GetPlayerFriendListRsp,4098
+GetPlayerHomeCompInfoReq,4597
+GetPlayerMpModeAvailabilityReq,1844
+GetPlayerMpModeAvailabilityRsp,1849
+GetPlayerSocialDetailReq,4073
+GetPlayerSocialDetailRsp,4099
+GetPlayerTokenReq,172
+GetPlayerTokenRsp,198
+GetPushTipsRewardReq,2227
+GetPushTipsRewardRsp,2294
+GetQuestLackingResourceReq,467
+GetQuestLackingResourceRsp,458
+GetQuestTalkHistoryReq,490
+GetQuestTalkHistoryRsp,473
+GetRecentMpPlayerListReq,4034
+GetRecentMpPlayerListRsp,4050
+GetRecommendCustomDungeonReq,6235
+GetRecommendCustomDungeonRsp,6248
+GetRegionSearchReq,5602
+GetReunionMissionInfoReq,5094
+GetReunionMissionInfoRsp,5099
+GetReunionPrivilegeInfoReq,5097
+GetReunionPrivilegeInfoRsp,5087
+GetReunionSignInInfoReq,5052
+GetReunionSignInInfoRsp,5081
+GetRogueDairyRepairInfoReq,8014
+GetRogueDairyRepairInfoRsp,8447
+GetSceneAreaReq,265
+GetSceneAreaRsp,204
+GetSceneNpcPositionReq,535
+GetSceneNpcPositionRsp,507
+GetScenePerformanceReq,3419
+GetScenePerformanceRsp,3137
+GetScenePointReq,297
+GetScenePointRsp,281
+GetShopReq,772
+GetShopRsp,798
+GetShopmallDataReq,707
+GetShopmallDataRsp,721
+GetSignInRewardReq,2507
+GetSignInRewardRsp,2521
+GetStoreCustomDungeonReq,6250
+GetStoreCustomDungeonRsp,6212
+GetUgcBriefInfoReq,6325
+GetUgcBriefInfoRsp,6307
+GetUgcReq,6326
+GetUgcRsp,6318
+GetWidgetSlotReq,4253
+GetWidgetSlotRsp,4254
+GetWorldMpInfoReq,3391
+GetWorldMpInfoRsp,3320
+GiveUpRoguelikeDungeonCardReq,8353
+GiveUpRoguelikeDungeonCardRsp,8497
+GivingRecordChangeNotify,187
+GivingRecordNotify,116
+GlobalBuildingInfoNotify,5320
+GmTalkNotify,94
+GmTalkReq,98
+GmTalkRsp,12
+GrantRewardNotify,663
+GravenInnocenceEditCarveCombinationReq,23107
+GravenInnocenceEditCarveCombinationRsp,20702
+GravenInnocencePhotoFinishReq,21750
+GravenInnocencePhotoFinishRsp,23948
+GravenInnocencePhotoReminderNotify,23864
+GravenInnocenceRaceRestartReq,22882
+GravenInnocenceRaceRestartRsp,21880
+GravenInnocenceRaceSettleNotify,20681
+GroupLinkAllNotify,5776
+GroupLinkChangeNotify,5768
+GroupLinkDeleteNotify,5775
+GroupLinkMarkUpdateNotify,5757
+GroupSuiteNotify,3257
+GroupUnloadNotify,3344
+GuestBeginEnterSceneNotify,3031
+GuestPostEnterSceneNotify,3144
+H5ActivityIdsNotify,5675
+HideAndSeekPlayerReadyNotify,5302
+HideAndSeekPlayerSetAvatarNotify,5319
+HideAndSeekSelectAvatarReq,5330
+HideAndSeekSelectAvatarRsp,5367
+HideAndSeekSelectSkillReq,8183
+HideAndSeekSelectSkillRsp,8088
+HideAndSeekSetReadyReq,5358
+HideAndSeekSetReadyRsp,5370
+HideAndSeekSettleNotify,5317
+HitClientTrivialNotify,244
+HitTreeNotify,3019
+HomeAllUnlockedBgmIdListNotify,4608
+HomeAvatarAllFinishRewardNotify,4741
+HomeAvatarCostumeChangeNotify,4748
+HomeAvatarRewardEventGetReq,4551
+HomeAvatarRewardEventGetRsp,4833
+HomeAvatarRewardEventNotify,4852
+HomeAvatarSummonAllEventNotify,4808
+HomeAvatarSummonEventReq,4806
+HomeAvatarSummonEventRsp,4817
+HomeAvatarSummonFinishReq,4629
+HomeAvatarSummonFinishRsp,4696
+HomeAvatarTalkFinishInfoNotify,4896
+HomeAvatarTalkReq,4688
+HomeAvatarTalkRsp,4464
+HomeAvtarAllFinishRewardNotify,4453
+HomeBalloonGalleryScoreNotify,4654
+HomeBalloonGallerySettleNotify,4811
+HomeBasicInfoNotify,4885
+HomeBlockNotify,4543
+HomeBlueprintInfoNotify,4765
+HomeChangeBgmNotify,4872
+HomeChangeBgmReq,4558
+HomeChangeBgmRsp,4488
+HomeChangeEditModeReq,4564
+HomeChangeEditModeRsp,4559
+HomeChangeModuleReq,4809
+HomeChangeModuleRsp,4596
+HomeChooseModuleReq,4524
+HomeChooseModuleRsp,4648
+HomeClearGroupRecordReq,4759
+HomeClearGroupRecordRsp,4605
+HomeComfortInfoNotify,4699
+HomeCreateBlueprintReq,4619
+HomeCreateBlueprintRsp,4606
+HomeCustomFurnitureInfoNotify,4712
+HomeDeleteBlueprintReq,4502
+HomeDeleteBlueprintRsp,4586
+HomeEditCustomFurnitureReq,4724
+HomeEditCustomFurnitureRsp,4496
+HomeEnterEditModeFinishReq,4537
+HomeEnterEditModeFinishRsp,4615
+HomeExchangeWoodReq,4576
+HomeExchangeWoodRsp,4622
+HomeFishFarmingInfoNotify,4677
+HomeGalleryInPlayingNotify,5553
+HomeGetArrangementInfoReq,4848
+HomeGetArrangementInfoRsp,4844
+HomeGetBasicInfoReq,4655
+HomeGetBlueprintSlotInfoReq,4584
+HomeGetBlueprintSlotInfoRsp,4662
+HomeGetFishFarmingInfoReq,4476
+HomeGetFishFarmingInfoRsp,4678
+HomeGetGroupRecordReq,4523
+HomeGetGroupRecordRsp,4538
+HomeGetOnlineStatusReq,4820
+HomeGetOnlineStatusRsp,4705
+HomeKickPlayerReq,4870
+HomeKickPlayerRsp,4691
+HomeLimitedShopBuyGoodsReq,4760
+HomeLimitedShopBuyGoodsRsp,4750
+HomeLimitedShopGoodsListReq,4552
+HomeLimitedShopGoodsListRsp,4546
+HomeLimitedShopInfoChangeNotify,4790
+HomeLimitedShopInfoNotify,4887
+HomeLimitedShopInfoReq,4825
+HomeLimitedShopInfoRsp,4796
+HomeMarkPointNotify,4474
+HomeModuleSeenReq,4499
+HomeModuleSeenRsp,4821
+HomeModuleUnlockNotify,4560
+HomeNewUnlockedBgmIdListNotify,4847
+HomePictureFrameInfoNotify,4878
+HomePlantFieldNotify,4549
+HomePlantInfoNotify,4587
+HomePlantInfoReq,4647
+HomePlantInfoRsp,4701
+HomePlantSeedReq,4804
+HomePlantSeedRsp,4556
+HomePlantWeedReq,4640
+HomePlantWeedRsp,4527
+HomePreChangeEditModeNotify,4639
+HomePreviewBlueprintReq,4478
+HomePreviewBlueprintRsp,4738
+HomePriorCheckNotify,4599
+HomeRacingGallerySettleNotify,4805
+HomeResourceNotify,4892
+HomeResourceTakeFetterExpReq,4768
+HomeResourceTakeFetterExpRsp,4645
+HomeResourceTakeHomeCoinReq,4479
+HomeResourceTakeHomeCoinRsp,4541
+HomeSaveArrangementNoChangeReq,4704
+HomeSaveArrangementNoChangeRsp,4668
+HomeSceneInitFinishReq,4674
+HomeSceneInitFinishRsp,4505
+HomeSceneJumpReq,4528
+HomeSceneJumpRsp,4698
+HomeScenePointFishFarmingInfoNotify,4547
+HomeSearchBlueprintReq,4889
+HomeSearchBlueprintRsp,4593
+HomeSeekFurnitureGalleryScoreNotify,4583
+HomeSetBlueprintFriendOptionReq,4554
+HomeSetBlueprintFriendOptionRsp,4604
+HomeSetBlueprintSlotOptionReq,4798
+HomeSetBlueprintSlotOptionRsp,4786
+HomeTransferReq,4726
+HomeTransferRsp,4616
+HomeUpdateArrangementInfoReq,4510
+HomeUpdateArrangementInfoRsp,4757
+HomeUpdateFishFarmingInfoReq,4544
+HomeUpdateFishFarmingInfoRsp,4857
+HomeUpdatePictureFrameInfoReq,4486
+HomeUpdatePictureFrameInfoRsp,4641
+HomeUpdateScenePointFishFarmingInfoReq,4511
+HomeUpdateScenePointFishFarmingInfoRsp,4540
+HostPlayerNotify,312
+HuntingFailNotify,4320
+HuntingGiveUpReq,4341
+HuntingGiveUpRsp,4342
+HuntingOngoingNotify,4345
+HuntingRevealClueNotify,4322
+HuntingRevealFinalNotify,4344
+HuntingStartNotify,4329
+HuntingSuccessNotify,4349
+InBattleMechanicusBuildingPointsNotify,5303
+InBattleMechanicusCardResultNotify,5397
+InBattleMechanicusConfirmCardNotify,5348
+InBattleMechanicusConfirmCardReq,5331
+InBattleMechanicusConfirmCardRsp,5375
+InBattleMechanicusEscapeMonsterNotify,5307
+InBattleMechanicusLeftMonsterNotify,5321
+InBattleMechanicusPickCardNotify,5399
+InBattleMechanicusPickCardReq,5390
+InBattleMechanicusPickCardRsp,5373
+InBattleMechanicusSettleNotify,5305
+InstableSprayEnterDungeonReq,24312
+InstableSprayEnterDungeonRsp,23381
+InstableSprayGalleryInfoNotify,5588
+InstableSprayLevelFinishNotify,21961
+InstableSprayRestartDungeonReq,23678
+InstableSprayRestartDungeonRsp,24923
+InstableSpraySwitchTeamReq,24857
+InstableSpraySwitchTeamRsp,24152
+InteractDailyDungeonInfoNotify,919
+InterpretInferenceWordReq,419
+InterpretInferenceWordRsp,461
+InterruptGalleryReq,5548
+InterruptGalleryRsp,5597
+InvestigationMonsterUpdateNotify,1906
+InvestigationQuestDailyNotify,1921
+InvestigationReadQuestDailyNotify,1902
+IrodoriChessEquipCardReq,8561
+IrodoriChessEquipCardRsp,8308
+IrodoriChessLeftMonsterNotify,5338
+IrodoriChessPlayerInfoNotify,5364
+IrodoriChessUnequipCardReq,8057
+IrodoriChessUnequipCardRsp,8817
+IrodoriEditFlowerCombinationReq,8608
+IrodoriEditFlowerCombinationRsp,8833
+IrodoriFillPoetryReq,8129
+IrodoriFillPoetryRsp,8880
+IrodoriMasterGalleryCgEndNotify,8061
+IrodoriMasterGallerySettleNotify,8340
+IrodoriMasterStartGalleryReq,8165
+IrodoriMasterStartGalleryRsp,8381
+IrodoriScanEntityReq,8767
+IrodoriScanEntityRsp,8026
+IslandPartyRaftInfoNotify,5565
+IslandPartySailInfoNotify,5504
+IslandPartySettleNotify,24601
+ItemAddHintNotify,607
+ItemCdGroupTimeNotify,634
+ItemGivingReq,140
+ItemGivingRsp,118
+JoinHomeWorldFailNotify,4530
+JoinPlayerFailNotify,236
+JoinPlayerSceneReq,292
+JoinPlayerSceneRsp,220
+KeepAliveNotify,72
+LanternRiteDoFireworksReformReq,8226
+LanternRiteDoFireworksReformRsp,8657
+LanternRiteEndFireworksReformReq,8277
+LanternRiteEndFireworksReformRsp,8933
+LanternRiteStartFireworksReformReq,8518
+LanternRiteStartFireworksReformRsp,8862
+LanternRiteTakeSkinRewardReq,8826
+LanternRiteTakeSkinRewardRsp,8777
+LastPacketPrintNotify,88
+LaunchFireworksReq,6090
+LaunchFireworksRsp,6057
+LeaveSceneReq,298
+LeaveSceneRsp,212
+LeaveWorldNotify,3017
+LevelTagDataNotify,3314
+LevelupCityReq,216
+LevelupCityRsp,287
+LifeStateChangeNotify,1298
+LikeCustomDungeonReq,6210
+LikeCustomDungeonRsp,6219
+LiveEndNotify,806
+LiveStartNotify,826
+LoadActivityTerrainNotify,2029
+LuaEnvironmentEffectNotify,3408
+LuaSetOptionNotify,316
+LuminanceStoneChallengeSettleNotify,8186
+LunaRiteAreaFinishNotify,8213
+LunaRiteGroupBundleRegisterNotify,8465
+LunaRiteHintPointRemoveNotify,8787
+LunaRiteHintPointReq,8195
+LunaRiteHintPointRsp,8765
+LunaRiteSacrificeReq,8805
+LunaRiteSacrificeRsp,8080
+LunaRiteTakeSacrificeRewardReq,8045
+LunaRiteTakeSacrificeRewardRsp,8397
+MailChangeNotify,1498
+MainCoopFailNotify,1951
+MainCoopUpdateNotify,1968
+MapAreaChangeNotify,3378
+MarkEntityInMinMapNotify,202
+MarkMapReq,3466
+MarkMapRsp,3079
+MarkNewNotify,1275
+MarkTargetInvestigationMonsterNotify,1915
+MassiveEntityElementOpBatchNotify,357
+MassiveEntityStateChangedNotify,370
+MaterialDeleteReturnNotify,661
+MaterialDeleteUpdateNotify,700
+McoinExchangeHcoinReq,616
+McoinExchangeHcoinRsp,687
+MechanicusCandidateTeamCreateReq,3981
+MechanicusCandidateTeamCreateRsp,3905
+MechanicusCloseNotify,3921
+MechanicusCoinNotify,3935
+MechanicusLevelupGearReq,3973
+MechanicusLevelupGearRsp,3999
+MechanicusOpenNotify,3907
+MechanicusSequenceOpenNotify,3912
+MechanicusUnlockGearReq,3903
+MechanicusUnlockGearRsp,3990
+MeetNpcReq,503
+MeetNpcRsp,590
+MetNpcIdListNotify,521
+MichiaeMatsuriDarkPressureLevelUpdateNotify,8825
+MichiaeMatsuriGainCrystalExpUpdateNotify,8523
+MichiaeMatsuriInteractStatueReq,8718
+MichiaeMatsuriInteractStatueRsp,8449
+MichiaeMatsuriRemoveChallengeMarkNotify,8072
+MichiaeMatsuriRemoveChestMarkNotify,8726
+MichiaeMatsuriStartBossChallengeReq,8703
+MichiaeMatsuriStartBossChallengeRsp,8426
+MichiaeMatsuriStartDarkChallengeReq,8054
+MichiaeMatsuriStartDarkChallengeRsp,8791
+MichiaeMatsuriUnlockCrystalSkillReq,8345
+MichiaeMatsuriUnlockCrystalSkillRsp,8588
+MiracleRingDataNotify,5225
+MiracleRingDeliverItemReq,5229
+MiracleRingDeliverItemRsp,5222
+MiracleRingDestroyNotify,5244
+MiracleRingDropResultNotify,5231
+MiracleRingTakeRewardReq,5207
+MiracleRingTakeRewardRsp,5202
+MistTrialDunegonFailNotify,8135
+MistTrialGetChallengeMissionReq,8893
+MistTrialGetChallengeMissionRsp,8508
+MistTrialGetDungeonExhibitionDataReq,8740
+MistTrialGetDungeonExhibitionDataRsp,8066
+MistTrialSelectAvatarAndEnterDungeonReq,8666
+MistTrialSelectAvatarAndEnterDungeonRsp,8239
+MistTrialSettleNotify,8373
+MonsterAIConfigHashNotify,3039
+MonsterAlertChangeNotify,363
+MonsterForceAlertNotify,395
+MonsterPointArrayRouteUpdateNotify,3410
+MonsterSummonTagNotify,1372
+MpBlockNotify,1801
+MpPlayGuestReplyInviteReq,1848
+MpPlayGuestReplyInviteRsp,1850
+MpPlayGuestReplyNotify,1812
+MpPlayInviteResultNotify,1815
+MpPlayOwnerCheckReq,1814
+MpPlayOwnerCheckRsp,1847
+MpPlayOwnerInviteNotify,1835
+MpPlayOwnerStartInviteReq,1837
+MpPlayOwnerStartInviteRsp,1823
+MpPlayPrepareInterruptNotify,1813
+MpPlayPrepareNotify,1833
+MultistagePlayEndNotify,5355
+MultistagePlayFinishStageReq,5398
+MultistagePlayFinishStageRsp,5381
+MultistagePlayInfoNotify,5372
+MultistagePlaySettleNotify,5313
+MultistagePlayStageEndNotify,5379
+MuqadasPotionActivityEnterDungeonReq,24602
+MuqadasPotionActivityEnterDungeonRsp,21804
+MuqadasPotionCaptureWeaknessReq,20011
+MuqadasPotionCaptureWeaknessRsp,24081
+MuqadasPotionDungeonSettleNotify,20005
+MuqadasPotionRestartDungeonReq,22391
+MuqadasPotionRestartDungeonRsp,21208
+MusicGameSettleReq,8892
+MusicGameSettleRsp,8673
+MusicGameStartReq,8406
+MusicGameStartRsp,8326
+NavMeshStatsNotify,2316
+NicknameAuditConfigNotify,152
+NightCrowGadgetObservationMatchReq,876
+NightCrowGadgetObservationMatchRsp,846
+NormalUidOpNotify,5726
+NpcTalkReq,572
+NpcTalkRsp,598
+NpcTalkStateNotify,430
+ObstacleModifyNotify,2312
+OfferingInteractReq,2918
+OfferingInteractRsp,2908
+OneofGatherPointDetectorDataNotify,4297
+OpActivityDataNotify,5112
+OpActivityStateNotify,2572
+OpActivityUpdateNotify,5135
+OpenBlossomCircleCampGuideNotify,2703
+OpenStateChangeNotify,127
+OpenStateUpdateNotify,193
+OrderDisplayNotify,4131
+OrderFinishNotify,4125
+OtherPlayerEnterHomeNotify,4628
+OutStuckCustomDungeonReq,6211
+OutStuckCustomDungeonRsp,6234
+PSNBlackListNotify,4040
+PSNFriendListNotify,4087
+PSPlayerApplyEnterMpReq,1841
+PSPlayerApplyEnterMpRsp,1842
+ParentQuestInferenceDataNotify,402
+PathfindingEnterSceneReq,2307
+PathfindingEnterSceneRsp,2321
+PathfindingPingNotify,2335
+PersistentDungeonSwitchAvatarReq,1684
+PersistentDungeonSwitchAvatarRsp,1768
+PersonalLineAllDataReq,474
+PersonalLineAllDataRsp,476
+PersonalLineNewUnlockNotify,442
+PersonalSceneJumpReq,284
+PersonalSceneJumpRsp,280
+PhotoActivityClientViewReq,8709
+PhotoActivityClientViewRsp,8983
+PhotoActivityFinishReq,8921
+PhotoActivityFinishRsp,8854
+PingReq,7
+PingRsp,21
+PlantFlowerAcceptAllGiveFlowerReq,8808
+PlantFlowerAcceptAllGiveFlowerRsp,8888
+PlantFlowerAcceptGiveFlowerReq,8383
+PlantFlowerAcceptGiveFlowerRsp,8567
+PlantFlowerEditFlowerCombinationReq,8843
+PlantFlowerEditFlowerCombinationRsp,8788
+PlantFlowerGetCanGiveFriendFlowerReq,8716
+PlantFlowerGetCanGiveFriendFlowerRsp,8766
+PlantFlowerGetFriendFlowerWishListReq,8126
+PlantFlowerGetFriendFlowerWishListRsp,8511
+PlantFlowerGetRecvFlowerListReq,8270
+PlantFlowerGetRecvFlowerListRsp,8374
+PlantFlowerGetSeedInfoReq,8560
+PlantFlowerGetSeedInfoRsp,8764
+PlantFlowerGiveFriendFlowerReq,8846
+PlantFlowerGiveFriendFlowerRsp,8386
+PlantFlowerHaveRecvFlowerNotify,8078
+PlantFlowerSetFlowerWishReq,8547
+PlantFlowerSetFlowerWishRsp,8910
+PlantFlowerTakeSeedRewardReq,8968
+PlantFlowerTakeSeedRewardRsp,8860
+PlatformChangeRouteNotify,268
+PlatformStartRouteNotify,218
+PlatformStopRouteNotify,266
+PlayerAllowEnterMpAfterAgreeMatchNotify,4199
+PlayerApplyEnterHomeNotify,4533
+PlayerApplyEnterHomeResultNotify,4468
+PlayerApplyEnterHomeResultReq,4693
+PlayerApplyEnterHomeResultRsp,4706
+PlayerApplyEnterMpAfterMatchAgreedNotify,4195
+PlayerApplyEnterMpNotify,1826
+PlayerApplyEnterMpReq,1818
+PlayerApplyEnterMpResultNotify,1807
+PlayerApplyEnterMpResultReq,1802
+PlayerApplyEnterMpResultRsp,1831
+PlayerApplyEnterMpRsp,1825
+PlayerCancelMatchReq,4157
+PlayerCancelMatchRsp,4152
+PlayerChatCDNotify,3367
+PlayerChatNotify,3010
+PlayerChatReq,3185
+PlayerChatRsp,3228
+PlayerCompoundMaterialBoostReq,185
+PlayerCompoundMaterialBoostRsp,125
+PlayerCompoundMaterialReq,150
+PlayerCompoundMaterialRsp,143
+PlayerConfirmMatchReq,4172
+PlayerConfirmMatchRsp,4194
+PlayerCookArgsReq,166
+PlayerCookArgsRsp,168
+PlayerCookReq,194
+PlayerCookRsp,188
+PlayerDataNotify,190
+PlayerDeathZoneNotify,6275
+PlayerEnterDungeonReq,912
+PlayerEnterDungeonRsp,935
+PlayerEnterSceneInfoNotify,214
+PlayerEnterSceneNotify,272
+PlayerEyePointStateNotify,3051
+PlayerFishingDataNotify,5835
+PlayerForceExitReq,189
+PlayerForceExitRsp,159
+PlayerGCGMatchConfirmNotify,4185
+PlayerGCGMatchDismissNotify,4173
+PlayerGameTimeNotify,131
+PlayerGeneralMatchConfirmNotify,4192
+PlayerGeneralMatchDismissNotify,4191
+PlayerGetForceQuitBanInfoReq,4164
+PlayerGetForceQuitBanInfoRsp,4197
+PlayerHomeCompInfoNotify,4880
+PlayerInjectFixNotify,132
+PlayerInvestigationAllInfoNotify,1928
+PlayerInvestigationNotify,1911
+PlayerInvestigationTargetNotify,1929
+PlayerLevelRewardUpdateNotify,200
+PlayerLoginReq,112
+PlayerLoginRsp,135
+PlayerLogoutNotify,103
+PlayerLogoutReq,107
+PlayerLogoutRsp,121
+PlayerLuaShellNotify,133
+PlayerMatchAgreedResultNotify,4170
+PlayerMatchInfoNotify,4175
+PlayerMatchStopNotify,4181
+PlayerMatchSuccNotify,4179
+PlayerNicknameAuditDataNotify,108
+PlayerNicknameNotify,109
+PlayerOfferingDataNotify,2923
+PlayerOfferingReq,2907
+PlayerOfferingRsp,2917
+PlayerPreEnterMpNotify,1822
+PlayerPropChangeNotify,139
+PlayerPropChangeReasonNotify,1299
+PlayerPropNotify,175
+PlayerQuitDungeonReq,907
+PlayerQuitDungeonRsp,921
+PlayerQuitFromHomeNotify,4656
+PlayerQuitFromMpNotify,1829
+PlayerRandomCookReq,126
+PlayerRandomCookRsp,163
+PlayerRechargeDataNotify,4102
+PlayerReportReq,4024
+PlayerReportRsp,4056
+PlayerRoutineDataNotify,3526
+PlayerSetLanguageReq,142
+PlayerSetLanguageRsp,130
+PlayerSetOnlyMPWithPSPlayerReq,1820
+PlayerSetOnlyMPWithPSPlayerRsp,1845
+PlayerSetPauseReq,124
+PlayerSetPauseRsp,156
+PlayerSignatureAuditDataNotify,4060
+PlayerSignatureNotify,4014
+PlayerStartMatchReq,4176
+PlayerStartMatchRsp,4168
+PlayerStoreNotify,672
+PlayerTimeNotify,191
+PlayerWorldSceneInfoListNotify,3129
+PostEnterSceneReq,3312
+PostEnterSceneRsp,3184
+PotionEnterDungeonNotify,8531
+PotionEnterDungeonReq,8261
+PotionEnterDungeonRsp,8482
+PotionResetChallengeReq,8377
+PotionResetChallengeRsp,8067
+PotionRestartDungeonReq,8273
+PotionRestartDungeonRsp,8062
+PotionSaveDungeonResultReq,8192
+PotionSaveDungeonResultRsp,8688
+PrivateChatNotify,4962
+PrivateChatReq,5022
+PrivateChatRsp,5048
+ProfilePictureChangeNotify,4016
+ProjectorOptionReq,863
+ProjectorOptionRsp,895
+ProudSkillChangeNotify,1031
+ProudSkillExtraLevelNotify,1081
+ProudSkillUpgradeReq,1073
+ProudSkillUpgradeRsp,1099
+PublishCustomDungeonReq,6242
+PublishCustomDungeonRsp,6214
+PublishUgcReq,6344
+PublishUgcRsp,6349
+PullPrivateChatReq,4971
+PullPrivateChatRsp,4953
+PullRecentChatReq,5040
+PullRecentChatRsp,5023
+PushTipsAllDataNotify,2222
+PushTipsChangeNotify,2265
+PushTipsReadFinishReq,2204
+PushTipsReadFinishRsp,2293
+QueryCodexMonsterBeKilledNumReq,4203
+QueryCodexMonsterBeKilledNumRsp,4209
+QueryPathReq,2372
+QueryPathRsp,2398
+QuestCreateEntityReq,499
+QuestCreateEntityRsp,431
+QuestDelNotify,412
+QuestDestroyEntityReq,475
+QuestDestroyEntityRsp,448
+QuestDestroyNpcReq,422
+QuestDestroyNpcRsp,465
+QuestGlobalVarNotify,434
+QuestListNotify,472
+QuestListUpdateNotify,498
+QuestProgressUpdateNotify,482
+QuestTransmitReq,450
+QuestTransmitRsp,443
+QuestUpdateQuestTimeVarNotify,456
+QuestUpdateQuestVarNotify,453
+QuestUpdateQuestVarReq,447
+QuestUpdateQuestVarRsp,439
+QuickOpenActivityReq,8178
+QuickOpenActivityRsp,8882
+QuickUseWidgetReq,4299
+QuickUseWidgetRsp,4270
+ReadMailNotify,1412
+ReadNicknameAuditReq,177
+ReadNicknameAuditRsp,137
+ReadPrivateChatReq,5049
+ReadPrivateChatRsp,4981
+ReadSignatureAuditReq,4020
+ReadSignatureAuditRsp,4064
+ReceivedTrialAvatarActivityRewardReq,2130
+ReceivedTrialAvatarActivityRewardRsp,2076
+RechargeReq,4126
+RechargeRsp,4118
+RedeemLegendaryKeyReq,446
+RedeemLegendaryKeyRsp,441
+ReformFireworksReq,6036
+ReformFireworksRsp,5929
+RefreshBackgroundAvatarReq,1743
+RefreshBackgroundAvatarRsp,1800
+RefreshEntityAuthNotify,3259
+RefreshRogueDiaryCardReq,8991
+RefreshRogueDiaryCardRsp,8028
+RefreshRoguelikeDungeonCardReq,8279
+RefreshRoguelikeDungeonCardRsp,8349
+RegionSearchChangeRegionNotify,5618
+RegionSearchNotify,5626
+RegionalPlayInfoNotify,6276
+ReliquaryDecomposeReq,638
+ReliquaryDecomposeRsp,611
+ReliquaryPromoteReq,627
+ReliquaryPromoteRsp,694
+ReliquaryUpgradeReq,604
+ReliquaryUpgradeRsp,693
+RemotePlayerWidgetNotify,5995
+RemoveBlacklistReq,4063
+RemoveBlacklistRsp,4095
+RemoveCustomDungeonReq,6249
+RemoveCustomDungeonRsp,6220
+RemoveRandTaskInfoNotify,161
+ReplayCustomDungeonReq,6243
+ReplayCustomDungeonRsp,6240
+ReportFightAntiCheatNotify,368
+ReportTrackingIOInfoNotify,4129
+RequestLiveInfoReq,894
+RequestLiveInfoRsp,888
+ReserveRogueDiaryAvatarReq,8748
+ReserveRogueDiaryAvatarRsp,8799
+ResetRogueDiaryPlayReq,8127
+ResetRogueDiaryPlayRsp,8948
+ResinCardDataUpdateNotify,4149
+ResinChangeNotify,642
+RestartEffigyChallengeReq,2148
+RestartEffigyChallengeRsp,2042
+ResumeRogueDiaryDungeonReq,8838
+ResumeRogueDiaryDungeonRsp,8989
+RetryCurRogueDiaryDungeonReq,8398
+RetryCurRogueDiaryDungeonRsp,8334
+ReunionActivateNotify,5085
+ReunionBriefInfoReq,5076
+ReunionBriefInfoRsp,5068
+ReunionDailyRefreshNotify,5100
+ReunionPrivilegeChangeNotify,5098
+ReunionSettleNotify,5073
+RobotPushPlayerDataNotify,97
+RogueCellUpdateNotify,8642
+RogueDiaryCoinAddNotify,8602
+RogueDiaryDungeonInfoNotify,8597
+RogueDiaryDungeonSettleNotify,8895
+RogueDiaryRepairInfoNotify,8641
+RogueDiaryReviveAvatarReq,8038
+RogueDiaryReviveAvatarRsp,8343
+RogueDiaryTiredAvatarNotify,8514
+RogueDungeonPlayerCellChangeNotify,8347
+RogueFinishRepairReq,8363
+RogueFinishRepairRsp,8535
+RogueHealAvatarsReq,8947
+RogueHealAvatarsRsp,8949
+RogueResumeDungeonReq,8795
+RogueResumeDungeonRsp,8647
+RogueSwitchAvatarReq,8201
+RogueSwitchAvatarRsp,8915
+RoguelikeCardGachaNotify,8925
+RoguelikeEffectDataNotify,8222
+RoguelikeEffectViewReq,8528
+RoguelikeEffectViewRsp,8639
+RoguelikeGiveUpReq,8660
+RoguelikeGiveUpRsp,8139
+RoguelikeMistClearNotify,8324
+RoguelikeRefreshCardCostUpdateNotify,8927
+RoguelikeResourceBonusPropUpdateNotify,8555
+RoguelikeRuneRecordUpdateNotify,8973
+RoguelikeSelectAvatarAndEnterDungeonReq,8457
+RoguelikeSelectAvatarAndEnterDungeonRsp,8538
+RoguelikeTakeStageFirstPassRewardReq,8421
+RoguelikeTakeStageFirstPassRewardRsp,8552
+SalesmanDeliverItemReq,2138
+SalesmanDeliverItemRsp,2104
+SalesmanTakeRewardReq,2191
+SalesmanTakeRewardRsp,2110
+SalesmanTakeSpecialRewardReq,2145
+SalesmanTakeSpecialRewardRsp,2124
+SalvageEscortRestartReq,8396
+SalvageEscortRestartRsp,8959
+SalvageEscortSettleNotify,8499
+SalvagePreventRestartReq,8367
+SalvagePreventRestartRsp,8938
+SalvagePreventSettleNotify,8231
+SaveCoopDialogReq,2000
+SaveCoopDialogRsp,1962
+SaveCustomDungeonRoomReq,6225
+SaveCustomDungeonRoomRsp,6207
+SaveMainCoopReq,1975
+SaveMainCoopRsp,1957
+SaveUgcReq,6329
+SaveUgcRsp,6322
+SceneAreaUnlockNotify,293
+SceneAreaWeatherNotify,230
+SceneAudioNotify,3166
+SceneAvatarStaminaStepReq,299
+SceneAvatarStaminaStepRsp,231
+SceneCreateEntityReq,288
+SceneCreateEntityRsp,226
+SceneDataNotify,3203
+SceneDestroyEntityReq,263
+SceneDestroyEntityRsp,295
+SceneEntitiesMoveCombineNotify,3387
+SceneEntitiesMovesReq,279
+SceneEntitiesMovesRsp,255
+SceneEntityAppearNotify,221
+SceneEntityDisappearNotify,203
+SceneEntityDrownReq,227
+SceneEntityDrownRsp,294
+SceneEntityMoveNotify,275
+SceneEntityMoveReq,290
+SceneEntityMoveRsp,273
+SceneEntityUpdateNotify,3412
+SceneForceLockNotify,234
+SceneForceUnlockNotify,206
+SceneGalleryInfoNotify,5581
+SceneGalleryVintageHuntingSettleNotify,20324
+SceneInitFinishReq,235
+SceneInitFinishRsp,207
+SceneKickPlayerNotify,211
+SceneKickPlayerReq,264
+SceneKickPlayerRsp,238
+ScenePlayBattleInfoListNotify,4431
+ScenePlayBattleInfoNotify,4422
+ScenePlayBattleInterruptNotify,4425
+ScenePlayBattleResultNotify,4398
+ScenePlayBattleUidOpNotify,4447
+ScenePlayGuestReplyInviteReq,4353
+ScenePlayGuestReplyInviteRsp,4440
+ScenePlayGuestReplyNotify,4423
+ScenePlayInfoListNotify,4381
+ScenePlayInviteResultNotify,4449
+ScenePlayOutofRegionNotify,4355
+ScenePlayOwnerCheckReq,4448
+ScenePlayOwnerCheckRsp,4362
+ScenePlayOwnerInviteNotify,4371
+ScenePlayOwnerStartInviteReq,4385
+ScenePlayOwnerStartInviteRsp,4357
+ScenePlayerBackgroundAvatarRefreshNotify,3274
+ScenePlayerInfoNotify,267
+ScenePlayerLocationNotify,248
+ScenePlayerSoundNotify,233
+ScenePointUnlockNotify,247
+SceneRouteChangeNotify,240
+SceneTeamUpdateNotify,1775
+SceneTimeNotify,245
+SceneTransToPointReq,239
+SceneTransToPointRsp,253
+SceneWeatherForcastReq,3110
+SceneWeatherForcastRsp,3012
+SeaLampCoinNotify,2114
+SeaLampContributeItemReq,2123
+SeaLampContributeItemRsp,2139
+SeaLampFlyLampNotify,2105
+SeaLampFlyLampReq,2199
+SeaLampFlyLampRsp,2192
+SeaLampPopularityNotify,2032
+SeaLampTakeContributionRewardReq,2019
+SeaLampTakeContributionRewardRsp,2177
+SeaLampTakePhaseRewardReq,2176
+SeaLampTakePhaseRewardRsp,2190
+SealBattleBeginNotify,289
+SealBattleEndNotify,259
+SealBattleProgressNotify,232
+SearchCustomDungeonReq,6233
+SearchCustomDungeonRsp,6215
+SeeMonsterReq,228
+SeeMonsterRsp,251
+SelectAsterMidDifficultyReq,2134
+SelectAsterMidDifficultyRsp,2180
+SelectEffigyChallengeConditionReq,2064
+SelectEffigyChallengeConditionRsp,2039
+SelectRoguelikeDungeonCardReq,8085
+SelectRoguelikeDungeonCardRsp,8138
+SelectWorktopOptionReq,807
+SelectWorktopOptionRsp,821
+ServerAnnounceNotify,2197
+ServerAnnounceRevokeNotify,2092
+ServerBuffChangeNotify,361
+ServerCombatEndNotify,1105
+ServerCondMeetQuestListUpdateNotify,406
+ServerDisconnectClientNotify,184
+ServerGlobalValueChangeNotify,1197
+ServerLogNotify,31
+ServerMessageNotify,5718
+ServerTimeNotify,99
+ServerTryCancelGeneralMatchNotify,4187
+ServerUpdateGlobalValueNotify,1148
+SetBattlePassViewedReq,2641
+SetBattlePassViewedRsp,2642
+SetChatEmojiCollectionReq,4084
+SetChatEmojiCollectionRsp,4080
+SetCodexPushtipsReadReq,4208
+SetCodexPushtipsReadRsp,4206
+SetCoopChapterViewedReq,1965
+SetCoopChapterViewedRsp,1963
+SetCurExpeditionChallengeIdReq,2021
+SetCurExpeditionChallengeIdRsp,2049
+SetEntityClientDataNotify,3146
+SetEquipLockStateReq,666
+SetEquipLockStateRsp,668
+SetFriendEnterHomeOptionReq,4494
+SetFriendEnterHomeOptionRsp,4743
+SetFriendRemarkNameReq,4042
+SetFriendRemarkNameRsp,4030
+SetH5ActivityRedDotTimestampReq,5657
+SetH5ActivityRedDotTimestampRsp,5652
+SetIsAutoUnlockSpecificEquipReq,620
+SetIsAutoUnlockSpecificEquipRsp,664
+SetLimitOptimizationNotify,8851
+SetNameCardReq,4004
+SetNameCardRsp,4093
+SetOpenStateReq,165
+SetOpenStateRsp,104
+SetPlayerBirthdayReq,4048
+SetPlayerBirthdayRsp,4097
+SetPlayerBornDataReq,105
+SetPlayerBornDataRsp,182
+SetPlayerHeadImageReq,4082
+SetPlayerHeadImageRsp,4047
+SetPlayerNameReq,153
+SetPlayerNameRsp,122
+SetPlayerPropReq,197
+SetPlayerPropRsp,181
+SetPlayerSignatureReq,4081
+SetPlayerSignatureRsp,4005
+SetSceneWeatherAreaReq,254
+SetSceneWeatherAreaRsp,283
+SetUpAvatarTeamReq,1690
+SetUpAvatarTeamRsp,1646
+SetUpLunchBoxWidgetReq,4272
+SetUpLunchBoxWidgetRsp,4294
+SetWidgetSlotReq,4259
+SetWidgetSlotRsp,4277
+ShowClientGuideNotify,3005
+ShowClientTutorialNotify,3305
+ShowCommonTipsNotify,3352
+ShowMessageNotify,35
+ShowTemplateReminderNotify,3491
+SignInInfoReq,2512
+SignInInfoRsp,2535
+SignatureAuditConfigNotify,4092
+SkyCrystalDetectorDataUpdateNotify,4287
+SocialDataNotify,4043
+SpiceActivityFinishMakeSpiceReq,8096
+SpiceActivityFinishMakeSpiceRsp,8481
+SpiceActivityGivingRecordNotify,8407
+SpiceActivityProcessFoodReq,8216
+SpiceActivityProcessFoodRsp,8772
+SpringUseReq,1748
+SpringUseRsp,1642
+StartArenaChallengeLevelReq,2127
+StartArenaChallengeLevelRsp,2125
+StartBuoyantCombatGalleryReq,8732
+StartBuoyantCombatGalleryRsp,8680
+StartCoopPointReq,1992
+StartCoopPointRsp,1964
+StartEffigyChallengeReq,2169
+StartEffigyChallengeRsp,2173
+StartFishingReq,5825
+StartFishingRsp,5807
+StartRogueDiaryPlayReq,8419
+StartRogueDiaryPlayRsp,8385
+StartRogueDiaryRoomReq,8159
+StartRogueDiaryRoomRsp,8793
+StartRogueEliteCellChallengeReq,8242
+StartRogueEliteCellChallengeRsp,8958
+StartRogueNormalCellChallengeReq,8205
+StartRogueNormalCellChallengeRsp,8036
+StopReminderNotify,3004
+StoreCustomDungeonReq,6213
+StoreCustomDungeonRsp,6201
+StoreItemChangeNotify,612
+StoreItemDelNotify,635
+StoreWeightLimitNotify,698
+SubmitInferenceWordReq,500
+SubmitInferenceWordRsp,416
+SummerTimeFloatSignalPositionNotify,8077
+SummerTimeFloatSignalUpdateNotify,8781
+SummerTimeSprintBoatRestartReq,8410
+SummerTimeSprintBoatRestartRsp,8356
+SummerTimeSprintBoatSettleNotify,8651
+SummerTimeV2BoatSettleNotify,8870
+SummerTimeV2RestartBoatGalleryReq,8476
+SummerTimeV2RestartBoatGalleryRsp,8004
+SummerTimeV2RestartDungeonReq,8346
+SummerTimeV2RestartDungeonRsp,8996
+SumoDungeonSettleNotify,8291
+SumoEnterDungeonNotify,8013
+SumoLeaveDungeonNotify,8640
+SumoRestartDungeonReq,8612
+SumoRestartDungeonRsp,8214
+SumoSaveTeamReq,8313
+SumoSaveTeamRsp,8319
+SumoSelectTeamAndEnterDungeonReq,8215
+SumoSelectTeamAndEnterDungeonRsp,8193
+SumoSetNoSwitchPunishTimeNotify,8935
+SumoSwitchTeamReq,8351
+SumoSwitchTeamRsp,8525
+SyncScenePlayTeamEntityNotify,3333
+SyncTeamEntityNotify,317
+TakeAchievementGoalRewardReq,2652
+TakeAchievementGoalRewardRsp,2681
+TakeAchievementRewardReq,2675
+TakeAchievementRewardRsp,2657
+TakeAsterSpecialRewardReq,2097
+TakeAsterSpecialRewardRsp,2193
+TakeBackGivingItemReq,171
+TakeBackGivingItemRsp,145
+TakeBattlePassMissionPointReq,2629
+TakeBattlePassMissionPointRsp,2622
+TakeBattlePassRewardReq,2602
+TakeBattlePassRewardRsp,2631
+TakeCityReputationExploreRewardReq,2897
+TakeCityReputationExploreRewardRsp,2881
+TakeCityReputationLevelRewardReq,2812
+TakeCityReputationLevelRewardRsp,2835
+TakeCityReputationParentQuestReq,2821
+TakeCityReputationParentQuestRsp,2803
+TakeCompoundOutputReq,174
+TakeCompoundOutputRsp,176
+TakeCoopRewardReq,1973
+TakeCoopRewardRsp,1985
+TakeDeliveryDailyRewardReq,2121
+TakeDeliveryDailyRewardRsp,2162
+TakeEffigyFirstPassRewardReq,2196
+TakeEffigyFirstPassRewardRsp,2061
+TakeEffigyRewardReq,2040
+TakeEffigyRewardRsp,2007
+TakeFirstShareRewardReq,4074
+TakeFirstShareRewardRsp,4076
+TakeFurnitureMakeReq,4772
+TakeFurnitureMakeRsp,4769
+TakeHuntingOfferReq,4326
+TakeHuntingOfferRsp,4318
+TakeInvestigationRewardReq,1912
+TakeInvestigationRewardRsp,1922
+TakeInvestigationTargetRewardReq,1918
+TakeInvestigationTargetRewardRsp,1916
+TakeMaterialDeleteReturnReq,629
+TakeMaterialDeleteReturnRsp,657
+TakeOfferingLevelRewardReq,2919
+TakeOfferingLevelRewardRsp,2911
+TakePlayerLevelRewardReq,129
+TakePlayerLevelRewardRsp,157
+TakeRegionSearchRewardReq,5625
+TakeRegionSearchRewardRsp,5607
+TakeResinCardDailyRewardReq,4122
+TakeResinCardDailyRewardRsp,4144
+TakeReunionFirstGiftRewardReq,5075
+TakeReunionFirstGiftRewardRsp,5057
+TakeReunionMissionRewardReq,5092
+TakeReunionMissionRewardRsp,5064
+TakeReunionSignInRewardReq,5079
+TakeReunionSignInRewardRsp,5072
+TakeReunionWatcherRewardReq,5070
+TakeReunionWatcherRewardRsp,5095
+TakeoffEquipReq,605
+TakeoffEquipRsp,682
+TanukiTravelFinishGuideQuestNotify,8924
+TaskVarNotify,160
+TeamResonanceChangeNotify,1082
+ToTheMoonAddObstacleReq,6121
+ToTheMoonAddObstacleRsp,6103
+ToTheMoonEnterSceneReq,6135
+ToTheMoonEnterSceneRsp,6107
+ToTheMoonObstaclesModifyNotify,6199
+ToTheMoonPingNotify,6112
+ToTheMoonQueryPathReq,6172
+ToTheMoonQueryPathRsp,6198
+ToTheMoonRemoveObstacleReq,6190
+ToTheMoonRemoveObstacleRsp,6173
+TowerAllDataReq,2490
+TowerAllDataRsp,2473
+TowerBriefDataNotify,2472
+TowerBuffSelectReq,2448
+TowerBuffSelectRsp,2497
+TowerCurLevelRecordChangeNotify,2412
+TowerDailyRewardProgressChangeNotify,2435
+TowerEnterLevelReq,2431
+TowerEnterLevelRsp,2475
+TowerFloorRecordChangeNotify,2498
+TowerGetFloorStarRewardReq,2404
+TowerGetFloorStarRewardRsp,2493
+TowerLevelEndNotify,2495
+TowerLevelStarCondNotify,2406
+TowerMiddleLevelChangeTeamNotify,2434
+TowerRecordHandbookReq,2450
+TowerRecordHandbookRsp,2443
+TowerSurrenderReq,2422
+TowerSurrenderRsp,2465
+TowerTeamSelectReq,2421
+TowerTeamSelectRsp,2403
+TreasureMapBonusChallengeNotify,2115
+TreasureMapCurrencyNotify,2171
+TreasureMapDetectorDataNotify,4300
+TreasureMapGuideTaskDoneNotify,2119
+TreasureMapHostInfoNotify,8681
+TreasureMapMpChallengeNotify,2048
+TreasureMapPreTaskDoneNotify,2152
+TreasureMapRegionActiveNotify,2122
+TreasureMapRegionInfoNotify,2185
+TreasureSeelieCollectOrbsNotify,20754
+TrialAvatarFirstPassDungeonNotify,2013
+TrialAvatarInDungeonIndexNotify,2186
+TriggerCreateGadgetToEquipPartNotify,350
+TriggerRoguelikeCurseNotify,8412
+TriggerRoguelikeRuneReq,8463
+TriggerRoguelikeRuneRsp,8065
+TryCustomDungeonReq,6245
+TryCustomDungeonRsp,6241
+TryEnterHomeReq,4482
+TryEnterHomeRsp,4653
+TryEnterNextRogueDiaryDungeonReq,8280
+TryEnterNextRogueDiaryDungeonRsp,8362
+TryInterruptRogueDiaryDungeonReq,8617
+TryInterruptRogueDiaryDungeonRsp,8903
+UgcNotify,6341
+UnfreezeGroupLimitNotify,3220
+UnionCmdNotify,5
+UnlockAvatarTalentReq,1072
+UnlockAvatarTalentRsp,1098
+UnlockCoopChapterReq,1970
+UnlockCoopChapterRsp,1995
+UnlockNameCardNotify,4006
+UnlockPersonalLineReq,449
+UnlockPersonalLineRsp,491
+UnlockTransPointReq,3035
+UnlockTransPointRsp,3426
+UnlockedFurnitureFormulaDataNotify,4846
+UnlockedFurnitureSuiteDataNotify,4454
+UnmarkEntityInMinMapNotify,219
+UpdateAbilityCreatedMovingPlatformNotify,881
+UpdatePS4BlockListReq,4046
+UpdatePS4BlockListRsp,4041
+UpdatePS4FriendListNotify,4039
+UpdatePS4FriendListReq,4089
+UpdatePS4FriendListRsp,4059
+UpdatePlayerShowAvatarListReq,4067
+UpdatePlayerShowAvatarListRsp,4058
+UpdatePlayerShowNameCardListReq,4002
+UpdatePlayerShowNameCardListRsp,4019
+UpdateRedPointNotify,93
+UpdateReunionWatcherNotify,5091
+UpdateSalvageBundleMarkReq,8967
+UpdateSalvageBundleMarkRsp,8459
+UpgradeRoguelikeShikigamiReq,8151
+UpgradeRoguelikeShikigamiRsp,8966
+UseItemReq,690
+UseItemRsp,673
+UseMiracleRingReq,5226
+UseMiracleRingRsp,5218
+UseWidgetCreateGadgetReq,4293
+UseWidgetCreateGadgetRsp,4290
+UseWidgetRetractGadgetReq,4286
+UseWidgetRetractGadgetRsp,4261
+VehicleInteractReq,865
+VehicleInteractRsp,804
+VehicleStaminaNotify,834
+ViewCodexReq,4202
+ViewCodexRsp,4201
+ViewLanternProjectionLevelTipsReq,8758
+ViewLanternProjectionLevelTipsRsp,8411
+ViewLanternProjectionTipsReq,8218
+ViewLanternProjectionTipsRsp,8590
+VintageCampGroupBundleRegisterNotify,24244
+VintageCampStageFinishNotify,22830
+VintageDecorateBoothReq,20846
+VintageDecorateBoothRsp,20993
+VintageHuntingStartGalleryReq,21780
+VintageHuntingStartGalleryRsp,21951
+VintageMarketDeliverItemReq,23141
+VintageMarketDeliverItemRsp,22181
+VintageMarketDividendFinishNotify,23147
+VintageMarketFinishStorePlayReq,20676
+VintageMarketFinishStorePlayRsp,23462
+VintageMarketNpcEventFinishNotify,24201
+VintageMarketStartStorePlayReq,22864
+VintageMarketStartStorePlayRsp,22130
+VintageMarketStoreChooseStrategyReq,21248
+VintageMarketStoreChooseStrategyRsp,24860
+VintageMarketStoreUnlockSlotReq,20626
+VintageMarketStoreUnlockSlotRsp,20733
+VintageMarketStoreViewStrategyReq,21700
+VintageMarketStoreViewStrategyRsp,21814
+VintagePresentFinishNoify,24142
+VintagePresentFinishNotify,20086
+WatcherAllDataNotify,2272
+WatcherChangeNotify,2298
+WatcherEventNotify,2212
+WatcherEventStageNotify,2207
+WatcherEventTypeNotify,2235
+WaterSpritePhaseFinishNotify,2025
+WeaponAwakenReq,695
+WeaponAwakenRsp,606
+WeaponPromoteReq,622
+WeaponPromoteRsp,665
+WeaponUpgradeReq,639
+WeaponUpgradeRsp,653
+WearEquipReq,697
+WearEquipRsp,681
+WidgetActiveChangeNotify,4280
+WidgetCaptureAnimalReq,4256
+WidgetCaptureAnimalRsp,4289
+WidgetCoolDownNotify,4295
+WidgetDoBagReq,4255
+WidgetDoBagRsp,4296
+WidgetGadgetAllDataNotify,4284
+WidgetGadgetDataNotify,4266
+WidgetGadgetDestroyNotify,4274
+WidgetQuickHitTreeReq,3345
+WidgetQuickHitTreeRsp,3336
+WidgetReportReq,4291
+WidgetReportRsp,4292
+WidgetSlotChangeNotify,4267
+WidgetUpdateExtraCDReq,5960
+WidgetUpdateExtraCDRsp,6056
+WidgetUseAttachAbilityGroupChangeNotify,4258
+WindFieldGalleryChallengeInfoNotify,5563
+WindFieldGalleryInfoNotify,5526
+WindFieldRestartDungeonReq,20731
+WindFieldRestartDungeonRsp,24712
+WindSeedClientNotify,1199
+WinterCampAcceptAllGiveItemReq,9000
+WinterCampAcceptAllGiveItemRsp,8626
+WinterCampAcceptGiveItemReq,8387
+WinterCampAcceptGiveItemRsp,8185
+WinterCampEditSnowmanCombinationReq,8144
+WinterCampEditSnowmanCombinationRsp,8142
+WinterCampGetCanGiveFriendItemReq,8964
+WinterCampGetCanGiveFriendItemRsp,8357
+WinterCampGetFriendWishListReq,8946
+WinterCampGetFriendWishListRsp,8937
+WinterCampGetRecvItemListReq,8143
+WinterCampGetRecvItemListRsp,8423
+WinterCampGiveFriendItemReq,8572
+WinterCampGiveFriendItemRsp,8264
+WinterCampRaceScoreNotify,8149
+WinterCampRecvItemNotify,8580
+WinterCampSetWishListReq,8753
+WinterCampSetWishListRsp,8281
+WinterCampStageInfoChangeNotify,8154
+WinterCampTakeBattleRewardReq,8401
+WinterCampTakeBattleRewardRsp,8153
+WinterCampTakeExploreRewardReq,8607
+WinterCampTakeExploreRewardRsp,8978
+WinterCampTriathlonRestartReq,8844
+WinterCampTriathlonRestartRsp,8569
+WinterCampTriathlonSettleNotify,8342
+WorktopOptionNotify,835
+WorldAllRoutineTypeNotify,3518
+WorldChestOpenNotify,3295
+WorldDataNotify,3308
+WorldOwnerBlossomBriefInfoNotify,2735
+WorldOwnerBlossomScheduleInfoNotify,2707
+WorldOwnerDailyTaskNotify,102
+WorldPlayerDieNotify,285
+WorldPlayerInfoNotify,3116
+WorldPlayerLocationNotify,258
+WorldPlayerRTTNotify,22
+WorldPlayerReviveReq,225
+WorldPlayerReviveRsp,278
+WorldRoutineChangeNotify,3507
+WorldRoutineTypeCloseNotify,3502
+WorldRoutineTypeRefreshNotify,3525
\ No newline at end of file
diff --git a/proto/AbilityActionDeductStamina.proto b/proto/AbilityActionDeductStamina.proto
new file mode 100644
index 00000000..5e98bf8b
--- /dev/null
+++ b/proto/AbilityActionDeductStamina.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 AbilityActionDeductStamina {
+ bool is_swim = 1;
+}
diff --git a/proto/AbilityActionHitEffect.proto b/proto/AbilityActionHitEffect.proto
new file mode 100644
index 00000000..072e2301
--- /dev/null
+++ b/proto/AbilityActionHitEffect.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 AbilityActionHitEffect {
+ uint32 trigger_id = 3;
+}
diff --git a/proto/AbilityInvokeArgument.proto b/proto/AbilityInvokeArgument.proto
index e53dbe6d..caa28d29 100644
--- a/proto/AbilityInvokeArgument.proto
+++ b/proto/AbilityInvokeArgument.proto
@@ -42,7 +42,7 @@ enum AbilityInvokeArgument {
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_META_DURABILITY_IS_ZERO = 22;
ABILITY_INVOKE_ARGUMENT_ACTION_TRIGGER_ABILITY = 50;
ABILITY_INVOKE_ARGUMENT_ACTION_SET_CRASH_DAMAGE = 51;
ABILITY_INVOKE_ARGUMENT_ACTION_EFFECT = 52;
@@ -56,9 +56,9 @@ enum AbilityInvokeArgument {
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_ACTION_DEDUCT_STAMINA = 63;
+ ABILITY_INVOKE_ARGUMENT_ACTION_HIT_EFFECT = 64;
+ ABILITY_INVOKE_ARGUMENT_ACTION_SET_BULLET_TRACK_TARGET = 65;
ABILITY_INVOKE_ARGUMENT_MIXIN_AVATAR_STEER_BY_CAMERA = 100;
ABILITY_INVOKE_ARGUMENT_MIXIN_MONSTER_DEFEND = 101;
ABILITY_INVOKE_ARGUMENT_MIXIN_WIND_ZONE = 102;
@@ -72,12 +72,13 @@ enum AbilityInvokeArgument {
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;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_DO_ACTION_BY_SELF_MODIFIER_ELEMENT_DURABILITY_RATIO = 113;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_FIREWORKS_LAUNCHER = 114;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_ATTACK_RESULT_CREATE_COUNT = 115;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_UGC_TIME_CONTROL = 116;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_AVATAR_COMBAT = 117;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_DEATH_ZONE_REGIONAL_PLAY_MIXIN = 118;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_UI_INTERACT = 119;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_SHOOT_FROM_CAMERA = 120;
+ ABILITY_INVOKE_ARGUMENT_MIXIN_ERASE_BRICK_ACTIVITY = 121;
}
diff --git a/proto/AbilityMetaDurabilityIsZero.proto b/proto/AbilityMetaDurabilityIsZero.proto
new file mode 100644
index 00000000..c8cf411a
--- /dev/null
+++ b/proto/AbilityMetaDurabilityIsZero.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 AbilityMetaDurabilityIsZero {
+ bool is_zero = 5;
+}
diff --git a/proto/AbilityMetaModifierChange.proto b/proto/AbilityMetaModifierChange.proto
index 4d60128d..64b85673 100644
--- a/proto/AbilityMetaModifierChange.proto
+++ b/proto/AbilityMetaModifierChange.proto
@@ -35,5 +35,5 @@ message AbilityMetaModifierChange {
uint32 apply_entity_id = 5;
repeated ModifierProperty properties = 3;
AbilityString parent_ability_override = 11;
- bool Unk2700_PMJMNCFJPDC = 9;
+ bool is_durability_zero = 9;
}
diff --git a/proto/AbilityMetaUpdateBaseReactionDamage.proto b/proto/AbilityMetaUpdateBaseReactionDamage.proto
index fa490cc6..2e45184a 100644
--- a/proto/AbilityMetaUpdateBaseReactionDamage.proto
+++ b/proto/AbilityMetaUpdateBaseReactionDamage.proto
@@ -23,6 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
message AbilityMetaUpdateBaseReactionDamage {
uint32 source_caster_id = 15;
+ AbilityString ability_name = 1;
AbilityString global_value_key = 4;
uint32 reaction_type = 8;
}
diff --git a/proto/Unk2700_DEDIKDKNAAB.proto b/proto/AbilityMixinAvatarCombat.proto
similarity index 93%
rename from proto/Unk2700_DEDIKDKNAAB.proto
rename to proto/AbilityMixinAvatarCombat.proto
index 80f225a0..8eca4426 100644
--- a/proto/Unk2700_DEDIKDKNAAB.proto
+++ b/proto/AbilityMixinAvatarCombat.proto
@@ -19,6 +19,6 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_DEDIKDKNAAB {
- bool Unk2700_EDLGAFHFDBE = 5;
+message AbilityMixinAvatarCombat {
+ bool is_enter_combat = 9;
}
diff --git a/proto/AbilityMixinDoActionBySelfModifierElementDurabilityRatio.proto b/proto/AbilityMixinDoActionBySelfModifierElementDurabilityRatio.proto
new file mode 100644
index 00000000..f93c9ac9
--- /dev/null
+++ b/proto/AbilityMixinDoActionBySelfModifierElementDurabilityRatio.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 AbilityMixinDoActionBySelfModifierElementDurabilityRatio {
+ float last_durability_ratio = 9;
+}
diff --git a/proto/AbilityMixinElementShield.proto b/proto/AbilityMixinElementShield.proto
index 2f2367f0..9b3d6056 100644
--- a/proto/AbilityMixinElementShield.proto
+++ b/proto/AbilityMixinElementShield.proto
@@ -23,7 +23,7 @@ message AbilityMixinElementShield {
float sub_shield = 10;
float shield = 8;
uint32 absorb_type = 1;
- uint32 Unk2700_PBKBDDLNBEA = 4;
+ uint32 player_num = 4;
bool is_shield_broken = 9;
float max_shield = 12;
}
diff --git a/proto/AbilityMixinEmpty.proto b/proto/AbilityMixinEmpty.proto
index 14bd7cfa..cef9098d 100644
--- a/proto/AbilityMixinEmpty.proto
+++ b/proto/AbilityMixinEmpty.proto
@@ -19,6 +19,4 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message AbilityMixinEmpty {
- bool is_swim = 1;
-}
+message AbilityMixinEmpty {}
diff --git a/proto/AbilityMixinFireworksLauncher.proto b/proto/AbilityMixinFireworksLauncher.proto
new file mode 100644
index 00000000..9e3601e6
--- /dev/null
+++ b/proto/AbilityMixinFireworksLauncher.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AbilityMixinFireworksLauncher {
+ uint32 invoke_type = 2;
+ uint32 start_count_down_time = 3;
+ uint32 fired_bullet_count = 1;
+ uint32 phase = 6;
+ repeated uint32 fireworks_config = 4;
+ uint32 turn_index = 7;
+}
diff --git a/proto/AbilityMixinShieldBar.proto b/proto/AbilityMixinShieldBar.proto
index fa52cd00..bfc9ac54 100644
--- a/proto/AbilityMixinShieldBar.proto
+++ b/proto/AbilityMixinShieldBar.proto
@@ -20,7 +20,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AbilityMixinShieldBar {
- uint32 Unk2700_PBKBDDLNBEA = 14;
+ uint32 player_num = 14;
float max_shield = 15;
float shield = 12;
uint32 element_type = 13;
diff --git a/proto/Unk3100_MDELBDDANOC.proto b/proto/AbilityMixinShootFromCamera.proto
similarity index 96%
rename from proto/Unk3100_MDELBDDANOC.proto
rename to proto/AbilityMixinShootFromCamera.proto
index 7b8bc54f..c1ebfb61 100644
--- a/proto/Unk3100_MDELBDDANOC.proto
+++ b/proto/AbilityMixinShootFromCamera.proto
@@ -21,7 +21,7 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk3100_MDELBDDANOC {
+message AbilityMixinShootFromCamera {
Vector init_pos = 13;
Vector forward = 2;
}
diff --git a/proto/AbilityMixinUGCTimeControl.proto b/proto/AbilityMixinUGCTimeControl.proto
new file mode 100644
index 00000000..ae633f08
--- /dev/null
+++ b/proto/AbilityMixinUGCTimeControl.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 AbilityMixinUGCTimeControl {
+ uint64 start_move_time_ms = 13;
+ uint32 forward = 3;
+}
diff --git a/proto/SceneGalleryVintageHuntingThirdStageInfo.proto b/proto/AbilityMixinUIInteract.proto
similarity index 94%
rename from proto/SceneGalleryVintageHuntingThirdStageInfo.proto
rename to proto/AbilityMixinUIInteract.proto
index 61522885..9e751e49 100644
--- a/proto/SceneGalleryVintageHuntingThirdStageInfo.proto
+++ b/proto/AbilityMixinUIInteract.proto
@@ -19,4 +19,4 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message SceneGalleryVintageHuntingThirdStageInfo {}
+message AbilityMixinUIInteract {}
diff --git a/proto/Unk2700_LJINJNECBIA.proto b/proto/ActivityAcceptAllGiveGiftReq.proto
similarity index 96%
rename from proto/Unk2700_LJINJNECBIA.proto
rename to proto/ActivityAcceptAllGiveGiftReq.proto
index 24f88473..3ff76772 100644
--- a/proto/Unk2700_LJINJNECBIA.proto
+++ b/proto/ActivityAcceptAllGiveGiftReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_LJINJNECBIA {
+message ActivityAcceptAllGiveGiftReq {
uint32 schedule_id = 3;
}
diff --git a/proto/Unk2700_INOMEGGAGOP.proto b/proto/ActivityAcceptAllGiveGiftRsp.proto
similarity index 87%
rename from proto/Unk2700_INOMEGGAGOP.proto
rename to proto/ActivityAcceptAllGiveGiftRsp.proto
index f0c952ef..79cdd039 100644
--- a/proto/Unk2700_INOMEGGAGOP.proto
+++ b/proto/ActivityAcceptAllGiveGiftRsp.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "Unk2700_AIMMLILLOKB.proto";
+import "ActivityAcceptGiftResultInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8132
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_INOMEGGAGOP {
- repeated Unk2700_AIMMLILLOKB Unk2700_DFGCIBJFNBC = 5;
+message ActivityAcceptAllGiveGiftRsp {
+ repeated ActivityAcceptGiftResultInfo accept_gift_result_info_list = 5;
uint32 schedule_id = 10;
int32 retcode = 9;
}
diff --git a/proto/Unk2700_AIMMLILLOKB.proto b/proto/ActivityAcceptGiftResultInfo.proto
similarity index 87%
rename from proto/Unk2700_AIMMLILLOKB.proto
rename to proto/ActivityAcceptGiftResultInfo.proto
index d2cbd336..477bc9c9 100644
--- a/proto/Unk2700_AIMMLILLOKB.proto
+++ b/proto/ActivityAcceptGiftResultInfo.proto
@@ -19,8 +19,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_AIMMLILLOKB {
- map Unk2700_DLKPHFDEDNF = 3;
+message ActivityAcceptGiftResultInfo {
+ map unaccept_gift_num_map = 3;
uint32 uid = 6;
- map Unk2700_HDJPJBIFMCO = 13;
+ map accept_gift_num_map = 13;
}
diff --git a/proto/Unk2700_GPHLCIAMDFG.proto b/proto/ActivityAcceptGiveGiftReq.proto
similarity index 96%
rename from proto/Unk2700_GPHLCIAMDFG.proto
rename to proto/ActivityAcceptGiveGiftReq.proto
index 74bfbd10..a6abe61d 100644
--- a/proto/Unk2700_GPHLCIAMDFG.proto
+++ b/proto/ActivityAcceptGiveGiftReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_GPHLCIAMDFG {
+message ActivityAcceptGiveGiftReq {
uint32 schedule_id = 3;
uint32 uid = 12;
}
diff --git a/proto/Unk2700_CALNMMBNKFD.proto b/proto/ActivityAcceptGiveGiftRsp.proto
similarity index 88%
rename from proto/Unk2700_CALNMMBNKFD.proto
rename to proto/ActivityAcceptGiveGiftRsp.proto
index 7d1c12ad..f73597ab 100644
--- a/proto/Unk2700_CALNMMBNKFD.proto
+++ b/proto/ActivityAcceptGiveGiftRsp.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "Unk2700_AIMMLILLOKB.proto";
+import "ActivityAcceptGiftResultInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8502
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_CALNMMBNKFD {
- Unk2700_AIMMLILLOKB Unk2700_GHDHIBDLFPN = 4;
+message ActivityAcceptGiveGiftRsp {
+ ActivityAcceptGiftResultInfo accept_gift_result_info = 4;
int32 retcode = 11;
uint32 schedule_id = 10;
}
diff --git a/proto/Unk2700_OJHJBKHIPLA_ClientReq.proto b/proto/ActivityBannerClearReq.proto
similarity index 96%
rename from proto/Unk2700_OJHJBKHIPLA_ClientReq.proto
rename to proto/ActivityBannerClearReq.proto
index 6518c234..11adcf0a 100644
--- a/proto/Unk2700_OJHJBKHIPLA_ClientReq.proto
+++ b/proto/ActivityBannerClearReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_OJHJBKHIPLA_ClientReq {
+message ActivityBannerClearReq {
uint32 schedule_id = 15;
uint32 activity_id = 12;
}
diff --git a/proto/Unk2700_KNGFOEKOODA_ServerRsp.proto b/proto/ActivityBannerClearRsp.proto
similarity index 96%
rename from proto/Unk2700_KNGFOEKOODA_ServerRsp.proto
rename to proto/ActivityBannerClearRsp.proto
index d03ec25c..e1d966ce 100644
--- a/proto/Unk2700_KNGFOEKOODA_ServerRsp.proto
+++ b/proto/ActivityBannerClearRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 2163
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_KNGFOEKOODA_ServerRsp {
+message ActivityBannerClearRsp {
uint32 activity_id = 4;
int32 retcode = 6;
uint32 schedule_id = 11;
diff --git a/proto/Unk2700_NINHGODEMHH_ServerNotify.proto b/proto/ActivityBannerNotify.proto
similarity index 96%
rename from proto/Unk2700_NINHGODEMHH_ServerNotify.proto
rename to proto/ActivityBannerNotify.proto
index 681a9d60..a86c62f1 100644
--- a/proto/Unk2700_NINHGODEMHH_ServerNotify.proto
+++ b/proto/ActivityBannerNotify.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 2155
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_NINHGODEMHH_ServerNotify {
+message ActivityBannerNotify {
uint32 schedule_id = 1;
uint32 activity_id = 3;
}
diff --git a/proto/Unk2700_FMGGGEDNGGN.proto b/proto/ActivityDungeonAvatar.proto
similarity index 96%
rename from proto/Unk2700_FMGGGEDNGGN.proto
rename to proto/ActivityDungeonAvatar.proto
index dfababf8..1fd536c1 100644
--- a/proto/Unk2700_FMGGGEDNGGN.proto
+++ b/proto/ActivityDungeonAvatar.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_FMGGGEDNGGN {
+message ActivityDungeonAvatar {
uint32 avatar_id = 1;
bool is_trial = 2;
uint32 costume_id = 3;
diff --git a/proto/Unk2700_FGJFFMPOJON.proto b/proto/ActivityFriendGiftWishData.proto
similarity index 93%
rename from proto/Unk2700_FGJFFMPOJON.proto
rename to proto/ActivityFriendGiftWishData.proto
index 3dbab0a2..fe45c25f 100644
--- a/proto/Unk2700_FGJFFMPOJON.proto
+++ b/proto/ActivityFriendGiftWishData.proto
@@ -21,10 +21,10 @@ import "ProfilePicture.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_FGJFFMPOJON {
+message ActivityFriendGiftWishData {
string nickname = 7;
string remark_name = 3;
ProfilePicture profile_picture = 11;
- map Unk2700_IFCNGIPPOAE = 9;
+ map gift_num_map = 9;
uint32 uid = 8;
}
diff --git a/proto/Unk2700_PHFADCJDBOF.proto b/proto/ActivityGetCanGiveFriendGiftReq.proto
similarity index 96%
rename from proto/Unk2700_PHFADCJDBOF.proto
rename to proto/ActivityGetCanGiveFriendGiftReq.proto
index ca2332c6..420aebb9 100644
--- a/proto/Unk2700_PHFADCJDBOF.proto
+++ b/proto/ActivityGetCanGiveFriendGiftReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_PHFADCJDBOF {
+message ActivityGetCanGiveFriendGiftReq {
uint32 schedule_id = 8;
}
diff --git a/proto/Unk2700_KMIDCPLAGMN.proto b/proto/ActivityGetCanGiveFriendGiftRsp.proto
similarity index 92%
rename from proto/Unk2700_KMIDCPLAGMN.proto
rename to proto/ActivityGetCanGiveFriendGiftRsp.proto
index 4c034aea..fe9e5863 100644
--- a/proto/Unk2700_KMIDCPLAGMN.proto
+++ b/proto/ActivityGetCanGiveFriendGiftRsp.proto
@@ -22,8 +22,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8848
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_KMIDCPLAGMN {
+message ActivityGetCanGiveFriendGiftRsp {
uint32 schedule_id = 7;
int32 retcode = 3;
- map Unk2700_IFCNGIPPOAE = 14;
+ map gift_num_map = 14;
}
diff --git a/proto/Unk2700_NEHPMNPAAKC.proto b/proto/ActivityGetFriendGiftWishListReq.proto
similarity index 96%
rename from proto/Unk2700_NEHPMNPAAKC.proto
rename to proto/ActivityGetFriendGiftWishListReq.proto
index e3a17694..fec6684e 100644
--- a/proto/Unk2700_NEHPMNPAAKC.proto
+++ b/proto/ActivityGetFriendGiftWishListReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_NEHPMNPAAKC {
+message ActivityGetFriendGiftWishListReq {
uint32 schedule_id = 6;
}
diff --git a/proto/Unk2700_LMAKABBJNLN.proto b/proto/ActivityGetFriendGiftWishListRsp.proto
similarity index 87%
rename from proto/Unk2700_LMAKABBJNLN.proto
rename to proto/ActivityGetFriendGiftWishListRsp.proto
index b087633d..d2fd951f 100644
--- a/proto/Unk2700_LMAKABBJNLN.proto
+++ b/proto/ActivityGetFriendGiftWishListRsp.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "Unk2700_FGJFFMPOJON.proto";
+import "ActivityFriendGiftWishData.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8253
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_LMAKABBJNLN {
+message ActivityGetFriendGiftWishListRsp {
int32 retcode = 6;
- repeated Unk2700_FGJFFMPOJON Unk2700_COOFMKLNBND = 11;
+ repeated ActivityFriendGiftWishData friend_gift_wish_list = 11;
uint32 schedule_id = 10;
}
diff --git a/proto/Unk2700_CLKGPNDKIDD.proto b/proto/ActivityGetRecvGiftListReq.proto
similarity index 96%
rename from proto/Unk2700_CLKGPNDKIDD.proto
rename to proto/ActivityGetRecvGiftListReq.proto
index ab311c0b..ec068abc 100644
--- a/proto/Unk2700_CLKGPNDKIDD.proto
+++ b/proto/ActivityGetRecvGiftListReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_CLKGPNDKIDD {
+message ActivityGetRecvGiftListReq {
uint32 schedule_id = 8;
}
diff --git a/proto/Unk2700_AKIBKKOMBMC.proto b/proto/ActivityGetRecvGiftListRsp.proto
similarity index 89%
rename from proto/Unk2700_AKIBKKOMBMC.proto
rename to proto/ActivityGetRecvGiftListRsp.proto
index c886ec25..963b1fd8 100644
--- a/proto/Unk2700_AKIBKKOMBMC.proto
+++ b/proto/ActivityGetRecvGiftListRsp.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "Unk2700_IEPIBFMCJNJ.proto";
+import "ActivityRecvGiftData.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8120
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_AKIBKKOMBMC {
+message ActivityGetRecvGiftListRsp {
int32 retcode = 15;
- repeated Unk2700_IEPIBFMCJNJ Unk2700_GOCEOKPHFIO = 11;
+ repeated ActivityRecvGiftData recv_gift_list = 11;
uint32 schedule_id = 6;
}
diff --git a/proto/Unk2700_OHIKIOLLMHM.proto b/proto/ActivityGiveFriendGiftReq.proto
similarity index 93%
rename from proto/Unk2700_OHIKIOLLMHM.proto
rename to proto/ActivityGiveFriendGiftReq.proto
index 34b71bcf..80b92315 100644
--- a/proto/Unk2700_OHIKIOLLMHM.proto
+++ b/proto/ActivityGiveFriendGiftReq.proto
@@ -23,8 +23,8 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_OHIKIOLLMHM {
+message ActivityGiveFriendGiftReq {
uint32 uid = 5;
uint32 schedule_id = 1;
- map Unk2700_IFCNGIPPOAE = 4;
+ map gift_num_map = 4;
}
diff --git a/proto/Unk2700_JNCINBLCNNL.proto b/proto/ActivityGiveFriendGiftRsp.proto
similarity index 93%
rename from proto/Unk2700_JNCINBLCNNL.proto
rename to proto/ActivityGiveFriendGiftRsp.proto
index 32fee0f5..ade53108 100644
--- a/proto/Unk2700_JNCINBLCNNL.proto
+++ b/proto/ActivityGiveFriendGiftRsp.proto
@@ -22,8 +22,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8696
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_JNCINBLCNNL {
- repeated uint32 Unk2700_DMPIDNKAJML = 3;
+message ActivityGiveFriendGiftRsp {
+ repeated uint32 limit_gift_list = 3;
uint32 schedule_id = 4;
int32 retcode = 10;
}
diff --git a/proto/Unk2700_EDDNHJPJBBF.proto b/proto/ActivityHaveRecvGiftNotify.proto
similarity index 96%
rename from proto/Unk2700_EDDNHJPJBBF.proto
rename to proto/ActivityHaveRecvGiftNotify.proto
index 3b83a66a..fa36a8bc 100644
--- a/proto/Unk2700_EDDNHJPJBBF.proto
+++ b/proto/ActivityHaveRecvGiftNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8733
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_EDDNHJPJBBF {
+message ActivityHaveRecvGiftNotify {
uint32 schedule_id = 7;
}
diff --git a/proto/ActivityInfo.proto b/proto/ActivityInfo.proto
index 25e5b97d..221c460b 100644
--- a/proto/ActivityInfo.proto
+++ b/proto/ActivityInfo.proto
@@ -17,6 +17,7 @@
syntax = "proto3";
+import "ActivityPushTipsData.proto";
import "ActivityWatcherInfo.proto";
import "ArenaChallengeActivityDetailInfo.proto";
import "AsterActivityDetailInfo.proto";
@@ -26,6 +27,7 @@ import "BlitzRushActivityDetailInfo.proto";
import "BounceConjuringActivityDetailInfo.proto";
import "BuoyantCombatDetailInfo.proto";
import "ChannelerSlabActivityDetailInfo.proto";
+import "CharAmusementDetailInfo.proto";
import "ChessActivityDetailInfo.proto";
import "CrucibleActivityDetailInfo.proto";
import "CrystalLinkActivityDetailInfo.proto";
@@ -34,10 +36,12 @@ import "DigActivityDetailInfo.proto";
import "DragonSpineActivityDetailInfo.proto";
import "EchoShellDetailInfo.proto";
import "EffigyActivityDetailInfo.proto";
+import "EffigyChallengeV2DetailInfo.proto";
import "ExpeditionActivityDetailInfo.proto";
import "FindHilichurlDetailInfo.proto";
import "FleurFairActivityDetailInfo.proto";
import "FlightActivityDetailInfo.proto";
+import "FungusFighterDetailInfo.proto";
import "GachaActivityDetailInfo.proto";
import "GearActivityDetailInfo.proto";
import "GravenInnocenceDetailInfo.proto";
@@ -45,14 +49,14 @@ import "HachiActivityDetailInfo.proto";
import "HideAndSeekActivityDetailInfo.proto";
import "InstableSprayDetailInfo.proto";
import "IrodoriActivityDetailInfo.proto";
-import "IslandPartyActivityDetailInfo.proto";
+import "IslandPartyDetailInfo.proto";
import "LanternRiteActivityDetailInfo.proto";
import "LuminanceStoneChallengeActivityDetailInfo.proto";
import "LunaRiteDetailInfo.proto";
import "MichiaeMatsuriActivityDetailInfo.proto";
import "MistTrialActivityDetailInfo.proto";
import "MoonfinTrialActivityDetailInfo.proto";
-import "MuqadasPotionDetailInfo.proto";
+import "MuqadasPotionActivityDetailInfo.proto";
import "MusicGameActivityDetailInfo.proto";
import "PhotoActivityDetailInfo.proto";
import "PlantFlowerActivityDetailInfo.proto";
@@ -69,10 +73,9 @@ import "SummerTimeV2DetailInfo.proto";
import "SumoActivityDetailInfo.proto";
import "TanukiTravelActivityDetailInfo.proto";
import "TreasureMapActivityDetailInfo.proto";
-import "TreasureSeelieDetailInfo.proto";
+import "TreasureSeelieActivityDetailInfo.proto";
import "TrialAvatarActivityDetailInfo.proto";
import "UgcActivityDetailInfo.proto";
-import "Unk2800_PHPHMILPOLC.proto";
import "VintageDetailInfo.proto";
import "WaterSpiritActivityDetailInfo.proto";
import "WindFieldDetailInfo.proto";
@@ -81,28 +84,29 @@ 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;
+ uint32 begin_time = 8;
+ repeated uint32 taken_reward_list = 329;
+ bool is_hidden = 919;
+ bool is_quick_open = 1449;
repeated uint32 meet_cond_list = 10;
- map Unk2700_IFPBCNLCKLG = 1399;
- repeated uint32 expire_cond_list = 3;
- repeated ActivityWatcherInfo watcher_info_list = 2;
+ map activity_coin_map = 682;
+ bool is_banner_cleared = 102;
+ uint32 cur_score = 1906;
+ uint32 first_day_start_time = 592;
uint32 activity_id = 12;
+ bool is_play_open_anim = 13;
+ uint32 end_time = 5;
+ uint32 score_limit = 1958;
+ map wish_gift_num_map = 1399;
+ uint32 selected_avatar_reward_id = 1290;
+ bool is_common_content_closed = 1963;
+ repeated uint32 expire_cond_list = 3;
+ repeated ActivityPushTipsData activity_push_tips_data_list = 864;
+ repeated ActivityWatcherInfo watcher_info_list = 2;
+ uint32 schedule_id = 15;
+ bool is_starting = 9;
oneof detail {
SeaLampActivityDetailInfo sam_lamp_info = 7;
CrucibleActivityDetailInfo crucible_info = 14;
@@ -153,14 +157,17 @@ message ActivityInfo {
LuminanceStoneChallengeActivityDetailInfo luminance_stone_challenge_info = 1308;
RogueDiaryActivityDetailInfo rogue_diary_info = 812;
SummerTimeV2DetailInfo summer_time_v2_info = 622;
- IslandPartyActivityDetailInfo island_party_info = 1885;
+ IslandPartyDetailInfo 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;
+ MuqadasPotionActivityDetailInfo muqadas_potion_info = 1157;
+ TreasureSeelieActivityDetailInfo treasure_seelie_info = 966;
RockBoardExploreDetailInfo rock_board_explore_info = 1078;
VintageDetailInfo vintage_info = 445;
WindFieldDetailInfo wind_field_info = 352;
+ FungusFighterDetailInfo fungus_fighter_info = 490;
+ CharAmusementDetailInfo char_amusement_info = 1496;
+ EffigyChallengeV2DetailInfo effigy_challenge_info = 1025;
}
}
diff --git a/proto/ActivityPushTipsData.proto b/proto/ActivityPushTipsData.proto
new file mode 100644
index 00000000..5941b5a4
--- /dev/null
+++ b/proto/ActivityPushTipsData.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ActivityPushTipsState.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message ActivityPushTipsData {
+ ActivityPushTipsState state = 10;
+ uint32 activity_push_tips_id = 4;
+}
diff --git a/proto/Unk2800_IECLGDFOMFJ.proto b/proto/ActivityPushTipsInfoNotify.proto
similarity index 88%
rename from proto/Unk2800_IECLGDFOMFJ.proto
rename to proto/ActivityPushTipsInfoNotify.proto
index 47ab15db..d9835ea2 100644
--- a/proto/Unk2800_IECLGDFOMFJ.proto
+++ b/proto/ActivityPushTipsInfoNotify.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "Unk2800_PHPHMILPOLC.proto";
+import "ActivityPushTipsData.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8513
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_IECLGDFOMFJ {
+message ActivityPushTipsInfoNotify {
uint32 schedule_id = 14;
- repeated Unk2800_PHPHMILPOLC Unk2800_KOMIPKKKOBE = 3;
+ repeated ActivityPushTipsData activity_push_tips_data_list = 3;
uint32 activity_id = 10;
}
diff --git a/proto/ActivityPushTipsState.proto b/proto/ActivityPushTipsState.proto
new file mode 100644
index 00000000..61bf9419
--- /dev/null
+++ b/proto/ActivityPushTipsState.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 ActivityPushTipsState {
+ ACTIVITY_PUSH_TIPS_STATE_NONE = 0;
+ ACTIVITY_PUSH_TIPS_STATE_START = 1;
+ ACTIVITY_PUSH_TIPS_STATE_READ = 2;
+}
diff --git a/proto/Unk2800_LGIKLPBOJOI.proto b/proto/ActivityReadPushTipsReq.proto
similarity index 92%
rename from proto/Unk2800_LGIKLPBOJOI.proto
rename to proto/ActivityReadPushTipsReq.proto
index 4fb4fdc9..10a46c13 100644
--- a/proto/Unk2800_LGIKLPBOJOI.proto
+++ b/proto/ActivityReadPushTipsReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2800_LGIKLPBOJOI {
- repeated uint32 Unk2800_AEKPBKAAHFL = 14;
+message ActivityReadPushTipsReq {
+ repeated uint32 activity_push_tips_id_list = 14;
uint32 activity_id = 7;
}
diff --git a/proto/Unk2800_BOFEHJBJELJ.proto b/proto/ActivityReadPushTipsRsp.proto
similarity index 96%
rename from proto/Unk2800_BOFEHJBJELJ.proto
rename to proto/ActivityReadPushTipsRsp.proto
index 6dd52d66..eca4ddf1 100644
--- a/proto/Unk2800_BOFEHJBJELJ.proto
+++ b/proto/ActivityReadPushTipsRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8574
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_BOFEHJBJELJ {
+message ActivityReadPushTipsRsp {
int32 retcode = 9;
}
diff --git a/proto/Unk2700_IEPIBFMCJNJ.proto b/proto/ActivityRecvGiftData.proto
similarity index 93%
rename from proto/Unk2700_IEPIBFMCJNJ.proto
rename to proto/ActivityRecvGiftData.proto
index f62c7f9e..c5c9c722 100644
--- a/proto/Unk2700_IEPIBFMCJNJ.proto
+++ b/proto/ActivityRecvGiftData.proto
@@ -21,10 +21,10 @@ import "ProfilePicture.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_IEPIBFMCJNJ {
+message ActivityRecvGiftData {
uint32 uid = 15;
string nickname = 3;
string remark_name = 10;
ProfilePicture profile_picture = 14;
- map Unk2700_IFCNGIPPOAE = 8;
+ map gift_num_map = 8;
}
diff --git a/proto/Unk2700_HKADKMFMBPG.proto b/proto/ActivitySetGiftWishReq.proto
similarity index 93%
rename from proto/Unk2700_HKADKMFMBPG.proto
rename to proto/ActivitySetGiftWishReq.proto
index 6c70677b..e053d3f4 100644
--- a/proto/Unk2700_HKADKMFMBPG.proto
+++ b/proto/ActivitySetGiftWishReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_HKADKMFMBPG {
- map Unk2700_IFCNGIPPOAE = 2;
+message ActivitySetGiftWishReq {
+ map gift_num_map = 2;
uint32 schedule_id = 14;
}
diff --git a/proto/Unk2700_HMMFPDMLGEM.proto b/proto/ActivitySetGiftWishRsp.proto
similarity index 96%
rename from proto/Unk2700_HMMFPDMLGEM.proto
rename to proto/ActivitySetGiftWishRsp.proto
index ee1bcffb..a9bf1aac 100644
--- a/proto/Unk2700_HMMFPDMLGEM.proto
+++ b/proto/ActivitySetGiftWishRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8554
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_HMMFPDMLGEM {
+message ActivitySetGiftWishRsp {
uint32 schedule_id = 15;
int32 retcode = 7;
}
diff --git a/proto/Unk3000_NPPMPMGBBLM.proto b/proto/AddAranaraCollectionNotify.proto
similarity index 81%
rename from proto/Unk3000_NPPMPMGBBLM.proto
rename to proto/AddAranaraCollectionNotify.proto
index c87b1a3d..d62f068f 100644
--- a/proto/Unk3000_NPPMPMGBBLM.proto
+++ b/proto/AddAranaraCollectionNotify.proto
@@ -17,16 +17,16 @@
syntax = "proto3";
-import "Unk3000_AHNHHIOAHBC.proto";
+import "AranaraCollectionState.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;
+message AddAranaraCollectionNotify {
+ uint32 collection_type = 7;
+ AranaraCollectionState target_state = 12;
+ AranaraCollectionState from_state = 15;
+ uint32 collection_id = 8;
}
diff --git a/proto/Unk3000_IMLAPBGLBFF.proto b/proto/AddBackupAvatarTeamReq.proto
similarity index 96%
rename from proto/Unk3000_IMLAPBGLBFF.proto
rename to proto/AddBackupAvatarTeamReq.proto
index e9dfae94..8ab08d66 100644
--- a/proto/Unk3000_IMLAPBGLBFF.proto
+++ b/proto/AddBackupAvatarTeamReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_IMLAPBGLBFF {}
+message AddBackupAvatarTeamReq {}
diff --git a/proto/Unk3000_IBNIGBFIEEF.proto b/proto/AddBackupAvatarTeamRsp.proto
similarity index 96%
rename from proto/Unk3000_IBNIGBFIEEF.proto
rename to proto/AddBackupAvatarTeamRsp.proto
index 7b82552b..ed611b94 100644
--- a/proto/Unk3000_IBNIGBFIEEF.proto
+++ b/proto/AddBackupAvatarTeamRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 1735
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_IBNIGBFIEEF {
+message AddBackupAvatarTeamRsp {
int32 retcode = 4;
}
diff --git a/proto/AllShareCDDataNotify.proto b/proto/AllShareCDDataNotify.proto
new file mode 100644
index 00000000..62616045
--- /dev/null
+++ b/proto/AllShareCDDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ShareCDInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 9072
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AllShareCDDataNotify {
+ map share_cd_info_map = 2;
+}
diff --git a/proto/Unk3000_EMGMOECAJDK.proto b/proto/AllWidgetBackgroundActiveStateNotify.proto
similarity index 90%
rename from proto/Unk3000_EMGMOECAJDK.proto
rename to proto/AllWidgetBackgroundActiveStateNotify.proto
index cc635c6b..88c089a6 100644
--- a/proto/Unk3000_EMGMOECAJDK.proto
+++ b/proto/AllWidgetBackgroundActiveStateNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 6092
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_EMGMOECAJDK {
- repeated uint32 Unk3000_CNNFGFBBBFP = 3;
+message AllWidgetBackgroundActiveStateNotify {
+ repeated uint32 background_active_widget_list = 3;
}
diff --git a/proto/AllWidgetDataNotify.proto b/proto/AllWidgetDataNotify.proto
index abebfcba..91eb6da9 100644
--- a/proto/AllWidgetDataNotify.proto
+++ b/proto/AllWidgetDataNotify.proto
@@ -21,7 +21,7 @@ import "AnchorPointData.proto";
import "ClientCollectorData.proto";
import "LunchBoxData.proto";
import "OneofGatherPointDetectorData.proto";
-import "Unk2700_CCEOEOHLAPK.proto";
+import "SkyCrystalDetectorData.proto";
import "WidgetCoolDownData.proto";
import "WidgetSlotData.proto";
@@ -31,7 +31,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
message AllWidgetDataNotify {
- repeated uint32 Unk3000_CNNFGFBBBFP = 11;
+ repeated uint32 background_active_widget_list = 11;
LunchBoxData lunch_box_data = 1;
repeated WidgetCoolDownData cool_down_group_data_list = 13;
repeated AnchorPointData anchor_point_list = 3;
@@ -40,5 +40,5 @@ message AllWidgetDataNotify {
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;
+ SkyCrystalDetectorData sky_crystal_detector_data = 12;
}
diff --git a/proto/AnnounceData.proto b/proto/AnnounceData.proto
index c6baf8b4..385dfc63 100644
--- a/proto/AnnounceData.proto
+++ b/proto/AnnounceData.proto
@@ -27,6 +27,6 @@ message AnnounceData {
uint32 begin_time = 4;
uint32 center_system_frequency = 11;
string dungeon_confirm_text = 2;
- bool is_center_system_last5_every_minutes = 14;
+ bool is_center_system_last_5_every_minutes = 14;
uint32 end_time = 10;
}
diff --git a/proto/Unk3000_KEJGDDMMBLP.proto b/proto/AranaraCollectionDataNotify.proto
similarity index 87%
rename from proto/Unk3000_KEJGDDMMBLP.proto
rename to proto/AranaraCollectionDataNotify.proto
index 06f19ee7..ddb8aaf2 100644
--- a/proto/Unk3000_KEJGDDMMBLP.proto
+++ b/proto/AranaraCollectionDataNotify.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk3000_PONJHEGKBBP.proto";
+import "AranaraCollectionSuite.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 6376
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_KEJGDDMMBLP {
- repeated Unk3000_PONJHEGKBBP Unk3000_EIHLJGPJDJM = 14;
+message AranaraCollectionDataNotify {
+ repeated AranaraCollectionSuite collection_suite_list = 14;
}
diff --git a/proto/AranaraCollectionState.proto b/proto/AranaraCollectionState.proto
new file mode 100644
index 00000000..1539feb1
--- /dev/null
+++ b/proto/AranaraCollectionState.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 AranaraCollectionState {
+ ARANARA_COLLECTION_STATE_NONE = 0;
+ ARANARA_COLLECTION_STATE_COLLECTABLE = 1;
+ ARANARA_COLLECTION_STATE_COLLECTED = 2;
+ ARANARA_COLLECTION_STATE_FINISHED = 3;
+}
diff --git a/proto/AranaraCollectionSuite.proto b/proto/AranaraCollectionSuite.proto
new file mode 100644
index 00000000..f97ad5f1
--- /dev/null
+++ b/proto/AranaraCollectionSuite.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AranaraCollectionState.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message AranaraCollectionSuite {
+ map collection_id_state_map = 6;
+ uint32 collection_type = 12;
+}
diff --git a/proto/AreaPlayInfoNotify.proto b/proto/AreaPlayInfoNotify.proto
new file mode 100644
index 00000000..7ff040d5
--- /dev/null
+++ b/proto/AreaPlayInfoNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "AreaPlayType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 3323
+// EnetChannelId: 0
+// EnetIsReliable: true
+message AreaPlayInfoNotify {
+ uint32 detail_play_type = 14;
+ AreaPlayType area_play_type = 11;
+}
diff --git a/proto/AreaPlayType.proto b/proto/AreaPlayType.proto
new file mode 100644
index 00000000..8ecc4fcf
--- /dev/null
+++ b/proto/AreaPlayType.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 AreaPlayType {
+ AREA_PLAY_TYPE_NONE = 0;
+ AREA_PLAY_TYPE_CLIMATE = 1;
+ AREA_PLAY_TYPE_REGIONAL_PLAY = 2;
+}
diff --git a/proto/ArenaChallengeActivityDetailInfo.proto b/proto/ArenaChallengeActivityDetailInfo.proto
index 48474370..65484c59 100644
--- a/proto/ArenaChallengeActivityDetailInfo.proto
+++ b/proto/ArenaChallengeActivityDetailInfo.proto
@@ -22,7 +22,7 @@ import "ArenaChallengeMonsterLevel.proto";
option java_package = "emu.grasscutter.net.proto";
message ArenaChallengeActivityDetailInfo {
- bool Unk2800_GNKHCICOIMC = 14;
+ bool is_finish_any_level = 14;
map level_open_time_map = 3;
uint32 world_level = 15;
repeated ArenaChallengeMonsterLevel level_list = 9;
diff --git a/proto/Unk3000_DHEOMDCCMMC.proto b/proto/AssociateInferenceWordReq.proto
similarity index 88%
rename from proto/Unk3000_DHEOMDCCMMC.proto
rename to proto/AssociateInferenceWordReq.proto
index 5f6b6453..e48ab0a0 100644
--- a/proto/Unk3000_DHEOMDCCMMC.proto
+++ b/proto/AssociateInferenceWordReq.proto
@@ -23,8 +23,8 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_DHEOMDCCMMC {
- uint32 Unk3000_CCNCELKPPFN = 7;
- uint32 Unk3000_CIOLEGEHDAC = 11;
- uint32 Unk3000_OIIEJOKFHPP = 2;
+message AssociateInferenceWordReq {
+ uint32 base_word_id = 7;
+ uint32 page_id = 11;
+ uint32 associate_word_id = 2;
}
diff --git a/proto/Unk3000_KGDKKLOOIPG.proto b/proto/AssociateInferenceWordRsp.proto
similarity index 88%
rename from proto/Unk3000_KGDKKLOOIPG.proto
rename to proto/AssociateInferenceWordRsp.proto
index 0396cf2f..4cfca1b8 100644
--- a/proto/Unk3000_KGDKKLOOIPG.proto
+++ b/proto/AssociateInferenceWordRsp.proto
@@ -22,9 +22,9 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 457
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_KGDKKLOOIPG {
+message AssociateInferenceWordRsp {
int32 retcode = 15;
- uint32 Unk3000_CCNCELKPPFN = 14;
- uint32 Unk3000_OIIEJOKFHPP = 13;
- uint32 Unk3000_CIOLEGEHDAC = 1;
+ uint32 base_word_id = 14;
+ uint32 associate_word_id = 13;
+ uint32 page_id = 1;
}
diff --git a/proto/AttackResult.proto b/proto/AttackResult.proto
index c80da65c..b674f90c 100644
--- a/proto/AttackResult.proto
+++ b/proto/AttackResult.proto
@@ -26,7 +26,7 @@ option java_package = "emu.grasscutter.net.proto";
message AttackResult {
bool is_resist_text = 1858;
- uint32 Unk2700_GBANCFEPPIM = 1011;
+ uint32 create_count_sync_to_server = 1011;
uint32 amplify_reaction_type = 2005;
uint32 endure_break = 7;
uint32 element_type = 5;
diff --git a/proto/AttackResultCreateCount.proto b/proto/AttackResultCreateCount.proto
new file mode 100644
index 00000000..c3c07633
--- /dev/null
+++ b/proto/AttackResultCreateCount.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 AttackResultCreateCount {
+ repeated uint32 create_count_list = 10;
+ repeated uint32 create_count_no_cost_list = 7;
+}
diff --git a/proto/AuditState.proto b/proto/AuditState.proto
new file mode 100644
index 00000000..0a4f80bc
--- /dev/null
+++ b/proto/AuditState.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 AuditState {
+ AUDIT_STATE_NONE = 0;
+ AUDIT_STATE_WAITING = 1;
+ AUDIT_STATE_FAILED = 2;
+}
diff --git a/proto/AvatarDataNotify.proto b/proto/AvatarDataNotify.proto
index 9e5bb81e..bca3db32 100644
--- a/proto/AvatarDataNotify.proto
+++ b/proto/AvatarDataNotify.proto
@@ -29,7 +29,7 @@ message AvatarDataNotify {
repeated uint32 owned_costume_list = 11;
uint64 choose_avatar_guid = 8;
map avatar_team_map = 7;
- repeated uint32 Unk3000_NIGPICLBHMA = 9;
+ repeated uint32 backup_avatar_team_order_list = 9;
repeated uint64 temp_avatar_guid_list = 12;
repeated uint32 owned_flycloak_list = 1;
repeated AvatarInfo avatar_list = 6;
diff --git a/proto/AvatarExpeditionGetRewardRsp.proto b/proto/AvatarExpeditionGetRewardRsp.proto
index 5b2c233d..3766533f 100644
--- a/proto/AvatarExpeditionGetRewardRsp.proto
+++ b/proto/AvatarExpeditionGetRewardRsp.proto
@@ -26,7 +26,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
message AvatarExpeditionGetRewardRsp {
- repeated ItemParam Unk2700_HBKHOBPGCLH = 9;
+ repeated ItemParam extra_item_list = 9;
repeated ItemParam item_list = 8;
map expedition_info_map = 12;
int32 retcode = 2;
diff --git a/proto/Unk3000_DHOFMKPKFMF.proto b/proto/AvatarTeamAllDataNotify.proto
similarity index 92%
rename from proto/Unk3000_DHOFMKPKFMF.proto
rename to proto/AvatarTeamAllDataNotify.proto
index 03b5e1d8..f22453e9 100644
--- a/proto/Unk3000_DHOFMKPKFMF.proto
+++ b/proto/AvatarTeamAllDataNotify.proto
@@ -24,8 +24,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 1749
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_DHOFMKPKFMF {
+message AvatarTeamAllDataNotify {
repeated uint64 temp_avatar_guid_list = 6;
map avatar_team_map = 3;
- repeated uint32 Unk3000_NIGPICLBHMA = 1;
+ repeated uint32 backup_avatar_team_order_list = 1;
}
diff --git a/proto/Unk2700_OJLJMJLKNGJ_ClientReq.proto b/proto/BackPlayCustomDungeonOfficialReq.proto
similarity index 96%
rename from proto/Unk2700_OJLJMJLKNGJ_ClientReq.proto
rename to proto/BackPlayCustomDungeonOfficialReq.proto
index e3bca9e8..03c746a2 100644
--- a/proto/Unk2700_OJLJMJLKNGJ_ClientReq.proto
+++ b/proto/BackPlayCustomDungeonOfficialReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_OJLJMJLKNGJ_ClientReq {
+message BackPlayCustomDungeonOfficialReq {
uint32 room_id = 2;
}
diff --git a/proto/Unk2700_FPCJGEOBADP_ServerRsp.proto b/proto/BackPlayCustomDungeonOfficialRsp.proto
similarity index 96%
rename from proto/Unk2700_FPCJGEOBADP_ServerRsp.proto
rename to proto/BackPlayCustomDungeonOfficialRsp.proto
index d21749ec..205f0521 100644
--- a/proto/Unk2700_FPCJGEOBADP_ServerRsp.proto
+++ b/proto/BackPlayCustomDungeonOfficialRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 6204
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_FPCJGEOBADP_ServerRsp {
+message BackPlayCustomDungeonOfficialRsp {
int32 retcode = 12;
}
diff --git a/proto/Unk2800_KILFIICJLEE.proto b/proto/BackRebornGalleryReq.proto
similarity index 97%
rename from proto/Unk2800_KILFIICJLEE.proto
rename to proto/BackRebornGalleryReq.proto
index f3c5c559..665ca857 100644
--- a/proto/Unk2800_KILFIICJLEE.proto
+++ b/proto/BackRebornGalleryReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2800_KILFIICJLEE {
+message BackRebornGalleryReq {
uint32 gallery_id = 15;
}
diff --git a/proto/Unk2800_LIBCDGDJMDF.proto b/proto/BackRebornGalleryRsp.proto
similarity index 97%
rename from proto/Unk2800_LIBCDGDJMDF.proto
rename to proto/BackRebornGalleryRsp.proto
index 8edcf668..1d5e27dd 100644
--- a/proto/Unk2800_LIBCDGDJMDF.proto
+++ b/proto/BackRebornGalleryRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 5527
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_LIBCDGDJMDF {
+message BackRebornGalleryRsp {
uint32 gallery_id = 9;
int32 retcode = 5;
}
diff --git a/proto/Unk2700_CHLNIDHHGLE.proto b/proto/BalloonGallerySettleInfo.proto
similarity index 90%
rename from proto/Unk2700_CHLNIDHHGLE.proto
rename to proto/BalloonGallerySettleInfo.proto
index 81196d80..b776f164 100644
--- a/proto/Unk2700_CHLNIDHHGLE.proto
+++ b/proto/BalloonGallerySettleInfo.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk2700_MOFABPNGIKP.proto";
+import "GalleryStopReason.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_CHLNIDHHGLE {
+message BalloonGallerySettleInfo {
uint32 score = 8;
- Unk2700_MOFABPNGIKP reason = 14;
+ GalleryStopReason reason = 14;
uint32 hit_count = 10;
uint32 owner_uid = 6;
}
diff --git a/proto/BartenderActivityDetailInfo.proto b/proto/BartenderActivityDetailInfo.proto
index e6a50e6e..078737fc 100644
--- a/proto/BartenderActivityDetailInfo.proto
+++ b/proto/BartenderActivityDetailInfo.proto
@@ -17,16 +17,16 @@
syntax = "proto3";
-import "Unk2700_KJODHFMHMNC.proto";
-import "Unk2700_LBIDBGLGKCJ.proto";
+import "BartenderLevelInfo.proto";
+import "BartenderTaskInfo.proto";
option java_package = "emu.grasscutter.net.proto";
message BartenderActivityDetailInfo {
- repeated uint32 Unk2700_BMOAIJMHPGA = 3;
- bool Unk2700_JICAAEMPNBC = 13;
+ repeated uint32 unlock_item_list = 3;
+ bool is_develop_module_open = 13;
bool is_content_closed = 6;
- repeated Unk2700_LBIDBGLGKCJ Unk2700_MEGOPKBEHOH = 5;
- repeated uint32 Unk2700_AIKFMMLFIJI = 14;
- repeated Unk2700_KJODHFMHMNC Unk2700_DAGGAECBDEG = 2;
+ repeated BartenderLevelInfo unlock_level_list = 5;
+ repeated uint32 unlock_formula_list = 14;
+ repeated BartenderTaskInfo unlock_task_list = 2;
}
diff --git a/proto/Unk2700_IHPFBKANGMJ.proto b/proto/BartenderCancelLevelReq.proto
similarity index 96%
rename from proto/Unk2700_IHPFBKANGMJ.proto
rename to proto/BartenderCancelLevelReq.proto
index 562fbc02..e782dd72 100644
--- a/proto/Unk2700_IHPFBKANGMJ.proto
+++ b/proto/BartenderCancelLevelReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_IHPFBKANGMJ {
+message BartenderCancelLevelReq {
uint32 level_id = 13;
}
diff --git a/proto/Unk2700_OEDLCGKNGLH.proto b/proto/BartenderCancelLevelRsp.proto
similarity index 96%
rename from proto/Unk2700_OEDLCGKNGLH.proto
rename to proto/BartenderCancelLevelRsp.proto
index f16f44ef..a658fa28 100644
--- a/proto/Unk2700_OEDLCGKNGLH.proto
+++ b/proto/BartenderCancelLevelRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8686
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_OEDLCGKNGLH {
+message BartenderCancelLevelRsp {
uint32 level_id = 2;
int32 retcode = 14;
}
diff --git a/proto/Unk2700_DFOHGHKAIBO.proto b/proto/BartenderCancelOrderReq.proto
similarity index 96%
rename from proto/Unk2700_DFOHGHKAIBO.proto
rename to proto/BartenderCancelOrderReq.proto
index 00e22cb5..1205bf98 100644
--- a/proto/Unk2700_DFOHGHKAIBO.proto
+++ b/proto/BartenderCancelOrderReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_DFOHGHKAIBO {
+message BartenderCancelOrderReq {
uint32 quest_id = 3;
}
diff --git a/proto/Unk2700_EJIOFGEEIOM.proto b/proto/BartenderCancelOrderRsp.proto
similarity index 96%
rename from proto/Unk2700_EJIOFGEEIOM.proto
rename to proto/BartenderCancelOrderRsp.proto
index f00327ec..087fabc3 100644
--- a/proto/Unk2700_EJIOFGEEIOM.proto
+++ b/proto/BartenderCancelOrderRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8837
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_EJIOFGEEIOM {
+message BartenderCancelOrderRsp {
int32 retcode = 9;
uint32 quest_id = 3;
}
diff --git a/proto/Unk2700_IAAPADOAMIA.proto b/proto/BartenderCompleteOrderReq.proto
similarity index 86%
rename from proto/Unk2700_IAAPADOAMIA.proto
rename to proto/BartenderCompleteOrderReq.proto
index ec02d321..eeb78ba2 100644
--- a/proto/Unk2700_IAAPADOAMIA.proto
+++ b/proto/BartenderCompleteOrderReq.proto
@@ -25,12 +25,12 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_IAAPADOAMIA {
- uint32 Unk2700_HCKAMFPGMJN = 14;
- uint32 Unk2700_CHHJBPDPICI = 7;
+message BartenderCompleteOrderReq {
+ uint32 cup_type = 14;
+ uint32 qte_count = 7;
uint32 quest_id = 11;
repeated ItemParam item_list = 10;
- bool Unk2700_AGFNJHAMDBD = 9;
- repeated uint32 Unk2700_AJKDPJOKBED = 6;
- uint32 Unk2700_OEDDPDJEEPC = 3;
+ bool is_view_formula = 9;
+ repeated uint32 optional_order_list = 6;
+ uint32 retry_count = 3;
}
diff --git a/proto/Unk2700_OHDDPIFAPPD.proto b/proto/BartenderCompleteOrderRsp.proto
similarity index 91%
rename from proto/Unk2700_OHDDPIFAPPD.proto
rename to proto/BartenderCompleteOrderRsp.proto
index 9c719505..c834329c 100644
--- a/proto/Unk2700_OHDDPIFAPPD.proto
+++ b/proto/BartenderCompleteOrderRsp.proto
@@ -22,11 +22,11 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8125
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_OHDDPIFAPPD {
+message BartenderCompleteOrderRsp {
bool is_new = 10;
- uint32 Unk2700_GJOFNJGEDDE = 3;
+ uint32 finish_order_id = 3;
int32 retcode = 4;
- uint32 Unk2700_BPNCECAFPDK = 6;
+ uint32 formula_id = 6;
uint32 quest_id = 15;
repeated uint32 affix_list = 2;
}
diff --git a/proto/Unk2700_BCPHPHGOKGN.proto b/proto/BartenderFinishLevelReq.proto
similarity index 96%
rename from proto/Unk2700_BCPHPHGOKGN.proto
rename to proto/BartenderFinishLevelReq.proto
index 5229804b..c13c35e6 100644
--- a/proto/Unk2700_BCPHPHGOKGN.proto
+++ b/proto/BartenderFinishLevelReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_BCPHPHGOKGN {
+message BartenderFinishLevelReq {
uint32 level_id = 6;
}
diff --git a/proto/Unk2700_NJNMEFINDCF.proto b/proto/BartenderFinishLevelRsp.proto
similarity index 96%
rename from proto/Unk2700_NJNMEFINDCF.proto
rename to proto/BartenderFinishLevelRsp.proto
index 9cbd6468..fa78676b 100644
--- a/proto/Unk2700_NJNMEFINDCF.proto
+++ b/proto/BartenderFinishLevelRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8093
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_NJNMEFINDCF {
+message BartenderFinishLevelRsp {
int32 retcode = 6;
uint32 level_id = 1;
}
diff --git a/proto/Unk2700_MIBHNLEMICB.proto b/proto/BartenderGetFormulaReq.proto
similarity index 97%
rename from proto/Unk2700_MIBHNLEMICB.proto
rename to proto/BartenderGetFormulaReq.proto
index 09866c68..94cb2549 100644
--- a/proto/Unk2700_MIBHNLEMICB.proto
+++ b/proto/BartenderGetFormulaReq.proto
@@ -25,7 +25,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_MIBHNLEMICB {
+message BartenderGetFormulaReq {
repeated ItemParam item_list = 7;
uint32 quest_id = 4;
}
diff --git a/proto/Unk2700_KGNJIBIMAHI.proto b/proto/BartenderGetFormulaRsp.proto
similarity index 94%
rename from proto/Unk2700_KGNJIBIMAHI.proto
rename to proto/BartenderGetFormulaRsp.proto
index c9d4d4d8..d8ee9a8a 100644
--- a/proto/Unk2700_KGNJIBIMAHI.proto
+++ b/proto/BartenderGetFormulaRsp.proto
@@ -22,9 +22,9 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8842
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_KGNJIBIMAHI {
+message BartenderGetFormulaRsp {
bool is_new = 12;
int32 retcode = 6;
repeated uint32 affix_list = 8;
- uint32 Unk2700_BPNCECAFPDK = 11;
+ uint32 formula_id = 11;
}
diff --git a/proto/Unk2700_LBIDBGLGKCJ.proto b/proto/BartenderLevelInfo.proto
similarity index 94%
rename from proto/Unk2700_LBIDBGLGKCJ.proto
rename to proto/BartenderLevelInfo.proto
index e0f1207d..52f21150 100644
--- a/proto/Unk2700_LBIDBGLGKCJ.proto
+++ b/proto/BartenderLevelInfo.proto
@@ -19,8 +19,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_LBIDBGLGKCJ {
- bool Unk2700_MMNILGLDHHD = 7;
+message BartenderLevelInfo {
+ bool is_finish = 7;
uint32 max_score = 9;
uint32 id = 4;
}
diff --git a/proto/Unk2700_IJFEPCBOLDF.proto b/proto/BartenderLevelProgressNotify.proto
similarity index 94%
rename from proto/Unk2700_IJFEPCBOLDF.proto
rename to proto/BartenderLevelProgressNotify.proto
index e4831fa5..991f897d 100644
--- a/proto/Unk2700_IJFEPCBOLDF.proto
+++ b/proto/BartenderLevelProgressNotify.proto
@@ -23,9 +23,9 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_IJFEPCBOLDF {
+message BartenderLevelProgressNotify {
bool is_new_record = 9;
- bool Unk2700_MMNILGLDHHD = 3;
+ bool is_finish = 3;
uint32 level_id = 15;
uint32 score = 8;
}
diff --git a/proto/Unk2700_FEODEAEOOKE.proto b/proto/BartenderStartLevelReq.proto
similarity index 96%
rename from proto/Unk2700_FEODEAEOOKE.proto
rename to proto/BartenderStartLevelReq.proto
index 4b386f04..8fd121cb 100644
--- a/proto/Unk2700_FEODEAEOOKE.proto
+++ b/proto/BartenderStartLevelReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_FEODEAEOOKE {
+message BartenderStartLevelReq {
uint32 level_id = 5;
}
diff --git a/proto/Unk2700_IEFAGBHIODK.proto b/proto/BartenderStartLevelRsp.proto
similarity index 93%
rename from proto/Unk2700_IEFAGBHIODK.proto
rename to proto/BartenderStartLevelRsp.proto
index fe99a6b4..c5889de2 100644
--- a/proto/Unk2700_IEFAGBHIODK.proto
+++ b/proto/BartenderStartLevelRsp.proto
@@ -22,9 +22,9 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8402
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_IEFAGBHIODK {
+message BartenderStartLevelRsp {
int32 retcode = 5;
- repeated uint32 Unk2700_CPOJCHEOPLB = 13;
+ repeated uint32 order_list = 13;
uint32 level_id = 10;
uint32 time = 8;
}
diff --git a/proto/Unk2700_KJODHFMHMNC.proto b/proto/BartenderTaskInfo.proto
similarity index 93%
rename from proto/Unk2700_KJODHFMHMNC.proto
rename to proto/BartenderTaskInfo.proto
index d6449e27..14609951 100644
--- a/proto/Unk2700_KJODHFMHMNC.proto
+++ b/proto/BartenderTaskInfo.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_KJODHFMHMNC {
+message BartenderTaskInfo {
uint32 id = 1;
- bool Unk2700_MMNILGLDHHD = 14;
+ bool is_finish = 14;
}
diff --git a/proto/BattlePassSchedule.proto b/proto/BattlePassSchedule.proto
index e0237a67..43afea18 100644
--- a/proto/BattlePassSchedule.proto
+++ b/proto/BattlePassSchedule.proto
@@ -33,7 +33,7 @@ message BattlePassSchedule {
BattlePassUnlockStatus unlock_status = 7;
repeated BattlePassRewardTag reward_taken_list = 11;
uint32 cur_cycle_points = 10;
- uint32 Unk2700_ODHAAHEPFAG = 12;
+ uint32 paid_platform_flags = 12;
BattlePassProduct product_info = 13;
bool is_extra_paid_reward_taken = 6;
bool is_viewed = 3;
diff --git a/proto/BeginCameraSceneLookNotify.proto b/proto/BeginCameraSceneLookNotify.proto
index 742e4302..6197f87c 100644
--- a/proto/BeginCameraSceneLookNotify.proto
+++ b/proto/BeginCameraSceneLookNotify.proto
@@ -25,19 +25,19 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
message BeginCameraSceneLookNotify {
- uint32 Unk3000_MNLLCJMPMNH = 1154;
- float Unk2700_DHAHEKOGHBJ = 7;
+ uint32 blend_type = 1154;
+ float custom_radius = 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_abs_follow_pos = 1375;
+ KeepRotType keep_rot_type = 6;
bool is_change_play_mode = 9;
- uint32 Unk3000_IEFIKMHCKDH = 1103;
+ uint32 disable_protect = 1103;
float screen_y = 15;
bool is_set_follow_pos = 13;
bool is_force = 12;
- float Unk3000_OGCLMFFADBD = 1758;
+ float blend_duration = 1758;
uint32 entity_id = 1327;
float screen_x = 3;
bool is_force_walk = 10;
@@ -46,8 +46,8 @@ message BeginCameraSceneLookNotify {
bool is_allow_input = 2;
float duration = 14;
- enum Unk2700_LNCHDDOOECD {
- Unk2700_LNCHDDOOECD_Unk2700_ACOENBMDFBP = 0;
- Unk2700_LNCHDDOOECD_Unk2700_FKBLCDFLCOM = 1;
+ enum KeepRotType {
+ KEEP_ROT_TYPE_X = 0;
+ KEEP_ROT_TYPE_XY = 1;
}
}
diff --git a/proto/Unk3100_IHGFOKNPCKJ.proto b/proto/BeginCameraSceneLookWithTemplateNotify.proto
similarity index 82%
rename from proto/Unk3100_IHGFOKNPCKJ.proto
rename to proto/BeginCameraSceneLookWithTemplateNotify.proto
index accb3b10..b8565ea0 100644
--- a/proto/Unk3100_IHGFOKNPCKJ.proto
+++ b/proto/BeginCameraSceneLookWithTemplateNotify.proto
@@ -24,17 +24,17 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 3160
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_IHGFOKNPCKJ {
+message BeginCameraSceneLookWithTemplateNotify {
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;
+ FollowType follow_type = 9;
- enum Unk3100_DDADIDBLJGO {
- Unk3100_DDADIDBLJGO_Unk3100_CHMICKLPAKA = 0;
- Unk3100_DDADIDBLJGO_Unk3100_GEJFGKILBLO = 1;
- Unk3100_DDADIDBLJGO_Unk3100_HAFBECHLCIE = 2;
+ enum FollowType {
+ FOLLOW_TYPE_INIT_FOLLOW_POS = 0;
+ FOLLOW_TYPE_SET_FOLLOW_POS = 1;
+ FOLLOW_TYPE_SET_ABS_FOLLOW_POS = 2;
}
}
diff --git a/proto/BuildingInfo.proto b/proto/BuildingInfo.proto
index 3fc0b650..3d09e6ee 100644
--- a/proto/BuildingInfo.proto
+++ b/proto/BuildingInfo.proto
@@ -25,6 +25,6 @@ message BuildingInfo {
uint32 cost = 3;
uint32 refund = 5;
uint32 owner_uid = 6;
- uint32 Unk2700_MDJOPHOHFDB = 7;
- uint32 Unk2700_COFBIGLBNGP = 8;
+ uint32 current_num = 7;
+ uint32 max_num = 8;
}
diff --git a/proto/Unk3100_MDGBODAFNDA.proto b/proto/CataLogFinishedGlobalWatcherAllDataNotify.proto
similarity index 84%
rename from proto/Unk3100_MDGBODAFNDA.proto
rename to proto/CataLogFinishedGlobalWatcherAllDataNotify.proto
index 37a888ef..c7adcd44 100644
--- a/proto/Unk3100_MDGBODAFNDA.proto
+++ b/proto/CataLogFinishedGlobalWatcherAllDataNotify.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk3100_MCIBDBBEKEK.proto";
+import "CataLogGlobalWatcherFinishedData.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 6370
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_MDGBODAFNDA {
- repeated Unk3100_MCIBDBBEKEK Unk3100_DAOIJMIAAKP = 13;
+message CataLogFinishedGlobalWatcherAllDataNotify {
+ repeated CataLogGlobalWatcherFinishedData finished_global_watcher_data_list = 13;
}
diff --git a/proto/CataLogGlobalWatcherFinishedData.proto b/proto/CataLogGlobalWatcherFinishedData.proto
new file mode 100644
index 00000000..4a1661f3
--- /dev/null
+++ b/proto/CataLogGlobalWatcherFinishedData.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 CataLogGlobalWatcherFinishedData {
+ repeated uint32 finished_global_watcher_list = 8;
+ uint32 catalog_type = 13;
+}
diff --git a/proto/Unk3100_FGDECIHNIJG.proto b/proto/CataLogNewFinishedGlobalWatcherNotify.proto
similarity index 84%
rename from proto/Unk3100_FGDECIHNIJG.proto
rename to proto/CataLogNewFinishedGlobalWatcherNotify.proto
index b101163f..cc513445 100644
--- a/proto/Unk3100_FGDECIHNIJG.proto
+++ b/proto/CataLogNewFinishedGlobalWatcherNotify.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk3100_MCIBDBBEKEK.proto";
+import "CataLogGlobalWatcherFinishedData.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 6395
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_FGDECIHNIJG {
- repeated Unk3100_MCIBDBBEKEK Unk3100_IMPDKHPHALG = 2;
+message CataLogNewFinishedGlobalWatcherNotify {
+ repeated CataLogGlobalWatcherFinishedData new_finished_global_watcher_data_list = 2;
}
diff --git a/proto/Unk2700_FDEGJOCDDGH.proto b/proto/ChallengeBrief.proto
similarity index 97%
rename from proto/Unk2700_FDEGJOCDDGH.proto
rename to proto/ChallengeBrief.proto
index 3f599e1c..b7643b9a 100644
--- a/proto/Unk2700_FDEGJOCDDGH.proto
+++ b/proto/ChallengeBrief.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_FDEGJOCDDGH {
+message ChallengeBrief {
uint32 cur_progress = 9;
uint32 challenge_index = 10;
bool is_success = 4;
diff --git a/proto/ChallengeFinishType.proto b/proto/ChallengeFinishType.proto
new file mode 100644
index 00000000..10cc62b3
--- /dev/null
+++ b/proto/ChallengeFinishType.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 ChallengeFinishType {
+ CHALLENGE_FINISH_TYPE_NONE = 0;
+ CHALLENGE_FINISH_TYPE_FAIL = 1;
+ CHALLENGE_FINISH_TYPE_SUCC = 2;
+ CHALLENGE_FINISH_TYPE_PAUSE = 3;
+}
diff --git a/proto/Unk2700_FMNAGFKECPL_ClientReq.proto b/proto/ChangeCustomDungeonRoomReq.proto
similarity index 96%
rename from proto/Unk2700_FMNAGFKECPL_ClientReq.proto
rename to proto/ChangeCustomDungeonRoomReq.proto
index a4ae23d4..27f6969d 100644
--- a/proto/Unk2700_FMNAGFKECPL_ClientReq.proto
+++ b/proto/ChangeCustomDungeonRoomReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_FMNAGFKECPL_ClientReq {
+message ChangeCustomDungeonRoomReq {
uint32 room_id = 4;
}
diff --git a/proto/Unk2700_AIGKGLHBMCP_ServerRsp.proto b/proto/ChangeCustomDungeonRoomRsp.proto
similarity index 96%
rename from proto/Unk2700_AIGKGLHBMCP_ServerRsp.proto
rename to proto/ChangeCustomDungeonRoomRsp.proto
index 4e837fc0..5a701392 100644
--- a/proto/Unk2700_AIGKGLHBMCP_ServerRsp.proto
+++ b/proto/ChangeCustomDungeonRoomRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 6244
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_AIGKGLHBMCP_ServerRsp {
+message ChangeCustomDungeonRoomRsp {
int32 retcode = 1;
uint32 room_id = 13;
}
diff --git a/proto/ChangeHpReason.proto b/proto/ChangeHpReason.proto
index 3a1121fb..27a14859 100644
--- a/proto/ChangeHpReason.proto
+++ b/proto/ChangeHpReason.proto
@@ -38,8 +38,8 @@ enum ChangeHpReason {
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_ATTACK_BY_ENERGY = 18;
+ CHANGE_HP_REASON_ATTACK_BY_RECYCLE = 19;
CHANGE_HP_REASON_BY_LUA = 51;
CHANGE_HP_REASON_ADD_ABILITY = 101;
CHANGE_HP_REASON_ADD_ITEM = 102;
diff --git a/proto/Unk3000_ODGMCFAFADH.proto b/proto/ChangeWidgetBackgroundActiveStateReq.proto
similarity index 95%
rename from proto/Unk3000_ODGMCFAFADH.proto
rename to proto/ChangeWidgetBackgroundActiveStateReq.proto
index ee0248ed..23ec567c 100644
--- a/proto/Unk3000_ODGMCFAFADH.proto
+++ b/proto/ChangeWidgetBackgroundActiveStateReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_ODGMCFAFADH {
+message ChangeWidgetBackgroundActiveStateReq {
bool is_active = 15;
uint32 material_id = 3;
}
diff --git a/proto/Unk3000_IBMFJMGHCNC.proto b/proto/ChangeWidgetBackgroundActiveStateRsp.proto
similarity index 95%
rename from proto/Unk3000_IBMFJMGHCNC.proto
rename to proto/ChangeWidgetBackgroundActiveStateRsp.proto
index e83f93e7..65dfec26 100644
--- a/proto/Unk3000_IBMFJMGHCNC.proto
+++ b/proto/ChangeWidgetBackgroundActiveStateRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 6060
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_IBMFJMGHCNC {
+message ChangeWidgetBackgroundActiveStateRsp {
int32 retcode = 8;
uint32 material_id = 6;
}
diff --git a/proto/CharAmusementAvatarInfo.proto b/proto/CharAmusementAvatarInfo.proto
new file mode 100644
index 00000000..2ab19388
--- /dev/null
+++ b/proto/CharAmusementAvatarInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CharAmusementAvatarInfo {
+ uint32 uid = 11;
+ uint32 punish_time = 7;
+ repeated uint32 avatar_id_list = 10;
+}
diff --git a/proto/CharAmusementDetailInfo.proto b/proto/CharAmusementDetailInfo.proto
new file mode 100644
index 00000000..884d0bcb
--- /dev/null
+++ b/proto/CharAmusementDetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CharAmusementStageData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CharAmusementDetailInfo {
+ repeated CharAmusementStageData stage_data_list = 1;
+}
diff --git a/proto/CharAmusementInfo.proto b/proto/CharAmusementInfo.proto
new file mode 100644
index 00000000..95ba5b1d
--- /dev/null
+++ b/proto/CharAmusementInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CharAmusementAvatarInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CharAmusementInfo {
+ uint32 total_cost_time = 11;
+ uint32 stage_id = 2;
+ uint32 level_id = 10;
+ uint32 preview_stage_index = 4;
+ repeated CharAmusementAvatarInfo avatar_info_list = 5;
+}
diff --git a/proto/CharAmusementSettleNotify.proto b/proto/CharAmusementSettleNotify.proto
new file mode 100644
index 00000000..bf71886f
--- /dev/null
+++ b/proto/CharAmusementSettleNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23133
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CharAmusementSettleNotify {
+ bool is_succ = 3;
+ uint32 finish_time = 14;
+ bool is_new_record = 2;
+}
diff --git a/proto/CharAmusementStageData.proto b/proto/CharAmusementStageData.proto
new file mode 100644
index 00000000..49b129af
--- /dev/null
+++ b/proto/CharAmusementStageData.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CharAmusementStageData {
+ uint32 finish_time = 15;
+ bool is_open = 12;
+ uint32 stage_id = 6;
+}
diff --git a/proto/CheckAddItemExceedLimitNotify.proto b/proto/CheckAddItemExceedLimitNotify.proto
index 48f8a176..78e3bc92 100644
--- a/proto/CheckAddItemExceedLimitNotify.proto
+++ b/proto/CheckAddItemExceedLimitNotify.proto
@@ -33,6 +33,6 @@ message CheckAddItemExceedLimitNotify {
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;
+ ITEM_EXCEED_LIMIT_MSG_TYPE_DIALOG_NONBLOCK = 3;
}
}
diff --git a/proto/Unk3000_LAIAGAPKPLB.proto b/proto/CheckGroupReplacedReq.proto
similarity index 93%
rename from proto/Unk3000_LAIAGAPKPLB.proto
rename to proto/CheckGroupReplacedReq.proto
index 5ccb94b3..afccb05c 100644
--- a/proto/Unk3000_LAIAGAPKPLB.proto
+++ b/proto/CheckGroupReplacedReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_LAIAGAPKPLB {
- repeated uint32 Unk3000_KJJKONKEINI = 7;
+message CheckGroupReplacedReq {
+ repeated uint32 group_id_list = 7;
}
diff --git a/proto/Unk3000_LJIMEHHNHJA.proto b/proto/CheckGroupReplacedRsp.proto
similarity index 92%
rename from proto/Unk3000_LJIMEHHNHJA.proto
rename to proto/CheckGroupReplacedRsp.proto
index 7b0a4917..6442d373 100644
--- a/proto/Unk3000_LJIMEHHNHJA.proto
+++ b/proto/CheckGroupReplacedRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 3152
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_LJIMEHHNHJA {
+message CheckGroupReplacedRsp {
int32 retcode = 4;
- repeated uint32 Unk3000_CKLBBGHIIFC = 6;
+ repeated uint32 replaced_group_id_list = 6;
}
diff --git a/proto/Unk2700_CIOMEDJDPBP_ClientReq.proto b/proto/CheckUgcStateReq.proto
similarity index 96%
rename from proto/Unk2700_CIOMEDJDPBP_ClientReq.proto
rename to proto/CheckUgcStateReq.proto
index dd4fc145..2c720c29 100644
--- a/proto/Unk2700_CIOMEDJDPBP_ClientReq.proto
+++ b/proto/CheckUgcStateReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_CIOMEDJDPBP_ClientReq {}
+message CheckUgcStateReq {}
diff --git a/proto/Unk2700_NELNFCMDMHE_ServerRsp.proto b/proto/CheckUgcStateRsp.proto
similarity index 96%
rename from proto/Unk2700_NELNFCMDMHE_ServerRsp.proto
rename to proto/CheckUgcStateRsp.proto
index 9ea7e4c0..dc622743 100644
--- a/proto/Unk2700_NELNFCMDMHE_ServerRsp.proto
+++ b/proto/CheckUgcStateRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 6314
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_NELNFCMDMHE_ServerRsp {
+message CheckUgcStateRsp {
int32 retcode = 7;
}
diff --git a/proto/CheckUgcUpdateReq.proto b/proto/CheckUgcUpdateReq.proto
new file mode 100644
index 00000000..1d39baa9
--- /dev/null
+++ b/proto/CheckUgcUpdateReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "UgcType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6320
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message CheckUgcUpdateReq {
+ UgcType ugc_type = 13;
+}
diff --git a/proto/CheckUgcUpdateRsp.proto b/proto/CheckUgcUpdateRsp.proto
new file mode 100644
index 00000000..76a9b7ce
--- /dev/null
+++ b/proto/CheckUgcUpdateRsp.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 "UgcType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6345
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CheckUgcUpdateRsp {
+ repeated uint64 update_ugc_guid_list = 15;
+ int32 retcode = 10;
+ UgcType ugc_type = 12;
+}
diff --git a/proto/ClientAbilityChangeNotify.proto b/proto/ClientAbilityChangeNotify.proto
index c6c048ff..70bb803c 100644
--- a/proto/ClientAbilityChangeNotify.proto
+++ b/proto/ClientAbilityChangeNotify.proto
@@ -26,7 +26,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetIsReliable: true
// IsAllowClient: true
message ClientAbilityChangeNotify {
- bool Unk2200_FNAFDMAPLHP = 9;
+ bool is_init_hash = 9;
uint32 entity_id = 2;
repeated AbilityInvokeEntry invokes = 3;
}
diff --git a/proto/ClientGadgetInfo.proto b/proto/ClientGadgetInfo.proto
index 3edd342c..e43ec8a9 100644
--- a/proto/ClientGadgetInfo.proto
+++ b/proto/ClientGadgetInfo.proto
@@ -26,6 +26,6 @@ message ClientGadgetInfo {
uint32 owner_entity_id = 4;
uint32 target_entity_id = 5;
bool async_load = 6;
- bool Unk2700_JBOPENAGGAF = 7;
- repeated uint32 Unk2700_BELOIHEIEAN = 8;
+ bool is_peer_id_from_player = 7;
+ repeated uint32 target_entity_id_list = 8;
}
diff --git a/proto/ClientInputType.proto b/proto/ClientInputType.proto
new file mode 100644
index 00000000..487cb400
--- /dev/null
+++ b/proto/ClientInputType.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 ClientInputType {
+ CLIENT_INPUT_TYPE_NONE = 0;
+ CLIENT_INPUT_TYPE_KEYBORD_MOUSE = 1;
+ CLIENT_INPUT_TYPE_GAMEPAD = 2;
+ CLIENT_INPUT_TYPE_TOUCH_PANEL = 3;
+}
diff --git a/proto/Unk2700_KEMOFNEAOOO_ClientRsp.proto b/proto/ClientRemoveCombatEndModifierNotify.proto
similarity index 91%
rename from proto/Unk2700_KEMOFNEAOOO_ClientRsp.proto
rename to proto/ClientRemoveCombatEndModifierNotify.proto
index 468f9e29..67b9bbf5 100644
--- a/proto/Unk2700_KEMOFNEAOOO_ClientRsp.proto
+++ b/proto/ClientRemoveCombatEndModifierNotify.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_KEMOFNEAOOO_ClientRsp {
- repeated uint32 Unk2700_IBJECDLKPGM = 7;
+message ClientRemoveCombatEndModifierNotify {
+ repeated uint32 combat_end_type_list = 7;
}
diff --git a/proto/CodexDataFullNotify.proto b/proto/CodexDataFullNotify.proto
index c04abe02..f9fe0ad9 100644
--- a/proto/CodexDataFullNotify.proto
+++ b/proto/CodexDataFullNotify.proto
@@ -25,8 +25,8 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
message CodexDataFullNotify {
- uint32 Unk2700_BPKOLHOOGFO = 4;
- repeated uint32 Unk2700_DFJJHFHHIHF = 2;
- uint32 Unk2700_HJDNBBPMOAP = 3;
+ uint32 last_read_pushtips_codex_id = 4;
+ repeated uint32 recent_viewed_pushtips_list = 2;
+ uint32 last_read_pushtips_type_id = 3;
repeated CodexTypeData type_data_list = 6;
}
diff --git a/proto/CombatTypeArgument.proto b/proto/CombatTypeArgument.proto
index f872e6f1..853af804 100644
--- a/proto/CombatTypeArgument.proto
+++ b/proto/CombatTypeArgument.proto
@@ -36,7 +36,7 @@ enum CombatTypeArgument {
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;
+ COMBAT_TYPE_ARGUMENT_BEING_HEALED_NTF = 16;
+ COMBAT_TYPE_ARGUMENT_SKILL_ANCHOR_POSITION_NTF = 17;
+ COMBAT_TYPE_ARGUMENT_GRAPPLING_HOOK_MOVE = 18;
}
diff --git a/proto/CompoundBoostTakeStatusType.proto b/proto/CompoundBoostTakeStatusType.proto
new file mode 100644
index 00000000..9ba55499
--- /dev/null
+++ b/proto/CompoundBoostTakeStatusType.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 CompoundBoostTakeStatusType {
+ COMPOUND_BOOST_TAKE_STATUS_TYPE_NONE = 0;
+ COMPOUND_BOOST_TAKE_STATUS_TYPE_BOOST_ONLY = 1;
+ COMPOUND_BOOST_TAKE_STATUS_TYPE_BOOST_AND_TAKE = 2;
+ COMPOUND_BOOST_TAKE_STATUS_TYPE_BAG_FULL = 3;
+}
diff --git a/proto/Unk2700_LBPFDCBHCBL.proto b/proto/ContentAuditAuxiliaryField.proto
similarity index 96%
rename from proto/Unk2700_LBPFDCBHCBL.proto
rename to proto/ContentAuditAuxiliaryField.proto
index c7462f39..87247285 100644
--- a/proto/Unk2700_LBPFDCBHCBL.proto
+++ b/proto/ContentAuditAuxiliaryField.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_LBPFDCBHCBL {
+message ContentAuditAuxiliaryField {
string name = 1;
string value = 2;
}
diff --git a/proto/Unk2700_CMKDNIANBNE.proto b/proto/ContentAuditData.proto
similarity index 93%
rename from proto/Unk2700_CMKDNIANBNE.proto
rename to proto/ContentAuditData.proto
index 2f4cf266..edb95081 100644
--- a/proto/Unk2700_CMKDNIANBNE.proto
+++ b/proto/ContentAuditData.proto
@@ -19,8 +19,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_CMKDNIANBNE {
+message ContentAuditData {
string type = 1;
string content = 2;
- uint32 Unk2700_POPBOKAKBBO = 3;
+ uint32 auto_pass_time = 3;
}
diff --git a/proto/Unk2700_EDNGHJGKEKC.proto b/proto/ContentAuditField.proto
similarity index 88%
rename from proto/Unk2700_EDNGHJGKEKC.proto
rename to proto/ContentAuditField.proto
index e1a33fa9..1a00e21c 100644
--- a/proto/Unk2700_EDNGHJGKEKC.proto
+++ b/proto/ContentAuditField.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "Unk2700_CMKDNIANBNE.proto";
+import "ContentAuditData.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_EDNGHJGKEKC {
- repeated Unk2700_CMKDNIANBNE Unk2700_HDGDLPCFABI = 1;
+message ContentAuditField {
+ repeated ContentAuditData segment_list = 1;
string name = 2;
}
diff --git a/proto/Unk2700_DPPCDPBBABA.proto b/proto/ContentAuditInfo.proto
similarity index 84%
rename from proto/Unk2700_DPPCDPBBABA.proto
rename to proto/ContentAuditInfo.proto
index 11b97d6d..9ec735e3 100644
--- a/proto/Unk2700_DPPCDPBBABA.proto
+++ b/proto/ContentAuditInfo.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_PIAFGFGHGHM.proto";
+import "AuditState.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_DPPCDPBBABA {
+message ContentAuditInfo {
bool is_open = 1;
string content = 2;
- uint32 Unk2700_DIFBKPIAEBB = 3;
- Unk2700_PIAFGFGHGHM Unk2700_HMGCGJCDDEG = 4;
- uint32 Unk2700_JEKIGDDNCAB = 5;
+ uint32 submit_count = 3;
+ AuditState audit_state = 4;
+ uint32 submit_limit = 5;
}
diff --git a/proto/CrystalLinkActivityDetailInfo.proto b/proto/CrystalLinkActivityDetailInfo.proto
index 99cc729a..4c14b5e7 100644
--- a/proto/CrystalLinkActivityDetailInfo.proto
+++ b/proto/CrystalLinkActivityDetailInfo.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "Unk2700_IOLMLCCBAKP.proto";
+import "CrystalLinkLevelInfo.proto";
option java_package = "emu.grasscutter.net.proto";
message CrystalLinkActivityDetailInfo {
- repeated Unk2700_IOLMLCCBAKP Unk2700_FIKHCFMEOAJ = 3;
+ repeated CrystalLinkLevelInfo level_info_list = 3;
uint32 difficulty_id = 7;
}
diff --git a/proto/Unk2700_JPGAAHJBLKB.proto b/proto/CrystalLinkAvatarInfo.proto
similarity index 96%
rename from proto/Unk2700_JPGAAHJBLKB.proto
rename to proto/CrystalLinkAvatarInfo.proto
index 1cc97891..240e792f 100644
--- a/proto/Unk2700_JPGAAHJBLKB.proto
+++ b/proto/CrystalLinkAvatarInfo.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_JPGAAHJBLKB {
+message CrystalLinkAvatarInfo {
uint64 avatar_id = 3;
bool is_trial = 13;
}
diff --git a/proto/CrystalLinkBuffInfo.proto b/proto/CrystalLinkBuffInfo.proto
new file mode 100644
index 00000000..5afe1570
--- /dev/null
+++ b/proto/CrystalLinkBuffInfo.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 CrystalLinkBuffInfo {
+ uint32 effect_buff_id = 1;
+ uint32 cond_buff_id = 10;
+}
diff --git a/proto/Unk2700_ADIGEBEIJBA.proto b/proto/CrystalLinkDungeonAvatarInfo.proto
similarity index 96%
rename from proto/Unk2700_ADIGEBEIJBA.proto
rename to proto/CrystalLinkDungeonAvatarInfo.proto
index 24b5621f..2be2e131 100644
--- a/proto/Unk2700_ADIGEBEIJBA.proto
+++ b/proto/CrystalLinkDungeonAvatarInfo.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_ADIGEBEIJBA {
+message CrystalLinkDungeonAvatarInfo {
bool is_trial = 8;
uint64 avatar_guid = 11;
}
diff --git a/proto/Unk2700_DCBEFDDECOJ.proto b/proto/CrystalLinkDungeonInfoNotify.proto
similarity index 77%
rename from proto/Unk2700_DCBEFDDECOJ.proto
rename to proto/CrystalLinkDungeonInfoNotify.proto
index 9814093b..a8b9892b 100644
--- a/proto/Unk2700_DCBEFDDECOJ.proto
+++ b/proto/CrystalLinkDungeonInfoNotify.proto
@@ -17,19 +17,19 @@
syntax = "proto3";
-import "Unk2700_ADIGEBEIJBA.proto";
-import "Unk2700_PKAPCOBGIJL.proto";
+import "CrystalLinkBuffInfo.proto";
+import "CrystalLinkDungeonAvatarInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8858
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_DCBEFDDECOJ {
- repeated Unk2700_PKAPCOBGIJL Unk2700_INIBKFPMCFO = 8;
+message CrystalLinkDungeonInfoNotify {
+ repeated CrystalLinkBuffInfo buff_info_list = 8;
uint32 level_id = 1;
- bool Unk2700_CBPNPEBMPOH = 15;
+ bool is_upper_part = 15;
uint32 difficulty_id = 11;
- repeated Unk2700_ADIGEBEIJBA Unk2700_EONPKLLJHPH = 3;
- uint32 Unk2700_FIGHJIFINKI = 7;
+ repeated CrystalLinkDungeonAvatarInfo dungeon_avatar_info_list = 3;
+ uint32 init_gallery_progress = 7;
}
diff --git a/proto/Unk2700_IHOOCHJACEL.proto b/proto/CrystalLinkEnterDungeonReq.proto
similarity index 89%
rename from proto/Unk2700_IHOOCHJACEL.proto
rename to proto/CrystalLinkEnterDungeonReq.proto
index 9848d5d6..ae7a047a 100644
--- a/proto/Unk2700_IHOOCHJACEL.proto
+++ b/proto/CrystalLinkEnterDungeonReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2700_BGKMAAINPCO.proto";
+import "CrystalLinkTeamInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,8 +25,8 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_IHOOCHJACEL {
+message CrystalLinkEnterDungeonReq {
uint32 level_id = 7;
- repeated Unk2700_BGKMAAINPCO Unk2700_GMAEHKMDIGG = 13;
+ repeated CrystalLinkTeamInfo team_info_list = 13;
uint32 difficulty_id = 10;
}
diff --git a/proto/Unk2700_AIBHKIENDPF.proto b/proto/CrystalLinkEnterDungeonRsp.proto
similarity index 89%
rename from proto/Unk2700_AIBHKIENDPF.proto
rename to proto/CrystalLinkEnterDungeonRsp.proto
index fbc493a9..571e85d5 100644
--- a/proto/Unk2700_AIBHKIENDPF.proto
+++ b/proto/CrystalLinkEnterDungeonRsp.proto
@@ -17,16 +17,16 @@
syntax = "proto3";
-import "Unk2700_BGKMAAINPCO.proto";
+import "CrystalLinkTeamInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8147
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_AIBHKIENDPF {
+message CrystalLinkEnterDungeonRsp {
uint32 level_id = 1;
uint32 difficulty_id = 14;
int32 retcode = 6;
- repeated Unk2700_BGKMAAINPCO Unk2700_GMAEHKMDIGG = 8;
+ repeated CrystalLinkTeamInfo team_info_list = 8;
}
diff --git a/proto/Unk2700_IOLMLCCBAKP.proto b/proto/CrystalLinkLevelInfo.proto
similarity index 89%
rename from proto/Unk2700_IOLMLCCBAKP.proto
rename to proto/CrystalLinkLevelInfo.proto
index 4a3dc226..1b160607 100644
--- a/proto/Unk2700_IOLMLCCBAKP.proto
+++ b/proto/CrystalLinkLevelInfo.proto
@@ -17,12 +17,12 @@
syntax = "proto3";
-import "Unk2700_BGKMAAINPCO.proto";
+import "CrystalLinkTeamInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_IOLMLCCBAKP {
- repeated Unk2700_BGKMAAINPCO Unk2700_GMAEHKMDIGG = 10;
+message CrystalLinkLevelInfo {
+ repeated CrystalLinkTeamInfo team_info_list = 10;
bool is_open = 9;
uint32 level_id = 14;
uint32 best_score = 5;
diff --git a/proto/Unk2700_ALFEKGABMAA.proto b/proto/CrystalLinkRestartDungeonReq.proto
similarity index 96%
rename from proto/Unk2700_ALFEKGABMAA.proto
rename to proto/CrystalLinkRestartDungeonReq.proto
index 85d80343..e12bdef3 100644
--- a/proto/Unk2700_ALFEKGABMAA.proto
+++ b/proto/CrystalLinkRestartDungeonReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_ALFEKGABMAA {}
+message CrystalLinkRestartDungeonReq {}
diff --git a/proto/Unk2700_FNJHJKELICK.proto b/proto/CrystalLinkRestartDungeonRsp.proto
similarity index 96%
rename from proto/Unk2700_FNJHJKELICK.proto
rename to proto/CrystalLinkRestartDungeonRsp.proto
index 960dd719..0d158b75 100644
--- a/proto/Unk2700_FNJHJKELICK.proto
+++ b/proto/CrystalLinkRestartDungeonRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8119
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_FNJHJKELICK {
+message CrystalLinkRestartDungeonRsp {
int32 retcode = 1;
}
diff --git a/proto/CrystalLinkTeamInfo.proto b/proto/CrystalLinkTeamInfo.proto
new file mode 100644
index 00000000..bb131595
--- /dev/null
+++ b/proto/CrystalLinkTeamInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CrystalLinkAvatarInfo.proto";
+import "CrystalLinkBuffInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CrystalLinkTeamInfo {
+ repeated CrystalLinkBuffInfo buff_info_list = 2;
+ repeated CrystalLinkAvatarInfo avatar_info_list = 11;
+}
diff --git a/proto/Unk2700_NCJLMACGOCD_ClientNotify.proto b/proto/CustomDungeon.proto
similarity index 82%
rename from proto/Unk2700_NCJLMACGOCD_ClientNotify.proto
rename to proto/CustomDungeon.proto
index 5f1bdbde..9700389f 100644
--- a/proto/Unk2700_NCJLMACGOCD_ClientNotify.proto
+++ b/proto/CustomDungeon.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
+import "CustomDungeonRoom.proto";
+import "CustomDungeonSetting.proto";
+
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;
+message CustomDungeon {
+ CustomDungeonSetting setting = 1;
+ repeated CustomDungeonRoom room_list = 15;
uint32 dungeon_id = 3;
+ uint64 dungeon_guid = 10;
}
diff --git a/proto/CustomDungeonAbstract.proto b/proto/CustomDungeonAbstract.proto
new file mode 100644
index 00000000..6145d805
--- /dev/null
+++ b/proto/CustomDungeonAbstract.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CustomDungeonAbstract {
+ map brick_statistics_map = 12;
+ uint32 first_publish_time = 3;
+ uint32 total_coin_num = 15;
+ uint32 last_publish_time = 6;
+ uint32 finish_room_id = 7;
+}
diff --git a/proto/CustomDungeonAbstractMuipData.proto b/proto/CustomDungeonAbstractMuipData.proto
new file mode 100644
index 00000000..040c82b9
--- /dev/null
+++ b/proto/CustomDungeonAbstractMuipData.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CustomDungeonAbstractMuipData {
+ uint32 first_publish_time = 1;
+ uint32 last_publish_time = 2;
+ map brick_statistics_map = 3;
+}
diff --git a/proto/Unk2700_OGKIDNPMMKG.proto b/proto/CustomDungeonBanInfo.proto
similarity index 86%
rename from proto/Unk2700_OGKIDNPMMKG.proto
rename to proto/CustomDungeonBanInfo.proto
index 6ef42c44..e3eb781d 100644
--- a/proto/Unk2700_OGKIDNPMMKG.proto
+++ b/proto/CustomDungeonBanInfo.proto
@@ -17,12 +17,12 @@
syntax = "proto3";
-import "Unk2700_HGMCNJOPDAA.proto";
+import "CustomDungeonBanType.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_OGKIDNPMMKG {
- Unk2700_HGMCNJOPDAA Unk2700_MINEHKAGOGA = 11;
+message CustomDungeonBanInfo {
+ CustomDungeonBanType ban_type = 11;
uint32 expire_time = 6;
- uint64 Unk2700_ONOOJBEABOE = 5;
+ uint64 dungeon_guid = 5;
}
diff --git a/proto/CustomDungeonBanType.proto b/proto/CustomDungeonBanType.proto
new file mode 100644
index 00000000..518b66f9
--- /dev/null
+++ b/proto/CustomDungeonBanType.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 CustomDungeonBanType {
+ CUSTOM_DUNGEON_BAN_TYPE_NONE = 0;
+ CUSTOM_DUNGEON_BAN_TYPE_LAYOUT = 1;
+}
diff --git a/proto/CustomDungeonBatchBriefMuipData.proto b/proto/CustomDungeonBatchBriefMuipData.proto
new file mode 100644
index 00000000..5f2056d0
--- /dev/null
+++ b/proto/CustomDungeonBatchBriefMuipData.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "CustomDungeonBriefMuipData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CustomDungeonBatchBriefMuipData {
+ repeated CustomDungeonBriefMuipData brief_list = 1;
+}
diff --git a/proto/CustomDungeonBattleRecordMuipData.proto b/proto/CustomDungeonBattleRecordMuipData.proto
new file mode 100644
index 00000000..2a900a6c
--- /dev/null
+++ b/proto/CustomDungeonBattleRecordMuipData.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 CustomDungeonBattleRecordMuipData {
+ uint64 dungeon_guid = 1;
+ uint32 min_cost_time = 2;
+}
diff --git a/proto/Unk2700_NIMPHALPEPO_ClientNotify.proto b/proto/CustomDungeonBattleRecordNotify.proto
similarity index 90%
rename from proto/Unk2700_NIMPHALPEPO_ClientNotify.proto
rename to proto/CustomDungeonBattleRecordNotify.proto
index 58b2ba87..93267f39 100644
--- a/proto/Unk2700_NIMPHALPEPO_ClientNotify.proto
+++ b/proto/CustomDungeonBattleRecordNotify.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_NIMPHALPEPO_ClientNotify {
- uint32 Unk2700_MKIMFKIGBCL = 13;
- uint64 Unk2700_ONOOJBEABOE = 12;
+message CustomDungeonBattleRecordNotify {
+ uint32 min_cost_time = 13;
+ uint64 dungeon_guid = 12;
}
diff --git a/proto/Unk2700_IGJLOMCPLLE.proto b/proto/CustomDungeonBlock.proto
similarity index 97%
rename from proto/Unk2700_IGJLOMCPLLE.proto
rename to proto/CustomDungeonBlock.proto
index 2d6132c7..f969ca42 100644
--- a/proto/Unk2700_IGJLOMCPLLE.proto
+++ b/proto/CustomDungeonBlock.proto
@@ -21,7 +21,7 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_IGJLOMCPLLE {
+message CustomDungeonBlock {
uint32 block_id = 8;
Vector rot = 12;
uint32 guid = 4;
diff --git a/proto/Unk2700_MIBBHAEMAGI.proto b/proto/CustomDungeonBrief.proto
similarity index 67%
rename from proto/Unk2700_MIBBHAEMAGI.proto
rename to proto/CustomDungeonBrief.proto
index 02dc1e7e..77cb2514 100644
--- a/proto/Unk2700_MIBBHAEMAGI.proto
+++ b/proto/CustomDungeonBrief.proto
@@ -17,22 +17,22 @@
syntax = "proto3";
-import "Unk2700_BMBAIACNLDF.proto";
-import "Unk2700_ELMEOJFCOFH.proto";
-import "Unk2700_OHBMICGFIIK.proto";
-import "Unk2700_PHGGAEDHLBN.proto";
+import "CustomDungeonAbstract.proto";
+import "CustomDungeonSetting.proto";
+import "CustomDungeonSocial.proto";
+import "CustomDungeonState.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;
+message CustomDungeonBrief {
+ CustomDungeonSetting setting = 2;
+ bool is_psn_platform = 13;
+ CustomDungeonSocial social = 7;
+ uint64 dungeon_guid = 10;
+ uint32 last_save_time = 14;
repeated uint32 tag_list = 15;
uint32 dungeon_id = 5;
- uint32 Unk2700_DPPILIMGOKH = 12;
- Unk2700_BMBAIACNLDF state = 1;
- Unk2700_ELMEOJFCOFH Unk2700_PCFIKJEDEGN = 4;
+ uint32 battle_min_cost_time = 12;
+ CustomDungeonState state = 1;
+ CustomDungeonAbstract abstract = 4;
}
diff --git a/proto/Unk2700_MPELMDDJFHO.proto b/proto/CustomDungeonBriefMuipData.proto
similarity index 73%
rename from proto/Unk2700_MPELMDDJFHO.proto
rename to proto/CustomDungeonBriefMuipData.proto
index 3f5253b6..5b6ae9a8 100644
--- a/proto/Unk2700_MPELMDDJFHO.proto
+++ b/proto/CustomDungeonBriefMuipData.proto
@@ -17,18 +17,18 @@
syntax = "proto3";
-import "Unk2700_GBHAPPCDCIL.proto";
-import "Unk2700_IOONEPPHCJP.proto";
-import "Unk2700_PDGLEKKMCBD.proto";
+import "CustomDungeonAbstractMuipData.proto";
+import "CustomDungeonSettingMuipData.proto";
+import "CustomDungeonSocialMuipData.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_MPELMDDJFHO {
- uint64 Unk2700_ONOOJBEABOE = 1;
+message CustomDungeonBriefMuipData {
+ uint64 dungeon_guid = 1;
uint32 dungeon_id = 2;
- string Unk2700_MONNIDCNDFI = 3;
+ string creator_nickname = 3;
repeated uint32 tag_list = 4;
- Unk2700_GBHAPPCDCIL Unk2700_JGFDODPBGFL = 5;
- Unk2700_IOONEPPHCJP Unk2700_PCFIKJEDEGN = 6;
- Unk2700_PDGLEKKMCBD Unk2700_IKGOMKLAJLH = 7;
+ CustomDungeonSettingMuipData setting = 5;
+ CustomDungeonAbstractMuipData abstract = 6;
+ CustomDungeonSocialMuipData social = 7;
}
diff --git a/proto/CustomDungeonFinishType.proto b/proto/CustomDungeonFinishType.proto
new file mode 100644
index 00000000..f0312895
--- /dev/null
+++ b/proto/CustomDungeonFinishType.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 CustomDungeonFinishType {
+ CUSTOM_DUNGEON_FINISH_TYPE_PLAY_NORMAL = 0;
+ CUSTOM_DUNGEON_FINISH_TYPE_PLAY_TRY = 1;
+ CUSTOM_DUNGEON_FINISH_TYPE_EDIT_TRY = 2;
+ CUSTOM_DUNGEON_FINISH_TYPE_SELF_PLAY_NORMAL = 3;
+}
diff --git a/proto/Unk2700_MMDCAFMGACC_ServerNotify.proto b/proto/CustomDungeonOfficialNotify.proto
similarity index 79%
rename from proto/Unk2700_MMDCAFMGACC_ServerNotify.proto
rename to proto/CustomDungeonOfficialNotify.proto
index 0d925163..7b9a7cf7 100644
--- a/proto/Unk2700_MMDCAFMGACC_ServerNotify.proto
+++ b/proto/CustomDungeonOfficialNotify.proto
@@ -17,16 +17,16 @@
syntax = "proto3";
-import "Unk2700_ADGLMHECKKJ.proto";
-import "Unk2700_KBBDJNLFAKD.proto";
+import "EnterCustomDungeonType.proto";
+import "TryCustomDungeonType.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;
+message CustomDungeonOfficialNotify {
+ TryCustomDungeonType try_type = 9;
+ repeated uint32 official_black_coin_list = 14;
+ EnterCustomDungeonType enter_type = 15;
}
diff --git a/proto/CustomDungeonRecoverNotify.proto b/proto/CustomDungeonRecoverNotify.proto
new file mode 100644
index 00000000..7f579ab4
--- /dev/null
+++ b/proto/CustomDungeonRecoverNotify.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 "CustomDungeon.proto";
+import "EnterCustomDungeonType.proto";
+import "TryCustomDungeonType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6217
+// EnetChannelId: 0
+// EnetIsReliable: true
+message CustomDungeonRecoverNotify {
+ EnterCustomDungeonType enter_type = 14;
+ TryCustomDungeonType try_type = 3;
+ CustomDungeon custom_dungeon = 10;
+ repeated uint32 official_black_coin_list = 12;
+}
diff --git a/proto/CustomDungeonResultInfo.proto b/proto/CustomDungeonResultInfo.proto
index 5de795dc..546df8fd 100644
--- a/proto/CustomDungeonResultInfo.proto
+++ b/proto/CustomDungeonResultInfo.proto
@@ -17,18 +17,18 @@
syntax = "proto3";
-import "Unk2700_FDEGJOCDDGH.proto";
-import "Unk2700_OCOKILBJIPJ.proto";
+import "ChallengeBrief.proto";
+import "CustomDungeonFinishType.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;
+ bool is_liked = 12;
+ uint32 got_coin_num = 9;
+ repeated ChallengeBrief child_challenge_list = 6;
+ uint64 dungeon_guid = 3;
+ CustomDungeonFinishType finish_type = 7;
uint32 time_cost = 11;
- bool Unk2700_IBDCFAMBGOK = 2;
- bool Unk2700_HBFLKFOCKBF = 14;
+ bool is_arrive_finish = 2;
+ bool is_stored = 14;
}
diff --git a/proto/Unk2700_KLPINMKOEPE.proto b/proto/CustomDungeonRoom.proto
similarity index 88%
rename from proto/Unk2700_KLPINMKOEPE.proto
rename to proto/CustomDungeonRoom.proto
index acbcd7ee..7e3d69dd 100644
--- a/proto/Unk2700_KLPINMKOEPE.proto
+++ b/proto/CustomDungeonRoom.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "Unk2700_IGJLOMCPLLE.proto";
+import "CustomDungeonBlock.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_KLPINMKOEPE {
+message CustomDungeonRoom {
uint32 room_id = 15;
- repeated Unk2700_IGJLOMCPLLE Unk2700_ICMKKOMLHIH = 4;
+ repeated CustomDungeonBlock block_list = 4;
}
diff --git a/proto/DropSubfieldType.proto b/proto/CustomDungeonSetting.proto
similarity index 80%
rename from proto/DropSubfieldType.proto
rename to proto/CustomDungeonSetting.proto
index a44bec7a..b3a00d7c 100644
--- a/proto/DropSubfieldType.proto
+++ b/proto/CustomDungeonSetting.proto
@@ -19,10 +19,12 @@ 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;
+message CustomDungeonSetting {
+ repeated uint32 open_room_list = 1;
+ bool is_arrive_finish = 14;
+ uint32 life_num = 6;
+ uint32 start_room_id = 4;
+ bool is_forbid_skill = 3;
+ uint32 coin_limit = 10;
+ uint32 time_limit = 9;
}
diff --git a/proto/CustomDungeonSettingMuipData.proto b/proto/CustomDungeonSettingMuipData.proto
new file mode 100644
index 00000000..faea366f
--- /dev/null
+++ b/proto/CustomDungeonSettingMuipData.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CustomDungeonSettingMuipData {
+ bool is_arrive_finish = 1;
+ uint32 coin_limit = 2;
+ uint32 time_limit = 3;
+ bool is_forbid_skill = 4;
+ uint32 life_num = 5;
+}
diff --git a/proto/CustomDungeonSocial.proto b/proto/CustomDungeonSocial.proto
new file mode 100644
index 00000000..34244ffe
--- /dev/null
+++ b/proto/CustomDungeonSocial.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CustomDungeonSocial {
+ uint32 win_num = 4;
+ uint32 like_num = 12;
+ uint32 play_num = 7;
+ uint32 store_num = 2;
+}
diff --git a/proto/CustomDungeonSocialMuipData.proto b/proto/CustomDungeonSocialMuipData.proto
new file mode 100644
index 00000000..f3372dee
--- /dev/null
+++ b/proto/CustomDungeonSocialMuipData.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message CustomDungeonSocialMuipData {
+ uint32 play_num = 1;
+ uint32 like_num = 2;
+ uint32 store_num = 3;
+ uint32 win_num = 4;
+}
diff --git a/proto/CustomDungeonState.proto b/proto/CustomDungeonState.proto
new file mode 100644
index 00000000..43393d37
--- /dev/null
+++ b/proto/CustomDungeonState.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 CustomDungeonState {
+ CUSTOM_DUNGEON_STATE_EDIT = 0;
+ CUSTOM_DUNGEON_STATE_SELF_PASS = 1;
+ CUSTOM_DUNGEON_STATE_PUBLISHED = 2;
+}
diff --git a/proto/Unk2700_OFDBHGHAJBD_ServerNotify.proto b/proto/CustomDungeonUpdateNotify.proto
similarity index 88%
rename from proto/Unk2700_OFDBHGHAJBD_ServerNotify.proto
rename to proto/CustomDungeonUpdateNotify.proto
index 2e7d20fb..c11dc614 100644
--- a/proto/Unk2700_OFDBHGHAJBD_ServerNotify.proto
+++ b/proto/CustomDungeonUpdateNotify.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk2700_MIBBHAEMAGI.proto";
+import "CustomDungeonBrief.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 6223
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_OFDBHGHAJBD_ServerNotify {
- Unk2700_MIBBHAEMAGI Unk2700_JIFAAPCJOHK = 12;
+message CustomDungeonUpdateNotify {
+ CustomDungeonBrief dungeon_brief = 12;
}
diff --git a/proto/Unk2700_CPNDLPDOPGN.proto b/proto/CustomDungeonVerify.proto
similarity index 94%
rename from proto/Unk2700_CPNDLPDOPGN.proto
rename to proto/CustomDungeonVerify.proto
index 2a9f6821..c1ae16ab 100644
--- a/proto/Unk2700_CPNDLPDOPGN.proto
+++ b/proto/CustomDungeonVerify.proto
@@ -19,8 +19,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_CPNDLPDOPGN {
- uint64 Unk2700_ONOOJBEABOE = 3;
+message CustomDungeonVerify {
+ uint64 dungeon_guid = 3;
uint32 uid = 15;
uint32 timestamp = 4;
string region = 11;
diff --git a/proto/CutSceneBeginNotify.proto b/proto/CutSceneBeginNotify.proto
index b5c1970e..2557af06 100644
--- a/proto/CutSceneBeginNotify.proto
+++ b/proto/CutSceneBeginNotify.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk3100_LFIMJOCPILC.proto";
+import "CutSceneExtraParam.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -27,5 +27,5 @@ option java_package = "emu.grasscutter.net.proto";
message CutSceneBeginNotify {
bool is_wait_others = 9;
uint32 cutscene_id = 14;
- repeated Unk3100_LFIMJOCPILC extra_param_list = 3;
+ repeated CutSceneExtraParam extra_param_list = 3;
}
diff --git a/proto/CutSceneExtraParam.proto b/proto/CutSceneExtraParam.proto
new file mode 100644
index 00000000..a52d91cd
--- /dev/null
+++ b/proto/CutSceneExtraParam.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 CutSceneExtraParam {
+ repeated double detail_param_list = 1;
+}
diff --git a/proto/Unk3000_BOBIJEDOFKG.proto b/proto/DeathZoneInfo.proto
similarity index 97%
rename from proto/Unk3000_BOBIJEDOFKG.proto
rename to proto/DeathZoneInfo.proto
index f0ed9266..9793cd7c 100644
--- a/proto/Unk3000_BOBIJEDOFKG.proto
+++ b/proto/DeathZoneInfo.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_BOBIJEDOFKG {
+message DeathZoneInfo {
bool is_open = 9;
uint32 id = 14;
}
diff --git a/proto/Unk3000_NNPCGEAHNHM.proto b/proto/DeathZoneInfoNotify.proto
similarity index 89%
rename from proto/Unk3000_NNPCGEAHNHM.proto
rename to proto/DeathZoneInfoNotify.proto
index 49c5aa96..1ab35932 100644
--- a/proto/Unk3000_NNPCGEAHNHM.proto
+++ b/proto/DeathZoneInfoNotify.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk3000_BOBIJEDOFKG.proto";
+import "DeathZoneInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 6268
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_NNPCGEAHNHM {
- repeated Unk3000_BOBIJEDOFKG Unk3000_ALGOLKMONEF = 8;
+message DeathZoneInfoNotify {
+ repeated DeathZoneInfo death_zone_info_list = 8;
}
diff --git a/proto/Unk3000_PCGBDJJOIHH.proto b/proto/DeathZoneObserveNotify.proto
similarity index 97%
rename from proto/Unk3000_PCGBDJJOIHH.proto
rename to proto/DeathZoneObserveNotify.proto
index 9f565374..cd513f05 100644
--- a/proto/Unk3000_PCGBDJJOIHH.proto
+++ b/proto/DeathZoneObserveNotify.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_PCGBDJJOIHH {
+message DeathZoneObserveNotify {
uint32 target_entity_id = 14;
uint32 source_entity_id = 12;
}
diff --git a/proto/Unk3000_DFIIBIGPHGE.proto b/proto/DelBackupAvatarTeamReq.proto
similarity index 93%
rename from proto/Unk3000_DFIIBIGPHGE.proto
rename to proto/DelBackupAvatarTeamReq.proto
index b2b736c7..ba0bc76c 100644
--- a/proto/Unk3000_DFIIBIGPHGE.proto
+++ b/proto/DelBackupAvatarTeamReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_DFIIBIGPHGE {
- uint32 Unk3000_GCAJHPHIEAA = 4;
+message DelBackupAvatarTeamReq {
+ uint32 backup_avatar_team_id = 4;
}
diff --git a/proto/Unk3000_KIDDGDPKBEN.proto b/proto/DelBackupAvatarTeamRsp.proto
similarity index 93%
rename from proto/Unk3000_KIDDGDPKBEN.proto
rename to proto/DelBackupAvatarTeamRsp.proto
index 4abbe9b5..9742322f 100644
--- a/proto/Unk3000_KIDDGDPKBEN.proto
+++ b/proto/DelBackupAvatarTeamRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 1729
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_KIDDGDPKBEN {
- uint32 Unk3000_GCAJHPHIEAA = 15;
+message DelBackupAvatarTeamRsp {
+ uint32 backup_avatar_team_id = 15;
int32 retcode = 4;
}
diff --git a/proto/Unk3000_LLBHCMKJJHB.proto b/proto/DeshretObeliskChestInfo.proto
similarity index 96%
rename from proto/Unk3000_LLBHCMKJJHB.proto
rename to proto/DeshretObeliskChestInfo.proto
index 7b90d486..41f3b3c8 100644
--- a/proto/Unk3000_LLBHCMKJJHB.proto
+++ b/proto/DeshretObeliskChestInfo.proto
@@ -21,7 +21,7 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_LLBHCMKJJHB {
+message DeshretObeliskChestInfo {
uint32 scene_id = 5;
Vector pos = 9;
uint32 group_id = 7;
diff --git a/proto/Unk3000_GMLAHHCDKOI.proto b/proto/DeshretObeliskChestInfoNotify.proto
similarity index 88%
rename from proto/Unk3000_GMLAHHCDKOI.proto
rename to proto/DeshretObeliskChestInfoNotify.proto
index 5f18347e..1bd85c06 100644
--- a/proto/Unk3000_GMLAHHCDKOI.proto
+++ b/proto/DeshretObeliskChestInfoNotify.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk3000_LLBHCMKJJHB.proto";
+import "DeshretObeliskChestInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 841
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_GMLAHHCDKOI {
- repeated Unk3000_LLBHCMKJJHB Unk3000_LHBOCEKGGIF = 14;
+message DeshretObeliskChestInfoNotify {
+ repeated DeshretObeliskChestInfo chest_info_list = 14;
}
diff --git a/proto/DoGachaRsp.proto b/proto/DoGachaRsp.proto
index 6c743771..788eafa5 100644
--- a/proto/DoGachaRsp.proto
+++ b/proto/DoGachaRsp.proto
@@ -25,7 +25,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
message DoGachaRsp {
- uint32 Unk3100_JKILPCKLNPI = 155;
+ uint32 cur_schedule_daily_gacha_times = 155;
uint32 cost_item_num = 10;
uint32 wish_max_progress = 9;
uint32 wish_item_id = 8;
@@ -35,12 +35,12 @@ message DoGachaRsp {
repeated GachaItem gacha_item_list = 15;
uint32 ten_cost_item_id = 7;
uint32 gacha_times = 4;
- bool Unk2700_LEEPELHDING = 1435;
- bool Unk3100_IDBLFJDHHPI = 1868;
+ bool is_under_minors_restrict = 1435;
+ bool is_under_general_restrict = 1868;
uint32 gacha_type = 12;
uint32 gacha_times_limit = 1;
uint32 cost_item_id = 14;
- uint32 Unk2700_OJKKHDLEDCI = 1240;
+ uint32 daily_gacha_times = 1240;
uint32 left_gacha_times = 6;
uint32 new_gacha_random = 11;
uint32 gacha_schedule_id = 5;
diff --git a/proto/DungeonCandidateTeamInviteRsp.proto b/proto/DungeonCandidateTeamInviteRsp.proto
index 2b91bc9f..4cb2b829 100644
--- a/proto/DungeonCandidateTeamInviteRsp.proto
+++ b/proto/DungeonCandidateTeamInviteRsp.proto
@@ -24,5 +24,5 @@ option java_package = "emu.grasscutter.net.proto";
// EnetIsReliable: true
message DungeonCandidateTeamInviteRsp {
int32 retcode = 12;
- repeated uint32 Unk2700_OJEGACKKJAE = 7;
+ repeated uint32 invalid_player_uids = 7;
}
diff --git a/proto/DungeonChallengeFinishNotify.proto b/proto/DungeonChallengeFinishNotify.proto
index d38da7c7..56e1a62b 100644
--- a/proto/DungeonChallengeFinishNotify.proto
+++ b/proto/DungeonChallengeFinishNotify.proto
@@ -17,12 +17,12 @@
syntax = "proto3";
+import "ChallengeFinishType.proto";
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";
@@ -31,7 +31,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetIsReliable: true
message DungeonChallengeFinishNotify {
map strengthen_point_data_map = 13;
- Unk2700_FHOKHHBGPEG Unk2700_ONCDLPDHFAB = 9;
+ ChallengeFinishType finish_type = 9;
bool is_new_record = 10;
uint32 challenge_record_type = 7;
uint32 time_cost = 4;
@@ -39,7 +39,7 @@ message DungeonChallengeFinishNotify {
bool is_success = 3;
uint32 challenge_index = 5;
oneof detail {
- ChannelerSlabLoopDungeonResultInfo channeller_slab_loop_dungeon_result_info = 1521;
+ ChannelerSlabLoopDungeonResultInfo channeler_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/Unk2800_JKLFAJKDLDG.proto b/proto/DungeonEnterPosInfo.proto
similarity index 97%
rename from proto/Unk2800_JKLFAJKDLDG.proto
rename to proto/DungeonEnterPosInfo.proto
index 7f198187..8e4985db 100644
--- a/proto/Unk2800_JKLFAJKDLDG.proto
+++ b/proto/DungeonEnterPosInfo.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2800_JKLFAJKDLDG {
+message DungeonEnterPosInfo {
uint32 quest_id = 13;
uint32 point_id = 6;
}
diff --git a/proto/DungeonEntryInfoReq.proto b/proto/DungeonEntryInfoReq.proto
index 702d20ab..63b8cd0b 100644
--- a/proto/DungeonEntryInfoReq.proto
+++ b/proto/DungeonEntryInfoReq.proto
@@ -28,5 +28,5 @@ option java_package = "emu.grasscutter.net.proto";
message DungeonEntryInfoReq {
uint32 point_id = 2;
uint32 scene_id = 9;
- repeated Uint32Pair Unk2800_GGAMJDFELPH = 4;
+ repeated Uint32Pair scene_point_id_list = 4;
}
diff --git a/proto/DungeonEntryInfoRsp.proto b/proto/DungeonEntryInfoRsp.proto
index 4d0e099f..bb378473 100644
--- a/proto/DungeonEntryInfoRsp.proto
+++ b/proto/DungeonEntryInfoRsp.proto
@@ -18,7 +18,7 @@
syntax = "proto3";
import "DungeonEntryInfo.proto";
-import "Unk2800_MHCFAGCKGIB.proto";
+import "DungeonEntryPointInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -28,7 +28,7 @@ option java_package = "emu.grasscutter.net.proto";
message DungeonEntryInfoRsp {
repeated DungeonEntryInfo dungeon_entry_list = 12;
uint32 point_id = 15;
- repeated Unk2800_MHCFAGCKGIB Unk2800_JJFLDCLMEHD = 4;
+ repeated DungeonEntryPointInfo dungeon_entry_point_list = 4;
uint32 recommend_dungeon_id = 14;
int32 retcode = 11;
}
diff --git a/proto/Unk2800_MHCFAGCKGIB.proto b/proto/DungeonEntryPointInfo.proto
similarity index 97%
rename from proto/Unk2800_MHCFAGCKGIB.proto
rename to proto/DungeonEntryPointInfo.proto
index 7eba55e9..e364abe9 100644
--- a/proto/Unk2800_MHCFAGCKGIB.proto
+++ b/proto/DungeonEntryPointInfo.proto
@@ -21,7 +21,7 @@ import "DungeonEntryInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2800_MHCFAGCKGIB {
+message DungeonEntryPointInfo {
uint32 scene_id = 12;
uint32 point_id = 6;
repeated DungeonEntryInfo dungeon_entry_list = 1;
diff --git a/proto/DungeonReviseLevelNotify.proto b/proto/DungeonReviseLevelNotify.proto
index 19c1cbce..c6830413 100644
--- a/proto/DungeonReviseLevelNotify.proto
+++ b/proto/DungeonReviseLevelNotify.proto
@@ -19,11 +19,12 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-// CmdId: 968
+// CmdId: 933
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message DungeonReviseLevelNotify {
- uint32 revise_level = 7;
- uint32 dungeon_id = 14;
+ uint32 scene_level = 5;
+ uint32 revise_level = 10;
+ uint32 dungeon_id = 3;
}
diff --git a/proto/DungeonSettleNotify.proto b/proto/DungeonSettleNotify.proto
index 13de95c5..110e9968 100644
--- a/proto/DungeonSettleNotify.proto
+++ b/proto/DungeonSettleNotify.proto
@@ -21,6 +21,7 @@ import "ChannelerSlabLoopDungeonResultInfo.proto";
import "CrystalLinkSettleInfo.proto";
import "DungeonSettleExhibitionInfo.proto";
import "EffigyChallengeDungeonResultInfo.proto";
+import "EffigyChallengeV2SettleInfo.proto";
import "InstableSpraySettleInfo.proto";
import "ParamList.proto";
import "RoguelikeDungeonSettleInfo.proto";
@@ -40,21 +41,22 @@ message DungeonSettleNotify {
uint32 dungeon_id = 13;
map strengthen_point_data_map = 14;
repeated DungeonSettleExhibitionInfo exhibition_info_list = 8;
- uint32 Unk3100_PIFIBCAMAIG = 12;
+ uint32 create_player_uid = 12;
repeated uint32 fail_cond_list = 11;
- uint32 Unk2700_OMCCFBBDJMI = 1;
+ uint32 use_time = 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;
+ ChannelerSlabLoopDungeonResultInfo channeler_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;
+ EffigyChallengeV2SettleInfo effigy_challenge_v2_settle_info = 1802;
}
}
diff --git a/proto/StakePlayGalleryInfo.proto b/proto/DynamicLayerNodes.proto
similarity index 89%
rename from proto/StakePlayGalleryInfo.proto
rename to proto/DynamicLayerNodes.proto
index 6119aa68..e3726641 100644
--- a/proto/StakePlayGalleryInfo.proto
+++ b/proto/DynamicLayerNodes.proto
@@ -17,10 +17,11 @@
syntax = "proto3";
-import "Unk2700_BEGHDPPNMFM.proto";
+import "DynamicSVONode.proto";
option java_package = "emu.grasscutter.net.proto";
-message StakePlayGalleryInfo {
- repeated Unk2700_BEGHDPPNMFM record_list = 13;
+message DynamicLayerNodes {
+ int32 level = 10;
+ repeated DynamicSVONode nodes = 6;
}
diff --git a/proto/DynamicNodes.proto b/proto/DynamicNodes.proto
new file mode 100644
index 00000000..770185a0
--- /dev/null
+++ b/proto/DynamicNodes.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "DynamicLayerNodes.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message DynamicNodes {
+ repeated DynamicLayerNodes nodes = 3;
+}
diff --git a/proto/Unk3000_GDKMIBFADKD.proto b/proto/DynamicSVONode.proto
similarity index 94%
rename from proto/Unk3000_GDKMIBFADKD.proto
rename to proto/DynamicSVONode.proto
index 33701303..aeccdfa3 100644
--- a/proto/Unk3000_GDKMIBFADKD.proto
+++ b/proto/DynamicSVONode.proto
@@ -21,8 +21,8 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_GDKMIBFADKD {
+message DynamicSVONode {
int64 index = 8;
int32 area = 5;
- Vector Unk3000_AOEGLPPFIFD = 1;
+ Vector refer_pos = 1;
}
diff --git a/proto/EchoShellDetailInfo.proto b/proto/EchoShellDetailInfo.proto
index b4ba84fa..9c5dd2b1 100644
--- a/proto/EchoShellDetailInfo.proto
+++ b/proto/EchoShellDetailInfo.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk2800_CEAECGGBOKL.proto";
+import "SummerTimeDungeonInfo.proto";
option java_package = "emu.grasscutter.net.proto";
message EchoShellDetailInfo {
- repeated Unk2800_CEAECGGBOKL Unk2800_KEMCFBCAMMM = 8;
+ repeated SummerTimeDungeonInfo summer_time_dungeon_list = 8;
repeated uint32 shell_list = 13;
- repeated uint32 Unk2800_BFONDMJGNKL = 4;
+ repeated uint32 pass_dungeon_list = 4;
repeated uint32 taken_reward_list = 2;
}
diff --git a/proto/EffigyChallengeV2ChooseSkillReq.proto b/proto/EffigyChallengeV2ChooseSkillReq.proto
new file mode 100644
index 00000000..3b87e798
--- /dev/null
+++ b/proto/EffigyChallengeV2ChooseSkillReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21269
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EffigyChallengeV2ChooseSkillReq {
+ uint32 level_id = 6;
+ uint32 challenge_mode_skill_no = 7;
+}
diff --git a/proto/EffigyChallengeV2ChooseSkillRsp.proto b/proto/EffigyChallengeV2ChooseSkillRsp.proto
new file mode 100644
index 00000000..37434bc3
--- /dev/null
+++ b/proto/EffigyChallengeV2ChooseSkillRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 22448
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EffigyChallengeV2ChooseSkillRsp {
+ uint32 level_id = 15;
+ int32 retcode = 9;
+ uint32 challenge_mode_skill_no = 3;
+}
diff --git a/proto/EffigyChallengeV2DetailInfo.proto b/proto/EffigyChallengeV2DetailInfo.proto
new file mode 100644
index 00000000..68011153
--- /dev/null
+++ b/proto/EffigyChallengeV2DetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "EffigyChallengeV2LevelData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EffigyChallengeV2DetailInfo {
+ repeated EffigyChallengeV2LevelData level_data_list = 3;
+}
diff --git a/proto/EffigyChallengeV2DungeonInfoNotify.proto b/proto/EffigyChallengeV2DungeonInfoNotify.proto
new file mode 100644
index 00000000..fa01a58c
--- /dev/null
+++ b/proto/EffigyChallengeV2DungeonInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 22835
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EffigyChallengeV2DungeonInfoNotify {
+ uint32 challenge_mode_difficulty = 2;
+ uint32 skill_no = 4;
+ uint32 level_id = 13;
+}
diff --git a/proto/EffigyChallengeV2EnterDungeonReq.proto b/proto/EffigyChallengeV2EnterDungeonReq.proto
new file mode 100644
index 00000000..d637a6f1
--- /dev/null
+++ b/proto/EffigyChallengeV2EnterDungeonReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23489
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EffigyChallengeV2EnterDungeonReq {
+ uint32 challenge_mode_difficulty = 7;
+ uint32 level_id = 12;
+ uint32 challenge_mode_skill_no = 11;
+}
diff --git a/proto/EffigyChallengeV2EnterDungeonRsp.proto b/proto/EffigyChallengeV2EnterDungeonRsp.proto
new file mode 100644
index 00000000..ecb118b1
--- /dev/null
+++ b/proto/EffigyChallengeV2EnterDungeonRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 24917
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EffigyChallengeV2EnterDungeonRsp {
+ uint32 challenge_mode_skill_no = 11;
+ int32 retcode = 10;
+ uint32 challenge_mode_difficulty = 14;
+ uint32 level_id = 13;
+}
diff --git a/proto/EffigyChallengeV2LevelData.proto b/proto/EffigyChallengeV2LevelData.proto
new file mode 100644
index 00000000..f3613508
--- /dev/null
+++ b/proto/EffigyChallengeV2LevelData.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EffigyChallengeV2LevelData {
+ uint32 challenge_mode_difficulty_pass = 1;
+ uint32 level_id = 5;
+ uint32 challenge_mode_last_choose_skill_no = 10;
+ uint32 best_cost_time = 12;
+ bool is_level_open = 7;
+ uint32 challenge_mode_difficulty_open = 13;
+}
diff --git a/proto/EffigyChallengeV2RestartDungeonReq.proto b/proto/EffigyChallengeV2RestartDungeonReq.proto
new file mode 100644
index 00000000..fe73a8df
--- /dev/null
+++ b/proto/EffigyChallengeV2RestartDungeonReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 24522
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EffigyChallengeV2RestartDungeonReq {}
diff --git a/proto/EffigyChallengeV2RestartDungeonRsp.proto b/proto/EffigyChallengeV2RestartDungeonRsp.proto
new file mode 100644
index 00000000..feed1f88
--- /dev/null
+++ b/proto/EffigyChallengeV2RestartDungeonRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23167
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EffigyChallengeV2RestartDungeonRsp {
+ int32 retcode = 5;
+}
diff --git a/proto/EffigyChallengeV2SettleInfo.proto b/proto/EffigyChallengeV2SettleInfo.proto
new file mode 100644
index 00000000..75aace33
--- /dev/null
+++ b/proto/EffigyChallengeV2SettleInfo.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message EffigyChallengeV2SettleInfo {
+ bool is_challenge_highest_difficulty = 7;
+ uint32 create_dungeon_player_uid = 4;
+ uint32 challenge_mode_difficulty = 6;
+ bool is_new_record_time = 1;
+ uint32 record_time = 12;
+ uint32 first_time_finish_difficulty = 5;
+}
diff --git a/proto/Unk2700_JJCDNAHAPKD_ClientReq.proto b/proto/EnterCustomDungeonReq.proto
similarity index 86%
rename from proto/Unk2700_JJCDNAHAPKD_ClientReq.proto
rename to proto/EnterCustomDungeonReq.proto
index 66ee5213..c7616e84 100644
--- a/proto/Unk2700_JJCDNAHAPKD_ClientReq.proto
+++ b/proto/EnterCustomDungeonReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2700_KBBDJNLFAKD.proto";
+import "EnterCustomDungeonType.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,8 +25,8 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_JJCDNAHAPKD_ClientReq {
- uint64 Unk2700_ONOOJBEABOE = 11;
+message EnterCustomDungeonReq {
+ uint64 dungeon_guid = 11;
uint32 dungeon_id = 12;
- Unk2700_KBBDJNLFAKD Unk2700_LGBODABIKLL = 10;
+ EnterCustomDungeonType enter_type = 10;
}
diff --git a/proto/Unk2700_LGHJBAEBJKE_ServerRsp.proto b/proto/EnterCustomDungeonRsp.proto
similarity index 81%
rename from proto/Unk2700_LGHJBAEBJKE_ServerRsp.proto
rename to proto/EnterCustomDungeonRsp.proto
index 11e0bf38..ab8e3007 100644
--- a/proto/Unk2700_LGHJBAEBJKE_ServerRsp.proto
+++ b/proto/EnterCustomDungeonRsp.proto
@@ -17,16 +17,17 @@
syntax = "proto3";
-import "Unk2700_MIBBHAEMAGI.proto";
-import "Unk2700_OGKIDNPMMKG.proto";
+import "CustomDungeon.proto";
+import "EnterCustomDungeonType.proto";
option java_package = "emu.grasscutter.net.proto";
-// CmdId: 6227
+// CmdId: 6218
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_LGHJBAEBJKE_ServerRsp {
+message EnterCustomDungeonRsp {
+ CustomDungeon custom_dungeon = 14;
+ EnterCustomDungeonType enter_type = 2;
int32 retcode = 10;
- Unk2700_OGKIDNPMMKG Unk2700_HKIFDFGHJOK = 14;
- repeated Unk2700_MIBBHAEMAGI Unk2700_KLOAFPMHOKI = 5;
+ map room_cost_map = 6;
}
diff --git a/proto/EnterCustomDungeonType.proto b/proto/EnterCustomDungeonType.proto
new file mode 100644
index 00000000..71bcf855
--- /dev/null
+++ b/proto/EnterCustomDungeonType.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 EnterCustomDungeonType {
+ ENTER_CUSTOM_DUNGEON_TYPE_NONE = 0;
+ ENTER_CUSTOM_DUNGEON_TYPE_EDIT = 1;
+ ENTER_CUSTOM_DUNGEON_TYPE_PLAY = 2;
+ ENTER_CUSTOM_DUNGEON_TYPE_OFFICIAL = 3;
+}
diff --git a/proto/EnterFungusFighterPlotDungeonReq.proto b/proto/EnterFungusFighterPlotDungeonReq.proto
new file mode 100644
index 00000000..dacac1d5
--- /dev/null
+++ b/proto/EnterFungusFighterPlotDungeonReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23053
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EnterFungusFighterPlotDungeonReq {
+ uint32 dungeon_id = 14;
+ repeated uint32 fungus_id_list = 8;
+}
diff --git a/proto/EnterFungusFighterPlotDungeonRsp.proto b/proto/EnterFungusFighterPlotDungeonRsp.proto
new file mode 100644
index 00000000..05a19a23
--- /dev/null
+++ b/proto/EnterFungusFighterPlotDungeonRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21008
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EnterFungusFighterPlotDungeonRsp {
+ int32 retcode = 10;
+ uint32 dungeon_id = 15;
+ repeated uint32 fungus_id_list = 2;
+}
diff --git a/proto/EnterFungusFighterTrainingDungeonReq.proto b/proto/EnterFungusFighterTrainingDungeonReq.proto
new file mode 100644
index 00000000..22bb8ca2
--- /dev/null
+++ b/proto/EnterFungusFighterTrainingDungeonReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23860
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message EnterFungusFighterTrainingDungeonReq {
+ uint32 dungeon_id = 3;
+}
diff --git a/proto/EnterFungusFighterTrainingDungeonRsp.proto b/proto/EnterFungusFighterTrainingDungeonRsp.proto
new file mode 100644
index 00000000..3c7a4360
--- /dev/null
+++ b/proto/EnterFungusFighterTrainingDungeonRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21593
+// EnetChannelId: 0
+// EnetIsReliable: true
+message EnterFungusFighterTrainingDungeonRsp {
+ int32 retcode = 7;
+ uint32 dungeon_id = 11;
+}
diff --git a/proto/Unk2700_EBOECOIFJMP.proto b/proto/EnterIrodoriChessDungeonReq.proto
similarity index 94%
rename from proto/Unk2700_EBOECOIFJMP.proto
rename to proto/EnterIrodoriChessDungeonReq.proto
index ddaeaabf..5b5affe9 100644
--- a/proto/Unk2700_EBOECOIFJMP.proto
+++ b/proto/EnterIrodoriChessDungeonReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_EBOECOIFJMP {
- bool Unk2700_PHGMKGEMCFF = 1;
+message EnterIrodoriChessDungeonReq {
+ bool is_hard_map = 1;
uint32 level_id = 11;
}
diff --git a/proto/Unk2700_FGEEFFLBAKO.proto b/proto/EnterIrodoriChessDungeonRsp.proto
similarity index 94%
rename from proto/Unk2700_FGEEFFLBAKO.proto
rename to proto/EnterIrodoriChessDungeonRsp.proto
index ae1005f2..468cfd4a 100644
--- a/proto/Unk2700_FGEEFFLBAKO.proto
+++ b/proto/EnterIrodoriChessDungeonRsp.proto
@@ -22,8 +22,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8546
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_FGEEFFLBAKO {
+message EnterIrodoriChessDungeonRsp {
int32 retcode = 5;
- bool Unk2700_PHGMKGEMCFF = 7;
+ bool is_hard_map = 7;
uint32 level_id = 13;
}
diff --git a/proto/Unk2700_NMJIMIKKIME.proto b/proto/EnterRogueDiaryDungeonReq.proto
similarity index 86%
rename from proto/Unk2700_NMJIMIKKIME.proto
rename to proto/EnterRogueDiaryDungeonReq.proto
index 9f43dc0e..45ae2d3e 100644
--- a/proto/Unk2700_NMJIMIKKIME.proto
+++ b/proto/EnterRogueDiaryDungeonReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2700_HJLFNKLPFBH.proto";
+import "RogueDiaryAvatar.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,7 +25,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_NMJIMIKKIME {
- repeated uint32 Unk2700_OKGKHPCMNMN = 9;
- repeated Unk2700_HJLFNKLPFBH Unk2700_ELOOIKFNJCG = 11;
+message EnterRogueDiaryDungeonReq {
+ repeated uint32 chosen_card_list = 9;
+ repeated RogueDiaryAvatar chosen_avatar_list = 11;
}
diff --git a/proto/Unk2700_GMNGEEBMABP.proto b/proto/EnterRogueDiaryDungeonRsp.proto
similarity index 96%
rename from proto/Unk2700_GMNGEEBMABP.proto
rename to proto/EnterRogueDiaryDungeonRsp.proto
index 0b38645a..a7314bb9 100644
--- a/proto/Unk2700_GMNGEEBMABP.proto
+++ b/proto/EnterRogueDiaryDungeonRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8352
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_GMNGEEBMABP {
+message EnterRogueDiaryDungeonRsp {
int32 retcode = 9;
}
diff --git a/proto/EntityAuthorityChangeNotify.proto b/proto/EntityAuthorityChangeNotify.proto
index e054dec2..a9ed083d 100644
--- a/proto/EntityAuthorityChangeNotify.proto
+++ b/proto/EntityAuthorityChangeNotify.proto
@@ -24,7 +24,6 @@ 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
index 194a35b4..64ceecb2 100644
--- a/proto/EntityAuthorityInfo.proto
+++ b/proto/EntityAuthorityInfo.proto
@@ -19,9 +19,9 @@ syntax = "proto3";
import "AbilitySyncStateInfo.proto";
import "AnimatorParameterValueInfoPair.proto";
+import "EntityClientExtraInfo.proto";
import "EntityRendererChangedInfo.proto";
import "SceneEntityAiInfo.proto";
-import "Unk2700_HFMDKDHCJCM.proto";
import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -32,5 +32,5 @@ message EntityAuthorityInfo {
SceneEntityAiInfo ai_info = 3;
Vector born_pos = 4;
repeated AnimatorParameterValueInfoPair pose_para_list = 5;
- Unk2700_HFMDKDHCJCM Unk2700_KDGMOPELHNE = 6;
+ EntityClientExtraInfo client_extra_info = 6;
}
diff --git a/proto/Unk2700_HFMDKDHCJCM.proto b/proto/EntityClientExtraInfo.proto
similarity index 93%
rename from proto/Unk2700_HFMDKDHCJCM.proto
rename to proto/EntityClientExtraInfo.proto
index eb44fe78..7bd6025f 100644
--- a/proto/Unk2700_HFMDKDHCJCM.proto
+++ b/proto/EntityClientExtraInfo.proto
@@ -21,6 +21,6 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_HFMDKDHCJCM {
- Vector Unk2700_CMOMNFNGCGB = 1;
+message EntityClientExtraInfo {
+ Vector skill_anchor_position = 1;
}
diff --git a/proto/EvtAnimatorStateChangedInfo.proto b/proto/EvtAnimatorStateChangedInfo.proto
index 1395ad3e..4af58533 100644
--- a/proto/EvtAnimatorStateChangedInfo.proto
+++ b/proto/EvtAnimatorStateChangedInfo.proto
@@ -25,10 +25,10 @@ message EvtAnimatorStateChangedInfo {
int32 face_angle_compact = 14;
uint32 to_state_hash = 5;
uint32 normalized_time_compact = 9;
- uint32 Unk2700_HEMGNDKMAFO = 2;
+ uint32 layer = 2;
Vector pos = 13;
float fade_duration = 3;
- bool Unk2700_CJCJLGHIBPK = 1;
+ bool force_sync = 1;
uint32 entity_id = 15;
- bool Unk2700_JECBLPNLJMJ = 7;
+ bool handle_animator_state_immediately = 7;
}
diff --git a/proto/EvtAvatarEnterFocusNotify.proto b/proto/EvtAvatarEnterFocusNotify.proto
index 8e3d9fed..05a5b53b 100644
--- a/proto/EvtAvatarEnterFocusNotify.proto
+++ b/proto/EvtAvatarEnterFocusNotify.proto
@@ -30,7 +30,7 @@ message EvtAvatarEnterFocusNotify {
uint32 entity_id = 1;
bool can_move = 10;
bool enter_holding_focus_shoot = 13;
- bool Unk2700_GACKGHEHEIK = 6;
+ bool disable_aim_layer = 6;
bool use_auto_focus = 5;
bool fast_focus = 3;
bool show_cross_hair = 12;
diff --git a/proto/Unk2700_BEINCMBJDAA_ClientReq.proto b/proto/EvtBeingHealedNotify.proto
similarity index 89%
rename from proto/Unk2700_BEINCMBJDAA_ClientReq.proto
rename to proto/EvtBeingHealedNotify.proto
index 41f8b275..0e57da2c 100644
--- a/proto/Unk2700_BEINCMBJDAA_ClientReq.proto
+++ b/proto/EvtBeingHealedNotify.proto
@@ -22,10 +22,9 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 333
// EnetChannelId: 0
// EnetIsReliable: true
-// IsAllowClient: true
-message Unk2700_BEINCMBJDAA_ClientReq {
+message EvtBeingHealedNotify {
uint32 target_id = 1;
- float Unk2700_AEIDAJFHBBB = 5;
+ float real_heal_amount = 5;
uint32 source_id = 13;
- float Unk2700_JLLFGAIOPGC = 4;
+ float heal_amount = 4;
}
diff --git a/proto/EvtBulletHitNotify.proto b/proto/EvtBulletHitNotify.proto
index 44937496..31cafb3e 100644
--- a/proto/EvtBulletHitNotify.proto
+++ b/proto/EvtBulletHitNotify.proto
@@ -28,7 +28,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetIsReliable: true
// IsAllowClient: true
message EvtBulletHitNotify {
- uint32 Unk2700_FEALLBIBHOL = 8;
+ uint32 single_bullet_id = 8;
Vector hit_point = 15;
Vector hit_normal = 11;
int32 hit_box_index = 9;
diff --git a/proto/EvtCreateGadgetNotify.proto b/proto/EvtCreateGadgetNotify.proto
index 66a7d8a6..90b009ec 100644
--- a/proto/EvtCreateGadgetNotify.proto
+++ b/proto/EvtCreateGadgetNotify.proto
@@ -30,7 +30,7 @@ message EvtCreateGadgetNotify {
bool is_async_load = 8;
uint32 camp_type = 5;
bool sight_group_with_owner = 10;
- repeated uint32 Unk2700_BELOIHEIEAN = 889;
+ repeated uint32 target_entity_id_list = 889;
ForwardType forward_type = 12;
uint32 entity_id = 2;
uint32 target_entity_id = 3;
@@ -38,12 +38,12 @@ message EvtCreateGadgetNotify {
uint64 guid = 6;
Vector init_euler_angles = 13;
uint32 target_lock_point_index = 11;
- repeated uint32 Unk2700_JDNFLLGJBGA = 1920;
+ repeated uint32 target_lock_point_index_list = 1920;
Vector init_pos = 4;
uint32 owner_entity_id = 9;
uint32 room_id = 7;
- bool Unk2700_JBOPENAGGAF = 25;
+ bool is_peer_id_from_player = 25;
uint32 prop_owner_entity_id = 1;
- bool Unk2700_IHIDGKPHFME = 379;
+ bool is_true_life_time_by_owner = 379;
uint32 config_id = 14;
}
diff --git a/proto/Unk3000_AMGHKNBNNPD.proto b/proto/EvtGrapplingHookMove.proto
similarity index 92%
rename from proto/Unk3000_AMGHKNBNNPD.proto
rename to proto/EvtGrapplingHookMove.proto
index bb075062..e5589ed8 100644
--- a/proto/Unk3000_AMGHKNBNNPD.proto
+++ b/proto/EvtGrapplingHookMove.proto
@@ -21,13 +21,13 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_AMGHKNBNNPD {
- float Unk3000_OFFBBHIKDIN = 1;
+message EvtGrapplingHookMove {
+ float acceleration = 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;
+ float max_speed = 8;
bool check_animator_state_on_exit_only = 11;
string override_collider = 14;
Vector target_pos = 10;
diff --git a/proto/Unk2700_KNMDFCBLIIG_ServerRsp.proto b/proto/EvtLocalGadgetOwnerLeaveSceneNotify.proto
similarity index 95%
rename from proto/Unk2700_KNMDFCBLIIG_ServerRsp.proto
rename to proto/EvtLocalGadgetOwnerLeaveSceneNotify.proto
index 56db8542..c761bcd3 100644
--- a/proto/Unk2700_KNMDFCBLIIG_ServerRsp.proto
+++ b/proto/EvtLocalGadgetOwnerLeaveSceneNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 384
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_KNMDFCBLIIG_ServerRsp {
+message EvtLocalGadgetOwnerLeaveSceneNotify {
uint32 entity_id = 10;
}
diff --git a/proto/EvtSetAttackTargetInfo.proto b/proto/EvtSetAttackTargetInfo.proto
index e4519be7..1e2bf22e 100644
--- a/proto/EvtSetAttackTargetInfo.proto
+++ b/proto/EvtSetAttackTargetInfo.proto
@@ -21,6 +21,6 @@ option java_package = "emu.grasscutter.net.proto";
message EvtSetAttackTargetInfo {
uint32 entity_id = 11;
- uint32 Unk2700_MPONBCMPCIH = 6;
+ uint32 select_point_index = 6;
uint32 attack_target_id = 7;
}
diff --git a/proto/Unk2700_HFPELHFDCIB.proto b/proto/EvtSyncSkillAnchorPosition.proto
similarity index 93%
rename from proto/Unk2700_HFPELHFDCIB.proto
rename to proto/EvtSyncSkillAnchorPosition.proto
index 398a6268..755ded57 100644
--- a/proto/Unk2700_HFPELHFDCIB.proto
+++ b/proto/EvtSyncSkillAnchorPosition.proto
@@ -21,7 +21,7 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_HFPELHFDCIB {
+message EvtSyncSkillAnchorPosition {
uint32 entity_id = 2;
- Vector Unk2700_CMOMNFNGCGB = 13;
+ Vector skill_anchor_position = 13;
}
diff --git a/proto/Unk2700_JLOFMANHGHI_ClientReq.proto b/proto/ExitCustomDungeonTryReq.proto
similarity index 96%
rename from proto/Unk2700_JLOFMANHGHI_ClientReq.proto
rename to proto/ExitCustomDungeonTryReq.proto
index 517b3cad..df26b99d 100644
--- a/proto/Unk2700_JLOFMANHGHI_ClientReq.proto
+++ b/proto/ExitCustomDungeonTryReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_JLOFMANHGHI_ClientReq {}
+message ExitCustomDungeonTryReq {}
diff --git a/proto/Unk2700_PIEJLIIGLGM_ServerRsp.proto b/proto/ExitCustomDungeonTryRsp.proto
similarity index 96%
rename from proto/Unk2700_PIEJLIIGLGM_ServerRsp.proto
rename to proto/ExitCustomDungeonTryRsp.proto
index 53062c51..bad0d2bc 100644
--- a/proto/Unk2700_PIEJLIIGLGM_ServerRsp.proto
+++ b/proto/ExitCustomDungeonTryRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 6237
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_PIEJLIIGLGM_ServerRsp {
+message ExitCustomDungeonTryRsp {
int32 retcode = 3;
}
diff --git a/proto/Unk2700_JCKGJAELBMB.proto b/proto/FinishLanternProjectionReq.proto
similarity index 96%
rename from proto/Unk2700_JCKGJAELBMB.proto
rename to proto/FinishLanternProjectionReq.proto
index 42833734..e392a748 100644
--- a/proto/Unk2700_JCKGJAELBMB.proto
+++ b/proto/FinishLanternProjectionReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_JCKGJAELBMB {
+message FinishLanternProjectionReq {
uint32 finish_time = 3;
uint32 level_id = 11;
}
diff --git a/proto/Unk2700_HMHHLEHFBLB.proto b/proto/FinishLanternProjectionRsp.proto
similarity index 96%
rename from proto/Unk2700_HMHHLEHFBLB.proto
rename to proto/FinishLanternProjectionRsp.proto
index 7306e209..2e42d93a 100644
--- a/proto/Unk2700_HMHHLEHFBLB.proto
+++ b/proto/FinishLanternProjectionRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8713
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_HMHHLEHFBLB {
+message FinishLanternProjectionRsp {
int32 retcode = 13;
}
diff --git a/proto/Unk3100_MFCGFACPOGJ.proto b/proto/FinishedTalkIdListNotify.proto
similarity index 92%
rename from proto/Unk3100_MFCGFACPOGJ.proto
rename to proto/FinishedTalkIdListNotify.proto
index 6d35d9bf..83dac92e 100644
--- a/proto/Unk3100_MFCGFACPOGJ.proto
+++ b/proto/FinishedTalkIdListNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 573
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_MFCGFACPOGJ {
- repeated uint32 Unk3100_MKNPIHFAGEP = 1;
+message FinishedTalkIdListNotify {
+ repeated uint32 finished_talk_id_list = 1;
}
diff --git a/proto/Unk2700_NBFOJLAHFCA_ServerNotify.proto b/proto/FireworksLaunchDataNotify.proto
similarity index 85%
rename from proto/Unk2700_NBFOJLAHFCA_ServerNotify.proto
rename to proto/FireworksLaunchDataNotify.proto
index 113c5df0..00589f00 100644
--- a/proto/Unk2700_NBFOJLAHFCA_ServerNotify.proto
+++ b/proto/FireworksLaunchDataNotify.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_JMPCGMBHJLG.proto";
+import "FireworksLaunchSchemeData.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;
+message FireworksLaunchDataNotify {
+ repeated FireworksLaunchSchemeData scheme_data_list = 12;
+ uint32 last_use_scheme_id = 4;
}
diff --git a/proto/Unk2700_MLMEFKLMOEF.proto b/proto/FireworksLaunchParam.proto
similarity index 89%
rename from proto/Unk2700_MLMEFKLMOEF.proto
rename to proto/FireworksLaunchParam.proto
index 0adb8fb8..6a3a0325 100644
--- a/proto/Unk2700_MLMEFKLMOEF.proto
+++ b/proto/FireworksLaunchParam.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "Unk2700_EAJCGENDICI.proto";
+import "FireworksLaunchParamType.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_MLMEFKLMOEF {
+message FireworksLaunchParam {
int32 value = 5;
- Unk2700_EAJCGENDICI type = 4;
+ FireworksLaunchParamType type = 4;
}
diff --git a/proto/FireworksLaunchParamType.proto b/proto/FireworksLaunchParamType.proto
new file mode 100644
index 00000000..7d399c70
--- /dev/null
+++ b/proto/FireworksLaunchParamType.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 FireworksLaunchParamType {
+ FIREWORKS_LAUNCH_PARAM_TYPE_NONE = 0;
+ FIREWORKS_LAUNCH_PARAM_TYPE_REPEAT = 1;
+ FIREWORKS_LAUNCH_PARAM_TYPE_INTEVAL = 2;
+ FIREWORKS_LAUNCH_PARAM_TYPE_DELAY = 3;
+ FIREWORKS_LAUNCH_PARAM_TYPE_ROUND_INTEVAL = 4;
+ FIREWORKS_LAUNCH_PARAM_TYPE_MAX = 5;
+}
diff --git a/proto/FireworksLaunchSchemeData.proto b/proto/FireworksLaunchSchemeData.proto
new file mode 100644
index 00000000..9b21752b
--- /dev/null
+++ b/proto/FireworksLaunchSchemeData.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FireworksLaunchParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FireworksLaunchSchemeData {
+ uint32 scheme_id = 3;
+ repeated uint32 fireworks_id_list = 2;
+ repeated FireworksLaunchParam launch_param_list = 7;
+}
diff --git a/proto/Unk2700_JDPMOMKAPIF.proto b/proto/FireworksReformData.proto
similarity index 88%
rename from proto/Unk2700_JDPMOMKAPIF.proto
rename to proto/FireworksReformData.proto
index d6f9297c..6d694519 100644
--- a/proto/Unk2700_JDPMOMKAPIF.proto
+++ b/proto/FireworksReformData.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "Unk2700_KJDPNIKDKEJ.proto";
+import "FireworksReformParam.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_JDPMOMKAPIF {
+message FireworksReformData {
uint32 id = 13;
- repeated Unk2700_KJDPNIKDKEJ Unk2700_KPOACBFLPKP = 10;
+ repeated FireworksReformParam reform_param_list = 10;
}
diff --git a/proto/Unk2700_MCJIOOELGHG_ServerNotify.proto b/proto/FireworksReformDataNotify.proto
similarity index 88%
rename from proto/Unk2700_MCJIOOELGHG_ServerNotify.proto
rename to proto/FireworksReformDataNotify.proto
index fcf10d81..5895527a 100644
--- a/proto/Unk2700_MCJIOOELGHG_ServerNotify.proto
+++ b/proto/FireworksReformDataNotify.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk2700_JDPMOMKAPIF.proto";
+import "FireworksReformData.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 6033
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_MCJIOOELGHG_ServerNotify {
- repeated Unk2700_JDPMOMKAPIF Unk2700_KBMKGNGFGFO = 6;
+message FireworksReformDataNotify {
+ repeated FireworksReformData fireworks_reform_data_list = 6;
}
diff --git a/proto/Unk2700_KJDPNIKDKEJ.proto b/proto/FireworksReformParam.proto
similarity index 89%
rename from proto/Unk2700_KJDPNIKDKEJ.proto
rename to proto/FireworksReformParam.proto
index 5cb55b73..19050738 100644
--- a/proto/Unk2700_KJDPNIKDKEJ.proto
+++ b/proto/FireworksReformParam.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "Unk2700_HEMFKLPNNOM.proto";
+import "FireworksReformParamType.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_KJDPNIKDKEJ {
- Unk2700_HEMFKLPNNOM type = 8;
+message FireworksReformParam {
+ FireworksReformParamType type = 8;
int32 value = 4;
}
diff --git a/proto/FireworksReformParamType.proto b/proto/FireworksReformParamType.proto
new file mode 100644
index 00000000..41eecb50
--- /dev/null
+++ b/proto/FireworksReformParamType.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 FireworksReformParamType {
+ FIREWORKS_REFORM_PARAM_TYPE_NONE = 0;
+ FIREWORKS_REFORM_PARAM_TYPE_COLOR = 1;
+ FIREWORKS_REFORM_PARAM_TYPE_HEIGHT = 2;
+ FIREWORKS_REFORM_PARAM_TYPE_SIZE = 3;
+ FIREWORKS_REFORM_PARAM_TYPE_DENSITY = 4;
+ FIREWORKS_REFORM_PARAM_TYPE_ROTATION = 5;
+}
diff --git a/proto/FishingScore.proto b/proto/FishingScore.proto
index 76ef1e9a..ffe9b09b 100644
--- a/proto/FishingScore.proto
+++ b/proto/FishingScore.proto
@@ -20,6 +20,6 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message FishingScore {
- uint32 fishing_score_ = 2;
+ uint32 fishing_score = 2;
bool is_new_record = 4;
}
diff --git a/proto/FishtankFishInfo.proto b/proto/FishtankFishInfo.proto
index 762a786f..7143a73d 100644
--- a/proto/FishtankFishInfo.proto
+++ b/proto/FishtankFishInfo.proto
@@ -20,7 +20,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message FishtankFishInfo {
- float Unk3000_KNOBDDHIONH = 1;
- float Unk3000_NDBJCJEIEEO = 2;
- float Unk3000_CGBHKPEGBOD = 3;
+ float fish_distance_from_water = 1;
+ float fish_scale = 2;
+ float initial_rotation_y = 3;
}
diff --git a/proto/FungusCaptureSettleNotify.proto b/proto/FungusCaptureSettleNotify.proto
new file mode 100644
index 00000000..792b175b
--- /dev/null
+++ b/proto/FungusCaptureSettleNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 5506
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FungusCaptureSettleNotify {
+ bool is_success = 2;
+}
diff --git a/proto/FungusCultivateReq.proto b/proto/FungusCultivateReq.proto
new file mode 100644
index 00000000..04b01f8a
--- /dev/null
+++ b/proto/FungusCultivateReq.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: 21749
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FungusCultivateReq {
+ uint32 cultivate_id = 8;
+ uint32 copy_step = 7;
+ uint32 exchange_step = 11;
+ uint32 cultivate_step = 13;
+ uint32 rotate_step = 15;
+ uint32 undo_step = 6;
+ uint32 time = 2;
+ uint32 place_step = 10;
+}
diff --git a/proto/FungusCultivateRsp.proto b/proto/FungusCultivateRsp.proto
new file mode 100644
index 00000000..e9f62cff
--- /dev/null
+++ b/proto/FungusCultivateRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23532
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FungusCultivateRsp {
+ uint32 cultivate_id = 4;
+ bool is_new_record = 13;
+ int32 retcode = 10;
+}
diff --git a/proto/FungusDetail.proto b/proto/FungusDetail.proto
new file mode 100644
index 00000000..496a5a1a
--- /dev/null
+++ b/proto/FungusDetail.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FungusDetail {
+ bool is_cultivate = 5;
+ uint32 capture_order = 6;
+ uint32 name_id = 14;
+ uint32 min_cultivate_step = 1;
+ uint32 fungus_id = 9;
+}
diff --git a/proto/FungusFighterClearTrainingRuntimeDataReq.proto b/proto/FungusFighterClearTrainingRuntimeDataReq.proto
new file mode 100644
index 00000000..70f707dd
--- /dev/null
+++ b/proto/FungusFighterClearTrainingRuntimeDataReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 24137
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FungusFighterClearTrainingRuntimeDataReq {
+ uint32 dungeon_id = 6;
+}
diff --git a/proto/FungusFighterClearTrainingRuntimeDataRsp.proto b/proto/FungusFighterClearTrainingRuntimeDataRsp.proto
new file mode 100644
index 00000000..abc4dc4a
--- /dev/null
+++ b/proto/FungusFighterClearTrainingRuntimeDataRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 22991
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FungusFighterClearTrainingRuntimeDataRsp {
+ int32 retcode = 8;
+}
diff --git a/proto/FungusFighterDetailInfo.proto b/proto/FungusFighterDetailInfo.proto
new file mode 100644
index 00000000..e51748ed
--- /dev/null
+++ b/proto/FungusFighterDetailInfo.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 "FungusDetail.proto";
+import "FungusPlotStageDetail.proto";
+import "FungusTrainingDungeonDetail.proto";
+import "FungusTrainingProgressDetail.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FungusFighterDetailInfo {
+ repeated FungusPlotStageDetail plot_stage_detail_list = 6;
+ repeated FungusDetail fungus_detail_list = 4;
+ repeated uint32 unlock_camp_id_list = 12;
+ repeated FungusTrainingProgressDetail training_dungeon_progress_detail_list = 3;
+ repeated FungusTrainingDungeonDetail training_dungeon_detail_list = 15;
+ repeated uint32 finish_camp_id_list = 1;
+ repeated uint32 unlock_cultivate_id_list = 8;
+}
diff --git a/proto/FungusFighterMonsterDetail.proto b/proto/FungusFighterMonsterDetail.proto
new file mode 100644
index 00000000..84eb0a4f
--- /dev/null
+++ b/proto/FungusFighterMonsterDetail.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FungusFighterMonsterDetail {
+ uint32 fungus_id = 2;
+ float cur_hp_percentage = 7;
+ bool is_alive = 9;
+}
diff --git a/proto/FungusFighterPlotInfoNotify.proto b/proto/FungusFighterPlotInfoNotify.proto
new file mode 100644
index 00000000..f81ce0d1
--- /dev/null
+++ b/proto/FungusFighterPlotInfoNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 22174
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FungusFighterPlotInfoNotify {
+ repeated uint32 fungus_id_list = 11;
+ uint32 dungeon_id = 4;
+}
diff --git a/proto/FungusFighterRestartTraningDungeonReq.proto b/proto/FungusFighterRestartTraningDungeonReq.proto
new file mode 100644
index 00000000..6d8f040a
--- /dev/null
+++ b/proto/FungusFighterRestartTraningDungeonReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23980
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FungusFighterRestartTraningDungeonReq {}
diff --git a/proto/FungusFighterRestartTraningDungeonRsp.proto b/proto/FungusFighterRestartTraningDungeonRsp.proto
new file mode 100644
index 00000000..d3c259b9
--- /dev/null
+++ b/proto/FungusFighterRestartTraningDungeonRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 22890
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FungusFighterRestartTraningDungeonRsp {
+ int32 retcode = 11;
+}
diff --git a/proto/FungusFighterRuntimeDataNotify.proto b/proto/FungusFighterRuntimeDataNotify.proto
new file mode 100644
index 00000000..12bfc87e
--- /dev/null
+++ b/proto/FungusFighterRuntimeDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FungusTrainingProgressDetail.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 24674
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FungusFighterRuntimeDataNotify {
+ FungusTrainingProgressDetail progress_detail = 7;
+}
diff --git a/proto/FungusFighterTrainingGallerySettleNotify.proto b/proto/FungusFighterTrainingGallerySettleNotify.proto
new file mode 100644
index 00000000..1b83bd04
--- /dev/null
+++ b/proto/FungusFighterTrainingGallerySettleNotify.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 "GalleryStopReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23931
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FungusFighterTrainingGallerySettleNotify {
+ bool is_new_record = 14;
+ uint32 total_used_time = 4;
+ GalleryStopReason reason = 5;
+ uint32 dead_fungus_num = 1;
+ uint32 settle_round = 15;
+ bool is_final_settle = 10;
+ uint32 gadget_life_percentage = 11;
+ uint32 final_score = 9;
+}
diff --git a/proto/FungusFighterTrainingInfoNotify.proto b/proto/FungusFighterTrainingInfoNotify.proto
new file mode 100644
index 00000000..ef69d068
--- /dev/null
+++ b/proto/FungusFighterTrainingInfoNotify.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: 5595
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FungusFighterTrainingInfoNotify {
+ uint32 buff_start_time = 3;
+ uint32 max_skill_count = 7;
+ uint32 max_monster_count = 8;
+ uint32 buff_id = 14;
+ uint32 buff_last_time = 4;
+ uint32 rest_skill_count = 6;
+ uint32 killed_monster_count = 15;
+}
diff --git a/proto/FungusFighterTrainingSelectFungusReq.proto b/proto/FungusFighterTrainingSelectFungusReq.proto
new file mode 100644
index 00000000..0b02c95b
--- /dev/null
+++ b/proto/FungusFighterTrainingSelectFungusReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23903
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FungusFighterTrainingSelectFungusReq {
+ repeated uint32 backup_fungus_id_list = 11;
+ repeated uint32 fight_fungus_id_list = 7;
+}
diff --git a/proto/FungusFighterTrainingSelectFungusRsp.proto b/proto/FungusFighterTrainingSelectFungusRsp.proto
new file mode 100644
index 00000000..8f61ea6d
--- /dev/null
+++ b/proto/FungusFighterTrainingSelectFungusRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21570
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FungusFighterTrainingSelectFungusRsp {
+ int32 retcode = 7;
+}
diff --git a/proto/FungusFighterTrainingSettleInfo.proto b/proto/FungusFighterTrainingSettleInfo.proto
new file mode 100644
index 00000000..b95105e8
--- /dev/null
+++ b/proto/FungusFighterTrainingSettleInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GalleryStopReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FungusFighterTrainingSettleInfo {
+ uint32 used_time = 15;
+ GalleryStopReason reason = 3;
+ string transaction = 1;
+}
diff --git a/proto/FungusFighterUseBackupFungusReq.proto b/proto/FungusFighterUseBackupFungusReq.proto
new file mode 100644
index 00000000..f1db4dea
--- /dev/null
+++ b/proto/FungusFighterUseBackupFungusReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 21266
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FungusFighterUseBackupFungusReq {
+ repeated uint32 backup_fungus_id_list = 1;
+}
diff --git a/proto/FungusFighterUseBackupFungusRsp.proto b/proto/FungusFighterUseBackupFungusRsp.proto
new file mode 100644
index 00000000..0abb27cb
--- /dev/null
+++ b/proto/FungusFighterUseBackupFungusRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 23428
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FungusFighterUseBackupFungusRsp {
+ int32 retcode = 12;
+}
diff --git a/proto/FungusPlotStageDetail.proto b/proto/FungusPlotStageDetail.proto
new file mode 100644
index 00000000..dcec54d4
--- /dev/null
+++ b/proto/FungusPlotStageDetail.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 FungusPlotStageDetail {
+ bool is_open = 3;
+ uint32 stage_id = 15;
+}
diff --git a/proto/FungusRenameReq.proto b/proto/FungusRenameReq.proto
new file mode 100644
index 00000000..544d2d29
--- /dev/null
+++ b/proto/FungusRenameReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 22006
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message FungusRenameReq {
+ uint32 name_id = 1;
+ uint32 fungus_id = 11;
+}
diff --git a/proto/FungusRenameRsp.proto b/proto/FungusRenameRsp.proto
new file mode 100644
index 00000000..f2fb55d2
--- /dev/null
+++ b/proto/FungusRenameRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 20066
+// EnetChannelId: 0
+// EnetIsReliable: true
+message FungusRenameRsp {
+ int32 retcode = 5;
+ uint32 fungus_id = 15;
+ uint32 name_id = 12;
+}
diff --git a/proto/FungusTrainingDungeonDetail.proto b/proto/FungusTrainingDungeonDetail.proto
new file mode 100644
index 00000000..d97e5141
--- /dev/null
+++ b/proto/FungusTrainingDungeonDetail.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FungusTrainingDungeonDetail {
+ bool is_open = 13;
+ uint32 dungeon_id = 12;
+ uint32 best_score = 9;
+}
diff --git a/proto/FungusTrainingMonsterPreviewDetail.proto b/proto/FungusTrainingMonsterPreviewDetail.proto
new file mode 100644
index 00000000..0ea9d6f6
--- /dev/null
+++ b/proto/FungusTrainingMonsterPreviewDetail.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FungusTrainingMonsterPreviewDetail {
+ uint32 monster_id = 8;
+ uint32 level = 10;
+ repeated uint32 affix_list = 7;
+}
diff --git a/proto/FungusTrainingPoolPreviewDetail.proto b/proto/FungusTrainingPoolPreviewDetail.proto
new file mode 100644
index 00000000..8a322c94
--- /dev/null
+++ b/proto/FungusTrainingPoolPreviewDetail.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "FungusTrainingMonsterPreviewDetail.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FungusTrainingPoolPreviewDetail {
+ uint32 pool_id = 8;
+ repeated FungusTrainingMonsterPreviewDetail monster_preview_detail_list = 6;
+}
diff --git a/proto/FungusTrainingProgressDetail.proto b/proto/FungusTrainingProgressDetail.proto
new file mode 100644
index 00000000..cf6d5adc
--- /dev/null
+++ b/proto/FungusTrainingProgressDetail.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 "FungusFighterMonsterDetail.proto";
+import "FungusTrainingPoolPreviewDetail.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message FungusTrainingProgressDetail {
+ uint32 cur_round = 9;
+ uint32 dungeon_id = 10;
+ repeated FungusTrainingPoolPreviewDetail monster_pool_preview_list = 5;
+ repeated FungusFighterMonsterDetail monster_detail_list = 6;
+ uint32 total_used_time = 7;
+ repeated uint32 backup_monster_list = 4;
+ repeated uint32 choosen_monster_list = 8;
+}
diff --git a/proto/GCGApplyInviteBattleNotify.proto b/proto/GCGApplyInviteBattleNotify.proto
new file mode 100644
index 00000000..1a99c144
--- /dev/null
+++ b/proto/GCGApplyInviteBattleNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7820
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGApplyInviteBattleNotify {
+ bool is_agree = 14;
+ int32 retcode = 6;
+}
diff --git a/proto/GCGApplyInviteBattleReq.proto b/proto/GCGApplyInviteBattleReq.proto
new file mode 100644
index 00000000..5115ca00
--- /dev/null
+++ b/proto/GCGApplyInviteBattleReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7730
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGApplyInviteBattleReq {
+ bool is_agree = 9;
+}
diff --git a/proto/GCGApplyInviteBattleRsp.proto b/proto/GCGApplyInviteBattleRsp.proto
new file mode 100644
index 00000000..9b4afe73
--- /dev/null
+++ b/proto/GCGApplyInviteBattleRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7304
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGApplyInviteBattleRsp {
+ int32 retcode = 5;
+}
diff --git a/proto/GCGAskDuelReq.proto b/proto/GCGAskDuelReq.proto
new file mode 100644
index 00000000..9f54d61e
--- /dev/null
+++ b/proto/GCGAskDuelReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7237
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGAskDuelReq {}
diff --git a/proto/GCGAskDuelRsp.proto b/proto/GCGAskDuelRsp.proto
new file mode 100644
index 00000000..8fd53a06
--- /dev/null
+++ b/proto/GCGAskDuelRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGDuel.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7869
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGAskDuelRsp {
+ int32 retcode = 3;
+ GCGDuel duel = 13;
+}
diff --git a/proto/GCGAttackCostInfo.proto b/proto/GCGAttackCostInfo.proto
new file mode 100644
index 00000000..f4d98933
--- /dev/null
+++ b/proto/GCGAttackCostInfo.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 GCGAttackCostInfo {
+ uint32 skill_id = 8;
+ map cost_map = 3;
+}
diff --git a/proto/GCGBasicDataNotify.proto b/proto/GCGBasicDataNotify.proto
new file mode 100644
index 00000000..2986f869
--- /dev/null
+++ b/proto/GCGBasicDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7319
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGBasicDataNotify {
+ uint32 level = 9;
+ uint32 exp = 4;
+ repeated uint32 level_reward_taken_list = 12;
+}
diff --git a/proto/GCGBossChallengeData.proto b/proto/GCGBossChallengeData.proto
new file mode 100644
index 00000000..5f73252c
--- /dev/null
+++ b/proto/GCGBossChallengeData.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 GCGBossChallengeData {
+ uint32 id = 9;
+ repeated uint32 unlock_level_id_list = 14;
+}
diff --git a/proto/GCGBossChallengeUpdateNotify.proto b/proto/GCGBossChallengeUpdateNotify.proto
new file mode 100644
index 00000000..8d6fe1dc
--- /dev/null
+++ b/proto/GCGBossChallengeUpdateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGBossChallengeData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7073
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGBossChallengeUpdateNotify {
+ GCGBossChallengeData boss_challenge = 11;
+}
diff --git a/proto/GCGCard.proto b/proto/GCGCard.proto
new file mode 100644
index 00000000..8eabae86
--- /dev/null
+++ b/proto/GCGCard.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 "GCGToken.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGCard {
+ uint32 guid = 15;
+ repeated GCGToken token_list = 2;
+ bool is_show = 14;
+ uint32 controller_id = 7;
+ uint32 id = 6;
+ repeated uint32 tag_list = 3;
+ uint32 face_type = 5;
+}
diff --git a/proto/GCGChallengeData.proto b/proto/GCGChallengeData.proto
new file mode 100644
index 00000000..1018e32c
--- /dev/null
+++ b/proto/GCGChallengeData.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGChallengeData {
+ uint32 challenge_id = 1;
+ uint32 challenge_type = 2;
+ repeated uint32 param_list = 3;
+ uint32 progress = 4;
+}
diff --git a/proto/GCGChallengeUpdateNotify.proto b/proto/GCGChallengeUpdateNotify.proto
new file mode 100644
index 00000000..09922288
--- /dev/null
+++ b/proto/GCGChallengeUpdateNotify.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 "GCGDuelChallenge.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7268
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGChallengeUpdateNotify {
+ uint32 server_seq = 12;
+ GCGDuelChallenge challenge = 13;
+}
diff --git a/proto/GCGClientPerformType.proto b/proto/GCGClientPerformType.proto
new file mode 100644
index 00000000..b8d66d38
--- /dev/null
+++ b/proto/GCGClientPerformType.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 GCGClientPerformType {
+ GCG_CLIENT_PERFORM_TYPE_INVALID = 0;
+ GCG_CLIENT_PERFORM_TYPE_CARD_EXCHANGE = 1;
+}
diff --git a/proto/GCGClientSettleReq.proto b/proto/GCGClientSettleReq.proto
new file mode 100644
index 00000000..8cd3a86e
--- /dev/null
+++ b/proto/GCGClientSettleReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7506
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGClientSettleReq {}
diff --git a/proto/GCGClientSettleRsp.proto b/proto/GCGClientSettleRsp.proto
new file mode 100644
index 00000000..a1c6d91a
--- /dev/null
+++ b/proto/GCGClientSettleRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7105
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGClientSettleRsp {
+ uint32 close_time = 4;
+ int32 retcode = 1;
+}
diff --git a/proto/GCGControllerShowInfo.proto b/proto/GCGControllerShowInfo.proto
new file mode 100644
index 00000000..358de326
--- /dev/null
+++ b/proto/GCGControllerShowInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more 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 GCGControllerShowInfo {
+ ProfilePicture profile_picture = 11;
+ string nick_name = 14;
+ uint32 controller_id = 9;
+}
diff --git a/proto/GCGCostReviseInfo.proto b/proto/GCGCostReviseInfo.proto
new file mode 100644
index 00000000..80a2197d
--- /dev/null
+++ b/proto/GCGCostReviseInfo.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 "GCGAttackCostInfo.proto";
+import "GCGPlayCardCostInfo.proto";
+import "GCGSelectOnStageCostInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGCostReviseInfo {
+ bool is_can_attack = 4;
+ repeated uint32 can_use_hand_card_id_list = 11;
+ repeated GCGPlayCardCostInfo play_card_cost_list = 5;
+ repeated GCGSelectOnStageCostInfo select_on_stage_cost_list = 10;
+ repeated GCGAttackCostInfo attack_cost_list = 2;
+}
diff --git a/proto/GCGDSCardBackUnlockNotify.proto b/proto/GCGDSCardBackUnlockNotify.proto
new file mode 100644
index 00000000..65ce3087
--- /dev/null
+++ b/proto/GCGDSCardBackUnlockNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7265
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGDSCardBackUnlockNotify {
+ uint32 card_back_id = 6;
+}
diff --git a/proto/GCGDSCardData.proto b/proto/GCGDSCardData.proto
new file mode 100644
index 00000000..3e2d318d
--- /dev/null
+++ b/proto/GCGDSCardData.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGDSCardData {
+ uint32 card_id = 14;
+ repeated uint32 unlock_face_type_list = 9;
+ uint32 num = 12;
+ uint32 proficiency = 8;
+ uint32 face_type = 6;
+}
diff --git a/proto/GCGDSCardFaceUnlockNotify.proto b/proto/GCGDSCardFaceUnlockNotify.proto
new file mode 100644
index 00000000..41235e39
--- /dev/null
+++ b/proto/GCGDSCardFaceUnlockNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7049
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGDSCardFaceUnlockNotify {
+ uint32 card_id = 13;
+ uint32 face_type = 1;
+}
diff --git a/proto/GCGDSCardNumChangeNotify.proto b/proto/GCGDSCardNumChangeNotify.proto
new file mode 100644
index 00000000..59f1144a
--- /dev/null
+++ b/proto/GCGDSCardNumChangeNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7358
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGDSCardNumChangeNotify {
+ uint32 card_id = 4;
+ uint32 num = 10;
+}
diff --git a/proto/GCGDSCardProficiencyNotify.proto b/proto/GCGDSCardProficiencyNotify.proto
new file mode 100644
index 00000000..a0ce2bdc
--- /dev/null
+++ b/proto/GCGDSCardProficiencyNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7680
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGDSCardProficiencyNotify {
+ uint32 proficiency = 2;
+ uint32 card_id = 12;
+}
diff --git a/proto/GCGDSChangeCardBackReq.proto b/proto/GCGDSChangeCardBackReq.proto
new file mode 100644
index 00000000..d8a9ec45
--- /dev/null
+++ b/proto/GCGDSChangeCardBackReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7292
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGDSChangeCardBackReq {
+ uint32 deck_id = 10;
+ uint32 card_back_id = 12;
+}
diff --git a/proto/GCGDSChangeCardBackRsp.proto b/proto/GCGDSChangeCardBackRsp.proto
new file mode 100644
index 00000000..d2522549
--- /dev/null
+++ b/proto/GCGDSChangeCardBackRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7044
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGDSChangeCardBackRsp {
+ int32 retcode = 15;
+ uint32 card_back_id = 6;
+ uint32 deck_id = 5;
+}
diff --git a/proto/GCGDSChangeCardFaceReq.proto b/proto/GCGDSChangeCardFaceReq.proto
new file mode 100644
index 00000000..39b66256
--- /dev/null
+++ b/proto/GCGDSChangeCardFaceReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7169
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGDSChangeCardFaceReq {
+ uint32 face_type = 6;
+ uint32 card_id = 3;
+}
diff --git a/proto/GCGDSChangeCardFaceRsp.proto b/proto/GCGDSChangeCardFaceRsp.proto
new file mode 100644
index 00000000..7e205b72
--- /dev/null
+++ b/proto/GCGDSChangeCardFaceRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7331
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGDSChangeCardFaceRsp {
+ uint32 face_type = 8;
+ uint32 card_id = 4;
+ int32 retcode = 9;
+}
diff --git a/proto/GCGDSChangeCurDeckReq.proto b/proto/GCGDSChangeCurDeckReq.proto
new file mode 100644
index 00000000..00b1a933
--- /dev/null
+++ b/proto/GCGDSChangeCurDeckReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7131
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGDSChangeCurDeckReq {
+ uint32 deck_id = 3;
+}
diff --git a/proto/GCGDSChangeCurDeckRsp.proto b/proto/GCGDSChangeCurDeckRsp.proto
new file mode 100644
index 00000000..b0f4bc7d
--- /dev/null
+++ b/proto/GCGDSChangeCurDeckRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7301
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGDSChangeCurDeckRsp {
+ int32 retcode = 8;
+ uint32 deck_id = 14;
+}
diff --git a/proto/Unk2700_BEDLIGJANCJ_ClientReq.proto b/proto/GCGDSChangeDeckNameReq.proto
similarity index 91%
rename from proto/Unk2700_BEDLIGJANCJ_ClientReq.proto
rename to proto/GCGDSChangeDeckNameReq.proto
index 46007c5b..b494d06a 100644
--- a/proto/Unk2700_BEDLIGJANCJ_ClientReq.proto
+++ b/proto/GCGDSChangeDeckNameReq.proto
@@ -19,10 +19,11 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-// CmdId: 4558
+// CmdId: 7432
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_BEDLIGJANCJ_ClientReq {
- uint32 Unk2700_BJHAMKKECEI = 14;
+message GCGDSChangeDeckNameReq {
+ uint32 deck_id = 13;
+ string name = 7;
}
diff --git a/proto/GCGDSChangeDeckNameRsp.proto b/proto/GCGDSChangeDeckNameRsp.proto
new file mode 100644
index 00000000..03e3bf6a
--- /dev/null
+++ b/proto/GCGDSChangeDeckNameRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7916
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGDSChangeDeckNameRsp {
+ uint32 deck_id = 13;
+ int32 retcode = 14;
+ string name = 1;
+}
diff --git a/proto/GCGDSChangeFieldReq.proto b/proto/GCGDSChangeFieldReq.proto
new file mode 100644
index 00000000..3f189af4
--- /dev/null
+++ b/proto/GCGDSChangeFieldReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7541
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGDSChangeFieldReq {
+ uint32 field_id = 6;
+ uint32 deck_id = 11;
+}
diff --git a/proto/GCGDSChangeFieldRsp.proto b/proto/GCGDSChangeFieldRsp.proto
new file mode 100644
index 00000000..d2b5f7a5
--- /dev/null
+++ b/proto/GCGDSChangeFieldRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7444
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGDSChangeFieldRsp {
+ int32 retcode = 1;
+ uint32 field_id = 3;
+ uint32 deck_id = 2;
+}
diff --git a/proto/GCGDSCurDeckChangeNotify.proto b/proto/GCGDSCurDeckChangeNotify.proto
new file mode 100644
index 00000000..9c8c0c03
--- /dev/null
+++ b/proto/GCGDSCurDeckChangeNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7796
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGDSCurDeckChangeNotify {
+ uint32 deck_id = 6;
+}
diff --git a/proto/GCGDSDataNotify.proto b/proto/GCGDSDataNotify.proto
new file mode 100644
index 00000000..83d0fb58
--- /dev/null
+++ b/proto/GCGDSDataNotify.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 "GCGDSCardData.proto";
+import "GCGDSDeckData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7122
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGDSDataNotify {
+ repeated GCGDSDeckData deck_list = 4;
+ repeated uint32 unlock_card_back_id_list = 5;
+ repeated uint32 unlock_field_id_list = 6;
+ uint32 cur_deck_id = 10;
+ repeated GCGDSCardData card_list = 3;
+ repeated uint32 unlock_deck_id_list = 1;
+}
diff --git a/proto/GCGDSDeckData.proto b/proto/GCGDSDeckData.proto
new file mode 100644
index 00000000..f8e8061f
--- /dev/null
+++ b/proto/GCGDSDeckData.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 GCGDSDeckData {
+ repeated uint32 card_list = 1;
+ uint32 card_back_id = 15;
+ repeated uint32 character_card_list = 10;
+ string name = 5;
+ uint32 id = 3;
+ fixed32 create_time = 13;
+ bool is_valid = 4;
+ uint32 field_id = 7;
+}
diff --git a/proto/GCGDSDeckSaveReq.proto b/proto/GCGDSDeckSaveReq.proto
new file mode 100644
index 00000000..a0f06c66
--- /dev/null
+++ b/proto/GCGDSDeckSaveReq.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: 7104
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGDSDeckSaveReq {
+ uint32 deck_id = 1;
+ repeated uint32 card_list = 4;
+ repeated uint32 character_card_list = 9;
+ string name = 14;
+}
diff --git a/proto/GCGDSDeckSaveRsp.proto b/proto/GCGDSDeckSaveRsp.proto
new file mode 100644
index 00000000..a2a40d8c
--- /dev/null
+++ b/proto/GCGDSDeckSaveRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7269
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGDSDeckSaveRsp {
+ fixed32 create_time = 14;
+ uint32 deck_id = 11;
+ int32 retcode = 8;
+ bool is_valid = 4;
+}
diff --git a/proto/GCGDSDeckUnlockNotify.proto b/proto/GCGDSDeckUnlockNotify.proto
new file mode 100644
index 00000000..6878697f
--- /dev/null
+++ b/proto/GCGDSDeckUnlockNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7732
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGDSDeckUnlockNotify {
+ uint32 deck_id = 15;
+}
diff --git a/proto/GCGDSDeleteDeckReq.proto b/proto/GCGDSDeleteDeckReq.proto
new file mode 100644
index 00000000..70aa4f22
--- /dev/null
+++ b/proto/GCGDSDeleteDeckReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7988
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGDSDeleteDeckReq {
+ uint32 deck_id = 15;
+}
diff --git a/proto/GCGDSDeleteDeckRsp.proto b/proto/GCGDSDeleteDeckRsp.proto
new file mode 100644
index 00000000..9d11543f
--- /dev/null
+++ b/proto/GCGDSDeleteDeckRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7524
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGDSDeleteDeckRsp {
+ int32 retcode = 14;
+ uint32 deck_id = 7;
+}
diff --git a/proto/GCGDSFieldUnlockNotify.proto b/proto/GCGDSFieldUnlockNotify.proto
new file mode 100644
index 00000000..8453e8db
--- /dev/null
+++ b/proto/GCGDSFieldUnlockNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7333
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGDSFieldUnlockNotify {
+ uint32 field_id = 1;
+}
diff --git a/proto/GCGDamageDetail.proto b/proto/GCGDamageDetail.proto
new file mode 100644
index 00000000..1fb34477
--- /dev/null
+++ b/proto/GCGDamageDetail.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 GCGDamageDetail {
+ uint32 skill_id = 10;
+ uint32 card_guid = 7;
+}
diff --git a/proto/GCGDiceSideType.proto b/proto/GCGDiceSideType.proto
new file mode 100644
index 00000000..b18d64f1
--- /dev/null
+++ b/proto/GCGDiceSideType.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 GCGDiceSideType {
+ GCG_DICE_SIDE_TYPE_INVALID = 0;
+ GCG_DICE_SIDE_TYPE_CRYO = 1;
+ GCG_DICE_SIDE_TYPE_HYDRO = 2;
+ GCG_DICE_SIDE_TYPE_PYRO = 3;
+ GCG_DICE_SIDE_TYPE_ELECTRO = 4;
+ GCG_DICE_SIDE_TYPE_GEO = 5;
+ GCG_DICE_SIDE_TYPE_DENDRO = 6;
+ GCG_DICE_SIDE_TYPE_ANEMO = 7;
+ GCG_DICE_SIDE_TYPE_PAIMON = 8;
+}
diff --git a/proto/GCGDuel.proto b/proto/GCGDuel.proto
new file mode 100644
index 00000000..53345edc
--- /dev/null
+++ b/proto/GCGDuel.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 "GCGCard.proto";
+import "GCGControllerShowInfo.proto";
+import "GCGCostReviseInfo.proto";
+import "GCGDuelChallenge.proto";
+import "GCGGameBusinessType.proto";
+import "GCGPVEIntention.proto";
+import "GCGPhase.proto";
+import "GCGPlayerField.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGDuel {
+ uint32 server_seq = 3;
+ repeated GCGPlayerField field_list = 7;
+ GCGGameBusinessType business_type = 14;
+ repeated GCGDuelChallenge challenge_list = 5;
+ uint32 game_id = 11;
+ uint32 controller_id = 13;
+ uint32 round = 15;
+ uint32 cur_controller_id = 12;
+ repeated GCGPVEIntention intetion_list = 1;
+ GCGCostReviseInfo cost_revise = 10;
+ repeated uint32 card_id_list = 4;
+ repeated GCGCard card_list = 9;
+ repeated GCGControllerShowInfo show_info_list = 6;
+ uint32 game_type = 2;
+ GCGPhase phase = 8;
+}
diff --git a/proto/GCGDuelChallenge.proto b/proto/GCGDuelChallenge.proto
new file mode 100644
index 00000000..927d793a
--- /dev/null
+++ b/proto/GCGDuelChallenge.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGDuelChallenge {
+ uint32 total_progress = 7;
+ uint32 challenge_id = 10;
+ uint32 cur_progress = 12;
+}
diff --git a/proto/GCGDuelExtra.proto b/proto/GCGDuelExtra.proto
new file mode 100644
index 00000000..7b370515
--- /dev/null
+++ b/proto/GCGDuelExtra.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 "GCGChallengeData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGDuelExtra {
+ repeated uint32 card_id_list = 1;
+ uint32 field_id = 2;
+ uint32 card_back_id = 3;
+ map card_face_map = 4;
+ repeated GCGChallengeData challenge_list = 5;
+ uint32 score = 6;
+}
diff --git a/proto/GCGEndReason.proto b/proto/GCGEndReason.proto
new file mode 100644
index 00000000..9195aace
--- /dev/null
+++ b/proto/GCGEndReason.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 GCGEndReason {
+ GCG_END_REASON_DEFAULT = 0;
+ GCG_END_REASON_DIE = 1;
+ GCG_END_REASON_SURRENDER = 2;
+ GCG_END_REASON_DISCONNECTED = 3;
+ GCG_END_REASON_ROUND_LIMIT = 4;
+}
diff --git a/proto/GCGGameBriefData.proto b/proto/GCGGameBriefData.proto
new file mode 100644
index 00000000..b47daea9
--- /dev/null
+++ b/proto/GCGGameBriefData.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 "GCGGameBusinessType.proto";
+import "GCGPlayerBriefData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGGameBriefData {
+ uint32 game_id = 14;
+ uint32 game_uid = 9;
+ GCGGameBusinessType business_type = 13;
+ uint32 verify_code = 5;
+ repeated GCGPlayerBriefData player_brief_list = 12;
+}
diff --git a/proto/GCGGameBriefDataNotify.proto b/proto/GCGGameBriefDataNotify.proto
new file mode 100644
index 00000000..8a2120c7
--- /dev/null
+++ b/proto/GCGGameBriefDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGGameBriefData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7539
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGGameBriefDataNotify {
+ GCGGameBriefData gcg_brief_data = 10;
+}
diff --git a/proto/GCGGameBusinessType.proto b/proto/GCGGameBusinessType.proto
new file mode 100644
index 00000000..545a790f
--- /dev/null
+++ b/proto/GCGGameBusinessType.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 GCGGameBusinessType {
+ GCG_GAME_BUSINESS_TYPE_NONE = 0;
+ GCG_GAME_BUSINESS_TYPE_GM = 1;
+ GCG_GAME_BUSINESS_TYPE_MATCH = 2;
+ GCG_GAME_BUSINESS_TYPE_PVP = 3;
+ GCG_GAME_BUSINESS_TYPE_TAVERN_CHALLENGE = 4;
+ GCG_GAME_BUSINESS_TYPE_CONST_CHALLENGE = 5;
+ GCG_GAME_BUSINESS_TYPE_WORLD_CHALLENGE = 6;
+ GCG_GAME_BUSINESS_TYPE_BOSS_CHALLENGE = 7;
+ GCG_GAME_BUSINESS_TYPE_WEEK_CHALLENGE = 8;
+}
diff --git a/proto/GCGGrowthLevelNotify.proto b/proto/GCGGrowthLevelNotify.proto
new file mode 100644
index 00000000..bce92339
--- /dev/null
+++ b/proto/GCGGrowthLevelNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7736
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGGrowthLevelNotify {
+ uint32 exp = 7;
+ uint32 level = 11;
+}
diff --git a/proto/GCGGrowthLevelRewardNotify.proto b/proto/GCGGrowthLevelRewardNotify.proto
new file mode 100644
index 00000000..10f4d5ab
--- /dev/null
+++ b/proto/GCGGrowthLevelRewardNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7477
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGGrowthLevelRewardNotify {
+ repeated uint32 level_reward_taken_list = 8;
+}
diff --git a/proto/GCGGrowthLevelTakeRewardReq.proto b/proto/GCGGrowthLevelTakeRewardReq.proto
new file mode 100644
index 00000000..14800ff0
--- /dev/null
+++ b/proto/GCGGrowthLevelTakeRewardReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7051
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGGrowthLevelTakeRewardReq {
+ uint32 level = 4;
+}
diff --git a/proto/PrivateChatSetSequenceRsp.proto b/proto/GCGGrowthLevelTakeRewardRsp.proto
similarity index 93%
rename from proto/PrivateChatSetSequenceRsp.proto
rename to proto/GCGGrowthLevelTakeRewardRsp.proto
index 0fcbe07c..d63a6ead 100644
--- a/proto/PrivateChatSetSequenceRsp.proto
+++ b/proto/GCGGrowthLevelTakeRewardRsp.proto
@@ -19,9 +19,10 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-// CmdId: 4957
+// CmdId: 7670
// EnetChannelId: 0
// EnetIsReliable: true
-message PrivateChatSetSequenceRsp {
+message GCGGrowthLevelTakeRewardRsp {
+ uint32 level = 1;
int32 retcode = 13;
}
diff --git a/proto/GCGHeartBeatNotify.proto b/proto/GCGHeartBeatNotify.proto
new file mode 100644
index 00000000..d9717ea2
--- /dev/null
+++ b/proto/GCGHeartBeatNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7224
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGHeartBeatNotify {
+ uint32 server_seq = 6;
+}
diff --git a/proto/GCGInitFinishReq.proto b/proto/GCGInitFinishReq.proto
new file mode 100644
index 00000000..1df2978f
--- /dev/null
+++ b/proto/GCGInitFinishReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7684
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGInitFinishReq {}
diff --git a/proto/Unk2700_MENCEGPEFAK.proto b/proto/GCGInitFinishRsp.proto
similarity index 95%
rename from proto/Unk2700_MENCEGPEFAK.proto
rename to proto/GCGInitFinishRsp.proto
index 7ea55948..5a9d37ef 100644
--- a/proto/Unk2700_MENCEGPEFAK.proto
+++ b/proto/GCGInitFinishRsp.proto
@@ -19,9 +19,9 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-// CmdId: 8791
+// CmdId: 7433
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_MENCEGPEFAK {
+message GCGInitFinishRsp {
int32 retcode = 2;
}
diff --git a/proto/GCGInviteBattleNotify.proto b/proto/GCGInviteBattleNotify.proto
new file mode 100644
index 00000000..7078cfe6
--- /dev/null
+++ b/proto/GCGInviteBattleNotify.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: 7692
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGInviteBattleNotify {}
diff --git a/proto/GCGInviteGuestBattleReq.proto b/proto/GCGInviteGuestBattleReq.proto
new file mode 100644
index 00000000..4c678874
--- /dev/null
+++ b/proto/GCGInviteGuestBattleReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7783
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGInviteGuestBattleReq {
+ uint32 uid = 11;
+}
diff --git a/proto/GCGInviteGuestBattleRsp.proto b/proto/GCGInviteGuestBattleRsp.proto
new file mode 100644
index 00000000..134aad00
--- /dev/null
+++ b/proto/GCGInviteGuestBattleRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7251
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGInviteGuestBattleRsp {
+ int32 retcode = 3;
+ uint32 uid = 11;
+}
diff --git a/proto/GCGLevelChallengeFinishNotify.proto b/proto/GCGLevelChallengeFinishNotify.proto
new file mode 100644
index 00000000..244fce0d
--- /dev/null
+++ b/proto/GCGLevelChallengeFinishNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7629
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGLevelChallengeFinishNotify {
+ repeated uint32 finished_challenge_id_list = 10;
+ uint32 level_id = 15;
+}
diff --git a/proto/GCGLevelChallengeNotify.proto b/proto/GCGLevelChallengeNotify.proto
new file mode 100644
index 00000000..3c0ae8e1
--- /dev/null
+++ b/proto/GCGLevelChallengeNotify.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 "GCGBossChallengeData.proto";
+import "GCGLevelData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7055
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGLevelChallengeNotify {
+ repeated GCGBossChallengeData unlock_boss_challenge_list = 3;
+ repeated uint32 unlock_world_challenge_list = 8;
+ repeated GCGLevelData level_list = 10;
+}
diff --git a/proto/GCGLevelData.proto b/proto/GCGLevelData.proto
new file mode 100644
index 00000000..b68804f6
--- /dev/null
+++ b/proto/GCGLevelData.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 GCGLevelData {
+ repeated uint32 finished_challenge_id_list = 10;
+ uint32 level_id = 9;
+}
diff --git a/proto/GCGLevelType.proto b/proto/GCGLevelType.proto
new file mode 100644
index 00000000..e2355687
--- /dev/null
+++ b/proto/GCGLevelType.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 GCGLevelType {
+ GCG_LEVEL_TYPE_NONE = 0;
+ GCG_LEVEL_TYPE_CONST = 1;
+ GCG_LEVEL_TYPE_WEEK = 2;
+ GCG_LEVEL_TYPE_WORLD = 3;
+ GCG_LEVEL_TYPE_BOSS = 4;
+ GCG_LEVEL_TYPE_CHARACTER = 5;
+}
diff --git a/proto/Unk2700_PPIBANCGGNI.proto b/proto/GCGMatchInfo.proto
similarity index 90%
rename from proto/Unk2700_PPIBANCGGNI.proto
rename to proto/GCGMatchInfo.proto
index c86291f4..1a3780bd 100644
--- a/proto/Unk2700_PPIBANCGGNI.proto
+++ b/proto/GCGMatchInfo.proto
@@ -17,10 +17,10 @@
syntax = "proto3";
-import "Unk2700_MOFABPNGIKP.proto";
+import "MatchPlayerInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_PPIBANCGGNI {
- Unk2700_MOFABPNGIKP reason = 7;
+message GCGMatchInfo {
+ repeated MatchPlayerInfo player_list = 13;
}
diff --git a/proto/GCGMessage.proto b/proto/GCGMessage.proto
new file mode 100644
index 00000000..141172d2
--- /dev/null
+++ b/proto/GCGMessage.proto
@@ -0,0 +1,84 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGMsgAddCards.proto";
+import "GCGMsgAddDice.proto";
+import "GCGMsgCardUpdate.proto";
+import "GCGMsgCharDie.proto";
+import "GCGMsgClientPerform.proto";
+import "GCGMsgCostDice.proto";
+import "GCGMsgCostRevise.proto";
+import "GCGMsgDiceReroll.proto";
+import "GCGMsgDiceRoll.proto";
+import "GCGMsgDuelDataChange.proto";
+import "GCGMsgGameOver.proto";
+import "GCGMsgModifyAdd.proto";
+import "GCGMsgModifyRemove.proto";
+import "GCGMsgMoveCard.proto";
+import "GCGMsgNewCard.proto";
+import "GCGMsgOpTimer.proto";
+import "GCGMsgPVEDoOp.proto";
+import "GCGMsgPVEGenCardOp.proto";
+import "GCGMsgPass.proto";
+import "GCGMsgPhaseChange.proto";
+import "GCGMsgRemoveCards.proto";
+import "GCGMsgSelectOnStage.proto";
+import "GCGMsgSelectOnStageByEffect.proto";
+import "GCGMsgSkillResult.proto";
+import "GCGMsgTokenChange.proto";
+import "GCGMsgUpdateController.proto";
+import "GCGMsgUseSkill.proto";
+import "GCGMsgUseSkillEnd.proto";
+import "GCGMsgWaitingListChange.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGMessage {
+ oneof message {
+ GCGMsgTokenChange token_change = 12;
+ GCGMsgPhaseChange phase_change = 13;
+ GCGMsgAddCards add_cards = 10;
+ GCGMsgRemoveCards remove_cards = 14;
+ GCGMsgSelectOnStage select_on_stage = 6;
+ GCGMsgDiceRoll dice_roll = 9;
+ GCGMsgDiceReroll dice_reroll = 11;
+ GCGMsgPass pass = 5;
+ GCGMsgCharDie char_die = 2;
+ GCGMsgSkillResult skill_result = 1;
+ GCGMsgCostDice cost_dice = 7;
+ GCGMsgAddDice add_dice = 3;
+ GCGMsgMoveCard move_card = 15;
+ GCGMsgUseSkill use_skill = 4;
+ GCGMsgNewCard new_card = 1848;
+ GCGMsgUpdateController update_controller = 429;
+ GCGMsgModifyAdd modify_add = 1851;
+ GCGMsgModifyRemove modify_remove = 471;
+ GCGMsgUseSkillEnd use_skill_end = 1411;
+ GCGMsgPVEGenCardOp pve_gen_card_op = 1741;
+ GCGMsgPVEDoOp pve_do_op = 614;
+ GCGMsgDuelDataChange duel_data_change = 1008;
+ GCGMsgClientPerform client_perform = 1035;
+ GCGMsgGameOver game_over = 714;
+ GCGMsgOpTimer op_timer = 1862;
+ GCGMsgWaitingListChange waiting_list_change = 1678;
+ GCGMsgCardUpdate card_update = 1879;
+ GCGMsgSelectOnStageByEffect select_on_stage_by_effect = 2042;
+ GCGMsgCostRevise cost_revise = 1350;
+ }
+}
diff --git a/proto/RacingGalleryInfo.proto b/proto/GCGMessagePack.proto
similarity index 89%
rename from proto/RacingGalleryInfo.proto
rename to proto/GCGMessagePack.proto
index 30f73259..bad4b496 100644
--- a/proto/RacingGalleryInfo.proto
+++ b/proto/GCGMessagePack.proto
@@ -17,10 +17,11 @@
syntax = "proto3";
-import "Unk2700_OJJNGIHDJEH.proto";
+import "GCGMessage.proto";
option java_package = "emu.grasscutter.net.proto";
-message RacingGalleryInfo {
- repeated Unk2700_OJJNGIHDJEH record_list = 7;
+message GCGMessagePack {
+ uint32 msg_seq = 10;
+ repeated GCGMessage msg_list = 13;
}
diff --git a/proto/GCGMessagePackNotify.proto b/proto/GCGMessagePackNotify.proto
new file mode 100644
index 00000000..073ecb6e
--- /dev/null
+++ b/proto/GCGMessagePackNotify.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 "GCGMessagePack.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7516
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGMessagePackNotify {
+ uint32 server_seq = 5;
+ GCGMessagePack message_pack = 8;
+}
diff --git a/proto/GCGMsgAddCards.proto b/proto/GCGMsgAddCards.proto
new file mode 100644
index 00000000..ad2e0d97
--- /dev/null
+++ b/proto/GCGMsgAddCards.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 "GCGReason.proto";
+import "GCGZoneType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGMsgAddCards {
+ uint32 pos = 11;
+ GCGZoneType zone = 2;
+ GCGReason reason = 15;
+ uint32 controller_id = 13;
+ repeated uint32 card_guid_list = 14;
+}
diff --git a/proto/GCGMsgAddDice.proto b/proto/GCGMsgAddDice.proto
new file mode 100644
index 00000000..c7064088
--- /dev/null
+++ b/proto/GCGMsgAddDice.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGDiceSideType.proto";
+import "GCGReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGMsgAddDice {
+ GCGReason reason = 4;
+ uint32 controller_id = 10;
+ int32 change_count = 1;
+ map dice_map = 8;
+}
diff --git a/proto/GCGMsgCardUpdate.proto b/proto/GCGMsgCardUpdate.proto
new file mode 100644
index 00000000..3dc65528
--- /dev/null
+++ b/proto/GCGMsgCardUpdate.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGCard.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGMsgCardUpdate {
+ GCGCard card = 7;
+}
diff --git a/proto/GCGMsgCharDie.proto b/proto/GCGMsgCharDie.proto
new file mode 100644
index 00000000..6852cda6
--- /dev/null
+++ b/proto/GCGMsgCharDie.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 GCGMsgCharDie {
+ uint32 controller_id = 5;
+ uint32 card_guid = 11;
+}
diff --git a/proto/GCGMsgClientPerform.proto b/proto/GCGMsgClientPerform.proto
new file mode 100644
index 00000000..b4c8d809
--- /dev/null
+++ b/proto/GCGMsgClientPerform.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGClientPerformType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGMsgClientPerform {
+ repeated uint32 param_list = 2;
+ GCGClientPerformType perform_type = 5;
+}
diff --git a/proto/MusicRecord.proto b/proto/GCGMsgCostDice.proto
similarity index 86%
rename from proto/MusicRecord.proto
rename to proto/GCGMsgCostDice.proto
index 2c4015ec..38108ade 100644
--- a/proto/MusicRecord.proto
+++ b/proto/GCGMsgCostDice.proto
@@ -17,11 +17,12 @@
syntax = "proto3";
-import "Unk2700_AAAMOFPACEA.proto";
+import "GCGReason.proto";
option java_package = "emu.grasscutter.net.proto";
-message MusicRecord {
- repeated Unk2700_AAAMOFPACEA Unk2700_MBJFOAGKKDJ = 4;
- uint32 Unk2700_DFIBAIILJHN = 13;
+message GCGMsgCostDice {
+ uint32 controller_id = 6;
+ repeated uint32 select_dice_index_list = 13;
+ GCGReason reason = 9;
}
diff --git a/proto/MuqadasPotionDetailInfo.proto b/proto/GCGMsgCostRevise.proto
similarity index 88%
rename from proto/MuqadasPotionDetailInfo.proto
rename to proto/GCGMsgCostRevise.proto
index b840574a..86c9a82e 100644
--- a/proto/MuqadasPotionDetailInfo.proto
+++ b/proto/GCGMsgCostRevise.proto
@@ -17,10 +17,11 @@
syntax = "proto3";
-import "Unk3000_IIBHKLNAHHC.proto";
+import "GCGCostReviseInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message MuqadasPotionDetailInfo {
- repeated Unk3000_IIBHKLNAHHC Unk3000_IBEFNBFGAOP = 8;
+message GCGMsgCostRevise {
+ uint32 controller_id = 5;
+ GCGCostReviseInfo cost_revise = 13;
}
diff --git a/proto/GCGMsgDiceReroll.proto b/proto/GCGMsgDiceReroll.proto
new file mode 100644
index 00000000..6ac9aad7
--- /dev/null
+++ b/proto/GCGMsgDiceReroll.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGDiceSideType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGMsgDiceReroll {
+ uint32 controller_id = 2;
+ repeated uint32 select_dice_index_list = 1;
+ repeated GCGDiceSideType dice_side_list = 6;
+}
diff --git a/proto/GCGMsgDiceRoll.proto b/proto/GCGMsgDiceRoll.proto
new file mode 100644
index 00000000..d87cbf5e
--- /dev/null
+++ b/proto/GCGMsgDiceRoll.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGDiceSideType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGMsgDiceRoll {
+ repeated GCGDiceSideType dice_side_list = 10;
+ uint32 dice_num = 15;
+ uint32 controller_id = 5;
+}
diff --git a/proto/GCGMsgDuelDataChange.proto b/proto/GCGMsgDuelDataChange.proto
new file mode 100644
index 00000000..43b7b04c
--- /dev/null
+++ b/proto/GCGMsgDuelDataChange.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 GCGMsgDuelDataChange {
+ uint32 round = 14;
+}
diff --git a/proto/GCGMsgGameOver.proto b/proto/GCGMsgGameOver.proto
new file mode 100644
index 00000000..973faca3
--- /dev/null
+++ b/proto/GCGMsgGameOver.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGEndReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGMsgGameOver {
+ GCGEndReason end_reason = 13;
+ uint32 win_controller_id = 6;
+}
diff --git a/proto/GCGMsgModifyAdd.proto b/proto/GCGMsgModifyAdd.proto
new file mode 100644
index 00000000..8ca7883a
--- /dev/null
+++ b/proto/GCGMsgModifyAdd.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGMsgModifyAdd {
+ uint32 pos = 9;
+ uint32 owner_card_guid = 10;
+ repeated uint32 card_guid_list = 15;
+ uint32 controller_id = 14;
+ GCGReason reason = 11;
+}
diff --git a/proto/Unk2700_HFCDIGNAAPJ.proto b/proto/GCGMsgModifyRemove.proto
similarity index 85%
rename from proto/Unk2700_HFCDIGNAAPJ.proto
rename to proto/GCGMsgModifyRemove.proto
index 153190bf..827c72d0 100644
--- a/proto/Unk2700_HFCDIGNAAPJ.proto
+++ b/proto/GCGMsgModifyRemove.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
+import "GCGReason.proto";
+
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;
+message GCGMsgModifyRemove {
+ uint32 controller_id = 14;
+ GCGReason reason = 12;
+ uint32 owner_card_guid = 5;
+ repeated uint32 card_guid_list = 4;
}
diff --git a/proto/GCGMsgMoveCard.proto b/proto/GCGMsgMoveCard.proto
new file mode 100644
index 00000000..42b9628e
--- /dev/null
+++ b/proto/GCGMsgMoveCard.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 "GCGReason.proto";
+import "GCGZoneType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGMsgMoveCard {
+ uint32 controller_id = 14;
+ GCGZoneType to = 5;
+ GCGZoneType from = 12;
+ bool is_fail = 10;
+ uint32 card_guid = 7;
+ GCGReason reason = 6;
+}
diff --git a/proto/GCGMsgNewCard.proto b/proto/GCGMsgNewCard.proto
new file mode 100644
index 00000000..849eaebd
--- /dev/null
+++ b/proto/GCGMsgNewCard.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGCard.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGMsgNewCard {
+ GCGCard card = 15;
+}
diff --git a/proto/GCGMsgOpTimer.proto b/proto/GCGMsgOpTimer.proto
new file mode 100644
index 00000000..a50f205f
--- /dev/null
+++ b/proto/GCGMsgOpTimer.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGPhaseType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGMsgOpTimer {
+ uint64 begin_time = 9;
+ GCGPhaseType phase = 3;
+ uint64 time_stamp = 13;
+ uint32 controller_id = 8;
+}
diff --git a/proto/GCGMsgPVEDoOp.proto b/proto/GCGMsgPVEDoOp.proto
new file mode 100644
index 00000000..79e0af0c
--- /dev/null
+++ b/proto/GCGMsgPVEDoOp.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 GCGMsgPVEDoOp {
+ uint32 skill_id = 4;
+ uint32 card_guid = 10;
+}
diff --git a/proto/GCGMsgPVEGenCardOp.proto b/proto/GCGMsgPVEGenCardOp.proto
new file mode 100644
index 00000000..f04f21ba
--- /dev/null
+++ b/proto/GCGMsgPVEGenCardOp.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 GCGMsgPVEGenCardOp {
+ repeated uint32 skill_id_list = 1;
+ uint32 card_guid = 11;
+}
diff --git a/proto/GCGMsgPass.proto b/proto/GCGMsgPass.proto
new file mode 100644
index 00000000..8e9394b5
--- /dev/null
+++ b/proto/GCGMsgPass.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 GCGMsgPass {
+ uint32 controller_id = 14;
+}
diff --git a/proto/GCGMsgPhaseChange.proto b/proto/GCGMsgPhaseChange.proto
new file mode 100644
index 00000000..4cfc9b0b
--- /dev/null
+++ b/proto/GCGMsgPhaseChange.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGPhaseType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGMsgPhaseChange {
+ map allow_controller_map = 15;
+ GCGPhaseType before_phase = 12;
+ GCGPhaseType after_phase = 5;
+}
diff --git a/proto/GCGMsgRemoveCards.proto b/proto/GCGMsgRemoveCards.proto
new file mode 100644
index 00000000..16c71a77
--- /dev/null
+++ b/proto/GCGMsgRemoveCards.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGReason.proto";
+import "GCGZoneType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGMsgRemoveCards {
+ uint32 controller_id = 15;
+ GCGZoneType zone = 10;
+ GCGReason reason = 5;
+ repeated uint32 card_guid_list = 1;
+}
diff --git a/proto/IslandPartyActivityDetailInfo.proto b/proto/GCGMsgSelectOnStage.proto
similarity index 87%
rename from proto/IslandPartyActivityDetailInfo.proto
rename to proto/GCGMsgSelectOnStage.proto
index 9d28157e..186ee4e6 100644
--- a/proto/IslandPartyActivityDetailInfo.proto
+++ b/proto/GCGMsgSelectOnStage.proto
@@ -17,10 +17,12 @@
syntax = "proto3";
-import "Unk2800_MBKLJLMLIKF.proto";
+import "GCGReason.proto";
option java_package = "emu.grasscutter.net.proto";
-message IslandPartyActivityDetailInfo {
- repeated Unk2800_MBKLJLMLIKF Unk2800_PDBHCBCLFBM = 15;
+message GCGMsgSelectOnStage {
+ uint32 controller_id = 6;
+ GCGReason reason = 10;
+ uint32 card_guid = 4;
}
diff --git a/proto/BalloonGalleryInfo.proto b/proto/GCGMsgSelectOnStageByEffect.proto
similarity index 89%
rename from proto/BalloonGalleryInfo.proto
rename to proto/GCGMsgSelectOnStageByEffect.proto
index 4460387d..0131c765 100644
--- a/proto/BalloonGalleryInfo.proto
+++ b/proto/GCGMsgSelectOnStageByEffect.proto
@@ -17,10 +17,10 @@
syntax = "proto3";
-import "Unk2700_ONCHFHBBCBN.proto";
-
option java_package = "emu.grasscutter.net.proto";
-message BalloonGalleryInfo {
- repeated Unk2700_ONCHFHBBCBN record_list = 15;
+message GCGMsgSelectOnStageByEffect {
+ uint32 skill_id = 12;
+ uint32 controller_id = 15;
+ uint32 card_guid = 1;
}
diff --git a/proto/GCGMsgSkillResult.proto b/proto/GCGMsgSkillResult.proto
new file mode 100644
index 00000000..0efcc208
--- /dev/null
+++ b/proto/GCGMsgSkillResult.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 "GCGDamageDetail.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGMsgSkillResult {
+ uint32 skill_id = 12;
+ uint32 last_hp = 14;
+ repeated GCGDamageDetail detail_list = 2;
+ uint32 target_card_guid = 7;
+ uint32 effect_element = 5;
+ uint32 from_result_seq = 15;
+ uint32 damage = 6;
+ uint32 result_seq = 4;
+ uint32 src_card_guid = 8;
+}
diff --git a/proto/Unk2700_MIMJBGMEMCA.proto b/proto/GCGMsgTokenChange.proto
similarity index 86%
rename from proto/Unk2700_MIMJBGMEMCA.proto
rename to proto/GCGMsgTokenChange.proto
index 5754ca75..d311b53e 100644
--- a/proto/Unk2700_MIMJBGMEMCA.proto
+++ b/proto/GCGMsgTokenChange.proto
@@ -17,11 +17,14 @@
syntax = "proto3";
+import "GCGReason.proto";
+
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;
+message GCGMsgTokenChange {
+ uint32 before = 13;
+ uint32 token_type = 4;
+ uint32 card_guid = 2;
+ uint32 after = 11;
+ GCGReason reason = 7;
}
diff --git a/proto/GCGMsgUpdateController.proto b/proto/GCGMsgUpdateController.proto
new file mode 100644
index 00000000..d4434d19
--- /dev/null
+++ b/proto/GCGMsgUpdateController.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 GCGMsgUpdateController {
+ map allow_controller_map = 7;
+}
diff --git a/proto/GCGMsgUseSkill.proto b/proto/GCGMsgUseSkill.proto
new file mode 100644
index 00000000..2f93a9bd
--- /dev/null
+++ b/proto/GCGMsgUseSkill.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 GCGMsgUseSkill {
+ uint32 skill_id = 9;
+ uint32 card_guid = 6;
+}
diff --git a/proto/GCGMsgUseSkillEnd.proto b/proto/GCGMsgUseSkillEnd.proto
new file mode 100644
index 00000000..a708d6bd
--- /dev/null
+++ b/proto/GCGMsgUseSkillEnd.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 GCGMsgUseSkillEnd {
+ uint32 card_guid = 11;
+ uint32 skill_id = 12;
+}
diff --git a/proto/GCGMsgWaitingListChange.proto b/proto/GCGMsgWaitingListChange.proto
new file mode 100644
index 00000000..2e56af29
--- /dev/null
+++ b/proto/GCGMsgWaitingListChange.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 GCGMsgWaitingListChange {
+ uint32 cur_index = 6;
+ uint32 controller_id = 4;
+}
diff --git a/proto/GCGNewCardInfoNotify.proto b/proto/GCGNewCardInfoNotify.proto
new file mode 100644
index 00000000..3faade4e
--- /dev/null
+++ b/proto/GCGNewCardInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGCard.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7203
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGNewCardInfoNotify {
+ GCGCard card = 1;
+}
diff --git a/proto/Unk2700_DAGJNGODABM_ClientReq.proto b/proto/GCGOperation.proto
similarity index 59%
rename from proto/Unk2700_DAGJNGODABM_ClientReq.proto
rename to proto/GCGOperation.proto
index b957b2f5..7deca987 100644
--- a/proto/Unk2700_DAGJNGODABM_ClientReq.proto
+++ b/proto/GCGOperation.proto
@@ -17,22 +17,26 @@
syntax = "proto3";
-import "MusicBriefInfo.proto";
-import "MusicRecord.proto";
-import "Unk2700_OPEBMJPOOBL.proto";
+import "GCGOperationAttack.proto";
+import "GCGOperationOnStageSelect.proto";
+import "GCGOperationPass.proto";
+import "GCGOperationPlayCard.proto";
+import "GCGOperationReboot.proto";
+import "GCGOperationRedraw.proto";
+import "GCGOperationReroll.proto";
+import "GCGOperationSurrender.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;
+message GCGOperation {
+ oneof op {
+ GCGOperationRedraw op_redraw = 10;
+ GCGOperationOnStageSelect op_select_on_stage = 4;
+ GCGOperationReroll op_reroll = 9;
+ GCGOperationAttack op_attack = 11;
+ GCGOperationPass op_pass = 15;
+ GCGOperationPlayCard op_play_card = 2;
+ GCGOperationReboot op_reboot = 5;
+ GCGOperationSurrender op_surrender = 1;
}
}
diff --git a/proto/GCGOperationAttack.proto b/proto/GCGOperationAttack.proto
new file mode 100644
index 00000000..c74afbbc
--- /dev/null
+++ b/proto/GCGOperationAttack.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 GCGOperationAttack {
+ repeated uint32 cost_dice_index_list = 8;
+ uint32 skill_id = 2;
+}
diff --git a/proto/GCGOperationData.proto b/proto/GCGOperationData.proto
new file mode 100644
index 00000000..0919d9d5
--- /dev/null
+++ b/proto/GCGOperationData.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGOperation.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGOperationData {
+ uint32 controller_id = 2;
+ GCGOperation op = 12;
+}
diff --git a/proto/GCGOperationOnStageSelect.proto b/proto/GCGOperationOnStageSelect.proto
new file mode 100644
index 00000000..db554aed
--- /dev/null
+++ b/proto/GCGOperationOnStageSelect.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 GCGOperationOnStageSelect {
+ uint32 card_guid = 5;
+ repeated uint32 cost_dice_index_list = 4;
+}
diff --git a/proto/Unk3000_NLFNMGEJDPG.proto b/proto/GCGOperationPass.proto
similarity index 96%
rename from proto/Unk3000_NLFNMGEJDPG.proto
rename to proto/GCGOperationPass.proto
index 760dc986..8be941f0 100644
--- a/proto/Unk3000_NLFNMGEJDPG.proto
+++ b/proto/GCGOperationPass.proto
@@ -19,4 +19,4 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_NLFNMGEJDPG {}
+message GCGOperationPass {}
diff --git a/proto/GCGOperationPlayCard.proto b/proto/GCGOperationPlayCard.proto
new file mode 100644
index 00000000..85f16103
--- /dev/null
+++ b/proto/GCGOperationPlayCard.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGOperationPlayCard {
+ uint32 card_guid = 12;
+ repeated uint32 cost_dice_index_list = 4;
+ repeated uint32 target_card_guid_list = 10;
+}
diff --git a/proto/GCGOperationReboot.proto b/proto/GCGOperationReboot.proto
new file mode 100644
index 00000000..f97b72b1
--- /dev/null
+++ b/proto/GCGOperationReboot.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 GCGOperationReboot {
+ repeated uint32 cost_card_guid_list = 7;
+ repeated uint32 dice_index_list = 6;
+}
diff --git a/proto/Unk3000_JFOGFMJDFFF.proto b/proto/GCGOperationRedraw.proto
similarity index 93%
rename from proto/Unk3000_JFOGFMJDFFF.proto
rename to proto/GCGOperationRedraw.proto
index 433d8841..0586c98a 100644
--- a/proto/Unk3000_JFOGFMJDFFF.proto
+++ b/proto/GCGOperationRedraw.proto
@@ -19,6 +19,6 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_JFOGFMJDFFF {
- bool Unk3000_ADJNBMKCHAA = 9;
+message GCGOperationRedraw {
+ repeated uint32 card_list = 2;
}
diff --git a/proto/GCGOperationReplay.proto b/proto/GCGOperationReplay.proto
new file mode 100644
index 00000000..cde22522
--- /dev/null
+++ b/proto/GCGOperationReplay.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGOperationData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGOperationReplay {
+ uint32 game_id = 1;
+ uint32 seed = 11;
+ repeated GCGOperationData operation_data_list = 9;
+}
diff --git a/proto/Unk2700_IHLONDFBCOE_ClientReq.proto b/proto/GCGOperationReq.proto
similarity index 87%
rename from proto/Unk2700_IHLONDFBCOE_ClientReq.proto
rename to proto/GCGOperationReq.proto
index 6a98a87d..882d55eb 100644
--- a/proto/Unk2700_IHLONDFBCOE_ClientReq.proto
+++ b/proto/GCGOperationReq.proto
@@ -17,14 +17,16 @@
syntax = "proto3";
-import "Unk2700_OPEBMJPOOBL.proto";
+import "GCGOperation.proto";
option java_package = "emu.grasscutter.net.proto";
-// CmdId: 6320
+// CmdId: 7107
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_IHLONDFBCOE_ClientReq {
- Unk2700_OPEBMJPOOBL Unk2700_KHBDAPGDOJA = 13;
+message GCGOperationReq {
+ uint32 op_seq = 2;
+ uint32 redirect_uid = 7;
+ GCGOperation op = 15;
}
diff --git a/proto/BundleInfo.proto b/proto/GCGOperationReroll.proto
similarity index 93%
rename from proto/BundleInfo.proto
rename to proto/GCGOperationReroll.proto
index 43fa14ff..d64f915a 100644
--- a/proto/BundleInfo.proto
+++ b/proto/GCGOperationReroll.proto
@@ -19,6 +19,6 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message BundleInfo {
- repeated uint32 Unk2700_OGNEAEGHCPM = 13;
+message GCGOperationReroll {
+ repeated uint32 dice_index_list = 12;
}
diff --git a/proto/GCGOperationRsp.proto b/proto/GCGOperationRsp.proto
new file mode 100644
index 00000000..4a5dfa6f
--- /dev/null
+++ b/proto/GCGOperationRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7600
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGOperationRsp {
+ int32 retcode = 8;
+ uint32 op_seq = 4;
+}
diff --git a/proto/GCGOperationSurrender.proto b/proto/GCGOperationSurrender.proto
new file mode 100644
index 00000000..7788fe02
--- /dev/null
+++ b/proto/GCGOperationSurrender.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 GCGOperationSurrender {}
diff --git a/proto/GCGPVEIntention.proto b/proto/GCGPVEIntention.proto
new file mode 100644
index 00000000..8d8569b3
--- /dev/null
+++ b/proto/GCGPVEIntention.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 GCGPVEIntention {
+ uint32 card_guid = 9;
+ repeated uint32 skill_id_list = 7;
+}
diff --git a/proto/GCGPhase.proto b/proto/GCGPhase.proto
new file mode 100644
index 00000000..0e0be68d
--- /dev/null
+++ b/proto/GCGPhase.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGPhaseType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGPhase {
+ GCGPhaseType phase_type = 5;
+ map allow_controller_map = 6;
+}
diff --git a/proto/GCGPhaseType.proto b/proto/GCGPhaseType.proto
new file mode 100644
index 00000000..ff5668d5
--- /dev/null
+++ b/proto/GCGPhaseType.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";
+
+enum GCGPhaseType {
+ GCG_PHASE_TYPE_INVALID = 0;
+ GCG_PHASE_TYPE_START = 1;
+ GCG_PHASE_TYPE_DRAW = 2;
+ GCG_PHASE_TYPE_ON_STAGE = 3;
+ GCG_PHASE_TYPE_DICE = 4;
+ GCG_PHASE_TYPE_MAIN = 5;
+ GCG_PHASE_TYPE_END = 6;
+ GCG_PHASE_TYPE_DIE = 7;
+ GCG_PHASE_TYPE_FIN = 8;
+ GCG_PHASE_TYPE_PRE_MAIN = 9;
+ GCG_PHASE_TYPE_REROLL = 10;
+}
diff --git a/proto/GCGPlayCardCostInfo.proto b/proto/GCGPlayCardCostInfo.proto
new file mode 100644
index 00000000..3794d3e3
--- /dev/null
+++ b/proto/GCGPlayCardCostInfo.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 GCGPlayCardCostInfo {
+ map cost_map = 14;
+ uint32 card_id = 1;
+}
diff --git a/proto/GCGPlayerBriefData.proto b/proto/GCGPlayerBriefData.proto
new file mode 100644
index 00000000..58725561
--- /dev/null
+++ b/proto/GCGPlayerBriefData.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 GCGPlayerBriefData {
+ map card_face_map = 8;
+ string nick_name = 9;
+ ProfilePicture profile_picture = 12;
+ repeated uint32 card_id_list = 3;
+ uint32 controller_id = 5;
+ uint32 uid = 10;
+}
diff --git a/proto/GCGPlayerField.proto b/proto/GCGPlayerField.proto
new file mode 100644
index 00000000..b11b3367
--- /dev/null
+++ b/proto/GCGPlayerField.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 "GCGDiceSideType.proto";
+import "GCGPVEIntention.proto";
+import "GCGWaitingCharacter.proto";
+import "GCGZone.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGPlayerField {
+ map modify_zone_map = 2;
+ uint32 cur_waiting_index = 383;
+ GCGZone summon_zone = 1;
+ uint32 field_show_id = 8;
+ uint32 card_back_show_id = 12;
+ uint32 dice_count = 3;
+ uint32 controller_id = 10;
+ GCGZone on_stage_zone = 14;
+ bool is_passed = 7;
+ GCGZone character_zone = 5;
+ uint32 on_stage_character_guid = 6;
+ GCGZone assist_zone = 15;
+ uint32 deck_card_num = 13;
+ repeated GCGDiceSideType dice_side_list = 11;
+ GCGZone hand_zone = 9;
+ repeated GCGPVEIntention intention_list = 1192;
+ repeated GCGWaitingCharacter waiting_list = 4;
+}
diff --git a/proto/GCGReason.proto b/proto/GCGReason.proto
new file mode 100644
index 00000000..48bad5fb
--- /dev/null
+++ b/proto/GCGReason.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 GCGReason {
+ GCG_REASON_DEFAULT = 0;
+ GCG_REASON_EFFECT = 1;
+ GCG_REASON_COST = 2;
+ GCG_REASON_GM = 3;
+ GCG_REASON_ATTACK = 4;
+ GCG_REASON_REBOOT = 5;
+ GCG_REASON_PLAY_CARD = 6;
+ GCG_REASON_QUICKLY_ONSTAGE = 7;
+ GCG_REASON_REMOVE_AFTER_DIE = 8;
+ GCG_REASON_INIT = 9;
+}
diff --git a/proto/GCGResourceStateNotify.proto b/proto/GCGResourceStateNotify.proto
new file mode 100644
index 00000000..0d016d5a
--- /dev/null
+++ b/proto/GCGResourceStateNotify.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7876
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGResourceStateNotify {
+ bool is_complete = 5;
+}
diff --git a/proto/GCGSelectOnStageCostInfo.proto b/proto/GCGSelectOnStageCostInfo.proto
new file mode 100644
index 00000000..66ab78e0
--- /dev/null
+++ b/proto/GCGSelectOnStageCostInfo.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 GCGSelectOnStageCostInfo {
+ map cost_map = 8;
+ uint32 card_guid = 9;
+}
diff --git a/proto/GCGSettleNotify.proto b/proto/GCGSettleNotify.proto
new file mode 100644
index 00000000..d09c22df
--- /dev/null
+++ b/proto/GCGSettleNotify.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 "GCGEndReason.proto";
+import "GCGGameBusinessType.proto";
+import "ItemParam.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7769
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGSettleNotify {
+ uint32 game_id = 7;
+ GCGGameBusinessType business_type = 2;
+ bool is_win = 13;
+ repeated ItemParam reward_item_list = 9;
+ repeated uint32 finished_challenge_id_list = 6;
+ GCGEndReason reason = 3;
+}
diff --git a/proto/GCGSettleOption.proto b/proto/GCGSettleOption.proto
new file mode 100644
index 00000000..f5a34ba7
--- /dev/null
+++ b/proto/GCGSettleOption.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 GCGSettleOption {
+ GCG_SETTLE_OPTION_OPT_NONE = 0;
+ GCG_SETTLE_OPTION_OPT_EXIT = 1;
+ GCG_SETTLE_OPTION_OPT_CONTINUE = 2;
+ GCG_SETTLE_OPTION_OPT_RESTART = 3;
+}
diff --git a/proto/GCGSettleOptionReq.proto b/proto/GCGSettleOptionReq.proto
new file mode 100644
index 00000000..5f65385a
--- /dev/null
+++ b/proto/GCGSettleOptionReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGSettleOption.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7124
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGSettleOptionReq {
+ GCGSettleOption option = 5;
+}
diff --git a/proto/GCGSettleOptionRsp.proto b/proto/GCGSettleOptionRsp.proto
new file mode 100644
index 00000000..da5a1a55
--- /dev/null
+++ b/proto/GCGSettleOptionRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGSettleOption.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7735
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGSettleOptionRsp {
+ GCGSettleOption option = 13;
+ int32 retcode = 14;
+}
diff --git a/proto/GCGSkillHpChangeType.proto b/proto/GCGSkillHpChangeType.proto
new file mode 100644
index 00000000..d3792609
--- /dev/null
+++ b/proto/GCGSkillHpChangeType.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 GCGSkillHpChangeType {
+ GCG_SKILL_HP_CHANGE_TYPE_NONE = 0;
+ GCG_SKILL_HP_CHANGE_TYPE_DAMAGE = 1;
+ GCG_SKILL_HP_CHANGE_TYPE_HEAL = 2;
+}
diff --git a/proto/GCGSkillPreviewAskReq.proto b/proto/GCGSkillPreviewAskReq.proto
new file mode 100644
index 00000000..0c5b0ee8
--- /dev/null
+++ b/proto/GCGSkillPreviewAskReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7509
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGSkillPreviewAskReq {}
diff --git a/proto/GCGSkillPreviewAskRsp.proto b/proto/GCGSkillPreviewAskRsp.proto
new file mode 100644
index 00000000..c25c28bf
--- /dev/null
+++ b/proto/GCGSkillPreviewAskRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7409
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGSkillPreviewAskRsp {
+ int32 retcode = 1;
+}
diff --git a/proto/GCGSkillPreviewCardInfo.proto b/proto/GCGSkillPreviewCardInfo.proto
new file mode 100644
index 00000000..d0baddc9
--- /dev/null
+++ b/proto/GCGSkillPreviewCardInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGZoneType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGSkillPreviewCardInfo {
+ uint32 controller_id = 3;
+ uint32 owner_card_guid = 11;
+ GCGZoneType zone_type = 14;
+ uint32 card_id = 13;
+ uint32 card_guid = 6;
+}
diff --git a/proto/GCGSkillPreviewElementReactionInfo.proto b/proto/GCGSkillPreviewElementReactionInfo.proto
new file mode 100644
index 00000000..8d09a76c
--- /dev/null
+++ b/proto/GCGSkillPreviewElementReactionInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGSkillPreviewReactionInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGSkillPreviewElementReactionInfo {
+ repeated uint32 fresh_list = 8;
+ repeated uint32 source_list = 2;
+ repeated GCGSkillPreviewReactionInfo reaction_list = 14;
+}
diff --git a/proto/GCGSkillPreviewHpInfo.proto b/proto/GCGSkillPreviewHpInfo.proto
new file mode 100644
index 00000000..45ecf7f7
--- /dev/null
+++ b/proto/GCGSkillPreviewHpInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGSkillHpChangeType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGSkillPreviewHpInfo {
+ GCGSkillHpChangeType change_type = 4;
+ uint32 hp_change_value = 13;
+}
diff --git a/proto/GCGSkillPreviewInfo.proto b/proto/GCGSkillPreviewInfo.proto
new file mode 100644
index 00000000..ab9f9b35
--- /dev/null
+++ b/proto/GCGSkillPreviewInfo.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 "GCGSkillPreviewCardInfo.proto";
+import "GCGSkillPreviewElementReactionInfo.proto";
+import "GCGSkillPreviewHpInfo.proto";
+import "GCGSkillPreviewOnstageChangeInfo.proto";
+import "GCGSkillPreviewTokenChangeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGSkillPreviewInfo {
+ repeated GCGSkillPreviewCardInfo rm_card_list = 12;
+ map hp_info_map = 8;
+ map reaction_info_map = 5;
+ repeated GCGSkillPreviewOnstageChangeInfo change_onstage_character_list = 9;
+ uint32 skill_id = 6;
+ map card_token_change_map = 3;
+ repeated GCGSkillPreviewCardInfo add_card_list = 11;
+}
diff --git a/proto/GCGSkillPreviewNotify.proto b/proto/GCGSkillPreviewNotify.proto
new file mode 100644
index 00000000..47bddc83
--- /dev/null
+++ b/proto/GCGSkillPreviewNotify.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 "GCGSkillPreviewInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7503
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGSkillPreviewNotify {
+ repeated GCGSkillPreviewInfo skill_preview_list = 9;
+ uint32 onstage_card_guid = 5;
+ uint32 controller_id = 15;
+}
diff --git a/proto/GCGSkillPreviewOnstageChangeInfo.proto b/proto/GCGSkillPreviewOnstageChangeInfo.proto
new file mode 100644
index 00000000..2b3969d6
--- /dev/null
+++ b/proto/GCGSkillPreviewOnstageChangeInfo.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 GCGSkillPreviewOnstageChangeInfo {
+ uint32 target_onstage_card_guid = 6;
+ uint32 source_onstage_card_guid = 15;
+}
diff --git a/proto/GCGSkillPreviewReactionInfo.proto b/proto/GCGSkillPreviewReactionInfo.proto
new file mode 100644
index 00000000..c493917b
--- /dev/null
+++ b/proto/GCGSkillPreviewReactionInfo.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 GCGSkillPreviewReactionInfo {
+ uint32 source_element = 13;
+ uint32 target_element = 1;
+}
diff --git a/proto/GCGSkillPreviewTokenChangeInfo.proto b/proto/GCGSkillPreviewTokenChangeInfo.proto
new file mode 100644
index 00000000..c4154dd4
--- /dev/null
+++ b/proto/GCGSkillPreviewTokenChangeInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGSkillPreviewTokenInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGSkillPreviewTokenChangeInfo {
+ repeated GCGSkillPreviewTokenInfo token_change_list = 14;
+}
diff --git a/proto/GCGSkillPreviewTokenInfo.proto b/proto/GCGSkillPreviewTokenInfo.proto
new file mode 100644
index 00000000..affb2074
--- /dev/null
+++ b/proto/GCGSkillPreviewTokenInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGSkillPreviewTokenInfo {
+ uint32 token_type = 3;
+ uint32 after_value = 12;
+ uint32 before_value = 15;
+}
diff --git a/proto/GCGStartChallengeReq.proto b/proto/GCGStartChallengeReq.proto
new file mode 100644
index 00000000..8436d3f3
--- /dev/null
+++ b/proto/GCGStartChallengeReq.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 "GCGLevelType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7595
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGStartChallengeReq {
+ GCGLevelType level_type = 5;
+ uint32 config_id = 13;
+ uint32 level_id = 12;
+}
diff --git a/proto/GCGStartChallengeRsp.proto b/proto/GCGStartChallengeRsp.proto
new file mode 100644
index 00000000..91b7d04e
--- /dev/null
+++ b/proto/GCGStartChallengeRsp.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 "GCGLevelType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7763
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGStartChallengeRsp {
+ GCGLevelType level_type = 12;
+ int32 retcode = 15;
+ uint32 config_id = 6;
+ uint32 level_id = 1;
+}
diff --git a/proto/GCGTCInviteReq.proto b/proto/GCGTCInviteReq.proto
new file mode 100644
index 00000000..8d8f24b8
--- /dev/null
+++ b/proto/GCGTCInviteReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7922
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GCGTCInviteReq {
+ uint32 level_id = 3;
+ uint32 character_id = 6;
+}
diff --git a/proto/GCGTCInviteRsp.proto b/proto/GCGTCInviteRsp.proto
new file mode 100644
index 00000000..21b42dff
--- /dev/null
+++ b/proto/GCGTCInviteRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7328
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGTCInviteRsp {
+ uint32 character_id = 12;
+ int32 retcode = 5;
+}
diff --git a/proto/GCGTCTavernChallengeData.proto b/proto/GCGTCTavernChallengeData.proto
new file mode 100644
index 00000000..3f5183bb
--- /dev/null
+++ b/proto/GCGTCTavernChallengeData.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 GCGTCTavernChallengeData {
+ repeated uint32 unlock_level_id_list = 1;
+ uint32 character_id = 8;
+}
diff --git a/proto/GCGTCTavernChallengeDataNotify.proto b/proto/GCGTCTavernChallengeDataNotify.proto
new file mode 100644
index 00000000..e5f09d3a
--- /dev/null
+++ b/proto/GCGTCTavernChallengeDataNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGTCTavernChallengeData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7294
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGTCTavernChallengeDataNotify {
+ repeated GCGTCTavernChallengeData tavern_challenge_list = 13;
+}
diff --git a/proto/GCGTCTavernChallengeUpdateNotify.proto b/proto/GCGTCTavernChallengeUpdateNotify.proto
new file mode 100644
index 00000000..c8070c21
--- /dev/null
+++ b/proto/GCGTCTavernChallengeUpdateNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGTCTavernChallengeData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7184
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGTCTavernChallengeUpdateNotify {
+ GCGTCTavernChallengeData tavern_challenge = 5;
+}
diff --git a/proto/GCGTCTavernInfoNotify.proto b/proto/GCGTCTavernInfoNotify.proto
new file mode 100644
index 00000000..24621282
--- /dev/null
+++ b/proto/GCGTCTavernInfoNotify.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: 7011
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGTCTavernInfoNotify {
+ bool is_last_duel_win = 14;
+ uint32 level_id = 11;
+ bool is_owner_in_duel = 5;
+ uint32 point_id = 3;
+ uint32 avatar_id = 12;
+ uint32 character_id = 7;
+ uint32 element_type = 10;
+}
diff --git a/proto/GCGTavernNpcInfo.proto b/proto/GCGTavernNpcInfo.proto
new file mode 100644
index 00000000..f99bf307
--- /dev/null
+++ b/proto/GCGTavernNpcInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGTavernNpcInfo {
+ uint32 id = 6;
+ uint32 level_id = 10;
+ uint32 scene_point_id = 3;
+}
diff --git a/proto/GCGTavernNpcInfoNotify.proto b/proto/GCGTavernNpcInfoNotify.proto
new file mode 100644
index 00000000..b9afef13
--- /dev/null
+++ b/proto/GCGTavernNpcInfoNotify.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 "GCGTavernNpcInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7290
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGTavernNpcInfoNotify {
+ repeated GCGTavernNpcInfo week_npc_list = 1;
+ GCGTavernNpcInfo character_npc = 5;
+ repeated GCGTavernNpcInfo const_npc_list = 15;
+}
diff --git a/proto/GCGToken.proto b/proto/GCGToken.proto
new file mode 100644
index 00000000..2bd4b0a5
--- /dev/null
+++ b/proto/GCGToken.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 GCGToken {
+ uint32 value = 11;
+ uint32 key = 4;
+}
diff --git a/proto/GCGWaitingCharacter.proto b/proto/GCGWaitingCharacter.proto
new file mode 100644
index 00000000..807e35bf
--- /dev/null
+++ b/proto/GCGWaitingCharacter.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 GCGWaitingCharacter {
+ uint32 card_id = 2;
+ uint32 cond_count = 14;
+}
diff --git a/proto/GCGWeekChallengeInfo.proto b/proto/GCGWeekChallengeInfo.proto
new file mode 100644
index 00000000..ed342b1b
--- /dev/null
+++ b/proto/GCGWeekChallengeInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GCGWeekChallengeInfo {
+ uint32 npc_id = 4;
+ bool is_finished = 7;
+ uint32 unlock_time = 1;
+}
diff --git a/proto/GCGWeekChallengeInfoNotify.proto b/proto/GCGWeekChallengeInfoNotify.proto
new file mode 100644
index 00000000..5cbf4554
--- /dev/null
+++ b/proto/GCGWeekChallengeInfoNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GCGWeekChallengeInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7615
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGWeekChallengeInfoNotify {
+ repeated GCGWeekChallengeInfo challenge_info_list = 15;
+ uint32 next_refresh_time = 7;
+}
diff --git a/proto/GCGWorldChallengeUnlockNotify.proto b/proto/GCGWorldChallengeUnlockNotify.proto
new file mode 100644
index 00000000..0fe058d5
--- /dev/null
+++ b/proto/GCGWorldChallengeUnlockNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 7204
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GCGWorldChallengeUnlockNotify {
+ repeated uint32 unlock_id_list = 8;
+}
diff --git a/proto/GCGZone.proto b/proto/GCGZone.proto
new file mode 100644
index 00000000..6c348fd0
--- /dev/null
+++ b/proto/GCGZone.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 GCGZone {
+ repeated uint32 card_list = 4;
+}
diff --git a/proto/Unk2700_JMPCGMBHJLG.proto b/proto/GCGZoneType.proto
similarity index 79%
rename from proto/Unk2700_JMPCGMBHJLG.proto
rename to proto/GCGZoneType.proto
index 8582ac1f..388353f2 100644
--- a/proto/Unk2700_JMPCGMBHJLG.proto
+++ b/proto/GCGZoneType.proto
@@ -17,12 +17,16 @@
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;
+enum GCGZoneType {
+ GCG_ZONE_TYPE_INVALID = 0;
+ GCG_ZONE_TYPE_DECK = 1;
+ GCG_ZONE_TYPE_HAND = 2;
+ GCG_ZONE_TYPE_CHARACTER = 3;
+ GCG_ZONE_TYPE_MODIFY = 4;
+ GCG_ZONE_TYPE_SUMMON = 5;
+ GCG_ZONE_TYPE_ASSIST = 7;
+ GCG_ZONE_TYPE_ONSTAGE = 8;
+ GCG_ZONE_TYPE_RULE = 9;
}
diff --git a/proto/GMObstacleInfo.proto b/proto/GMObstacleInfo.proto
new file mode 100644
index 00000000..260e5c45
--- /dev/null
+++ b/proto/GMObstacleInfo.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 "MathQuaternion.proto";
+import "ShapeType.proto";
+import "Vector.proto";
+import "Vector3Int.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GMObstacleInfo {
+ int64 timestamp = 14;
+ ShapeType shape = 2;
+ int32 obstacle_id = 13;
+ MathQuaternion rotation = 3;
+ Vector center = 8;
+ Vector3Int extents = 15;
+}
diff --git a/proto/GMShowObstacleRsp.proto b/proto/GMShowObstacleRsp.proto
index ba82d925..9dd5cf1b 100644
--- a/proto/GMShowObstacleRsp.proto
+++ b/proto/GMShowObstacleRsp.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "ObstacleInfo.proto";
+import "GMObstacleInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -26,5 +26,5 @@ option java_package = "emu.grasscutter.net.proto";
// EnetIsReliable: true
message GMShowObstacleRsp {
int32 retcode = 5;
- repeated ObstacleInfo obstacles = 6;
+ repeated GMObstacleInfo obstacles = 6;
}
diff --git a/proto/Unk2700_AOIJNFMIAIP.proto b/proto/GachaActivityCreateRobotReq.proto
similarity index 96%
rename from proto/Unk2700_AOIJNFMIAIP.proto
rename to proto/GachaActivityCreateRobotReq.proto
index 2060c5ee..2fd35f4d 100644
--- a/proto/Unk2700_AOIJNFMIAIP.proto
+++ b/proto/GachaActivityCreateRobotReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_AOIJNFMIAIP {}
+message GachaActivityCreateRobotReq {}
diff --git a/proto/Unk2700_APNHPEJCDMO.proto b/proto/GachaActivityCreateRobotRsp.proto
similarity index 94%
rename from proto/Unk2700_APNHPEJCDMO.proto
rename to proto/GachaActivityCreateRobotRsp.proto
index d493338b..09cb59b5 100644
--- a/proto/Unk2700_APNHPEJCDMO.proto
+++ b/proto/GachaActivityCreateRobotRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8610
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_APNHPEJCDMO {
- uint32 Unk2700_PCKNCDNENCD = 1;
+message GachaActivityCreateRobotRsp {
+ uint32 robot_id = 1;
int32 retcode = 3;
}
diff --git a/proto/GachaActivityDetailInfo.proto b/proto/GachaActivityDetailInfo.proto
index 6abe905f..12d68dbd 100644
--- a/proto/GachaActivityDetailInfo.proto
+++ b/proto/GachaActivityDetailInfo.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "GachaStage.proto";
+import "GachaStageData.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;
+ repeated uint32 have_get_robot_list = 6;
+ repeated GachaStageData gacha_stage_list = 4;
+ map have_reward_robot_num_map = 8;
+ uint32 tech_create_robot_id = 3;
+ map robot_num_map = 5;
+ uint32 robot_finish_num = 12;
}
diff --git a/proto/Unk2700_NAEHEDLGLKA.proto b/proto/GachaActivityNextStageReq.proto
similarity index 96%
rename from proto/Unk2700_NAEHEDLGLKA.proto
rename to proto/GachaActivityNextStageReq.proto
index 4cf8a5b9..0582545c 100644
--- a/proto/Unk2700_NAEHEDLGLKA.proto
+++ b/proto/GachaActivityNextStageReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_NAEHEDLGLKA {}
+message GachaActivityNextStageReq {}
diff --git a/proto/Unk2700_FADPOMMGLCH.proto b/proto/GachaActivityNextStageRsp.proto
similarity index 96%
rename from proto/Unk2700_FADPOMMGLCH.proto
rename to proto/GachaActivityNextStageRsp.proto
index f01d50fa..bf1db073 100644
--- a/proto/Unk2700_FADPOMMGLCH.proto
+++ b/proto/GachaActivityNextStageRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8918
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_FADPOMMGLCH {
+message GachaActivityNextStageRsp {
uint32 stage_id = 13;
int32 retcode = 15;
}
diff --git a/proto/GachaActivityPercentNotify.proto b/proto/GachaActivityPercentNotify.proto
new file mode 100644
index 00000000..b6cd3e3d
--- /dev/null
+++ b/proto/GachaActivityPercentNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy 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 GachaActivityPercentNotify {
+ uint32 item_stage = 14;
+ map target_num_map = 6;
+ uint32 sub_item_stage = 2;
+ uint32 percent = 13;
+}
diff --git a/proto/Unk2700_EMHAHHAKOGA.proto b/proto/GachaActivityResetReq.proto
similarity index 97%
rename from proto/Unk2700_EMHAHHAKOGA.proto
rename to proto/GachaActivityResetReq.proto
index 3bf59b1e..d0b1a509 100644
--- a/proto/Unk2700_EMHAHHAKOGA.proto
+++ b/proto/GachaActivityResetReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_EMHAHHAKOGA {
+message GachaActivityResetReq {
uint32 stage_id = 2;
}
diff --git a/proto/Unk2700_CGNFBKKBPJE.proto b/proto/GachaActivityResetRsp.proto
similarity index 97%
rename from proto/Unk2700_CGNFBKKBPJE.proto
rename to proto/GachaActivityResetRsp.proto
index 468114fb..e257a3c7 100644
--- a/proto/Unk2700_CGNFBKKBPJE.proto
+++ b/proto/GachaActivityResetRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8240
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_CGNFBKKBPJE {
+message GachaActivityResetRsp {
int32 retcode = 13;
uint32 stage_id = 6;
}
diff --git a/proto/Unk2700_NMEENGOJOKD.proto b/proto/GachaActivityTakeRewardReq.proto
similarity index 92%
rename from proto/Unk2700_NMEENGOJOKD.proto
rename to proto/GachaActivityTakeRewardReq.proto
index c7655ddb..20268288 100644
--- a/proto/Unk2700_NMEENGOJOKD.proto
+++ b/proto/GachaActivityTakeRewardReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_NMEENGOJOKD {
- map Unk2700_DACHHINLDDJ = 12;
+message GachaActivityTakeRewardReq {
+ map robot_num_map = 12;
}
diff --git a/proto/Unk2700_AHHFDDOGCNA.proto b/proto/GachaActivityTakeRewardRsp.proto
similarity index 92%
rename from proto/Unk2700_AHHFDDOGCNA.proto
rename to proto/GachaActivityTakeRewardRsp.proto
index 6890990d..a3ae0955 100644
--- a/proto/Unk2700_AHHFDDOGCNA.proto
+++ b/proto/GachaActivityTakeRewardRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8768
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_AHHFDDOGCNA {
- map Unk2700_DACHHINLDDJ = 3;
+message GachaActivityTakeRewardRsp {
+ map robot_num_map = 3;
int32 retcode = 13;
}
diff --git a/proto/Unk2700_EDCIENBEEDI.proto b/proto/GachaActivityUpdateElemNotify.proto
similarity index 94%
rename from proto/Unk2700_EDCIENBEEDI.proto
rename to proto/GachaActivityUpdateElemNotify.proto
index d61266ef..38d23bd2 100644
--- a/proto/Unk2700_EDCIENBEEDI.proto
+++ b/proto/GachaActivityUpdateElemNotify.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_EDCIENBEEDI {
- uint32 Unk2700_HABMDJOFBDG = 10;
+message GachaActivityUpdateElemNotify {
+ uint32 elem_type = 10;
}
diff --git a/proto/GachaInfo.proto b/proto/GachaInfo.proto
index 4ff9cc01..cb383d8b 100644
--- a/proto/GachaInfo.proto
+++ b/proto/GachaInfo.proto
@@ -25,7 +25,7 @@ message GachaInfo {
uint32 ten_cost_item_id = 2;
uint32 end_time = 14;
repeated uint32 display_up4_item_list = 1875;
- uint32 Unk3100_JKILPCKLNPI = 469;
+ uint32 cur_schedule_daily_gacha_times = 469;
repeated GachaUpInfo gacha_up_info_list = 1233;
string gacha_prob_url = 8;
string gacha_prefab_path = 15;
diff --git a/proto/GachaItem.proto b/proto/GachaItem.proto
index 29ae9f98..4aadde45 100644
--- a/proto/GachaItem.proto
+++ b/proto/GachaItem.proto
@@ -23,7 +23,7 @@ import "ItemParam.proto";
option java_package = "emu.grasscutter.net.proto";
message GachaItem {
- ItemParam gacha_item_ = 7;
+ ItemParam gacha_item = 7;
bool is_gacha_item_new = 6;
bool is_flash_card = 8;
repeated ItemParam token_item_list = 9;
diff --git a/proto/GachaStage.proto b/proto/GachaStageData.proto
similarity index 93%
rename from proto/GachaStage.proto
rename to proto/GachaStageData.proto
index 6a53724a..b57b0fc4 100644
--- a/proto/GachaStage.proto
+++ b/proto/GachaStageData.proto
@@ -19,8 +19,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message GachaStage {
+message GachaStageData {
uint32 stage_id = 15;
- map Unk2700_DNMNEMKIELD = 14;
+ map target_num_map = 14;
bool is_open = 13;
}
diff --git a/proto/Unk2800_OMGNOBICOCD.proto b/proto/GadgetChangeLevelTagReq.proto
similarity index 90%
rename from proto/Unk2800_OMGNOBICOCD.proto
rename to proto/GadgetChangeLevelTagReq.proto
index b12e9f1c..d794f09f 100644
--- a/proto/Unk2800_OMGNOBICOCD.proto
+++ b/proto/GadgetChangeLevelTagReq.proto
@@ -25,8 +25,8 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2800_OMGNOBICOCD {
- uint32 Unk2800_DPEOIJKEAPB = 14;
- CustomGadgetTreeInfo Unk2700_OCIHJFOKHPK = 11;
+message GadgetChangeLevelTagReq {
+ uint32 level_tag_id = 14;
+ CustomGadgetTreeInfo combination_info = 11;
uint32 gadget_entity_id = 10;
}
diff --git a/proto/Unk2800_KPJKAJLNAED.proto b/proto/GadgetChangeLevelTagRsp.proto
similarity index 96%
rename from proto/Unk2800_KPJKAJLNAED.proto
rename to proto/GadgetChangeLevelTagRsp.proto
index d3dfeb82..2f891ed1 100644
--- a/proto/Unk2800_KPJKAJLNAED.proto
+++ b/proto/GadgetChangeLevelTagRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 874
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_KPJKAJLNAED {
+message GadgetChangeLevelTagRsp {
int32 retcode = 12;
}
diff --git a/proto/GadgetInteractReq.proto b/proto/GadgetInteractReq.proto
index a2ef451a..cf4f5f14 100644
--- a/proto/GadgetInteractReq.proto
+++ b/proto/GadgetInteractReq.proto
@@ -31,6 +31,6 @@ message GadgetInteractReq {
bool is_use_condense_resin = 15;
InterOpType op_type = 5;
ResinCostType resin_cost_type = 1;
- uint32 Unk2700_DCPBGMKCHGJ = 2;
+ uint32 ui_interact_id = 2;
uint32 gadget_entity_id = 4;
}
diff --git a/proto/GadgetInteractRsp.proto b/proto/GadgetInteractRsp.proto
index ff25b56d..b457d8c3 100644
--- a/proto/GadgetInteractRsp.proto
+++ b/proto/GadgetInteractRsp.proto
@@ -17,8 +17,8 @@
syntax = "proto3";
-import "InteractType.proto";
import "InterOpType.proto";
+import "InteractType.proto";
option java_package = "emu.grasscutter.net.proto";
diff --git a/proto/Unk2700_NNDKOICOGGH_ServerNotify.proto b/proto/GalleryCrystalLinkBuffInfoNotify.proto
similarity index 93%
rename from proto/Unk2700_NNDKOICOGGH_ServerNotify.proto
rename to proto/GalleryCrystalLinkBuffInfoNotify.proto
index a7e06ffa..d30c7159 100644
--- a/proto/Unk2700_NNDKOICOGGH_ServerNotify.proto
+++ b/proto/GalleryCrystalLinkBuffInfoNotify.proto
@@ -22,8 +22,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 5539
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_NNDKOICOGGH_ServerNotify {
+message GalleryCrystalLinkBuffInfoNotify {
uint32 gallery_id = 13;
- bool Unk2700_INDLFDCOFDG = 11;
+ bool is_buff_valid = 11;
uint32 buff_id = 14;
}
diff --git a/proto/Unk2700_FPOBGEBDAOD_ServerNotify.proto b/proto/GalleryCrystalLinkKillMonsterNotify.proto
similarity index 95%
rename from proto/Unk2700_FPOBGEBDAOD_ServerNotify.proto
rename to proto/GalleryCrystalLinkKillMonsterNotify.proto
index 139438ab..29bde113 100644
--- a/proto/Unk2700_FPOBGEBDAOD_ServerNotify.proto
+++ b/proto/GalleryCrystalLinkKillMonsterNotify.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 5547
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_FPOBGEBDAOD_ServerNotify {
+message GalleryCrystalLinkKillMonsterNotify {
uint32 score = 7;
uint32 gallery_id = 9;
}
diff --git a/proto/Unk2800_KOMBBIEEGCP.proto b/proto/GalleryIslandPartyDownHillInfoNotify.proto
similarity index 92%
rename from proto/Unk2800_KOMBBIEEGCP.proto
rename to proto/GalleryIslandPartyDownHillInfoNotify.proto
index b4487a7a..35198a67 100644
--- a/proto/Unk2800_KOMBBIEEGCP.proto
+++ b/proto/GalleryIslandPartyDownHillInfoNotify.proto
@@ -22,8 +22,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 5522
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_KOMBBIEEGCP {
+message GalleryIslandPartyDownHillInfoNotify {
uint32 gallery_id = 2;
uint32 coin = 9;
- uint32 Unk2800_LBPCDCHOOLJ = 11;
+ uint32 total_kill_monster_count = 11;
}
diff --git a/proto/GalleryStartNotify.proto b/proto/GalleryStartNotify.proto
index 164800c5..61439e56 100644
--- a/proto/GalleryStartNotify.proto
+++ b/proto/GalleryStartNotify.proto
@@ -25,10 +25,11 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
message GalleryStartNotify {
- uint32 gallery_id = 13;
uint32 end_time = 6;
uint32 player_count = 11;
uint32 owner_uid = 9;
+ uint32 gallery_id = 13;
+ uint32 start_time = 5;
oneof detail {
GalleryFlowerStartParam flower_start_param = 15;
}
diff --git a/proto/GalleryStartSource.proto b/proto/GalleryStartSource.proto
new file mode 100644
index 00000000..70f6a464
--- /dev/null
+++ b/proto/GalleryStartSource.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 GalleryStartSource {
+ GALLERY_START_SOURCE_BY_NONE = 0;
+ GALLERY_START_SOURCE_BY_MATCH = 1;
+ GALLERY_START_SOURCE_BY_DRAFT = 2;
+}
diff --git a/proto/GalleryStopReason.proto b/proto/GalleryStopReason.proto
new file mode 100644
index 00000000..25fee6bb
--- /dev/null
+++ b/proto/GalleryStopReason.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";
+
+enum GalleryStopReason {
+ GALLERY_STOP_REASON_NONE = 0;
+ GALLERY_STOP_REASON_TIMEUP = 1;
+ GALLERY_STOP_REASON_CLIENT_INTERRUPT = 2;
+ GALLERY_STOP_REASON_LUA_INTERRUPT_SUCCESS = 3;
+ GALLERY_STOP_REASON_LUA_INTERRUPT_FAIL = 4;
+ GALLERY_STOP_REASON_OWNER_LEAVE_SCENE = 5;
+ GALLERY_STOP_REASON_PLAY_INIT_FAILED = 6;
+ GALLERY_STOP_REASON_OTHER_PLAYER_ENTER = 7;
+ GALLERY_STOP_REASON_AVATAR_DIE = 8;
+ GALLERY_STOP_REASON_FINISHED = 9;
+ GALLERY_STOP_REASON_FUNGUS_ALL_DIE = 10;
+}
diff --git a/proto/Unk2800_IBDOMAIDPGK.proto b/proto/GalleryWillStartCountdownNotify.proto
similarity index 87%
rename from proto/Unk2800_IBDOMAIDPGK.proto
rename to proto/GalleryWillStartCountdownNotify.proto
index 1922176d..5f5bee5c 100644
--- a/proto/Unk2800_IBDOMAIDPGK.proto
+++ b/proto/GalleryWillStartCountdownNotify.proto
@@ -17,16 +17,16 @@
syntax = "proto3";
-import "Unk2800_FMAOEPEBKHB.proto";
+import "GalleryStartSource.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 5594
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_IBDOMAIDPGK {
- Unk2800_FMAOEPEBKHB Unk2800_ENJGEFBCLOL = 11;
+message GalleryWillStartCountdownNotify {
+ GalleryStartSource start_source = 11;
uint32 end_time = 12;
- bool Unk2800_OCCCDEMDONA = 7;
+ bool is_end = 7;
uint32 gallery_id = 14;
}
diff --git a/proto/ElementReliquaryRequest.proto b/proto/GameplayRecommendationElementReliquaryRequest.proto
similarity index 94%
rename from proto/ElementReliquaryRequest.proto
rename to proto/GameplayRecommendationElementReliquaryRequest.proto
index 43e4b095..ab35f006 100644
--- a/proto/ElementReliquaryRequest.proto
+++ b/proto/GameplayRecommendationElementReliquaryRequest.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message ElementReliquaryRequest {
+message GameplayRecommendationElementReliquaryRequest {
uint32 equip_type = 9;
uint32 element_type = 12;
}
diff --git a/proto/GameplayRecommendationElementReliquaryResponse.proto b/proto/GameplayRecommendationElementReliquaryResponse.proto
new file mode 100644
index 00000000..ff858bea
--- /dev/null
+++ b/proto/GameplayRecommendationElementReliquaryResponse.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GameplayRecommendationReliquaryMainPropData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GameplayRecommendationElementReliquaryResponse {
+ uint32 element_type = 11;
+ repeated GameplayRecommendationReliquaryMainPropData main_prop_data_list = 5;
+ uint32 equip_type = 15;
+}
diff --git a/proto/Unk2700_GBBDJMDIDEI.proto b/proto/GameplayRecommendationReliquaryMainPropData.proto
similarity index 92%
rename from proto/Unk2700_GBBDJMDIDEI.proto
rename to proto/GameplayRecommendationReliquaryMainPropData.proto
index 87701579..4d422ca3 100644
--- a/proto/Unk2700_GBBDJMDIDEI.proto
+++ b/proto/GameplayRecommendationReliquaryMainPropData.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_GBBDJMDIDEI {
- uint32 Unk2700_JIGANFOOJHB = 1;
+message GameplayRecommendationReliquaryMainPropData {
+ uint32 permillage = 1;
uint32 main_prop_id = 12;
}
diff --git a/proto/ReliquaryRequest.proto b/proto/GameplayRecommendationReliquaryRequest.proto
similarity index 95%
rename from proto/ReliquaryRequest.proto
rename to proto/GameplayRecommendationReliquaryRequest.proto
index 39e7e895..3251d4ac 100644
--- a/proto/ReliquaryRequest.proto
+++ b/proto/GameplayRecommendationReliquaryRequest.proto
@@ -19,6 +19,6 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message ReliquaryRequest {
+message GameplayRecommendationReliquaryRequest {
uint32 equip_type = 6;
}
diff --git a/proto/ReliquaryResponse.proto b/proto/GameplayRecommendationReliquaryResponse.proto
similarity index 83%
rename from proto/ReliquaryResponse.proto
rename to proto/GameplayRecommendationReliquaryResponse.proto
index 5a674104..f1bdffa5 100644
--- a/proto/ReliquaryResponse.proto
+++ b/proto/GameplayRecommendationReliquaryResponse.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "Unk2700_GBBDJMDIDEI.proto";
+import "GameplayRecommendationReliquaryMainPropData.proto";
option java_package = "emu.grasscutter.net.proto";
-message ReliquaryResponse {
- repeated Unk2700_GBBDJMDIDEI Unk2700_DMDHDIHGPFA = 8;
+message GameplayRecommendationReliquaryResponse {
+ repeated GameplayRecommendationReliquaryMainPropData main_prop_data_list = 8;
uint32 equip_type = 3;
}
diff --git a/proto/SkillRequest.proto b/proto/GameplayRecommendationSkillRequest.proto
similarity index 95%
rename from proto/SkillRequest.proto
rename to proto/GameplayRecommendationSkillRequest.proto
index 6d60c8d1..d710e398 100644
--- a/proto/SkillRequest.proto
+++ b/proto/GameplayRecommendationSkillRequest.proto
@@ -19,6 +19,6 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message SkillRequest {
+message GameplayRecommendationSkillRequest {
uint32 skill_depot_id = 1;
}
diff --git a/proto/SkillResponse.proto b/proto/GameplayRecommendationSkillResponse.proto
similarity index 95%
rename from proto/SkillResponse.proto
rename to proto/GameplayRecommendationSkillResponse.proto
index fba594ea..0a68cc78 100644
--- a/proto/SkillResponse.proto
+++ b/proto/GameplayRecommendationSkillResponse.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message SkillResponse {
+message GameplayRecommendationSkillResponse {
uint32 skill_depot_id = 13;
repeated uint32 skill_id_list = 9;
}
diff --git a/proto/GearActivityDetailInfo.proto b/proto/GearActivityDetailInfo.proto
index 3ca50e3b..d19f7067 100644
--- a/proto/GearActivityDetailInfo.proto
+++ b/proto/GearActivityDetailInfo.proto
@@ -17,12 +17,12 @@
syntax = "proto3";
-import "Unk2800_BPOJIIDEADD.proto";
-import "Unk2800_JIPMJPAKIKE.proto";
+import "GearLevelData.proto";
+import "JigsawPictureData.proto";
option java_package = "emu.grasscutter.net.proto";
message GearActivityDetailInfo {
- repeated Unk2800_BPOJIIDEADD Unk2800_GBAPCBPMHNJ = 14;
- Unk2800_JIPMJPAKIKE Unk2800_IHEHGOBCINC = 8;
+ repeated GearLevelData gear_level_data_list = 14;
+ JigsawPictureData jigsaw_picture_data = 8;
}
diff --git a/proto/Unk2800_KHLHFFHGEHA.proto b/proto/GearActivityFinishPlayGearReq.proto
similarity index 87%
rename from proto/Unk2800_KHLHFFHGEHA.proto
rename to proto/GearActivityFinishPlayGearReq.proto
index e58baacc..6299f4fa 100644
--- a/proto/Unk2800_KHLHFFHGEHA.proto
+++ b/proto/GearActivityFinishPlayGearReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2800_FGFMMFAKDEL.proto";
+import "GearColumnInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,9 +25,9 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2800_KHLHFFHGEHA {
+message GearActivityFinishPlayGearReq {
bool is_success = 4;
- bool Unk2800_ICNCEKIJNJA = 12;
- repeated Unk2800_FGFMMFAKDEL Unk2800_EGJDBBGNMFI = 9;
+ bool use_clue = 12;
+ repeated GearColumnInfo gear_column_info_list = 9;
uint32 level_id = 5;
}
diff --git a/proto/Unk2800_ACHELBEEBIP.proto b/proto/GearActivityFinishPlayGearRsp.proto
similarity index 96%
rename from proto/Unk2800_ACHELBEEBIP.proto
rename to proto/GearActivityFinishPlayGearRsp.proto
index 5da674d7..f8ea53e0 100644
--- a/proto/Unk2800_ACHELBEEBIP.proto
+++ b/proto/GearActivityFinishPlayGearRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 21800
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_ACHELBEEBIP {
+message GearActivityFinishPlayGearRsp {
int32 retcode = 2;
bool is_success = 15;
uint32 level_id = 3;
diff --git a/proto/Unk2800_OOKIPFHPJMG.proto b/proto/GearActivityFinishPlayPictureReq.proto
similarity index 96%
rename from proto/Unk2800_OOKIPFHPJMG.proto
rename to proto/GearActivityFinishPlayPictureReq.proto
index e949413f..57097d4e 100644
--- a/proto/Unk2800_OOKIPFHPJMG.proto
+++ b/proto/GearActivityFinishPlayPictureReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2800_OOKIPFHPJMG {
+message GearActivityFinishPlayPictureReq {
bool is_success = 8;
}
diff --git a/proto/Unk2800_EKGCCBDIKFI.proto b/proto/GearActivityFinishPlayPictureRsp.proto
similarity index 96%
rename from proto/Unk2800_EKGCCBDIKFI.proto
rename to proto/GearActivityFinishPlayPictureRsp.proto
index e36f71b4..95a26ec3 100644
--- a/proto/Unk2800_EKGCCBDIKFI.proto
+++ b/proto/GearActivityFinishPlayPictureRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 21851
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_EKGCCBDIKFI {
+message GearActivityFinishPlayPictureRsp {
int32 retcode = 12;
bool is_success = 6;
}
diff --git a/proto/Unk2800_COCHLKHLCPO.proto b/proto/GearActivityStartPlayGearReq.proto
similarity index 96%
rename from proto/Unk2800_COCHLKHLCPO.proto
rename to proto/GearActivityStartPlayGearReq.proto
index 5d157f8a..6e73a4dd 100644
--- a/proto/Unk2800_COCHLKHLCPO.proto
+++ b/proto/GearActivityStartPlayGearReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2800_COCHLKHLCPO {
+message GearActivityStartPlayGearReq {
uint32 level_id = 5;
}
diff --git a/proto/Unk2800_FHCJIICLONO.proto b/proto/GearActivityStartPlayGearRsp.proto
similarity index 96%
rename from proto/Unk2800_FHCJIICLONO.proto
rename to proto/GearActivityStartPlayGearRsp.proto
index 34dc318e..7ccab28d 100644
--- a/proto/Unk2800_FHCJIICLONO.proto
+++ b/proto/GearActivityStartPlayGearRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 21025
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_FHCJIICLONO {
+message GearActivityStartPlayGearRsp {
uint32 level_id = 9;
int32 retcode = 2;
}
diff --git a/proto/Unk2800_BDAPFODFMNE.proto b/proto/GearActivityStartPlayPictureReq.proto
similarity index 96%
rename from proto/Unk2800_BDAPFODFMNE.proto
rename to proto/GearActivityStartPlayPictureReq.proto
index 0c38e10e..1e8f27f5 100644
--- a/proto/Unk2800_BDAPFODFMNE.proto
+++ b/proto/GearActivityStartPlayPictureReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2800_BDAPFODFMNE {}
+message GearActivityStartPlayPictureReq {}
diff --git a/proto/Unk2800_HHPCNJGKIPP.proto b/proto/GearActivityStartPlayPictureRsp.proto
similarity index 96%
rename from proto/Unk2800_HHPCNJGKIPP.proto
rename to proto/GearActivityStartPlayPictureRsp.proto
index d1244f2a..99809b18 100644
--- a/proto/Unk2800_HHPCNJGKIPP.proto
+++ b/proto/GearActivityStartPlayPictureRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 23388
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_HHPCNJGKIPP {
+message GearActivityStartPlayPictureRsp {
int32 retcode = 6;
}
diff --git a/proto/GearColumnInfo.proto b/proto/GearColumnInfo.proto
new file mode 100644
index 00000000..80a089c7
--- /dev/null
+++ b/proto/GearColumnInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GearColumnInfo {
+ uint32 gear_column_index = 7;
+ bool is_overturn = 3;
+ bool has_gear = 2;
+ uint32 gear_id = 11;
+ uint32 placement_layer = 6;
+}
diff --git a/proto/Unk2800_BPOJIIDEADD.proto b/proto/GearLevelData.proto
similarity index 91%
rename from proto/Unk2800_BPOJIIDEADD.proto
rename to proto/GearLevelData.proto
index 11655839..48aaad37 100644
--- a/proto/Unk2800_BPOJIIDEADD.proto
+++ b/proto/GearLevelData.proto
@@ -19,10 +19,10 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2800_BPOJIIDEADD {
- uint32 Unk2800_MMPELBBNFOD = 8;
+message GearLevelData {
+ uint32 shortest_time = 8;
uint32 open_time = 11;
- uint32 Unk2800_MGPEODNKEEC = 5;
+ uint32 last_duration = 5;
uint32 level_id = 12;
bool is_finished = 9;
bool is_open = 3;
diff --git a/proto/Unk3000_EPHGPACBEHL.proto b/proto/GetAllMailNotify.proto
similarity index 94%
rename from proto/Unk3000_EPHGPACBEHL.proto
rename to proto/GetAllMailNotify.proto
index 08de5c4b..65e78b6f 100644
--- a/proto/Unk3000_EPHGPACBEHL.proto
+++ b/proto/GetAllMailNotify.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_EPHGPACBEHL {
- bool Unk2700_OPEHLDAGICF = 13;
+message GetAllMailNotify {
+ bool is_collected = 13;
}
diff --git a/proto/GetAllMailReq.proto b/proto/GetAllMailReq.proto
index 66095270..50b4d398 100644
--- a/proto/GetAllMailReq.proto
+++ b/proto/GetAllMailReq.proto
@@ -24,5 +24,5 @@ option java_package = "emu.grasscutter.net.proto";
// EnetIsReliable: true
// IsAllowClient: true
message GetAllMailReq {
- bool Unk2700_OPEHLDAGICF = 7;
+ bool is_collected = 7;
}
diff --git a/proto/Unk3000_BMLKKNEINNF.proto b/proto/GetAllMailResultNotify.proto
similarity index 86%
rename from proto/Unk3000_BMLKKNEINNF.proto
rename to proto/GetAllMailResultNotify.proto
index 3deb3a2b..89f1147b 100644
--- a/proto/Unk3000_BMLKKNEINNF.proto
+++ b/proto/GetAllMailResultNotify.proto
@@ -24,11 +24,11 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 1481
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_BMLKKNEINNF {
- string Unk3000_HJKCLHGMBFC = 9;
+message GetAllMailResultNotify {
+ string transaction = 9;
repeated MailData mail_list = 5;
- uint32 Unk3000_OJIKNBEGAKL = 11;
- uint32 Unk3000_DKLGOIEPECB = 4;
- bool Unk2700_OPEHLDAGICF = 7;
+ uint32 page_index = 11;
+ uint32 total_page_count = 4;
+ bool is_collected = 7;
int32 retcode = 14;
}
diff --git a/proto/GetAllMailRsp.proto b/proto/GetAllMailRsp.proto
index e6d1d705..a2e29218 100644
--- a/proto/GetAllMailRsp.proto
+++ b/proto/GetAllMailRsp.proto
@@ -27,6 +27,6 @@ option java_package = "emu.grasscutter.net.proto";
message GetAllMailRsp {
int32 retcode = 8;
repeated MailData mail_list = 14;
- bool Unk2700_OPEHLDAGICF = 1;
+ bool is_collected = 1;
bool is_truncated = 2;
}
diff --git a/proto/Unk2700_BKEELPKCHGO_ClientReq.proto b/proto/GetCustomDungeonReq.proto
similarity index 96%
rename from proto/Unk2700_BKEELPKCHGO_ClientReq.proto
rename to proto/GetCustomDungeonReq.proto
index c414a577..27785171 100644
--- a/proto/Unk2700_BKEELPKCHGO_ClientReq.proto
+++ b/proto/GetCustomDungeonReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_BKEELPKCHGO_ClientReq {}
+message GetCustomDungeonReq {}
diff --git a/proto/Unk2700_MCOFAKMDMEF_ServerRsp.proto b/proto/GetCustomDungeonRsp.proto
similarity index 83%
rename from proto/Unk2700_MCOFAKMDMEF_ServerRsp.proto
rename to proto/GetCustomDungeonRsp.proto
index 050cf27b..ae3cda86 100644
--- a/proto/Unk2700_MCOFAKMDMEF_ServerRsp.proto
+++ b/proto/GetCustomDungeonRsp.proto
@@ -17,15 +17,16 @@
syntax = "proto3";
-import "Unk2700_OPEBMJPOOBL.proto";
+import "CustomDungeonBanInfo.proto";
+import "CustomDungeonBrief.proto";
option java_package = "emu.grasscutter.net.proto";
-// CmdId: 6345
+// CmdId: 6227
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_MCOFAKMDMEF_ServerRsp {
- repeated uint64 Unk2700_AOOAAECDCOA = 15;
+message GetCustomDungeonRsp {
int32 retcode = 10;
- Unk2700_OPEBMJPOOBL Unk2700_KHBDAPGDOJA = 12;
+ CustomDungeonBanInfo ban_info = 14;
+ repeated CustomDungeonBrief brief_list = 5;
}
diff --git a/proto/GetGachaInfoRsp.proto b/proto/GetGachaInfoRsp.proto
index 11bd2eb6..0ae0a376 100644
--- a/proto/GetGachaInfoRsp.proto
+++ b/proto/GetGachaInfoRsp.proto
@@ -25,10 +25,10 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
message GetGachaInfoRsp {
- bool Unk3100_IDBLFJDHHPI = 6;
+ bool is_under_general_restrict = 6;
uint32 gacha_random = 9;
int32 retcode = 10;
- bool Unk2700_LEEPELHDING = 2;
- uint32 Unk2700_OJKKHDLEDCI = 5;
+ bool is_under_minors_restrict = 2;
+ uint32 daily_gacha_times = 5;
repeated GachaInfo gacha_info_list = 13;
}
diff --git a/proto/Unk2700_EAGIANJBNGK_ClientReq.proto b/proto/GetGameplayRecommendationReq.proto
similarity index 71%
rename from proto/Unk2700_EAGIANJBNGK_ClientReq.proto
rename to proto/GetGameplayRecommendationReq.proto
index b5bfe8e8..30110c8d 100644
--- a/proto/Unk2700_EAGIANJBNGK_ClientReq.proto
+++ b/proto/GetGameplayRecommendationReq.proto
@@ -17,9 +17,9 @@
syntax = "proto3";
-import "ElementReliquaryRequest.proto";
-import "ReliquaryRequest.proto";
-import "SkillRequest.proto";
+import "GameplayRecommendationElementReliquaryRequest.proto";
+import "GameplayRecommendationReliquaryRequest.proto";
+import "GameplayRecommendationSkillRequest.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -27,11 +27,11 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_EAGIANJBNGK_ClientReq {
+message GetGameplayRecommendationReq {
uint32 avatar_id = 9;
oneof detail {
- SkillRequest skill_request = 553;
- ReliquaryRequest reliquary_request = 1993;
- ElementReliquaryRequest element_reliquary_request = 1489;
+ GameplayRecommendationSkillRequest skill_request = 553;
+ GameplayRecommendationReliquaryRequest reliquary_request = 1993;
+ GameplayRecommendationElementReliquaryRequest element_reliquary_request = 1489;
}
}
diff --git a/proto/Unk2700_KDDPDHGPGEF_ServerRsp.proto b/proto/GetGameplayRecommendationRsp.proto
similarity index 71%
rename from proto/Unk2700_KDDPDHGPGEF_ServerRsp.proto
rename to proto/GetGameplayRecommendationRsp.proto
index b7237bbe..5c7baeab 100644
--- a/proto/Unk2700_KDDPDHGPGEF_ServerRsp.proto
+++ b/proto/GetGameplayRecommendationRsp.proto
@@ -17,21 +17,21 @@
syntax = "proto3";
-import "ElementReliquaryResponse.proto";
-import "ReliquaryResponse.proto";
-import "SkillResponse.proto";
+import "GameplayRecommendationElementReliquaryResponse.proto";
+import "GameplayRecommendationReliquaryResponse.proto";
+import "GameplayRecommendationSkillResponse.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 123
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_KDDPDHGPGEF_ServerRsp {
+message GetGameplayRecommendationRsp {
int32 retcode = 6;
uint32 avatar_id = 15;
oneof detail {
- SkillResponse skill_response = 1022;
- ReliquaryResponse reliquary_response = 196;
- ElementReliquaryResponse element_reliquary_response = 167;
+ GameplayRecommendationSkillResponse skill_response = 1022;
+ GameplayRecommendationReliquaryResponse reliquary_response = 196;
+ GameplayRecommendationElementReliquaryResponse element_reliquary_response = 167;
}
}
diff --git a/proto/Unk3000_EOLNDBMGCBP.proto b/proto/GetHomeExchangeWoodInfoReq.proto
similarity index 96%
rename from proto/Unk3000_EOLNDBMGCBP.proto
rename to proto/GetHomeExchangeWoodInfoReq.proto
index 6d0ce396..f677ea9b 100644
--- a/proto/Unk3000_EOLNDBMGCBP.proto
+++ b/proto/GetHomeExchangeWoodInfoReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_EOLNDBMGCBP {}
+message GetHomeExchangeWoodInfoReq {}
diff --git a/proto/Unk3000_GCBMILHPIKA.proto b/proto/GetHomeExchangeWoodInfoRsp.proto
similarity index 82%
rename from proto/Unk3000_GCBMILHPIKA.proto
rename to proto/GetHomeExchangeWoodInfoRsp.proto
index 9107f020..11a35a32 100644
--- a/proto/Unk3000_GCBMILHPIKA.proto
+++ b/proto/GetHomeExchangeWoodInfoRsp.proto
@@ -22,14 +22,14 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 4659
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_GCBMILHPIKA {
+message GetHomeExchangeWoodInfoRsp {
int32 retcode = 10;
- repeated Unk3000_PPGINNAFPIF Unk3000_EBIEGNHLMFP = 5;
+ repeated HomeExchangeWoodInfo wood_info_list = 5;
- message Unk3000_PPGINNAFPIF {
- uint32 Unk3000_CLMLONOEHLB = 7;
- uint32 Unk3000_HCAJDIBHKDG = 12;
+ message HomeExchangeWoodInfo {
+ uint32 exchange_limit = 7;
+ uint32 exchanged_count = 12;
uint32 next_refresh_time = 14;
- uint32 Unk3000_LOFNFMJFGNB = 2;
+ uint32 wood_id = 2;
}
}
diff --git a/proto/GetInvestigationMonsterReq.proto b/proto/GetInvestigationMonsterReq.proto
index 955fa497..f2d27016 100644
--- a/proto/GetInvestigationMonsterReq.proto
+++ b/proto/GetInvestigationMonsterReq.proto
@@ -25,5 +25,5 @@ option java_package = "emu.grasscutter.net.proto";
// IsAllowClient: true
message GetInvestigationMonsterReq {
repeated uint32 city_id_list = 3;
- bool Unk2700_DEMFDHNFBBJ = 4;
+ bool is_for_mark = 4;
}
diff --git a/proto/GetInvestigationMonsterRsp.proto b/proto/GetInvestigationMonsterRsp.proto
index cbfebf40..0f76873b 100644
--- a/proto/GetInvestigationMonsterRsp.proto
+++ b/proto/GetInvestigationMonsterRsp.proto
@@ -28,5 +28,5 @@ option java_package = "emu.grasscutter.net.proto";
message GetInvestigationMonsterRsp {
repeated InvestigationMonster monster_list = 10;
int32 retcode = 1;
- bool Unk2700_DEMFDHNFBBJ = 2;
+ bool is_for_mark = 2;
}
diff --git a/proto/Unk2700_ILBBAKACCHA_ClientReq.proto b/proto/GetParentQuestVideoKeyReq.proto
similarity index 96%
rename from proto/Unk2700_ILBBAKACCHA_ClientReq.proto
rename to proto/GetParentQuestVideoKeyReq.proto
index 0c512385..907d94d2 100644
--- a/proto/Unk2700_ILBBAKACCHA_ClientReq.proto
+++ b/proto/GetParentQuestVideoKeyReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_ILBBAKACCHA_ClientReq {
+message GetParentQuestVideoKeyReq {
uint32 parent_quest_id = 15;
}
diff --git a/proto/Unk2700_GIFGEDBCPFC_ServerRsp.proto b/proto/GetParentQuestVideoKeyRsp.proto
similarity index 93%
rename from proto/Unk2700_GIFGEDBCPFC_ServerRsp.proto
rename to proto/GetParentQuestVideoKeyRsp.proto
index abf5003b..88c79165 100644
--- a/proto/Unk2700_GIFGEDBCPFC_ServerRsp.proto
+++ b/proto/GetParentQuestVideoKeyRsp.proto
@@ -22,8 +22,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 417
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_GIFGEDBCPFC_ServerRsp {
+message GetParentQuestVideoKeyRsp {
int32 retcode = 1;
- uint64 Unk2700_KHDDIJNOICK = 14;
+ uint64 video_key = 14;
uint32 parent_quest_id = 10;
}
diff --git a/proto/GetPlayerTokenReq.proto b/proto/GetPlayerTokenReq.proto
index a9239896..1f41a6de 100644
--- a/proto/GetPlayerTokenReq.proto
+++ b/proto/GetPlayerTokenReq.proto
@@ -31,7 +31,7 @@ message GetPlayerTokenReq {
uint32 channel_id = 15;
string account_ext = 9;
string country_code = 5;
- string client_seed = 760;
+ string client_rand_key = 760;
bool is_guest = 6;
string birthday = 1718;
uint32 sub_channel_id = 8;
@@ -39,7 +39,7 @@ message GetPlayerTokenReq {
string client_ip_str = 3;
string psn_id = 13;
uint32 account_type = 1;
- uint32 Unk2700_NOJPEHIBDJH = 995;
+ uint32 minors_reg_min_age = 995;
uint32 cloud_client_ip = 14;
uint32 key_id = 1787;
uint32 uid = 2;
diff --git a/proto/GetPlayerTokenRsp.proto b/proto/GetPlayerTokenRsp.proto
index df95379d..febdb70d 100644
--- a/proto/GetPlayerTokenRsp.proto
+++ b/proto/GetPlayerTokenRsp.proto
@@ -30,7 +30,7 @@ message GetPlayerTokenRsp {
string country_code = 2013;
bytes extra_bin_data = 3;
string secret_key = 15;
- uint32 Unk2700_NOJPEHIBDJH = 1561;
+ uint32 minors_reg_min_age = 1561;
uint32 black_uid_end_time = 14;
uint32 tag = 1635;
string token = 11;
@@ -41,17 +41,17 @@ message GetPlayerTokenRsp {
string msg = 7;
uint32 account_type = 5;
uint32 sub_channel_id = 1802;
- bool Unk2700_FLBKPCPGPDH = 2028;
- string encrypted_seed = 1493;
+ bool is_watchdog_uid = 2028;
+ string server_rand_key = 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;
+ repeated uint32 finish_collection_id_list = 1640;
uint32 platform_type = 8;
uint32 reg_platform = 1112;
bool is_login_white_list = 573;
- string seed_signature = 1140;
+ string sign = 1140;
}
diff --git a/proto/Unk2700_JKOKBPFCILA_ClientReq.proto b/proto/GetQuestLackingResourceReq.proto
similarity index 96%
rename from proto/Unk2700_JKOKBPFCILA_ClientReq.proto
rename to proto/GetQuestLackingResourceReq.proto
index ec1cf7c2..29e91421 100644
--- a/proto/Unk2700_JKOKBPFCILA_ClientReq.proto
+++ b/proto/GetQuestLackingResourceReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_JKOKBPFCILA_ClientReq {
+message GetQuestLackingResourceReq {
uint32 quest_id = 4;
}
diff --git a/proto/Unk2700_LKFKCNJFGIF_ServerRsp.proto b/proto/GetQuestLackingResourceRsp.proto
similarity index 96%
rename from proto/Unk2700_LKFKCNJFGIF_ServerRsp.proto
rename to proto/GetQuestLackingResourceRsp.proto
index 84d4a784..dacef6ca 100644
--- a/proto/Unk2700_LKFKCNJFGIF_ServerRsp.proto
+++ b/proto/GetQuestLackingResourceRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 458
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_LKFKCNJFGIF_ServerRsp {
+message GetQuestLackingResourceRsp {
uint32 quest_id = 4;
int32 retcode = 11;
repeated uint32 lacked_npc_list = 8;
diff --git a/proto/Unk2700_ECBEAMKBGMD_ClientReq.proto b/proto/GetRecommendCustomDungeonReq.proto
similarity index 93%
rename from proto/Unk2700_ECBEAMKBGMD_ClientReq.proto
rename to proto/GetRecommendCustomDungeonReq.proto
index 650893e2..59ee660c 100644
--- a/proto/Unk2700_ECBEAMKBGMD_ClientReq.proto
+++ b/proto/GetRecommendCustomDungeonReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_ECBEAMKBGMD_ClientReq {
- bool Unk2700_DFOGBOAGMPI = 13;
+message GetRecommendCustomDungeonReq {
+ bool is_refresh = 13;
}
diff --git a/proto/Unk2700_FNHKFHGNLPP_ServerRsp.proto b/proto/GetRecommendCustomDungeonRsp.proto
similarity index 88%
rename from proto/Unk2700_FNHKFHGNLPP_ServerRsp.proto
rename to proto/GetRecommendCustomDungeonRsp.proto
index 4624d3c1..05d63f37 100644
--- a/proto/Unk2700_FNHKFHGNLPP_ServerRsp.proto
+++ b/proto/GetRecommendCustomDungeonRsp.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_GHHCCEHGKLH.proto";
+import "OtherCustomDungeonBrief.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 6248
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_FNHKFHGNLPP_ServerRsp {
- repeated Unk2700_GHHCCEHGKLH Unk2700_BCIBEPMFLGN = 8;
+message GetRecommendCustomDungeonRsp {
+ repeated OtherCustomDungeonBrief custom_dungeon_list = 8;
int32 retcode = 14;
}
diff --git a/proto/Unk2700_GBJOLBGLELJ.proto b/proto/GetRogueDairyRepairInfoReq.proto
similarity index 96%
rename from proto/Unk2700_GBJOLBGLELJ.proto
rename to proto/GetRogueDairyRepairInfoReq.proto
index 00e65373..efb55d1c 100644
--- a/proto/Unk2700_GBJOLBGLELJ.proto
+++ b/proto/GetRogueDairyRepairInfoReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_GBJOLBGLELJ {}
+message GetRogueDairyRepairInfoReq {}
diff --git a/proto/Unk2700_PDGJFHAGMKD.proto b/proto/GetRogueDairyRepairInfoRsp.proto
similarity index 96%
rename from proto/Unk2700_PDGJFHAGMKD.proto
rename to proto/GetRogueDairyRepairInfoRsp.proto
index 6e916b9e..d787825b 100644
--- a/proto/Unk2700_PDGJFHAGMKD.proto
+++ b/proto/GetRogueDairyRepairInfoRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8447
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_PDGJFHAGMKD {
+message GetRogueDairyRepairInfoRsp {
int32 retcode = 3;
}
diff --git a/proto/Unk2700_GFMPOHAGMLO_ClientReq.proto b/proto/GetStoreCustomDungeonReq.proto
similarity index 96%
rename from proto/Unk2700_GFMPOHAGMLO_ClientReq.proto
rename to proto/GetStoreCustomDungeonReq.proto
index f7773a84..5728cefc 100644
--- a/proto/Unk2700_GFMPOHAGMLO_ClientReq.proto
+++ b/proto/GetStoreCustomDungeonReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_GFMPOHAGMLO_ClientReq {}
+message GetStoreCustomDungeonReq {}
diff --git a/proto/Unk2700_MJCCKKHJNMP_ServerRsp.proto b/proto/GetStoreCustomDungeonRsp.proto
similarity index 88%
rename from proto/Unk2700_MJCCKKHJNMP_ServerRsp.proto
rename to proto/GetStoreCustomDungeonRsp.proto
index d0b069b3..b5511f86 100644
--- a/proto/Unk2700_MJCCKKHJNMP_ServerRsp.proto
+++ b/proto/GetStoreCustomDungeonRsp.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_GHHCCEHGKLH.proto";
+import "OtherCustomDungeonBrief.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 6212
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_MJCCKKHJNMP_ServerRsp {
+message GetStoreCustomDungeonRsp {
int32 retcode = 13;
- repeated Unk2700_GHHCCEHGKLH Unk2700_BCIBEPMFLGN = 7;
+ repeated OtherCustomDungeonBrief custom_dungeon_list = 7;
}
diff --git a/proto/GetUgcBriefInfoReq.proto b/proto/GetUgcBriefInfoReq.proto
new file mode 100644
index 00000000..c8c58fc6
--- /dev/null
+++ b/proto/GetUgcBriefInfoReq.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 "UgcType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6325
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetUgcBriefInfoReq {
+ uint64 ugc_guid = 7;
+ UgcType ugc_type = 10;
+}
diff --git a/proto/GetUgcBriefInfoRsp.proto b/proto/GetUgcBriefInfoRsp.proto
new file mode 100644
index 00000000..6e7dbf86
--- /dev/null
+++ b/proto/GetUgcBriefInfoRsp.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 "UgcMusicBriefInfo.proto";
+import "UgcType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6307
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetUgcBriefInfoRsp {
+ uint64 ugc_guid = 3;
+ UgcType ugc_type = 11;
+ int32 retcode = 4;
+ oneof brief {
+ UgcMusicBriefInfo music_brief_info = 2;
+ }
+}
diff --git a/proto/GetUgcReq.proto b/proto/GetUgcReq.proto
new file mode 100644
index 00000000..89d19fee
--- /dev/null
+++ b/proto/GetUgcReq.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 "GetUgcType.proto";
+import "RecordUsage.proto";
+import "UgcType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6326
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message GetUgcReq {
+ UgcType ugc_type = 8;
+ uint64 ugc_guid = 5;
+ RecordUsage ugc_record_usage = 6;
+ bool is_require_brief = 11;
+ GetUgcType get_ugc_type = 13;
+}
diff --git a/proto/GetUgcRsp.proto b/proto/GetUgcRsp.proto
new file mode 100644
index 00000000..bab4db49
--- /dev/null
+++ b/proto/GetUgcRsp.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 "RecordUsage.proto";
+import "UgcMusicBriefInfo.proto";
+import "UgcType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6318
+// EnetChannelId: 0
+// EnetIsReliable: true
+message GetUgcRsp {
+ uint64 ugc_guid = 15;
+ UgcType ugc_type = 10;
+ int32 retcode = 2;
+ RecordUsage ugc_record_usage = 14;
+ oneof record {
+ UgcMusicBriefInfo music_record = 4;
+ }
+ oneof brief {
+ UgcMusicBriefInfo music_brief_info = 1819;
+ }
+}
diff --git a/proto/GetUgcType.proto b/proto/GetUgcType.proto
new file mode 100644
index 00000000..7083f9d7
--- /dev/null
+++ b/proto/GetUgcType.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 GetUgcType {
+ GET_UGC_TYPE_NONE = 0;
+ GET_UGC_TYPE_MINE = 1;
+ GET_UGC_TYPE_PUBLISH = 2;
+}
diff --git a/proto/GivingRecord.proto b/proto/GivingRecord.proto
index 48fd0d55..7a720662 100644
--- a/proto/GivingRecord.proto
+++ b/proto/GivingRecord.proto
@@ -22,9 +22,9 @@ option java_package = "emu.grasscutter.net.proto";
message GivingRecord {
bool is_finished = 9;
uint32 group_id = 5;
- bool Unk2800_JBPPNEHPACC = 8;
+ bool is_gadget_giving = 8;
uint32 giving_id = 3;
uint32 last_group_id = 6;
uint32 config_id = 2;
- map Unk2800_BDKKENPEEGD = 15;
+ map material_cnt_map = 15;
}
diff --git a/proto/Unk2700_JKFGMBAMNDA_ServerNotify.proto b/proto/GlobalBuildingInfoNotify.proto
similarity index 90%
rename from proto/Unk2700_JKFGMBAMNDA_ServerNotify.proto
rename to proto/GlobalBuildingInfoNotify.proto
index 73efa86b..481b9eeb 100644
--- a/proto/Unk2700_JKFGMBAMNDA_ServerNotify.proto
+++ b/proto/GlobalBuildingInfoNotify.proto
@@ -24,8 +24,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 5320
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_JKFGMBAMNDA_ServerNotify {
- uint32 Unk2700_MDJOPHOHFDB = 5;
+message GlobalBuildingInfoNotify {
+ uint32 current_num = 5;
repeated BuildingInfo building_list = 3;
- uint32 Unk2700_COFBIGLBNGP = 13;
+ uint32 max_num = 13;
}
diff --git a/proto/GravenInnocenceCampInfo.proto b/proto/GravenInnocenceCampInfo.proto
new file mode 100644
index 00000000..902e151f
--- /dev/null
+++ b/proto/GravenInnocenceCampInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GravenInnocenceCampStageInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GravenInnocenceCampInfo {
+ repeated GravenInnocenceCampStageInfo stage_info_list = 5;
+}
diff --git a/proto/Unk3000_FENDDMMFAME.proto b/proto/GravenInnocenceCampStageInfo.proto
similarity index 96%
rename from proto/Unk3000_FENDDMMFAME.proto
rename to proto/GravenInnocenceCampStageInfo.proto
index aad4bbf2..2172a0cf 100644
--- a/proto/Unk3000_FENDDMMFAME.proto
+++ b/proto/GravenInnocenceCampStageInfo.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_FENDDMMFAME {
+message GravenInnocenceCampStageInfo {
bool is_open = 15;
uint32 level_id = 10;
uint32 stage_id = 9;
diff --git a/proto/GravenInnocenceCarveInfo.proto b/proto/GravenInnocenceCarveInfo.proto
new file mode 100644
index 00000000..1c3f9379
--- /dev/null
+++ b/proto/GravenInnocenceCarveInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GravenInnocenceCarveStageInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GravenInnocenceCarveInfo {
+ repeated GravenInnocenceCarveStageInfo stage_info_list = 10;
+ uint32 can_edit_count = 7;
+ repeated uint32 has_edit_config_id_list = 6;
+}
diff --git a/proto/Unk3000_ECGHJKANPJK.proto b/proto/GravenInnocenceCarveStageInfo.proto
similarity index 96%
rename from proto/Unk3000_ECGHJKANPJK.proto
rename to proto/GravenInnocenceCarveStageInfo.proto
index 0ad25f63..eb8a257d 100644
--- a/proto/Unk3000_ECGHJKANPJK.proto
+++ b/proto/GravenInnocenceCarveStageInfo.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_ECGHJKANPJK {
+message GravenInnocenceCarveStageInfo {
uint32 stage_id = 9;
bool is_open = 1;
}
diff --git a/proto/GravenInnocenceDetailInfo.proto b/proto/GravenInnocenceDetailInfo.proto
index 5b471410..684d097b 100644
--- a/proto/GravenInnocenceDetailInfo.proto
+++ b/proto/GravenInnocenceDetailInfo.proto
@@ -17,17 +17,17 @@
syntax = "proto3";
-import "Unk3000_ALPEACOMIPG.proto";
-import "Unk3000_FFOBEKMOHOI.proto";
-import "Unk3000_ILLNKBDNGKP.proto";
-import "Unk3000_OFMFFECMKLE.proto";
+import "GravenInnocenceCampInfo.proto";
+import "GravenInnocenceCarveInfo.proto";
+import "GravenInnocencePhotoInfo.proto";
+import "GravenInnocenceRaceInfo.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;
+ GravenInnocenceRaceInfo race_info = 10;
+ GravenInnocencePhotoInfo photo_info = 7;
+ GravenInnocenceCarveInfo carve_info = 13;
+ GravenInnocenceCampInfo camp_info = 12;
}
diff --git a/proto/Unk3000_DCAHJINNNDM.proto b/proto/GravenInnocenceEditCarveCombinationReq.proto
similarity index 92%
rename from proto/Unk3000_DCAHJINNNDM.proto
rename to proto/GravenInnocenceEditCarveCombinationReq.proto
index b52b2379..019b0e8a 100644
--- a/proto/Unk3000_DCAHJINNNDM.proto
+++ b/proto/GravenInnocenceEditCarveCombinationReq.proto
@@ -25,7 +25,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_DCAHJINNNDM {
+message GravenInnocenceEditCarveCombinationReq {
uint32 entity_id = 2;
- CustomGadgetTreeInfo Unk2700_OCIHJFOKHPK = 11;
+ CustomGadgetTreeInfo combination_info = 11;
}
diff --git a/proto/Unk3000_AGDEGMCKIAF.proto b/proto/GravenInnocenceEditCarveCombinationRsp.proto
similarity index 95%
rename from proto/Unk3000_AGDEGMCKIAF.proto
rename to proto/GravenInnocenceEditCarveCombinationRsp.proto
index b86e2d83..c649fe2a 100644
--- a/proto/Unk3000_AGDEGMCKIAF.proto
+++ b/proto/GravenInnocenceEditCarveCombinationRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 20702
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_AGDEGMCKIAF {
+message GravenInnocenceEditCarveCombinationRsp {
int32 retcode = 5;
}
diff --git a/proto/Unk3000_DPEJONKFONL.proto b/proto/GravenInnocencePhotoFinishReq.proto
similarity index 94%
rename from proto/Unk3000_DPEJONKFONL.proto
rename to proto/GravenInnocencePhotoFinishReq.proto
index b75a9450..1495dccb 100644
--- a/proto/Unk3000_DPEJONKFONL.proto
+++ b/proto/GravenInnocencePhotoFinishReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_DPEJONKFONL {
+message GravenInnocencePhotoFinishReq {
uint32 param = 1;
- uint32 Unk3000_PAFIGDFHGNA = 4;
+ uint32 object_id = 4;
}
diff --git a/proto/Unk3000_HIJKNFBBCFC.proto b/proto/GravenInnocencePhotoFinishRsp.proto
similarity index 94%
rename from proto/Unk3000_HIJKNFBBCFC.proto
rename to proto/GravenInnocencePhotoFinishRsp.proto
index cb16adc5..893da2a0 100644
--- a/proto/Unk3000_HIJKNFBBCFC.proto
+++ b/proto/GravenInnocencePhotoFinishRsp.proto
@@ -22,8 +22,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 23948
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_HIJKNFBBCFC {
- uint32 Unk3000_PAFIGDFHGNA = 6;
+message GravenInnocencePhotoFinishRsp {
+ uint32 object_id = 6;
uint32 param = 11;
int32 retcode = 12;
}
diff --git a/proto/GravenInnocencePhotoInfo.proto b/proto/GravenInnocencePhotoInfo.proto
new file mode 100644
index 00000000..2b5d7b4e
--- /dev/null
+++ b/proto/GravenInnocencePhotoInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GravenInnocencePhotoObjectInfo.proto";
+import "GravenInnocencePhotoStageInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GravenInnocencePhotoInfo {
+ repeated GravenInnocencePhotoStageInfo stage_info_list = 5;
+ repeated GravenInnocencePhotoObjectInfo object_info_list = 7;
+}
diff --git a/proto/Unk3000_DCHMAMFIFOF.proto b/proto/GravenInnocencePhotoObjectInfo.proto
similarity index 93%
rename from proto/Unk3000_DCHMAMFIFOF.proto
rename to proto/GravenInnocencePhotoObjectInfo.proto
index cfc31210..424fb485 100644
--- a/proto/Unk3000_DCHMAMFIFOF.proto
+++ b/proto/GravenInnocencePhotoObjectInfo.proto
@@ -19,8 +19,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_DCHMAMFIFOF {
- uint32 Unk3000_PAFIGDFHGNA = 1;
+message GravenInnocencePhotoObjectInfo {
+ uint32 object_id = 1;
uint32 finish_time = 4;
uint32 param = 14;
}
diff --git a/proto/Unk3000_PHCPMFMFOMO.proto b/proto/GravenInnocencePhotoReminderNotify.proto
similarity index 93%
rename from proto/Unk3000_PHCPMFMFOMO.proto
rename to proto/GravenInnocencePhotoReminderNotify.proto
index 90c5d5e9..d2a9e666 100644
--- a/proto/Unk3000_PHCPMFMFOMO.proto
+++ b/proto/GravenInnocencePhotoReminderNotify.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 23864
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_PHCPMFMFOMO {
- uint32 Unk3000_OHKPPFPNKNF = 14;
+message GravenInnocencePhotoReminderNotify {
+ uint32 group_bundle_id = 14;
uint32 reminder_id = 6;
}
diff --git a/proto/Unk3000_HGBNOCJBDEK.proto b/proto/GravenInnocencePhotoStageInfo.proto
similarity index 96%
rename from proto/Unk3000_HGBNOCJBDEK.proto
rename to proto/GravenInnocencePhotoStageInfo.proto
index 6ba88286..516d19ac 100644
--- a/proto/Unk3000_HGBNOCJBDEK.proto
+++ b/proto/GravenInnocencePhotoStageInfo.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_HGBNOCJBDEK {
+message GravenInnocencePhotoStageInfo {
bool is_finished = 11;
uint32 stage_id = 6;
bool is_open = 9;
diff --git a/proto/GravenInnocenceRaceInfo.proto b/proto/GravenInnocenceRaceInfo.proto
new file mode 100644
index 00000000..831d6e5e
--- /dev/null
+++ b/proto/GravenInnocenceRaceInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GravenInnocenceRaceLevelInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message GravenInnocenceRaceInfo {
+ repeated GravenInnocenceRaceLevelInfo level_info_list = 11;
+}
diff --git a/proto/Unk3000_FLOEPMMABMH.proto b/proto/GravenInnocenceRaceLevelInfo.proto
similarity index 96%
rename from proto/Unk3000_FLOEPMMABMH.proto
rename to proto/GravenInnocenceRaceLevelInfo.proto
index 47bf5452..ea8ab220 100644
--- a/proto/Unk3000_FLOEPMMABMH.proto
+++ b/proto/GravenInnocenceRaceLevelInfo.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_FLOEPMMABMH {
+message GravenInnocenceRaceLevelInfo {
uint32 level_id = 13;
uint32 max_score = 14;
bool is_open = 1;
diff --git a/proto/Unk3000_PDNJDOBPEKA.proto b/proto/GravenInnocenceRaceRestartReq.proto
similarity index 96%
rename from proto/Unk3000_PDNJDOBPEKA.proto
rename to proto/GravenInnocenceRaceRestartReq.proto
index 1aa2fc2b..ba5dd9d0 100644
--- a/proto/Unk3000_PDNJDOBPEKA.proto
+++ b/proto/GravenInnocenceRaceRestartReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_PDNJDOBPEKA {
+message GravenInnocenceRaceRestartReq {
uint32 gallery_id = 6;
}
diff --git a/proto/Unk3000_FAPNAHAEPBF.proto b/proto/GravenInnocenceRaceRestartRsp.proto
similarity index 96%
rename from proto/Unk3000_FAPNAHAEPBF.proto
rename to proto/GravenInnocenceRaceRestartRsp.proto
index 103da3fb..e9d9fd02 100644
--- a/proto/Unk3000_FAPNAHAEPBF.proto
+++ b/proto/GravenInnocenceRaceRestartRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 21880
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_FAPNAHAEPBF {
+message GravenInnocenceRaceRestartRsp {
int32 retcode = 8;
uint32 gallery_id = 6;
}
diff --git a/proto/Unk3000_PJLAPMPPIAG.proto b/proto/GravenInnocenceRaceSettleNotify.proto
similarity index 85%
rename from proto/Unk3000_PJLAPMPPIAG.proto
rename to proto/GravenInnocenceRaceSettleNotify.proto
index da65a415..c9bb9cf9 100644
--- a/proto/Unk3000_PJLAPMPPIAG.proto
+++ b/proto/GravenInnocenceRaceSettleNotify.proto
@@ -17,22 +17,22 @@
syntax = "proto3";
-import "Unk2700_MOFABPNGIKP.proto";
+import "GalleryStopReason.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 20681
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_PJLAPMPPIAG {
+message GravenInnocenceRaceSettleNotify {
bool is_new_record = 4;
uint32 gallery_id = 6;
uint32 score = 5;
- Unk2700_MOFABPNGIKP reason = 2;
- uint32 Unk3000_OGFOAOCCGNK = 13;
+ GalleryStopReason reason = 2;
+ uint32 total_coint_count = 13;
uint32 remain_time = 10;
- uint32 Unk3000_HKMKHPMIIPF = 1;
- uint32 Unk3000_GDFHJBOCONO = 8;
+ uint32 challenge_progress = 1;
+ uint32 coin_count = 8;
bool is_success = 7;
uint32 level_id = 11;
}
diff --git a/proto/GroupLinkBundle.proto b/proto/GroupLinkBundle.proto
index 28d71025..20c87bad 100644
--- a/proto/GroupLinkBundle.proto
+++ b/proto/GroupLinkBundle.proto
@@ -25,7 +25,7 @@ message GroupLinkBundle {
Vector center = 4;
bool is_activated = 12;
uint32 bundle_id = 3;
- bool Unk2700_JKDNOPGKJAC = 14;
+ bool is_show_mark = 14;
uint32 scene_id = 5;
uint32 radius = 1;
}
diff --git a/proto/Unk2700_MBIAJKLACBG.proto b/proto/GroupLinkMarkUpdateNotify.proto
similarity index 96%
rename from proto/Unk2700_MBIAJKLACBG.proto
rename to proto/GroupLinkMarkUpdateNotify.proto
index 9d305571..31bbc9fd 100644
--- a/proto/Unk2700_MBIAJKLACBG.proto
+++ b/proto/GroupLinkMarkUpdateNotify.proto
@@ -24,6 +24,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 5757
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_MBIAJKLACBG {
+message GroupLinkMarkUpdateNotify {
GroupLinkBundle bundle = 11;
}
diff --git a/proto/HideAndSeekActivityDetailInfo.proto b/proto/HideAndSeekActivityDetailInfo.proto
index b6d72647..0fc01f87 100644
--- a/proto/HideAndSeekActivityDetailInfo.proto
+++ b/proto/HideAndSeekActivityDetailInfo.proto
@@ -17,12 +17,12 @@
syntax = "proto3";
-import "Unk2700_LBOAEFMECCP.proto";
+import "HideAndSeekMapInfo.proto";
option java_package = "emu.grasscutter.net.proto";
message HideAndSeekActivityDetailInfo {
- repeated Unk2700_LBOAEFMECCP Unk2700_JDMDOOHFNCA = 1;
+ repeated HideAndSeekMapInfo open_map_info_list = 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/Unk2700_LBOAEFMECCP.proto b/proto/HideAndSeekMapInfo.proto
similarity index 92%
rename from proto/Unk2700_LBOAEFMECCP.proto
rename to proto/HideAndSeekMapInfo.proto
index e8fef96f..7d1342b2 100644
--- a/proto/Unk2700_LBOAEFMECCP.proto
+++ b/proto/HideAndSeekMapInfo.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_LBOAEFMECCP {
- repeated uint32 Unk2700_POMENCDDAGL = 11;
+message HideAndSeekMapInfo {
+ repeated uint32 match_lock_reason_list = 11;
uint32 id = 7;
}
diff --git a/proto/Unk3000_EMMKKLIECLB.proto b/proto/HitTreeInfo.proto
similarity index 97%
rename from proto/Unk3000_EMMKKLIECLB.proto
rename to proto/HitTreeInfo.proto
index 203cee67..1c0b4fb5 100644
--- a/proto/Unk3000_EMMKKLIECLB.proto
+++ b/proto/HitTreeInfo.proto
@@ -21,7 +21,7 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_EMMKKLIECLB {
+message HitTreeInfo {
Vector tree_pos = 12;
uint32 tree_type = 8;
}
diff --git a/proto/Unk2700_LOHBMOKOPLH_ServerNotify.proto b/proto/HomeAllUnlockedBgmIdListNotify.proto
similarity index 91%
rename from proto/Unk2700_LOHBMOKOPLH_ServerNotify.proto
rename to proto/HomeAllUnlockedBgmIdListNotify.proto
index 685b9285..8ca96610 100644
--- a/proto/Unk2700_LOHBMOKOPLH_ServerNotify.proto
+++ b/proto/HomeAllUnlockedBgmIdListNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 4608
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_LOHBMOKOPLH_ServerNotify {
- repeated uint32 Unk2700_KMEKMNONMGE = 11;
+message HomeAllUnlockedBgmIdListNotify {
+ repeated uint32 all_unlocked_bgm_id_list = 11;
}
diff --git a/proto/Unk2700_ONCHFHBBCBN.proto b/proto/HomeBalloonGalleryRecord.proto
similarity index 90%
rename from proto/Unk2700_ONCHFHBBCBN.proto
rename to proto/HomeBalloonGalleryRecord.proto
index 54cdd185..59d07b24 100644
--- a/proto/Unk2700_ONCHFHBBCBN.proto
+++ b/proto/HomeBalloonGalleryRecord.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk2700_OCDMIOKNHHH.proto";
+import "HomeGroupPlayerInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_ONCHFHBBCBN {
+message HomeBalloonGalleryRecord {
uint32 hit_count = 12;
uint32 score = 11;
- Unk2700_OCDMIOKNHHH player_info = 5;
+ HomeGroupPlayerInfo player_info = 5;
uint32 timestamp = 2;
}
diff --git a/proto/Unk2700_BLHIGLFDHFA_ServerNotify.proto b/proto/HomeBalloonGalleryScoreNotify.proto
similarity index 96%
rename from proto/Unk2700_BLHIGLFDHFA_ServerNotify.proto
rename to proto/HomeBalloonGalleryScoreNotify.proto
index 09ed7125..030adb9b 100644
--- a/proto/Unk2700_BLHIGLFDHFA_ServerNotify.proto
+++ b/proto/HomeBalloonGalleryScoreNotify.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 4654
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_BLHIGLFDHFA_ServerNotify {
+message HomeBalloonGalleryScoreNotify {
uint32 trigger_entity_id = 10;
uint32 cur_score = 9;
uint32 add_score = 7;
diff --git a/proto/Unk2700_NFGNGFLNOOJ_ServerNotify.proto b/proto/HomeBalloonGallerySettleNotify.proto
similarity index 87%
rename from proto/Unk2700_NFGNGFLNOOJ_ServerNotify.proto
rename to proto/HomeBalloonGallerySettleNotify.proto
index 4f12b90d..ff8b527f 100644
--- a/proto/Unk2700_NFGNGFLNOOJ_ServerNotify.proto
+++ b/proto/HomeBalloonGallerySettleNotify.proto
@@ -17,16 +17,16 @@
syntax = "proto3";
-import "Unk2700_CHLNIDHHGLE.proto";
+import "BalloonGallerySettleInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 4811
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_NFGNGFLNOOJ_ServerNotify {
+message HomeBalloonGallerySettleNotify {
uint32 gallery_id = 1;
- Unk2700_CHLNIDHHGLE settle_info = 5;
- uint32 Unk2700_HAOPLFPOLFM = 6;
+ BalloonGallerySettleInfo settle_info = 5;
+ uint32 rank = 6;
bool is_new_record = 4;
}
diff --git a/proto/Unk2700_AAAMOFPACEA.proto b/proto/HomeBalloonRecord.proto
similarity index 88%
rename from proto/Unk2700_AAAMOFPACEA.proto
rename to proto/HomeBalloonRecord.proto
index 4c9d253b..1925b23c 100644
--- a/proto/Unk2700_AAAMOFPACEA.proto
+++ b/proto/HomeBalloonRecord.proto
@@ -17,10 +17,10 @@
syntax = "proto3";
-import "Unk2700_DJDEPPHEHCP.proto";
+import "HomeBalloonGalleryRecord.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_AAAMOFPACEA {
- repeated Unk2700_DJDEPPHEHCP Unk2700_ILGPNAAFFEG = 6;
+message HomeBalloonRecord {
+ repeated HomeBalloonGalleryRecord record_list = 15;
}
diff --git a/proto/HomeBlockArrangementInfo.proto b/proto/HomeBlockArrangementInfo.proto
index 8963742f..220e24f7 100644
--- a/proto/HomeBlockArrangementInfo.proto
+++ b/proto/HomeBlockArrangementInfo.proto
@@ -20,11 +20,11 @@ syntax = "proto3";
import "HomeAnimalData.proto";
import "HomeBlockDotPattern.proto";
import "HomeBlockFieldData.proto";
+import "HomeFurnitureCustomSuiteData.proto";
import "HomeFurnitureData.proto";
+import "HomeFurnitureGroupData.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";
@@ -33,7 +33,7 @@ message HomeBlockArrangementInfo {
bool is_unlocked = 1;
uint32 comfort_value = 2;
repeated HomeAnimalData deploy_animal_list = 4;
- repeated Unk2700_GOHMLAFNBGF Unk2700_HGIECHILOJL = 5;
+ repeated HomeFurnitureGroupData furniture_group_list = 5;
repeated WeekendDjinnInfo weekend_djinn_info_list = 13;
repeated HomeFurnitureSuiteData furniture_suite_list = 15;
repeated HomeBlockFieldData field_list = 3;
@@ -42,5 +42,5 @@ message HomeBlockArrangementInfo {
repeated HomeFurnitureData persistent_furniture_list = 9;
repeated HomeFurnitureData deploy_furniure_list = 12;
uint32 block_id = 6;
- repeated Unk2700_BIEMCDLIFOD Unk2700_KJGLLEEHBPF = 14;
+ repeated HomeFurnitureCustomSuiteData furniture_custom_suite_list = 14;
}
diff --git a/proto/HomeBlueprintBatchBriefMuipData.proto b/proto/HomeBlueprintBatchBriefMuipData.proto
new file mode 100644
index 00000000..ff8397a5
--- /dev/null
+++ b/proto/HomeBlueprintBatchBriefMuipData.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeBlueprintBriefMuipData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeBlueprintBatchBriefMuipData {
+ repeated HomeBlueprintBriefMuipData brief_list = 1;
+ repeated string not_exist_share_code_list = 2;
+}
diff --git a/proto/HomeBlueprintBriefMuipData.proto b/proto/HomeBlueprintBriefMuipData.proto
new file mode 100644
index 00000000..87403340
--- /dev/null
+++ b/proto/HomeBlueprintBriefMuipData.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeBlueprintBriefMuipData {
+ string share_code = 1;
+ uint32 owner_uid = 2;
+ uint32 module_id = 3;
+ uint32 scene_id = 4;
+ uint32 block_id = 5;
+ bool is_allow_copy = 6;
+ uint32 create_time = 7;
+}
diff --git a/proto/HomeBlueprintInfoNotify.proto b/proto/HomeBlueprintInfoNotify.proto
new file mode 100644
index 00000000..bfc30923
--- /dev/null
+++ b/proto/HomeBlueprintInfoNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4765
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeBlueprintInfoNotify {
+ bool is_allow_friend_copy = 15;
+}
diff --git a/proto/HomeBlueprintSearchInfo.proto b/proto/HomeBlueprintSearchInfo.proto
new file mode 100644
index 00000000..76b46f57
--- /dev/null
+++ b/proto/HomeBlueprintSearchInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeBlueprintSearchInfo {
+ uint32 scene_id = 5;
+ uint32 module_id = 9;
+ string share_code = 8;
+ uint32 block_id = 12;
+}
diff --git a/proto/HomeBlueprintSlotInfo.proto b/proto/HomeBlueprintSlotInfo.proto
new file mode 100644
index 00000000..d9a4797d
--- /dev/null
+++ b/proto/HomeBlueprintSlotInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeBlueprintSlotInfo {
+ uint32 module_id = 12;
+ uint32 block_id = 14;
+ uint32 scene_id = 4;
+ uint32 slot_id = 5;
+ string share_code = 11;
+ bool is_allow_copy = 3;
+ uint32 create_time = 6;
+}
diff --git a/proto/HomeChangeBgmNotify.proto b/proto/HomeChangeBgmNotify.proto
new file mode 100644
index 00000000..4fb65e3f
--- /dev/null
+++ b/proto/HomeChangeBgmNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy 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 HomeChangeBgmNotify {
+ uint32 bgm_id = 12;
+}
diff --git a/proto/HomeChangeBgmReq.proto b/proto/HomeChangeBgmReq.proto
new file mode 100644
index 00000000..14669833
--- /dev/null
+++ b/proto/HomeChangeBgmReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy 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 HomeChangeBgmReq {
+ uint32 bgm_id = 14;
+}
diff --git a/proto/Unk2700_OGHMHELMBNN_ServerRsp.proto b/proto/HomeChangeBgmRsp.proto
similarity index 96%
rename from proto/Unk2700_OGHMHELMBNN_ServerRsp.proto
rename to proto/HomeChangeBgmRsp.proto
index b05dbee6..baaa3852 100644
--- a/proto/Unk2700_OGHMHELMBNN_ServerRsp.proto
+++ b/proto/HomeChangeBgmRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 4488
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_OGHMHELMBNN_ServerRsp {
+message HomeChangeBgmRsp {
int32 retcode = 7;
}
diff --git a/proto/Unk2700_LBJKLAGNDEJ_ClientReq.proto b/proto/HomeClearGroupRecordReq.proto
similarity index 96%
rename from proto/Unk2700_LBJKLAGNDEJ_ClientReq.proto
rename to proto/HomeClearGroupRecordReq.proto
index 52ddd39c..c3e388f9 100644
--- a/proto/Unk2700_LBJKLAGNDEJ_ClientReq.proto
+++ b/proto/HomeClearGroupRecordReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_LBJKLAGNDEJ_ClientReq {
+message HomeClearGroupRecordReq {
uint32 group_id = 2;
}
diff --git a/proto/Unk2700_GDODKDJJPMP_ServerRsp.proto b/proto/HomeClearGroupRecordRsp.proto
similarity index 96%
rename from proto/Unk2700_GDODKDJJPMP_ServerRsp.proto
rename to proto/HomeClearGroupRecordRsp.proto
index 75d341ca..dd46dff6 100644
--- a/proto/Unk2700_GDODKDJJPMP_ServerRsp.proto
+++ b/proto/HomeClearGroupRecordRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 4605
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_GDODKDJJPMP_ServerRsp {
+message HomeClearGroupRecordRsp {
uint32 group_id = 4;
int32 retcode = 1;
}
diff --git a/proto/HomeCreateBlueprintReq.proto b/proto/HomeCreateBlueprintReq.proto
new file mode 100644
index 00000000..b4dcac7b
--- /dev/null
+++ b/proto/HomeCreateBlueprintReq.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 "HomeSceneArrangementInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4619
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeCreateBlueprintReq {
+ HomeSceneArrangementInfo scene_arrangement_info = 2;
+ uint32 slot_id = 13;
+ string server_share_code = 6;
+ uint32 gen_share_code_count = 4;
+}
diff --git a/proto/HomeCreateBlueprintRsp.proto b/proto/HomeCreateBlueprintRsp.proto
new file mode 100644
index 00000000..687b1dfb
--- /dev/null
+++ b/proto/HomeCreateBlueprintRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeBlueprintSlotInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4606
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeCreateBlueprintRsp {
+ HomeBlueprintSlotInfo slot_info = 1;
+ int32 retcode = 10;
+}
diff --git a/proto/HomeDeleteBlueprintReq.proto b/proto/HomeDeleteBlueprintReq.proto
new file mode 100644
index 00000000..6efce369
--- /dev/null
+++ b/proto/HomeDeleteBlueprintReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4502
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeDeleteBlueprintReq {
+ uint32 slot_id = 2;
+}
diff --git a/proto/HomeDeleteBlueprintRsp.proto b/proto/HomeDeleteBlueprintRsp.proto
new file mode 100644
index 00000000..c3bf170d
--- /dev/null
+++ b/proto/HomeDeleteBlueprintRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4586
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeDeleteBlueprintRsp {
+ uint32 slot_id = 5;
+ int32 retcode = 14;
+}
diff --git a/proto/Unk2700_ACILPONNGGK_ClientReq.proto b/proto/HomeEnterEditModeFinishReq.proto
similarity index 96%
rename from proto/Unk2700_ACILPONNGGK_ClientReq.proto
rename to proto/HomeEnterEditModeFinishReq.proto
index c4847f87..4b63320f 100644
--- a/proto/Unk2700_ACILPONNGGK_ClientReq.proto
+++ b/proto/HomeEnterEditModeFinishReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_ACILPONNGGK_ClientReq {}
+message HomeEnterEditModeFinishReq {}
diff --git a/proto/Unk2700_KIIOGMKFNNP_ServerRsp.proto b/proto/HomeEnterEditModeFinishRsp.proto
similarity index 96%
rename from proto/Unk2700_KIIOGMKFNNP_ServerRsp.proto
rename to proto/HomeEnterEditModeFinishRsp.proto
index 99be67ee..19cee183 100644
--- a/proto/Unk2700_KIIOGMKFNNP_ServerRsp.proto
+++ b/proto/HomeEnterEditModeFinishRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 4615
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_KIIOGMKFNNP_ServerRsp {
+message HomeEnterEditModeFinishRsp {
int32 retcode = 15;
}
diff --git a/proto/Unk3000_AFMFIPPDAJE.proto b/proto/HomeExchangeWoodReq.proto
similarity index 90%
rename from proto/Unk3000_AFMFIPPDAJE.proto
rename to proto/HomeExchangeWoodReq.proto
index 952f1f61..daaa7ff6 100644
--- a/proto/Unk3000_AFMFIPPDAJE.proto
+++ b/proto/HomeExchangeWoodReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_AFMFIPPDAJE {
- map Unk3000_OBLCKELHBGH = 3;
- uint32 Unk3000_LOFNFMJFGNB = 12;
+message HomeExchangeWoodReq {
+ map material_count_map = 3;
+ uint32 wood_id = 12;
}
diff --git a/proto/HomeExchangeWoodRsp.proto b/proto/HomeExchangeWoodRsp.proto
new file mode 100644
index 00000000..3ccd0078
--- /dev/null
+++ b/proto/HomeExchangeWoodRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy 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 HomeExchangeWoodRsp {
+ int32 retcode = 13;
+ uint32 wood_id = 1;
+ uint32 wood_count = 3;
+ uint32 exchanged_count = 2;
+}
diff --git a/proto/Unk2700_BIEMCDLIFOD.proto b/proto/HomeFurnitureCustomSuiteData.proto
similarity index 96%
rename from proto/Unk2700_BIEMCDLIFOD.proto
rename to proto/HomeFurnitureCustomSuiteData.proto
index 6e6031a3..af1e2be8 100644
--- a/proto/Unk2700_BIEMCDLIFOD.proto
+++ b/proto/HomeFurnitureCustomSuiteData.proto
@@ -21,7 +21,7 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_BIEMCDLIFOD {
+message HomeFurnitureCustomSuiteData {
uint32 guid = 11;
Vector spawn_pos = 14;
repeated int32 included_furniture_index_list = 12;
diff --git a/proto/Unk2700_GOHMLAFNBGF.proto b/proto/HomeFurnitureGroupData.proto
similarity index 88%
rename from proto/Unk2700_GOHMLAFNBGF.proto
rename to proto/HomeFurnitureGroupData.proto
index 53afd10e..9a687fcf 100644
--- a/proto/Unk2700_GOHMLAFNBGF.proto
+++ b/proto/HomeFurnitureGroupData.proto
@@ -21,7 +21,7 @@ import "HomeFurnitureData.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_GOHMLAFNBGF {
- uint32 Unk2700_OALCFEGIBOL = 8;
- repeated HomeFurnitureData Unk2700_CKPNCKDIJMB = 3;
+message HomeFurnitureGroupData {
+ uint32 group_furniture_index = 8;
+ repeated HomeFurnitureData virtual_furniure_list = 3;
}
diff --git a/proto/Unk2700_LAFHGMOPCCM_ServerNotify.proto b/proto/HomeGalleryInPlayingNotify.proto
similarity index 96%
rename from proto/Unk2700_LAFHGMOPCCM_ServerNotify.proto
rename to proto/HomeGalleryInPlayingNotify.proto
index 8bf46115..b27e48ed 100644
--- a/proto/Unk2700_LAFHGMOPCCM_ServerNotify.proto
+++ b/proto/HomeGalleryInPlayingNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 5553
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_LAFHGMOPCCM_ServerNotify {
+message HomeGalleryInPlayingNotify {
uint32 gallery_id = 13;
}
diff --git a/proto/HomeGetBlueprintSlotInfoReq.proto b/proto/HomeGetBlueprintSlotInfoReq.proto
new file mode 100644
index 00000000..7b50367e
--- /dev/null
+++ b/proto/HomeGetBlueprintSlotInfoReq.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4584
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeGetBlueprintSlotInfoReq {}
diff --git a/proto/Unk2700_EJHALNBHHHD_ServerRsp.proto b/proto/HomeGetBlueprintSlotInfoRsp.proto
similarity index 84%
rename from proto/Unk2700_EJHALNBHHHD_ServerRsp.proto
rename to proto/HomeGetBlueprintSlotInfoRsp.proto
index 7590a104..cf8ea1be 100644
--- a/proto/Unk2700_EJHALNBHHHD_ServerRsp.proto
+++ b/proto/HomeGetBlueprintSlotInfoRsp.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "Unk2700_OPEBMJPOOBL.proto";
+import "HomeBlueprintSlotInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-// CmdId: 6322
+// CmdId: 4662
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_EJHALNBHHHD_ServerRsp {
+message HomeGetBlueprintSlotInfoRsp {
+ repeated uint32 delete_slot_id_list = 6;
+ repeated HomeBlueprintSlotInfo slot_info_list = 3;
int32 retcode = 15;
- uint64 Unk2700_CEPGMKAHHCD = 8;
- Unk2700_OPEBMJPOOBL Unk2700_KHBDAPGDOJA = 1;
}
diff --git a/proto/Unk2700_IACKJNNMCAC_ClientReq.proto b/proto/HomeGetGroupRecordReq.proto
similarity index 96%
rename from proto/Unk2700_IACKJNNMCAC_ClientReq.proto
rename to proto/HomeGetGroupRecordReq.proto
index abaa2f1a..4b384e83 100644
--- a/proto/Unk2700_IACKJNNMCAC_ClientReq.proto
+++ b/proto/HomeGetGroupRecordReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_IACKJNNMCAC_ClientReq {
+message HomeGetGroupRecordReq {
uint32 group_id = 14;
}
diff --git a/proto/HomeGetGroupRecordRsp.proto b/proto/HomeGetGroupRecordRsp.proto
new file mode 100644
index 00000000..55d2aeaa
--- /dev/null
+++ b/proto/HomeGetGroupRecordRsp.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 "HomeGroupRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4538
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeGetGroupRecordRsp {
+ HomeGroupRecord group_record = 7;
+ int32 retcode = 11;
+ uint32 record_type = 1;
+}
diff --git a/proto/Unk2700_OCDMIOKNHHH.proto b/proto/HomeGroupPlayerInfo.proto
similarity index 97%
rename from proto/Unk2700_OCDMIOKNHHH.proto
rename to proto/HomeGroupPlayerInfo.proto
index b7039449..567b1479 100644
--- a/proto/Unk2700_OCDMIOKNHHH.proto
+++ b/proto/HomeGroupPlayerInfo.proto
@@ -21,7 +21,7 @@ import "ProfilePicture.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_OCDMIOKNHHH {
+message HomeGroupPlayerInfo {
string online_id = 14;
string psn_id = 6;
string nickname = 15;
diff --git a/proto/Unk2700_KPNPJPPHOKA.proto b/proto/HomeGroupRecord.proto
similarity index 79%
rename from proto/Unk2700_KPNPJPPHOKA.proto
rename to proto/HomeGroupRecord.proto
index b980abcb..505f6a80 100644
--- a/proto/Unk2700_KPNPJPPHOKA.proto
+++ b/proto/HomeGroupRecord.proto
@@ -17,19 +17,19 @@
syntax = "proto3";
-import "BalloonGalleryInfo.proto";
-import "RacingGalleryInfo.proto";
+import "HomeBalloonRecord.proto";
+import "HomeRacingRecord.proto";
+import "HomeStakeRecord.proto";
import "SeekFurnitureGalleryInfo.proto";
-import "StakePlayGalleryInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_KPNPJPPHOKA {
+message HomeGroupRecord {
uint32 group_id = 5;
oneof detail {
- RacingGalleryInfo racing_gallery_info = 467;
- BalloonGalleryInfo balloon_gallery_info = 1410;
- StakePlayGalleryInfo stake_play_info = 347;
+ HomeRacingRecord racing_gallery_info = 467;
+ HomeBalloonRecord balloon_gallery_info = 1410;
+ HomeStakeRecord stake_play_info = 347;
SeekFurnitureGalleryInfo seek_furniture_gallery_info = 1822;
}
}
diff --git a/proto/HomeMarkPointSceneData.proto b/proto/HomeMarkPointSceneData.proto
index 00e3fc2d..0e321839 100644
--- a/proto/HomeMarkPointSceneData.proto
+++ b/proto/HomeMarkPointSceneData.proto
@@ -27,5 +27,5 @@ message HomeMarkPointSceneData {
Vector teapot_spirit_pos = 4;
uint32 scene_id = 2;
uint32 module_id = 5;
- Vector Unk3100_ABBFBELGECB = 11;
+ Vector safe_point_pos = 11;
}
diff --git a/proto/Unk2700_MEBFPBDNPGO_ServerNotify.proto b/proto/HomeNewUnlockedBgmIdListNotify.proto
similarity index 91%
rename from proto/Unk2700_MEBFPBDNPGO_ServerNotify.proto
rename to proto/HomeNewUnlockedBgmIdListNotify.proto
index cae46370..7858f0c3 100644
--- a/proto/Unk2700_MEBFPBDNPGO_ServerNotify.proto
+++ b/proto/HomeNewUnlockedBgmIdListNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 4847
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_MEBFPBDNPGO_ServerNotify {
- repeated uint32 Unk2700_ELJPLMIHNIP = 11;
+message HomeNewUnlockedBgmIdListNotify {
+ repeated uint32 new_unlocked_bgm_id_list = 11;
}
diff --git a/proto/Unk2700_IMMPPANFEPP.proto b/proto/HomePictureFrameInfo.proto
similarity index 93%
rename from proto/Unk2700_IMMPPANFEPP.proto
rename to proto/HomePictureFrameInfo.proto
index 6b17474f..e6ce7dca 100644
--- a/proto/Unk2700_IMMPPANFEPP.proto
+++ b/proto/HomePictureFrameInfo.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_IMMPPANFEPP {
+message HomePictureFrameInfo {
uint32 guid = 11;
- uint32 Unk2700_MAABPJMPILD = 6;
+ uint32 picture_id = 6;
}
diff --git a/proto/Unk2700_MLMJFIGJJEH_ServerNotify.proto b/proto/HomePictureFrameInfoNotify.proto
similarity index 88%
rename from proto/Unk2700_MLMJFIGJJEH_ServerNotify.proto
rename to proto/HomePictureFrameInfoNotify.proto
index b1fa3649..a1d091c8 100644
--- a/proto/Unk2700_MLMJFIGJJEH_ServerNotify.proto
+++ b/proto/HomePictureFrameInfoNotify.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk2700_IMMPPANFEPP.proto";
+import "HomePictureFrameInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 4878
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_MLMJFIGJJEH_ServerNotify {
- repeated Unk2700_IMMPPANFEPP Unk2700_FEGCOKJJBGO = 12;
+message HomePictureFrameInfoNotify {
+ repeated HomePictureFrameInfo picture_frame_info_list = 12;
}
diff --git a/proto/Unk2700_JDMPECKFGIG_ServerNotify.proto b/proto/HomePreChangeEditModeNotify.proto
similarity index 96%
rename from proto/Unk2700_JDMPECKFGIG_ServerNotify.proto
rename to proto/HomePreChangeEditModeNotify.proto
index c772928b..94aebce4 100644
--- a/proto/Unk2700_JDMPECKFGIG_ServerNotify.proto
+++ b/proto/HomePreChangeEditModeNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 4639
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_JDMPECKFGIG_ServerNotify {
+message HomePreChangeEditModeNotify {
bool is_enter_edit_mode = 15;
}
diff --git a/proto/HomePreviewBlueprintReq.proto b/proto/HomePreviewBlueprintReq.proto
new file mode 100644
index 00000000..e285465e
--- /dev/null
+++ b/proto/HomePreviewBlueprintReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4478
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomePreviewBlueprintReq {
+ string share_code = 7;
+}
diff --git a/proto/Unk2700_NNMDBDNIMHN_ServerRsp.proto b/proto/HomePreviewBlueprintRsp.proto
similarity index 85%
rename from proto/Unk2700_NNMDBDNIMHN_ServerRsp.proto
rename to proto/HomePreviewBlueprintRsp.proto
index ec147ab6..f36b3069 100644
--- a/proto/Unk2700_NNMDBDNIMHN_ServerRsp.proto
+++ b/proto/HomePreviewBlueprintRsp.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "Unk2700_KPNPJPPHOKA.proto";
+import "HomeSceneArrangementInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-// CmdId: 4538
+// CmdId: 4738
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_NNMDBDNIMHN_ServerRsp {
- Unk2700_KPNPJPPHOKA Unk2700_IFNLJDCJJED = 7;
+message HomePreviewBlueprintRsp {
+ HomeSceneArrangementInfo scene_arrangement_info = 12;
int32 retcode = 11;
- uint32 Unk2700_MAPJLIDACPN = 1;
+ string share_code = 14;
}
diff --git a/proto/Unk2700_OJJNGIHDJEH.proto b/proto/HomeRacingGalleryRecord.proto
similarity index 87%
rename from proto/Unk2700_OJJNGIHDJEH.proto
rename to proto/HomeRacingGalleryRecord.proto
index b3351118..816bbe80 100644
--- a/proto/Unk2700_OJJNGIHDJEH.proto
+++ b/proto/HomeRacingGalleryRecord.proto
@@ -17,12 +17,12 @@
syntax = "proto3";
-import "Unk2700_OCDMIOKNHHH.proto";
+import "HomeGroupPlayerInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_OJJNGIHDJEH {
- uint32 Unk2700_OMCCFBBDJMI = 1;
+message HomeRacingGalleryRecord {
+ uint32 use_time = 1;
uint32 timestamp = 8;
- Unk2700_OCDMIOKNHHH player_info = 12;
+ HomeGroupPlayerInfo player_info = 12;
}
diff --git a/proto/Unk2700_EHAMOPKCIGI_ServerNotify.proto b/proto/HomeRacingGallerySettleNotify.proto
similarity index 87%
rename from proto/Unk2700_EHAMOPKCIGI_ServerNotify.proto
rename to proto/HomeRacingGallerySettleNotify.proto
index 05c2e081..bb69760b 100644
--- a/proto/Unk2700_EHAMOPKCIGI_ServerNotify.proto
+++ b/proto/HomeRacingGallerySettleNotify.proto
@@ -17,16 +17,16 @@
syntax = "proto3";
-import "Unk2700_KNGDOIDOFFB.proto";
+import "RacingGallerySettleInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 4805
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_EHAMOPKCIGI_ServerNotify {
+message HomeRacingGallerySettleNotify {
uint32 gallery_id = 11;
- Unk2700_KNGDOIDOFFB settle_info = 12;
- uint32 Unk2700_HAOPLFPOLFM = 7;
+ RacingGallerySettleInfo settle_info = 12;
+ uint32 rank = 7;
bool is_new_record = 2;
}
diff --git a/proto/HomeRacingRecord.proto b/proto/HomeRacingRecord.proto
new file mode 100644
index 00000000..49af68e0
--- /dev/null
+++ b/proto/HomeRacingRecord.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeRacingGalleryRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeRacingRecord {
+ repeated HomeRacingGalleryRecord record_list = 7;
+}
diff --git a/proto/HomeSaveArrangementNoChangeReq.proto b/proto/HomeSaveArrangementNoChangeReq.proto
new file mode 100644
index 00000000..24d50add
--- /dev/null
+++ b/proto/HomeSaveArrangementNoChangeReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4704
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeSaveArrangementNoChangeReq {
+ uint32 scene_id = 4;
+}
diff --git a/proto/HomeSaveArrangementNoChangeRsp.proto b/proto/HomeSaveArrangementNoChangeRsp.proto
new file mode 100644
index 00000000..5844e29c
--- /dev/null
+++ b/proto/HomeSaveArrangementNoChangeRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4668
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeSaveArrangementNoChangeRsp {
+ uint32 scene_id = 4;
+ int32 retcode = 11;
+}
diff --git a/proto/HomeSceneArrangementInfo.proto b/proto/HomeSceneArrangementInfo.proto
index af47577f..440e5660 100644
--- a/proto/HomeSceneArrangementInfo.proto
+++ b/proto/HomeSceneArrangementInfo.proto
@@ -31,7 +31,7 @@ message HomeSceneArrangementInfo {
bool is_set_born_pos = 10;
repeated HomeBlockArrangementInfo block_arrangement_info_list = 8;
uint32 scene_id = 2;
- uint32 Unk2700_BJHAMKKECEI = 12;
+ uint32 bgm_id = 12;
Vector djinn_pos = 9;
HomeFurnitureData main_house = 14;
uint32 comfort_value = 7;
diff --git a/proto/HomeScenePointFishFarmingInfo.proto b/proto/HomeScenePointFishFarmingInfo.proto
new file mode 100644
index 00000000..2822e31d
--- /dev/null
+++ b/proto/HomeScenePointFishFarmingInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeScenePointFishFarmingInfo {
+ uint32 scene_id = 13;
+ repeated uint32 fish_id_list = 1;
+ uint32 local_entity_id = 3;
+}
diff --git a/proto/HomeScenePointFishFarmingInfoNotify.proto b/proto/HomeScenePointFishFarmingInfoNotify.proto
new file mode 100644
index 00000000..12ae915c
--- /dev/null
+++ b/proto/HomeScenePointFishFarmingInfoNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeScenePointFishFarmingInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4547
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeScenePointFishFarmingInfoNotify {
+ repeated HomeScenePointFishFarmingInfo fish_farming_info_list = 7;
+}
diff --git a/proto/HomeSearchBlueprintReq.proto b/proto/HomeSearchBlueprintReq.proto
new file mode 100644
index 00000000..2379503f
--- /dev/null
+++ b/proto/HomeSearchBlueprintReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4889
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeSearchBlueprintReq {
+ string share_code = 13;
+}
diff --git a/proto/HomeSearchBlueprintRsp.proto b/proto/HomeSearchBlueprintRsp.proto
new file mode 100644
index 00000000..7e799a28
--- /dev/null
+++ b/proto/HomeSearchBlueprintRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeBlueprintSearchInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4593
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeSearchBlueprintRsp {
+ int32 retcode = 12;
+ HomeBlueprintSearchInfo search_info = 8;
+}
diff --git a/proto/Unk2700_LNBBLNNPNBE_ServerNotify.proto b/proto/HomeSeekFurnitureGalleryScoreNotify.proto
similarity index 84%
rename from proto/Unk2700_LNBBLNNPNBE_ServerNotify.proto
rename to proto/HomeSeekFurnitureGalleryScoreNotify.proto
index b7340161..ae5a9f93 100644
--- a/proto/Unk2700_LNBBLNNPNBE_ServerNotify.proto
+++ b/proto/HomeSeekFurnitureGalleryScoreNotify.proto
@@ -17,16 +17,16 @@
syntax = "proto3";
-import "Unk2700_JCBJHCFEONO.proto";
-import "Unk2700_MOFABPNGIKP.proto";
+import "GalleryStopReason.proto";
+import "HomeSeekFurnitureOneRecord.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 4583
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_LNBBLNNPNBE_ServerNotify {
+message HomeSeekFurnitureGalleryScoreNotify {
uint32 gallery_id = 15;
- Unk2700_JCBJHCFEONO Unk2700_GIHGLFNAGJD = 5;
- Unk2700_MOFABPNGIKP reason = 4;
+ HomeSeekFurnitureOneRecord record = 5;
+ GalleryStopReason reason = 4;
}
diff --git a/proto/Unk2700_JCBJHCFEONO.proto b/proto/HomeSeekFurnitureOneRecord.proto
similarity index 86%
rename from proto/Unk2700_JCBJHCFEONO.proto
rename to proto/HomeSeekFurnitureOneRecord.proto
index fe0bfa09..f8c6a2d2 100644
--- a/proto/Unk2700_JCBJHCFEONO.proto
+++ b/proto/HomeSeekFurnitureOneRecord.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "Unk2700_NOGODJOJDGF.proto";
+import "HomeSeekFurniturePlayerScore.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_JCBJHCFEONO {
- repeated Unk2700_NOGODJOJDGF Unk2700_AIMBFNOKKHE = 8;
+message HomeSeekFurnitureOneRecord {
+ repeated HomeSeekFurniturePlayerScore engaged_player_score_list = 8;
uint32 timestamp = 3;
}
diff --git a/proto/Unk2700_NOGODJOJDGF.proto b/proto/HomeSeekFurniturePlayerScore.proto
similarity index 89%
rename from proto/Unk2700_NOGODJOJDGF.proto
rename to proto/HomeSeekFurniturePlayerScore.proto
index 5aaad030..bdc73e99 100644
--- a/proto/Unk2700_NOGODJOJDGF.proto
+++ b/proto/HomeSeekFurniturePlayerScore.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "Unk2700_OCDMIOKNHHH.proto";
+import "HomeGroupPlayerInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_NOGODJOJDGF {
+message HomeSeekFurniturePlayerScore {
uint32 score = 12;
- Unk2700_OCDMIOKNHHH player_info = 10;
+ HomeGroupPlayerInfo player_info = 10;
}
diff --git a/proto/HomeSetBlueprintFriendOptionReq.proto b/proto/HomeSetBlueprintFriendOptionReq.proto
new file mode 100644
index 00000000..e77f654e
--- /dev/null
+++ b/proto/HomeSetBlueprintFriendOptionReq.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4554
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeSetBlueprintFriendOptionReq {
+ bool is_allow_friend_copy = 9;
+}
diff --git a/proto/HomeSetBlueprintFriendOptionRsp.proto b/proto/HomeSetBlueprintFriendOptionRsp.proto
new file mode 100644
index 00000000..456ed0cb
--- /dev/null
+++ b/proto/HomeSetBlueprintFriendOptionRsp.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4604
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeSetBlueprintFriendOptionRsp {
+ bool is_allow_friend_copy = 2;
+ int32 retcode = 12;
+}
diff --git a/proto/HomeSetBlueprintSlotOptionReq.proto b/proto/HomeSetBlueprintSlotOptionReq.proto
new file mode 100644
index 00000000..6d7af030
--- /dev/null
+++ b/proto/HomeSetBlueprintSlotOptionReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4798
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeSetBlueprintSlotOptionReq {
+ uint32 slot_id = 1;
+ bool is_allow_copy = 8;
+}
diff --git a/proto/HomeSetBlueprintSlotOptionRsp.proto b/proto/HomeSetBlueprintSlotOptionRsp.proto
new file mode 100644
index 00000000..cb760f26
--- /dev/null
+++ b/proto/HomeSetBlueprintSlotOptionRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4786
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeSetBlueprintSlotOptionRsp {
+ uint32 slot_id = 13;
+ bool is_allow_copy = 7;
+ int32 retcode = 15;
+}
diff --git a/proto/Unk2700_BEGHDPPNMFM.proto b/proto/HomeStakePlayRecord.proto
similarity index 88%
rename from proto/Unk2700_BEGHDPPNMFM.proto
rename to proto/HomeStakePlayRecord.proto
index 6108d311..2ed81b03 100644
--- a/proto/Unk2700_BEGHDPPNMFM.proto
+++ b/proto/HomeStakePlayRecord.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "Unk2700_OCDMIOKNHHH.proto";
+import "HomeGroupPlayerInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_BEGHDPPNMFM {
- repeated Unk2700_OCDMIOKNHHH Unk2700_AOFJNJNBAAI = 14;
+message HomeStakePlayRecord {
+ repeated HomeGroupPlayerInfo engaged_player_info_list = 14;
uint32 timestamp = 9;
}
diff --git a/proto/HomeStakeRecord.proto b/proto/HomeStakeRecord.proto
new file mode 100644
index 00000000..2327e42e
--- /dev/null
+++ b/proto/HomeStakeRecord.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeStakePlayRecord.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message HomeStakeRecord {
+ repeated HomeStakePlayRecord record_list = 13;
+}
diff --git a/proto/HomeTransferReq.proto b/proto/HomeTransferReq.proto
index aaf058f0..12377076 100644
--- a/proto/HomeTransferReq.proto
+++ b/proto/HomeTransferReq.proto
@@ -25,5 +25,5 @@ option java_package = "emu.grasscutter.net.proto";
// IsAllowClient: true
message HomeTransferReq {
uint32 guid = 1;
- bool Unk3100_KEMFDDMEBIG = 12;
+ bool is_transfer_to_safe_point = 12;
}
diff --git a/proto/Unk2700_MMFIJILOCOP_ClientReq.proto b/proto/HomeUpdatePictureFrameInfoReq.proto
similarity index 89%
rename from proto/Unk2700_MMFIJILOCOP_ClientReq.proto
rename to proto/HomeUpdatePictureFrameInfoReq.proto
index d1d253de..93d836d3 100644
--- a/proto/Unk2700_MMFIJILOCOP_ClientReq.proto
+++ b/proto/HomeUpdatePictureFrameInfoReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2700_IMMPPANFEPP.proto";
+import "HomePictureFrameInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,6 +25,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_MMFIJILOCOP_ClientReq {
- Unk2700_IMMPPANFEPP Unk2700_JJBKBKPEIBC = 1;
+message HomeUpdatePictureFrameInfoReq {
+ HomePictureFrameInfo picture_frame_info = 1;
}
diff --git a/proto/Unk2700_KGHOJPDNMKK_ServerRsp.proto b/proto/HomeUpdatePictureFrameInfoRsp.proto
similarity index 89%
rename from proto/Unk2700_KGHOJPDNMKK_ServerRsp.proto
rename to proto/HomeUpdatePictureFrameInfoRsp.proto
index a8d44404..6d351440 100644
--- a/proto/Unk2700_KGHOJPDNMKK_ServerRsp.proto
+++ b/proto/HomeUpdatePictureFrameInfoRsp.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_IMMPPANFEPP.proto";
+import "HomePictureFrameInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 4641
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_KGHOJPDNMKK_ServerRsp {
+message HomeUpdatePictureFrameInfoRsp {
int32 retcode = 13;
- Unk2700_IMMPPANFEPP Unk2700_JJBKBKPEIBC = 14;
+ HomePictureFrameInfo picture_frame_info = 14;
}
diff --git a/proto/HomeUpdateScenePointFishFarmingInfoReq.proto b/proto/HomeUpdateScenePointFishFarmingInfoReq.proto
new file mode 100644
index 00000000..2daab656
--- /dev/null
+++ b/proto/HomeUpdateScenePointFishFarmingInfoReq.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "HomeScenePointFishFarmingInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4511
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message HomeUpdateScenePointFishFarmingInfoReq {
+ HomeScenePointFishFarmingInfo fish_farming_info = 7;
+}
diff --git a/proto/HomeUpdateScenePointFishFarmingInfoRsp.proto b/proto/HomeUpdateScenePointFishFarmingInfoRsp.proto
new file mode 100644
index 00000000..7fc997a0
--- /dev/null
+++ b/proto/HomeUpdateScenePointFishFarmingInfoRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4540
+// EnetChannelId: 0
+// EnetIsReliable: true
+message HomeUpdateScenePointFishFarmingInfoRsp {
+ int32 retcode = 4;
+}
diff --git a/proto/HomeVerifyData.proto b/proto/HomeVerifyData.proto
index 395c377b..2a2fc557 100644
--- a/proto/HomeVerifyData.proto
+++ b/proto/HomeVerifyData.proto
@@ -24,10 +24,10 @@ import "LanguageType.proto";
option java_package = "emu.grasscutter.net.proto";
message HomeVerifyData {
- string Unk2700_OAKBDKKBFHP = 7;
+ string aid = 7;
fixed32 timestamp = 15;
uint32 uid = 5;
- HomeSceneArrangementMuipData Unk2700_CDELDBLKLDO = 9;
+ HomeSceneArrangementMuipData arrangement_data = 9;
string region = 3;
string token = 1;
HomeVerifySceneData home_info = 6;
diff --git a/proto/IrodoriChessSettleInfo.proto b/proto/InBattleIrodoriChessSettleInfo.proto
similarity index 91%
rename from proto/IrodoriChessSettleInfo.proto
rename to proto/InBattleIrodoriChessSettleInfo.proto
index 3937f2bb..85481b4f 100644
--- a/proto/IrodoriChessSettleInfo.proto
+++ b/proto/InBattleIrodoriChessSettleInfo.proto
@@ -19,11 +19,11 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message IrodoriChessSettleInfo {
+message InBattleIrodoriChessSettleInfo {
bool is_new_record = 5;
- bool Unk2700_PFEDPLKKLGH = 2;
+ bool is_activity_end = 2;
uint64 scene_time_ms = 1;
- uint32 Unk2700_CDOKENJJJMH = 3;
+ uint32 settle_score = 3;
bool is_perfect = 12;
uint32 kill_monster_num = 7;
}
diff --git a/proto/InferencePageInfo.proto b/proto/InferencePageInfo.proto
new file mode 100644
index 00000000..d906add7
--- /dev/null
+++ b/proto/InferencePageInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "InfernceWordInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message InferencePageInfo {
+ uint32 page_id = 3;
+ repeated InfernceWordInfo unlock_word_list = 15;
+}
diff --git a/proto/InfernceWordInfo.proto b/proto/InfernceWordInfo.proto
new file mode 100644
index 00000000..51219685
--- /dev/null
+++ b/proto/InfernceWordInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message InfernceWordInfo {
+ uint32 word_id = 8;
+ bool is_interpret = 15;
+ bool is_submit = 10;
+ bool is_associate = 6;
+ uint32 unlock_by_word_id = 5;
+}
diff --git a/proto/Unk3000_JACOCADDNFE.proto b/proto/InstableSprayAvatarInfo.proto
similarity index 96%
rename from proto/Unk3000_JACOCADDNFE.proto
rename to proto/InstableSprayAvatarInfo.proto
index 9906bdd3..4b152f93 100644
--- a/proto/Unk3000_JACOCADDNFE.proto
+++ b/proto/InstableSprayAvatarInfo.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_JACOCADDNFE {
+message InstableSprayAvatarInfo {
bool is_trial = 8;
uint64 avatar_id = 2;
}
diff --git a/proto/InstableSprayDetailInfo.proto b/proto/InstableSprayDetailInfo.proto
index f7575222..25047571 100644
--- a/proto/InstableSprayDetailInfo.proto
+++ b/proto/InstableSprayDetailInfo.proto
@@ -17,10 +17,10 @@
syntax = "proto3";
-import "Unk3000_ICLKJJNGOHN.proto";
+import "InstableSprayStageInfo.proto";
option java_package = "emu.grasscutter.net.proto";
message InstableSprayDetailInfo {
- repeated Unk3000_ICLKJJNGOHN Unk2700_PHKHIPLDOOA = 9;
+ repeated InstableSprayStageInfo stage_info_list = 9;
}
diff --git a/proto/Unk3000_LLBCFCDMCID.proto b/proto/InstableSprayEnterDungeonReq.proto
similarity index 88%
rename from proto/Unk3000_LLBCFCDMCID.proto
rename to proto/InstableSprayEnterDungeonReq.proto
index 43b693cd..95d968a5 100644
--- a/proto/Unk3000_LLBCFCDMCID.proto
+++ b/proto/InstableSprayEnterDungeonReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk3000_JACOCADDNFE.proto";
+import "InstableSprayAvatarInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,8 +25,8 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_LLBCFCDMCID {
+message InstableSprayEnterDungeonReq {
uint32 stage_id = 13;
uint32 difficulty = 2;
- repeated Unk3000_JACOCADDNFE avatar_info_list = 7;
+ repeated InstableSprayAvatarInfo avatar_info_list = 7;
}
diff --git a/proto/Unk3000_EHJALCDEBKK.proto b/proto/InstableSprayEnterDungeonRsp.proto
similarity index 96%
rename from proto/Unk3000_EHJALCDEBKK.proto
rename to proto/InstableSprayEnterDungeonRsp.proto
index c341d56b..67164bce 100644
--- a/proto/Unk3000_EHJALCDEBKK.proto
+++ b/proto/InstableSprayEnterDungeonRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 23381
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_EHJALCDEBKK {
+message InstableSprayEnterDungeonRsp {
uint32 level_id = 11;
int32 retcode = 9;
}
diff --git a/proto/Unk3000_DJNBNBMIECP.proto b/proto/InstableSprayGalleryInfoNotify.proto
similarity index 96%
rename from proto/Unk3000_DJNBNBMIECP.proto
rename to proto/InstableSprayGalleryInfoNotify.proto
index 601b647a..5103d972 100644
--- a/proto/Unk3000_DJNBNBMIECP.proto
+++ b/proto/InstableSprayGalleryInfoNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 5588
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_DJNBNBMIECP {
+message InstableSprayGalleryInfoNotify {
uint32 score = 3;
}
diff --git a/proto/Unk3000_HPFGNOIGNAG.proto b/proto/InstableSprayLevelFinishNotify.proto
similarity index 90%
rename from proto/Unk3000_HPFGNOIGNAG.proto
rename to proto/InstableSprayLevelFinishNotify.proto
index 48100f02..570081ac 100644
--- a/proto/Unk3000_HPFGNOIGNAG.proto
+++ b/proto/InstableSprayLevelFinishNotify.proto
@@ -22,9 +22,9 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 21961
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_HPFGNOIGNAG {
- bool Unk3000_PHIIBCMNPEK = 11;
- bool Unk3000_NFLEINABPPC = 7;
+message InstableSprayLevelFinishNotify {
+ bool is_need_switch_team = 11;
+ bool is_skip_black_screen = 7;
uint32 round = 15;
uint32 stage_id = 8;
uint32 level_id = 10;
diff --git a/proto/Unk3000_FIPHHGCJIMO.proto b/proto/InstableSprayRestartDungeonReq.proto
similarity index 88%
rename from proto/Unk3000_FIPHHGCJIMO.proto
rename to proto/InstableSprayRestartDungeonReq.proto
index 4a00e482..9fa14278 100644
--- a/proto/Unk3000_FIPHHGCJIMO.proto
+++ b/proto/InstableSprayRestartDungeonReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk3000_JACOCADDNFE.proto";
+import "InstableSprayAvatarInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,6 +25,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_FIPHHGCJIMO {
- repeated Unk3000_JACOCADDNFE avatar_info_list = 6;
+message InstableSprayRestartDungeonReq {
+ repeated InstableSprayAvatarInfo avatar_info_list = 6;
}
diff --git a/proto/Unk3000_NMEJCJFJPHM.proto b/proto/InstableSprayRestartDungeonRsp.proto
similarity index 96%
rename from proto/Unk3000_NMEJCJFJPHM.proto
rename to proto/InstableSprayRestartDungeonRsp.proto
index 7d3469fa..05337b05 100644
--- a/proto/Unk3000_NMEJCJFJPHM.proto
+++ b/proto/InstableSprayRestartDungeonRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 24923
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_NMEJCJFJPHM {
+message InstableSprayRestartDungeonRsp {
uint32 level_id = 1;
int32 retcode = 13;
}
diff --git a/proto/Unk3000_ICLKJJNGOHN.proto b/proto/InstableSprayStageInfo.proto
similarity index 89%
rename from proto/Unk3000_ICLKJJNGOHN.proto
rename to proto/InstableSprayStageInfo.proto
index 158e3046..71fd2b13 100644
--- a/proto/Unk3000_ICLKJJNGOHN.proto
+++ b/proto/InstableSprayStageInfo.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk3000_KEJLPBEOHNH.proto";
+import "InstableSprayTeamInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_ICLKJJNGOHN {
+message InstableSprayStageInfo {
bool is_finished = 10;
uint32 max_score = 3;
uint32 stage_id = 4;
- repeated Unk3000_KEJLPBEOHNH Unk2700_GMAEHKMDIGG = 6;
+ repeated InstableSprayTeamInfo team_info_list = 6;
}
diff --git a/proto/Unk3000_EBNMMLENEII.proto b/proto/InstableSpraySwitchTeamReq.proto
similarity index 88%
rename from proto/Unk3000_EBNMMLENEII.proto
rename to proto/InstableSpraySwitchTeamReq.proto
index ae42a7c1..c6d4d041 100644
--- a/proto/Unk3000_EBNMMLENEII.proto
+++ b/proto/InstableSpraySwitchTeamReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk3000_JACOCADDNFE.proto";
+import "InstableSprayAvatarInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,6 +25,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_EBNMMLENEII {
- repeated Unk3000_JACOCADDNFE avatar_info_list = 13;
+message InstableSpraySwitchTeamReq {
+ repeated InstableSprayAvatarInfo avatar_info_list = 13;
}
diff --git a/proto/Unk3000_JIEPEGAHDNH.proto b/proto/InstableSpraySwitchTeamRsp.proto
similarity index 96%
rename from proto/Unk3000_JIEPEGAHDNH.proto
rename to proto/InstableSpraySwitchTeamRsp.proto
index dc4bfa69..56c39e39 100644
--- a/proto/Unk3000_JIEPEGAHDNH.proto
+++ b/proto/InstableSpraySwitchTeamRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 24152
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_JIEPEGAHDNH {
+message InstableSpraySwitchTeamRsp {
uint32 level_id = 1;
int32 retcode = 8;
}
diff --git a/proto/InstableSprayTeamInfo.proto b/proto/InstableSprayTeamInfo.proto
new file mode 100644
index 00000000..210cb686
--- /dev/null
+++ b/proto/InstableSprayTeamInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "InstableSprayAvatarInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message InstableSprayTeamInfo {
+ repeated InstableSprayAvatarInfo avatar_info_list = 13;
+}
diff --git a/proto/InteractType.proto b/proto/InteractType.proto
index f15f7830..15e6ed0e 100644
--- a/proto/InteractType.proto
+++ b/proto/InteractType.proto
@@ -35,6 +35,6 @@ enum InteractType {
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;
+ INTERACT_TYPE_UI_INTERACT = 15;
+ INTERACT_TYPE_DESHRET_OBELISK = 16;
}
diff --git a/proto/InterpretInferenceWordReq.proto b/proto/InterpretInferenceWordReq.proto
new file mode 100644
index 00000000..1f8636f0
--- /dev/null
+++ b/proto/InterpretInferenceWordReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy 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 InterpretInferenceWordReq {
+ uint32 word_id = 2;
+ uint32 page_id = 4;
+}
diff --git a/proto/InterpretInferenceWordRsp.proto b/proto/InterpretInferenceWordRsp.proto
new file mode 100644
index 00000000..acf1535e
--- /dev/null
+++ b/proto/InterpretInferenceWordRsp.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy 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 InterpretInferenceWordRsp {
+ int32 retcode = 5;
+ uint32 word_id = 14;
+ uint32 page_id = 13;
+}
diff --git a/proto/Unk2800_ECCLDPCADCJ.proto b/proto/InvestigationQuestDailyNotify.proto
similarity index 96%
rename from proto/Unk2800_ECCLDPCADCJ.proto
rename to proto/InvestigationQuestDailyNotify.proto
index 99b2869d..d768b728 100644
--- a/proto/Unk2800_ECCLDPCADCJ.proto
+++ b/proto/InvestigationQuestDailyNotify.proto
@@ -22,4 +22,4 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 1921
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_ECCLDPCADCJ {}
+message InvestigationQuestDailyNotify {}
diff --git a/proto/Unk2800_DPINLADLBFA.proto b/proto/InvestigationReadQuestDailyNotify.proto
similarity index 95%
rename from proto/Unk2800_DPINLADLBFA.proto
rename to proto/InvestigationReadQuestDailyNotify.proto
index 7ff74d55..1aa61152 100644
--- a/proto/Unk2800_DPINLADLBFA.proto
+++ b/proto/InvestigationReadQuestDailyNotify.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2800_DPINLADLBFA {}
+message InvestigationReadQuestDailyNotify {}
diff --git a/proto/IrodoriActivityDetailInfo.proto b/proto/IrodoriActivityDetailInfo.proto
index 489fc411..e0cdaaf0 100644
--- a/proto/IrodoriActivityDetailInfo.proto
+++ b/proto/IrodoriActivityDetailInfo.proto
@@ -17,16 +17,16 @@
syntax = "proto3";
-import "Unk2700_AIGECAPPCKK.proto";
-import "Unk2700_AMJFIJNNGHC.proto";
-import "Unk2700_GCPNGHFNGDP.proto";
-import "Unk2700_JACACCPGMGC.proto";
+import "IrodoriChessData.proto";
+import "IrodoriFlowerData.proto";
+import "IrodoriMasterLevelInfo.proto";
+import "IrodoriPoetryData.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;
+ repeated IrodoriMasterLevelInfo master_level_list = 11;
+ IrodoriFlowerData flower_data = 6;
+ IrodoriPoetryData poetry_data = 8;
+ IrodoriChessData chess_data = 14;
}
diff --git a/proto/Unk2700_AMJFIJNNGHC.proto b/proto/IrodoriChessData.proto
similarity index 88%
rename from proto/Unk2700_AMJFIJNNGHC.proto
rename to proto/IrodoriChessData.proto
index 1d9369d7..7135d321 100644
--- a/proto/Unk2700_AMJFIJNNGHC.proto
+++ b/proto/IrodoriChessData.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "Unk2700_PEDJGJMHMHH.proto";
+import "IrodoriChessLevelData.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_AMJFIJNNGHC {
+message IrodoriChessData {
bool is_open = 8;
- repeated Unk2700_PEDJGJMHMHH Unk2700_KPEIIFDINPC = 1;
+ repeated IrodoriChessLevelData level_data_list = 1;
}
diff --git a/proto/IrodoriChessEntranceDetailInfo.proto b/proto/IrodoriChessEntranceDetailInfo.proto
new file mode 100644
index 00000000..cd786f10
--- /dev/null
+++ b/proto/IrodoriChessEntranceDetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "IrodoriChessEntranceInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message IrodoriChessEntranceDetailInfo {
+ repeated IrodoriChessEntranceInfo info_list = 15;
+}
diff --git a/proto/Unk2700_CBMGMANEDNA.proto b/proto/IrodoriChessEntranceInfo.proto
similarity index 88%
rename from proto/Unk2700_CBMGMANEDNA.proto
rename to proto/IrodoriChessEntranceInfo.proto
index 28ad2f9f..5f55e310 100644
--- a/proto/Unk2700_CBMGMANEDNA.proto
+++ b/proto/IrodoriChessEntranceInfo.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "Unk2700_DOGEKCNIIAO.proto";
+import "IrodoriChessMonsterInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_CBMGMANEDNA {
- repeated Unk2700_DOGEKCNIIAO monster_info_list = 6;
+message IrodoriChessEntranceInfo {
+ repeated IrodoriChessMonsterInfo monster_info_list = 6;
uint32 entrance_point_id = 4;
}
diff --git a/proto/Unk2700_BKGPMAHMHIG.proto b/proto/IrodoriChessEquipCardReq.proto
similarity index 94%
rename from proto/Unk2700_BKGPMAHMHIG.proto
rename to proto/IrodoriChessEquipCardReq.proto
index 14b0af61..2f707c5c 100644
--- a/proto/Unk2700_BKGPMAHMHIG.proto
+++ b/proto/IrodoriChessEquipCardReq.proto
@@ -23,8 +23,8 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_BKGPMAHMHIG {
- bool Unk2700_PHGMKGEMCFF = 2;
+message IrodoriChessEquipCardReq {
+ bool is_hard_map = 2;
uint32 level_id = 12;
uint32 card_id = 9;
}
diff --git a/proto/Unk2700_KDFNIGOBLEK.proto b/proto/IrodoriChessEquipCardRsp.proto
similarity index 94%
rename from proto/Unk2700_KDFNIGOBLEK.proto
rename to proto/IrodoriChessEquipCardRsp.proto
index 291add3e..d9821422 100644
--- a/proto/Unk2700_KDFNIGOBLEK.proto
+++ b/proto/IrodoriChessEquipCardRsp.proto
@@ -22,9 +22,9 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8308
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_KDFNIGOBLEK {
+message IrodoriChessEquipCardRsp {
int32 retcode = 2;
uint32 card_id = 8;
uint32 level_id = 5;
- bool Unk2700_PHGMKGEMCFF = 12;
+ bool is_hard_map = 12;
}
diff --git a/proto/IrodoriChessInfo.proto b/proto/IrodoriChessInfo.proto
index 7ca02661..2729444f 100644
--- a/proto/IrodoriChessInfo.proto
+++ b/proto/IrodoriChessInfo.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_IBEKDNOGMLA.proto";
+import "IrodoriChessMysteryInfo.proto";
option java_package = "emu.grasscutter.net.proto";
message IrodoriChessInfo {
- Unk2700_IBEKDNOGMLA mystery_info = 3;
+ IrodoriChessMysteryInfo mystery_info = 3;
uint32 left_monsters = 12;
- repeated uint32 Unk2700_MABMPAAGHCJ = 13;
+ repeated uint32 selected_card_id_list = 13;
uint32 building_points = 7;
- uint32 Unk2700_CDOKENJJJMH = 4;
+ uint32 settle_score = 4;
}
diff --git a/proto/Unk2700_MEFJECGAFNH_ServerNotify.proto b/proto/IrodoriChessLeftMonsterNotify.proto
similarity index 96%
rename from proto/Unk2700_MEFJECGAFNH_ServerNotify.proto
rename to proto/IrodoriChessLeftMonsterNotify.proto
index c161292d..6c0c207c 100644
--- a/proto/Unk2700_MEFJECGAFNH_ServerNotify.proto
+++ b/proto/IrodoriChessLeftMonsterNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 5338
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_MEFJECGAFNH_ServerNotify {
+message IrodoriChessLeftMonsterNotify {
uint32 left_monsters = 8;
}
diff --git a/proto/Unk2700_PEDJGJMHMHH.proto b/proto/IrodoriChessLevelData.proto
similarity index 86%
rename from proto/Unk2700_PEDJGJMHMHH.proto
rename to proto/IrodoriChessLevelData.proto
index 83f0eca8..3f0b563b 100644
--- a/proto/Unk2700_PEDJGJMHMHH.proto
+++ b/proto/IrodoriChessLevelData.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk2700_EOHBLDIKPME.proto";
+import "IrodoriChessMapData.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_PEDJGJMHMHH {
+message IrodoriChessLevelData {
uint32 open_time = 8;
uint32 level_id = 15;
- Unk2700_EOHBLDIKPME Unk2700_EAKNBKIIJHB = 7;
- Unk2700_EOHBLDIKPME Unk2700_HIHOANFAKEA = 11;
+ IrodoriChessMapData hard_map_data = 7;
+ IrodoriChessMapData normal_map_data = 11;
}
diff --git a/proto/Unk2700_EOHBLDIKPME.proto b/proto/IrodoriChessMapData.proto
similarity index 84%
rename from proto/Unk2700_EOHBLDIKPME.proto
rename to proto/IrodoriChessMapData.proto
index 5e21d81e..e28895c6 100644
--- a/proto/Unk2700_EOHBLDIKPME.proto
+++ b/proto/IrodoriChessMapData.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk2700_INMNHKOPCFB.proto";
+import "IrodoriChessEntranceDetailInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_EOHBLDIKPME {
+message IrodoriChessMapData {
uint32 map_id = 6;
- Unk2700_INMNHKOPCFB Unk2700_JONOMFENDFP = 7;
- repeated uint32 Unk2700_LDIGKKLLDOC = 3;
+ IrodoriChessEntranceDetailInfo entrance_detail_info = 7;
+ repeated uint32 equiped_card_list = 3;
uint32 best_score = 8;
}
diff --git a/proto/Unk2700_DOGEKCNIIAO.proto b/proto/IrodoriChessMonsterInfo.proto
similarity index 94%
rename from proto/Unk2700_DOGEKCNIIAO.proto
rename to proto/IrodoriChessMonsterInfo.proto
index 21ea59f8..53b90cc0 100644
--- a/proto/Unk2700_DOGEKCNIIAO.proto
+++ b/proto/IrodoriChessMonsterInfo.proto
@@ -19,8 +19,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_DOGEKCNIIAO {
- uint32 Unk2700_KJFBIFHFIBO = 6;
+message IrodoriChessMonsterInfo {
+ uint32 grant_points = 6;
uint32 level = 13;
uint32 monster_id = 14;
repeated uint32 affix_list = 11;
diff --git a/proto/Unk2700_IBEKDNOGMLA.proto b/proto/IrodoriChessMysteryInfo.proto
similarity index 84%
rename from proto/Unk2700_IBEKDNOGMLA.proto
rename to proto/IrodoriChessMysteryInfo.proto
index 989bd4e5..792419d3 100644
--- a/proto/Unk2700_IBEKDNOGMLA.proto
+++ b/proto/IrodoriChessMysteryInfo.proto
@@ -17,12 +17,12 @@
syntax = "proto3";
-import "Unk2700_INMNHKOPCFB.proto";
+import "IrodoriChessEntranceDetailInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_IBEKDNOGMLA {
- Unk2700_INMNHKOPCFB Unk2700_JONOMFENDFP = 5;
- repeated uint32 Unk2700_MJLHEFIGIKD = 2;
+message IrodoriChessMysteryInfo {
+ IrodoriChessEntranceDetailInfo entrance_detail_info = 5;
+ repeated uint32 entrance_point_id_list = 2;
repeated uint32 exit_point_id_list = 13;
}
diff --git a/proto/Unk2700_NKIDCOKNPFF.proto b/proto/IrodoriChessPlayerInfo.proto
similarity index 93%
rename from proto/Unk2700_NKIDCOKNPFF.proto
rename to proto/IrodoriChessPlayerInfo.proto
index a71e51a7..52d8fc13 100644
--- a/proto/Unk2700_NKIDCOKNPFF.proto
+++ b/proto/IrodoriChessPlayerInfo.proto
@@ -19,8 +19,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_NKIDCOKNPFF {
+message IrodoriChessPlayerInfo {
uint32 uid = 4;
uint32 building_points = 9;
- uint32 Unk2700_CDOKENJJJMH = 3;
+ uint32 settle_score = 3;
}
diff --git a/proto/Unk2700_GECHLGFKPOD_ServerNotify.proto b/proto/IrodoriChessPlayerInfoNotify.proto
similarity index 89%
rename from proto/Unk2700_GECHLGFKPOD_ServerNotify.proto
rename to proto/IrodoriChessPlayerInfoNotify.proto
index 8931236a..e7d18067 100644
--- a/proto/Unk2700_GECHLGFKPOD_ServerNotify.proto
+++ b/proto/IrodoriChessPlayerInfoNotify.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk2700_NKIDCOKNPFF.proto";
+import "IrodoriChessPlayerInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 5364
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_GECHLGFKPOD_ServerNotify {
- Unk2700_NKIDCOKNPFF player_info = 6;
+message IrodoriChessPlayerInfoNotify {
+ IrodoriChessPlayerInfo player_info = 6;
}
diff --git a/proto/Unk2700_GLLIEOABOML.proto b/proto/IrodoriChessUnequipCardReq.proto
similarity index 94%
rename from proto/Unk2700_GLLIEOABOML.proto
rename to proto/IrodoriChessUnequipCardReq.proto
index 41cf23b3..9a890828 100644
--- a/proto/Unk2700_GLLIEOABOML.proto
+++ b/proto/IrodoriChessUnequipCardReq.proto
@@ -23,8 +23,8 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_GLLIEOABOML {
+message IrodoriChessUnequipCardReq {
uint32 card_id = 8;
uint32 level_id = 5;
- bool Unk2700_PHGMKGEMCFF = 10;
+ bool is_hard_map = 10;
}
diff --git a/proto/Unk2700_CPDDDMPAIDL.proto b/proto/IrodoriChessUnequipCardRsp.proto
similarity index 94%
rename from proto/Unk2700_CPDDDMPAIDL.proto
rename to proto/IrodoriChessUnequipCardRsp.proto
index baa23188..2bcb0d84 100644
--- a/proto/Unk2700_CPDDDMPAIDL.proto
+++ b/proto/IrodoriChessUnequipCardRsp.proto
@@ -22,8 +22,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8817
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_CPDDDMPAIDL {
- bool Unk2700_PHGMKGEMCFF = 10;
+message IrodoriChessUnequipCardRsp {
+ bool is_hard_map = 10;
uint32 card_id = 13;
uint32 level_id = 14;
int32 retcode = 11;
diff --git a/proto/Unk2700_GIFKPMNGNGB.proto b/proto/IrodoriEditFlowerCombinationReq.proto
similarity index 92%
rename from proto/Unk2700_GIFKPMNGNGB.proto
rename to proto/IrodoriEditFlowerCombinationReq.proto
index 2e84921d..ea21fb70 100644
--- a/proto/Unk2700_GIFKPMNGNGB.proto
+++ b/proto/IrodoriEditFlowerCombinationReq.proto
@@ -25,7 +25,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_GIFKPMNGNGB {
+message IrodoriEditFlowerCombinationReq {
uint32 entity_id = 13;
- CustomGadgetTreeInfo Unk2700_OCIHJFOKHPK = 1;
+ CustomGadgetTreeInfo combination_info = 1;
}
diff --git a/proto/Unk2700_PFOLNOBIKFB.proto b/proto/IrodoriEditFlowerCombinationRsp.proto
similarity index 90%
rename from proto/Unk2700_PFOLNOBIKFB.proto
rename to proto/IrodoriEditFlowerCombinationRsp.proto
index aae857cb..20693389 100644
--- a/proto/Unk2700_PFOLNOBIKFB.proto
+++ b/proto/IrodoriEditFlowerCombinationRsp.proto
@@ -22,8 +22,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8833
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_PFOLNOBIKFB {
- bool Unk2700_PIDPNNOGBJB = 4;
- bool Unk2700_DCGOILIDPNK = 3;
+message IrodoriEditFlowerCombinationRsp {
+ bool is_already_finished = 4;
+ bool is_can_take_reward = 3;
int32 retcode = 1;
}
diff --git a/proto/IrodoriFillPoetryReq.proto b/proto/IrodoriFillPoetryReq.proto
new file mode 100644
index 00000000..ff0ddb9e
--- /dev/null
+++ b/proto/IrodoriFillPoetryReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy 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 IrodoriFillPoetryReq {
+ uint32 theme_id = 9;
+ uint32 line_id = 13;
+}
diff --git a/proto/Unk2700_IEGOOOECBFH.proto b/proto/IrodoriFillPoetryRsp.proto
similarity index 90%
rename from proto/Unk2700_IEGOOOECBFH.proto
rename to proto/IrodoriFillPoetryRsp.proto
index dc6bbe08..85b89677 100644
--- a/proto/Unk2700_IEGOOOECBFH.proto
+++ b/proto/IrodoriFillPoetryRsp.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_HIHKGMLLOGD.proto";
+import "IrodoriPoetryThemeData.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8880
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_IEGOOOECBFH {
- Unk2700_HIHKGMLLOGD Unk2700_BABEGIGEEIB = 13;
+message IrodoriFillPoetryRsp {
+ IrodoriPoetryThemeData theme_data = 13;
int32 retcode = 12;
}
diff --git a/proto/Unk2700_GCPNGHFNGDP.proto b/proto/IrodoriFlowerData.proto
similarity index 89%
rename from proto/Unk2700_GCPNGHFNGDP.proto
rename to proto/IrodoriFlowerData.proto
index 54b93b64..37812ea0 100644
--- a/proto/Unk2700_GCPNGHFNGDP.proto
+++ b/proto/IrodoriFlowerData.proto
@@ -21,7 +21,7 @@ import "ItemParam.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_GCPNGHFNGDP {
- repeated uint32 Unk2700_ANAEHLBDFIC = 1;
- repeated ItemParam Unk2700_PMMJDKJHBIG = 7;
+message IrodoriFlowerData {
+ repeated uint32 finished_theme_list = 1;
+ repeated ItemParam used_flower_list = 7;
}
diff --git a/proto/Unk2700_NMJCGMOOIFP.proto b/proto/IrodoriMasterGalleryCgEndNotify.proto
similarity index 96%
rename from proto/Unk2700_NMJCGMOOIFP.proto
rename to proto/IrodoriMasterGalleryCgEndNotify.proto
index 2304faed..1041c5a9 100644
--- a/proto/Unk2700_NMJCGMOOIFP.proto
+++ b/proto/IrodoriMasterGalleryCgEndNotify.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_NMJCGMOOIFP {
+message IrodoriMasterGalleryCgEndNotify {
uint32 level_id = 15;
uint32 gallery_id = 4;
}
diff --git a/proto/Unk2700_DJKEGIEIKHG.proto b/proto/IrodoriMasterGallerySettleInfo.proto
similarity index 85%
rename from proto/Unk2700_DJKEGIEIKHG.proto
rename to proto/IrodoriMasterGallerySettleInfo.proto
index 55cf684b..9f3014c3 100644
--- a/proto/Unk2700_DJKEGIEIKHG.proto
+++ b/proto/IrodoriMasterGallerySettleInfo.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_MOFABPNGIKP.proto";
+import "GalleryStopReason.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_DJKEGIEIKHG {
- Unk2700_MOFABPNGIKP reason = 15;
- bool Unk2700_MMNILGLDHHD = 11;
+message IrodoriMasterGallerySettleInfo {
+ GalleryStopReason reason = 15;
+ bool is_finish = 11;
uint32 finish_time = 14;
- uint32 Unk2700_BCCHNACPBME = 6;
+ uint32 difficult = 6;
uint32 level_id = 4;
}
diff --git a/proto/Unk2700_NDDBFNNHLFE.proto b/proto/IrodoriMasterGallerySettleNotify.proto
similarity index 88%
rename from proto/Unk2700_NDDBFNNHLFE.proto
rename to proto/IrodoriMasterGallerySettleNotify.proto
index 1d7937fa..87d15118 100644
--- a/proto/Unk2700_NDDBFNNHLFE.proto
+++ b/proto/IrodoriMasterGallerySettleNotify.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2700_DJKEGIEIKHG.proto";
+import "IrodoriMasterGallerySettleInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,7 +25,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_NDDBFNNHLFE {
- Unk2700_DJKEGIEIKHG settle_info = 13;
+message IrodoriMasterGallerySettleNotify {
+ IrodoriMasterGallerySettleInfo settle_info = 13;
uint32 gallery_id = 5;
}
diff --git a/proto/Unk2700_ICPNKAALJEP.proto b/proto/IrodoriMasterLevelDetailInfo.proto
similarity index 89%
rename from proto/Unk2700_ICPNKAALJEP.proto
rename to proto/IrodoriMasterLevelDetailInfo.proto
index b6d1adc9..aea59188 100644
--- a/proto/Unk2700_ICPNKAALJEP.proto
+++ b/proto/IrodoriMasterLevelDetailInfo.proto
@@ -17,11 +17,11 @@
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;
+message IrodoriMasterLevelDetailInfo {
+ bool is_finish = 1;
+ uint32 diffculty = 2;
+ uint32 min_finish_time = 8;
+ bool is_have_try = 7;
}
diff --git a/proto/Unk2700_JACACCPGMGC.proto b/proto/IrodoriMasterLevelInfo.proto
similarity index 87%
rename from proto/Unk2700_JACACCPGMGC.proto
rename to proto/IrodoriMasterLevelInfo.proto
index 58253450..ff779a08 100644
--- a/proto/Unk2700_JACACCPGMGC.proto
+++ b/proto/IrodoriMasterLevelInfo.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "Unk2700_MIMJBGMEMCA.proto";
+import "IrodoriMasterLevelDetailInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_JACACCPGMGC {
- repeated Unk2700_MIMJBGMEMCA Unk2700_IDGMODJPBGF = 11;
+message IrodoriMasterLevelInfo {
+ repeated IrodoriMasterLevelDetailInfo detail_info = 11;
uint32 level_id = 14;
}
diff --git a/proto/Unk2700_PHLEDBIFIFL.proto b/proto/IrodoriMasterStartGalleryReq.proto
similarity index 96%
rename from proto/Unk2700_PHLEDBIFIFL.proto
rename to proto/IrodoriMasterStartGalleryReq.proto
index e104549b..355c9763 100644
--- a/proto/Unk2700_PHLEDBIFIFL.proto
+++ b/proto/IrodoriMasterStartGalleryReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_PHLEDBIFIFL {
+message IrodoriMasterStartGalleryReq {
uint32 level_id = 12;
uint32 difficulty = 4;
}
diff --git a/proto/Unk2700_JFGFIDBPGBK.proto b/proto/IrodoriMasterStartGalleryRsp.proto
similarity index 96%
rename from proto/Unk2700_JFGFIDBPGBK.proto
rename to proto/IrodoriMasterStartGalleryRsp.proto
index 6a861823..7eb4fde0 100644
--- a/proto/Unk2700_JFGFIDBPGBK.proto
+++ b/proto/IrodoriMasterStartGalleryRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8381
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_JFGFIDBPGBK {
+message IrodoriMasterStartGalleryRsp {
int32 retcode = 12;
}
diff --git a/proto/IrodoriPoetryData.proto b/proto/IrodoriPoetryData.proto
new file mode 100644
index 00000000..4392bd84
--- /dev/null
+++ b/proto/IrodoriPoetryData.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "IrodoriPoetryThemeData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message IrodoriPoetryData {
+ repeated IrodoriPoetryThemeData theme_data_list = 3;
+ uint32 cur_theme_id = 14;
+}
diff --git a/proto/Unk2700_HIHKGMLLOGD.proto b/proto/IrodoriPoetryThemeData.proto
similarity index 81%
rename from proto/Unk2700_HIHKGMLLOGD.proto
rename to proto/IrodoriPoetryThemeData.proto
index 2c2eeb27..57846096 100644
--- a/proto/Unk2700_HIHKGMLLOGD.proto
+++ b/proto/IrodoriPoetryThemeData.proto
@@ -19,12 +19,12 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_HIHKGMLLOGD {
- repeated uint32 Unk2700_ONOGHAHICAA = 1;
- repeated uint32 Unk2700_FGBAGFMGKOO = 4;
+message IrodoriPoetryThemeData {
+ repeated uint32 scanned_index_list = 1;
+ repeated uint32 line_id_list = 4;
uint32 max_progress = 2;
- uint32 Unk2700_OBDGPNILPND = 13;
+ uint32 theme_id = 13;
uint32 progress = 5;
- uint32 Unk2700_HJNLDGMIHBL = 12;
- uint32 Unk2700_BIMPFNHLMBI = 9;
+ uint32 min_progress = 12;
+ uint32 selected_line_id = 9;
}
diff --git a/proto/Unk2700_NCPLKHGCOAH.proto b/proto/IrodoriScanEntityReq.proto
similarity index 97%
rename from proto/Unk2700_NCPLKHGCOAH.proto
rename to proto/IrodoriScanEntityReq.proto
index 185f2550..e3cd6cfd 100644
--- a/proto/Unk2700_NCPLKHGCOAH.proto
+++ b/proto/IrodoriScanEntityReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_NCPLKHGCOAH {
+message IrodoriScanEntityReq {
uint32 entity_id = 11;
}
diff --git a/proto/Unk2700_MKMDOIKBBEP.proto b/proto/IrodoriScanEntityRsp.proto
similarity index 87%
rename from proto/Unk2700_MKMDOIKBBEP.proto
rename to proto/IrodoriScanEntityRsp.proto
index 0cdbd789..5077b05b 100644
--- a/proto/Unk2700_MKMDOIKBBEP.proto
+++ b/proto/IrodoriScanEntityRsp.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "Unk2700_HIHKGMLLOGD.proto";
+import "IrodoriPoetryThemeData.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8026
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_MKMDOIKBBEP {
- Unk2700_HIHKGMLLOGD Unk2700_BABEGIGEEIB = 10;
+message IrodoriScanEntityRsp {
+ IrodoriPoetryThemeData theme_data = 10;
int32 retcode = 5;
- bool Unk2700_DJAPHKALAHA = 1;
+ bool is_get_inspiration = 1;
}
diff --git a/proto/IslandPartyDetailInfo.proto b/proto/IslandPartyDetailInfo.proto
new file mode 100644
index 00000000..ea601113
--- /dev/null
+++ b/proto/IslandPartyDetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "IslandPartyStageData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message IslandPartyDetailInfo {
+ repeated IslandPartyStageData stage_data_list = 15;
+}
diff --git a/proto/Unk2800_BEMANDBNPJB.proto b/proto/IslandPartyGallerySettleInfo.proto
similarity index 96%
rename from proto/Unk2800_BEMANDBNPJB.proto
rename to proto/IslandPartyGallerySettleInfo.proto
index a7e02720..f4ee2533 100644
--- a/proto/Unk2800_BEMANDBNPJB.proto
+++ b/proto/IslandPartyGallerySettleInfo.proto
@@ -22,7 +22,7 @@ import "OnlinePlayerInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2800_BEMANDBNPJB {
+message IslandPartyGallerySettleInfo {
OnlinePlayerInfo player_info = 13;
repeated ExhibitionDisplayInfo card_list = 11;
}
diff --git a/proto/Unk2800_CHEDEMEDPPM.proto b/proto/IslandPartyRaftInfoNotify.proto
similarity index 91%
rename from proto/Unk2800_CHEDEMEDPPM.proto
rename to proto/IslandPartyRaftInfoNotify.proto
index 26ad5e6c..fe7b5310 100644
--- a/proto/Unk2800_CHEDEMEDPPM.proto
+++ b/proto/IslandPartyRaftInfoNotify.proto
@@ -22,9 +22,9 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 5565
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_CHEDEMEDPPM {
+message IslandPartyRaftInfoNotify {
uint32 point_id = 7;
uint32 coin = 15;
- uint32 Unk2800_EOFOECJJMLJ = 3;
- uint32 Unk2800_BAEEDEAADIA = 13;
+ uint32 fuel = 3;
+ uint32 component = 13;
}
diff --git a/proto/Unk2800_JCPNICABMAF.proto b/proto/IslandPartySailInfoNotify.proto
similarity index 91%
rename from proto/Unk2800_JCPNICABMAF.proto
rename to proto/IslandPartySailInfoNotify.proto
index e5c8616c..5c89a16e 100644
--- a/proto/Unk2800_JCPNICABMAF.proto
+++ b/proto/IslandPartySailInfoNotify.proto
@@ -17,16 +17,16 @@
syntax = "proto3";
-import "Unk2800_IMLDGLIMODE.proto";
+import "IslandPartySailStage.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 5504
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_JCPNICABMAF {
+message IslandPartySailInfoNotify {
uint32 coin = 10;
- Unk2800_IMLDGLIMODE stage = 8;
+ IslandPartySailStage stage = 8;
uint32 kill_monster_count = 4;
uint32 progress = 15;
}
diff --git a/proto/IslandPartySailStage.proto b/proto/IslandPartySailStage.proto
new file mode 100644
index 00000000..875f287f
--- /dev/null
+++ b/proto/IslandPartySailStage.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 IslandPartySailStage {
+ ISLAND_PARTY_SAIL_STAGE_NONE = 0;
+ ISLAND_PARTY_SAIL_STAGE_SAIL = 1;
+ ISLAND_PARTY_SAIL_STAGE_BATTLE = 2;
+}
diff --git a/proto/Unk2800_GDDLBKEENNA.proto b/proto/IslandPartySettleNotify.proto
similarity index 82%
rename from proto/Unk2800_GDDLBKEENNA.proto
rename to proto/IslandPartySettleNotify.proto
index fbe082cc..6cf14e9a 100644
--- a/proto/Unk2800_GDDLBKEENNA.proto
+++ b/proto/IslandPartySettleNotify.proto
@@ -18,18 +18,18 @@
syntax = "proto3";
import "ExhibitionDisplayInfo.proto";
-import "Unk2700_MOFABPNGIKP.proto";
-import "Unk2800_BEMANDBNPJB.proto";
+import "GalleryStopReason.proto";
+import "IslandPartyGallerySettleInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 24601
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_GDDLBKEENNA {
+message IslandPartySettleNotify {
bool is_new_record = 13;
- Unk2700_MOFABPNGIKP reason = 1;
- repeated Unk2800_BEMANDBNPJB settle_info_list = 8;
+ GalleryStopReason reason = 1;
+ repeated IslandPartyGallerySettleInfo settle_info_list = 8;
repeated ExhibitionDisplayInfo score_list = 6;
- uint32 Unk2700_CDDONJJMFCI = 15;
+ uint32 time_remain = 15;
}
diff --git a/proto/Unk2800_MBKLJLMLIKF.proto b/proto/IslandPartyStageData.proto
similarity index 97%
rename from proto/Unk2800_MBKLJLMLIKF.proto
rename to proto/IslandPartyStageData.proto
index dbe5ce7b..2a1e5953 100644
--- a/proto/Unk2800_MBKLJLMLIKF.proto
+++ b/proto/IslandPartyStageData.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2800_MBKLJLMLIKF {
+message IslandPartyStageData {
uint32 stage_id = 13;
bool is_open = 14;
uint32 best_score = 4;
diff --git a/proto/ItemGivingReq.proto b/proto/ItemGivingReq.proto
index 84b6db55..6e7ad157 100644
--- a/proto/ItemGivingReq.proto
+++ b/proto/ItemGivingReq.proto
@@ -29,10 +29,10 @@ message ItemGivingReq {
map item_guid_count_map = 15;
uint32 giving_id = 13;
repeated ItemParam item_param_list = 4;
- Unk2800_LENCDFJACFN Unk2800_PHNIJJMECGN = 2;
+ ItemGivingRsp item_giving_type = 2;
- enum Unk2800_LENCDFJACFN {
- Unk2800_LENCDFJACFN_QUEST = 0;
- Unk2800_LENCDFJACFN_Unk2800_HHHOPEHIPFG = 1;
+ enum ItemGivingRsp {
+ ITEM_GIVING_RSP_QUEST = 0;
+ ITEM_GIVING_RSP_GADGET = 1;
}
}
diff --git a/proto/ItemGivingRsp.proto b/proto/ItemGivingRsp.proto
index e947d691..bd7b77a6 100644
--- a/proto/ItemGivingRsp.proto
+++ b/proto/ItemGivingRsp.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
message ItemGivingRsp {
- uint32 Unk2700_MHIPHDFEOON = 1;
+ uint32 giving_group_id = 1;
uint32 giving_id = 13;
int32 retcode = 3;
}
diff --git a/proto/Unk2800_JIPMJPAKIKE.proto b/proto/JigsawPictureData.proto
similarity index 90%
rename from proto/Unk2800_JIPMJPAKIKE.proto
rename to proto/JigsawPictureData.proto
index 4c7c21c4..569ad0af 100644
--- a/proto/Unk2800_JIPMJPAKIKE.proto
+++ b/proto/JigsawPictureData.proto
@@ -19,9 +19,9 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2800_JIPMJPAKIKE {
+message JigsawPictureData {
bool is_finished = 7;
- uint32 Unk2800_MMPELBBNFOD = 10;
+ uint32 shortest_time = 10;
bool is_open = 5;
- uint32 Unk2800_MGPEODNKEEC = 6;
+ uint32 last_duration = 6;
}
diff --git a/proto/LanguageType.proto b/proto/LanguageType.proto
index e4b1943e..c7ff366b 100644
--- a/proto/LanguageType.proto
+++ b/proto/LanguageType.proto
@@ -34,6 +34,6 @@ enum LanguageType {
LANGUAGE_TYPE_TH = 11;
LANGUAGE_TYPE_VN = 12;
LANGUAGE_TYPE_ID = 13;
- LANGUAGE_TYPE_Unk2700_IBFJDMFLFII = 14;
- LANGUAGE_TYPE_Unk2700_PACIPAIFJCN = 15;
+ LANGUAGE_TYPE_TR = 14;
+ LANGUAGE_TYPE_IT = 15;
}
diff --git a/proto/LanternProjectionInfo.proto b/proto/LanternProjectionInfo.proto
new file mode 100644
index 00000000..92711450
--- /dev/null
+++ b/proto/LanternProjectionInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "ClientInputType.proto";
+import "LanternProjectionLevelInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message LanternProjectionInfo {
+ repeated ClientInputType view_switch_tips_list = 12;
+ repeated LanternProjectionLevelInfo level_list = 6;
+ repeated uint32 open_stage_list = 10;
+ repeated ClientInputType view_input_tips_list = 13;
+}
diff --git a/proto/Unk2700_LELADCCDNJH.proto b/proto/LanternProjectionLevelInfo.proto
similarity index 88%
rename from proto/Unk2700_LELADCCDNJH.proto
rename to proto/LanternProjectionLevelInfo.proto
index 52766a51..1ccd1c7c 100644
--- a/proto/Unk2700_LELADCCDNJH.proto
+++ b/proto/LanternProjectionLevelInfo.proto
@@ -19,10 +19,10 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_LELADCCDNJH {
- uint32 Unk2700_FACFKJKIBBO = 1;
+message LanternProjectionLevelInfo {
+ uint32 min_finish_time = 1;
uint32 id = 2;
bool is_finished = 7;
- bool Unk2700_MJDCFONLGKN = 9;
- bool Unk2700_AKAAHELAGHJ = 10;
+ bool is_can_start = 9;
+ bool is_show_tips = 10;
}
diff --git a/proto/LanternRiteActivityDetailInfo.proto b/proto/LanternRiteActivityDetailInfo.proto
index db42323d..950b0521 100644
--- a/proto/LanternRiteActivityDetailInfo.proto
+++ b/proto/LanternRiteActivityDetailInfo.proto
@@ -17,17 +17,17 @@
syntax = "proto3";
-import "Unk2700_JCNIPOJMFMH.proto";
-import "Unk2700_LLGDCAKMCKL.proto";
-import "Unk2700_MJGFEHOMKJE.proto";
+import "LanternProjectionInfo.proto";
+import "LanternRiteFireworksInfo.proto";
+import "SalvageStageInfo.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;
+ LanternProjectionInfo projection_info = 13;
+ repeated SalvageStageInfo stage_info_list = 5;
+ LanternRiteFireworksInfo fireworks_info = 8;
+ bool is_mini_eldritch_dungeon_open = 2;
bool is_content_closed = 14;
- bool Unk2700_EOGEAIHJPFD = 6;
+ bool is_taken_skin_reward = 6;
}
diff --git a/proto/Unk2700_BNABFJBODGE.proto b/proto/LanternRiteDoFireworksReformReq.proto
similarity index 94%
rename from proto/Unk2700_BNABFJBODGE.proto
rename to proto/LanternRiteDoFireworksReformReq.proto
index 97e3b28a..6e4c4824 100644
--- a/proto/Unk2700_BNABFJBODGE.proto
+++ b/proto/LanternRiteDoFireworksReformReq.proto
@@ -23,9 +23,9 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_BNABFJBODGE {
+message LanternRiteDoFireworksReformReq {
uint32 stage_id = 12;
uint32 skill_id = 11;
uint32 challenge_id = 10;
- uint32 Unk2700_AIKKJGOLLHK = 13;
+ uint32 factor_id = 13;
}
diff --git a/proto/Unk2700_GEIGCHNDOAA.proto b/proto/LanternRiteDoFireworksReformRsp.proto
similarity index 77%
rename from proto/Unk2700_GEIGCHNDOAA.proto
rename to proto/LanternRiteDoFireworksReformRsp.proto
index 2269669e..ef12f304 100644
--- a/proto/Unk2700_GEIGCHNDOAA.proto
+++ b/proto/LanternRiteDoFireworksReformRsp.proto
@@ -17,21 +17,21 @@
syntax = "proto3";
-import "Unk2700_IMGLPJNBHCH.proto";
+import "LanternRiteFireworksReformFactorInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8657
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_GEIGCHNDOAA {
+message LanternRiteDoFireworksReformRsp {
uint32 stage_id = 7;
- bool Unk2700_LNINCIBPIBN = 13;
+ bool is_lucky = 13;
uint32 challenge_id = 8;
- repeated Unk2700_IMGLPJNBHCH Unk2700_DMJOJPGLFHE = 2;
- uint32 Unk2700_HMIBIIPHBAN = 10;
- uint32 Unk2700_LOIMAGFKMOJ = 15;
- uint32 Unk2700_FGIIBJADECI = 11;
+ repeated LanternRiteFireworksReformFactorInfo factor_info_list = 2;
+ uint32 stamina_value = 10;
+ uint32 reform_score = 15;
+ uint32 fire_element_value = 11;
int32 retcode = 3;
- uint32 Unk2700_AEHOPMMMHAP = 12;
+ uint32 fire_element_addition_ratio = 12;
}
diff --git a/proto/Unk2700_IJLANPFECKC.proto b/proto/LanternRiteEndFireworksReformReq.proto
similarity index 96%
rename from proto/Unk2700_IJLANPFECKC.proto
rename to proto/LanternRiteEndFireworksReformReq.proto
index ae7cba76..4ee85f56 100644
--- a/proto/Unk2700_IJLANPFECKC.proto
+++ b/proto/LanternRiteEndFireworksReformReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_IJLANPFECKC {
+message LanternRiteEndFireworksReformReq {
uint32 stage_id = 9;
uint32 challenge_id = 1;
}
diff --git a/proto/Unk2700_HJKOHHGBMJP.proto b/proto/LanternRiteEndFireworksReformRsp.proto
similarity index 87%
rename from proto/Unk2700_HJKOHHGBMJP.proto
rename to proto/LanternRiteEndFireworksReformRsp.proto
index 6d27e6d5..7da7b24d 100644
--- a/proto/Unk2700_HJKOHHGBMJP.proto
+++ b/proto/LanternRiteEndFireworksReformRsp.proto
@@ -22,13 +22,13 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8933
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_HJKOHHGBMJP {
- bool Unk2700_GHGIOMEHIAN = 10;
+message LanternRiteEndFireworksReformRsp {
+ bool is_full_score = 10;
int32 retcode = 1;
- bool Unk2700_ONGMFKHIBNB = 6;
+ bool is_unlock_fireworks = 6;
uint32 stage_id = 15;
- bool Unk2700_MNHBGOMNPBB = 12;
- bool Unk2700_AOFHDOOKHKF = 4;
+ bool is_unlock_new_skill = 12;
+ bool is_stamina_up = 4;
uint32 final_score = 13;
uint32 challenge_id = 5;
bool is_new_record = 9;
diff --git a/proto/Unk2700_LHPELFJPPOD.proto b/proto/LanternRiteFireworksChallengeInfo.proto
similarity index 93%
rename from proto/Unk2700_LHPELFJPPOD.proto
rename to proto/LanternRiteFireworksChallengeInfo.proto
index 04cac9d1..5a63defe 100644
--- a/proto/Unk2700_LHPELFJPPOD.proto
+++ b/proto/LanternRiteFireworksChallengeInfo.proto
@@ -19,8 +19,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_LHPELFJPPOD {
- bool Unk2700_GHGIOMEHIAN = 13;
+message LanternRiteFireworksChallengeInfo {
+ bool is_full_score = 13;
uint32 best_score = 7;
uint32 challenge_id = 3;
}
diff --git a/proto/LanternRiteFireworksInfo.proto b/proto/LanternRiteFireworksInfo.proto
new file mode 100644
index 00000000..24082947
--- /dev/null
+++ b/proto/LanternRiteFireworksInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "LanternRiteFireworksStageInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message LanternRiteFireworksInfo {
+ repeated LanternRiteFireworksStageInfo stage_info_list = 6;
+}
diff --git a/proto/LanternRiteFireworksReformFactorInfo.proto b/proto/LanternRiteFireworksReformFactorInfo.proto
new file mode 100644
index 00000000..0cb985c0
--- /dev/null
+++ b/proto/LanternRiteFireworksReformFactorInfo.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 LanternRiteFireworksReformFactorInfo {
+ uint32 factor_value = 5;
+ uint32 factor_id = 13;
+}
diff --git a/proto/Unk2700_FEAENJPINFJ.proto b/proto/LanternRiteFireworksReformSkillInfo.proto
similarity index 89%
rename from proto/Unk2700_FEAENJPINFJ.proto
rename to proto/LanternRiteFireworksReformSkillInfo.proto
index 4a8edc98..d1aa89ea 100644
--- a/proto/Unk2700_FEAENJPINFJ.proto
+++ b/proto/LanternRiteFireworksReformSkillInfo.proto
@@ -19,9 +19,9 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_FEAENJPINFJ {
+message LanternRiteFireworksReformSkillInfo {
uint32 skill_id = 2;
bool is_unlock = 11;
- uint32 Unk2700_LAPIBECMGOB = 1;
- uint32 Unk2700_LKNCBOOJCGI = 14;
+ uint32 unlock_challenge_time = 1;
+ uint32 unlock_challenge_id = 14;
}
diff --git a/proto/Unk2700_GHONKKEGHGL.proto b/proto/LanternRiteFireworksStageInfo.proto
similarity index 86%
rename from proto/Unk2700_GHONKKEGHGL.proto
rename to proto/LanternRiteFireworksStageInfo.proto
index d0f025e4..f2a72dcc 100644
--- a/proto/Unk2700_GHONKKEGHGL.proto
+++ b/proto/LanternRiteFireworksStageInfo.proto
@@ -17,12 +17,12 @@
syntax = "proto3";
-import "Unk2700_LHPELFJPPOD.proto";
+import "LanternRiteFireworksChallengeInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_GHONKKEGHGL {
+message LanternRiteFireworksStageInfo {
bool is_open = 8;
- repeated Unk2700_LHPELFJPPOD challenge_info_list = 9;
+ repeated LanternRiteFireworksChallengeInfo challenge_info_list = 9;
uint32 stage_id = 15;
}
diff --git a/proto/Unk2700_LPMIMLCNEDA.proto b/proto/LanternRiteStartFireworksReformReq.proto
similarity index 96%
rename from proto/Unk2700_LPMIMLCNEDA.proto
rename to proto/LanternRiteStartFireworksReformReq.proto
index 209919a1..80557c57 100644
--- a/proto/Unk2700_LPMIMLCNEDA.proto
+++ b/proto/LanternRiteStartFireworksReformReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_LPMIMLCNEDA {
+message LanternRiteStartFireworksReformReq {
uint32 stage_id = 2;
uint32 challenge_id = 7;
}
diff --git a/proto/Unk2700_JHMIHJFFJBO.proto b/proto/LanternRiteStartFireworksReformRsp.proto
similarity index 72%
rename from proto/Unk2700_JHMIHJFFJBO.proto
rename to proto/LanternRiteStartFireworksReformRsp.proto
index f9153a48..440a2289 100644
--- a/proto/Unk2700_JHMIHJFFJBO.proto
+++ b/proto/LanternRiteStartFireworksReformRsp.proto
@@ -17,22 +17,22 @@
syntax = "proto3";
-import "Unk2700_FEAENJPINFJ.proto";
-import "Unk2700_IMGLPJNBHCH.proto";
+import "LanternRiteFireworksReformFactorInfo.proto";
+import "LanternRiteFireworksReformSkillInfo.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;
+message LanternRiteStartFireworksReformRsp {
+ repeated LanternRiteFireworksReformFactorInfo factor_info_list = 15;
+ uint32 fire_element_addition_ratio = 13;
+ uint32 stamina_value = 2;
+ repeated LanternRiteFireworksReformSkillInfo skill_info_list = 8;
+ uint32 reform_score = 6;
uint32 stage_id = 12;
uint32 challenge_id = 11;
- uint32 Unk2700_FGIIBJADECI = 14;
+ uint32 fire_element_value = 14;
int32 retcode = 7;
}
diff --git a/proto/Unk2700_HGMCBHFFDLJ.proto b/proto/LanternRiteTakeSkinRewardReq.proto
similarity index 96%
rename from proto/Unk2700_HGMCBHFFDLJ.proto
rename to proto/LanternRiteTakeSkinRewardReq.proto
index 14871d19..25282a52 100644
--- a/proto/Unk2700_HGMCBHFFDLJ.proto
+++ b/proto/LanternRiteTakeSkinRewardReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_HGMCBHFFDLJ {}
+message LanternRiteTakeSkinRewardReq {}
diff --git a/proto/Unk2700_KDNNKELPJFL.proto b/proto/LanternRiteTakeSkinRewardRsp.proto
similarity index 96%
rename from proto/Unk2700_KDNNKELPJFL.proto
rename to proto/LanternRiteTakeSkinRewardRsp.proto
index 9b66dc65..94c5ced2 100644
--- a/proto/Unk2700_KDNNKELPJFL.proto
+++ b/proto/LanternRiteTakeSkinRewardRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8777
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_KDNNKELPJFL {
+message LanternRiteTakeSkinRewardRsp {
int32 retcode = 6;
}
diff --git a/proto/Unk2200_DEHCEKCILAB_ClientNotify.proto b/proto/LastPacketPrintNotify.proto
similarity index 95%
rename from proto/Unk2200_DEHCEKCILAB_ClientNotify.proto
rename to proto/LastPacketPrintNotify.proto
index 164fbfee..bbaa46c5 100644
--- a/proto/Unk2200_DEHCEKCILAB_ClientNotify.proto
+++ b/proto/LastPacketPrintNotify.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2200_DEHCEKCILAB_ClientNotify {}
+message LastPacketPrintNotify {}
diff --git a/proto/Unk2700_AMOEOCPOMGJ_ClientReq.proto b/proto/LaunchFireworksReq.proto
similarity index 89%
rename from proto/Unk2700_AMOEOCPOMGJ_ClientReq.proto
rename to proto/LaunchFireworksReq.proto
index ce631e8b..e6fe4432 100644
--- a/proto/Unk2700_AMOEOCPOMGJ_ClientReq.proto
+++ b/proto/LaunchFireworksReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2700_JMPCGMBHJLG.proto";
+import "FireworksLaunchSchemeData.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,6 +25,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_AMOEOCPOMGJ_ClientReq {
- Unk2700_JMPCGMBHJLG Unk2700_KHPPLOGFMDE = 13;
+message LaunchFireworksReq {
+ FireworksLaunchSchemeData scheme_data = 13;
}
diff --git a/proto/Unk2700_NBFJOJPCCEK_ServerRsp.proto b/proto/LaunchFireworksRsp.proto
similarity index 96%
rename from proto/Unk2700_NBFJOJPCCEK_ServerRsp.proto
rename to proto/LaunchFireworksRsp.proto
index 64d3d063..13022b89 100644
--- a/proto/Unk2700_NBFJOJPCCEK_ServerRsp.proto
+++ b/proto/LaunchFireworksRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 6057
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_NBFJOJPCCEK_ServerRsp {
+message LaunchFireworksRsp {
int32 retcode = 6;
}
diff --git a/proto/Unk2700_CCCKFHICDHD_ClientNotify.proto b/proto/LevelTagDataNotify.proto
similarity index 92%
rename from proto/Unk2700_CCCKFHICDHD_ClientNotify.proto
rename to proto/LevelTagDataNotify.proto
index 941fdeca..f5f256ef 100644
--- a/proto/Unk2700_CCCKFHICDHD_ClientNotify.proto
+++ b/proto/LevelTagDataNotify.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_CCCKFHICDHD_ClientNotify {
- repeated uint32 Unk2700_KPKEIFJJDAO = 9;
+message LevelTagDataNotify {
+ repeated uint32 level_tag_id_list = 9;
}
diff --git a/proto/PrivateChatSetSequenceReq.proto b/proto/LikeCustomDungeonReq.proto
similarity index 90%
rename from proto/PrivateChatSetSequenceReq.proto
rename to proto/LikeCustomDungeonReq.proto
index d45c433d..ea57d105 100644
--- a/proto/PrivateChatSetSequenceReq.proto
+++ b/proto/LikeCustomDungeonReq.proto
@@ -19,11 +19,11 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-// CmdId: 4985
+// CmdId: 6210
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message PrivateChatSetSequenceReq {
- uint32 target_uid = 11;
- uint32 sequence = 15;
+message LikeCustomDungeonReq {
+ bool is_cancel_like = 5;
+ uint64 dungeon_guid = 10;
}
diff --git a/proto/Unk2700_PPOGMFAKBMK_ServerRsp.proto b/proto/LikeCustomDungeonRsp.proto
similarity index 96%
rename from proto/Unk2700_PPOGMFAKBMK_ServerRsp.proto
rename to proto/LikeCustomDungeonRsp.proto
index 8992541a..05531e4f 100644
--- a/proto/Unk2700_PPOGMFAKBMK_ServerRsp.proto
+++ b/proto/LikeCustomDungeonRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 6219
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_PPOGMFAKBMK_ServerRsp {
+message LikeCustomDungeonRsp {
int32 retcode = 3;
}
diff --git a/proto/LuaShellType.proto b/proto/LuaShellType.proto
new file mode 100644
index 00000000..907cdfc7
--- /dev/null
+++ b/proto/LuaShellType.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 LuaShellType {
+ LUA_SHELL_TYPE_LUASHELL_NONE = 0;
+ LUA_SHELL_TYPE_LUASHELL_NORMAL = 1;
+ LUA_SHELL_TYPE_LUASHELL_SECURITY = 2;
+ LUA_SHELL_TYPE_LUASHELL_SHELL_CODE = 3;
+}
diff --git a/proto/LuminanceStoneChallengeActivityDetailInfo.proto b/proto/LuminanceStoneChallengeActivityDetailInfo.proto
index a2bdd010..a63b98d2 100644
--- a/proto/LuminanceStoneChallengeActivityDetailInfo.proto
+++ b/proto/LuminanceStoneChallengeActivityDetailInfo.proto
@@ -22,6 +22,6 @@ 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;
+ bool is_final_gallery_complete = 12;
+ uint32 current_stage_id = 15;
}
diff --git a/proto/Unk2700_HLHHNGHJLAO.proto b/proto/LuminanceStoneChallengeGallerySettleInfo.proto
similarity index 87%
rename from proto/Unk2700_HLHHNGHJLAO.proto
rename to proto/LuminanceStoneChallengeGallerySettleInfo.proto
index 9fb08c3b..69cacced 100644
--- a/proto/Unk2700_HLHHNGHJLAO.proto
+++ b/proto/LuminanceStoneChallengeGallerySettleInfo.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "Unk2700_MOFABPNGIKP.proto";
+import "GalleryStopReason.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_HLHHNGHJLAO {
+message LuminanceStoneChallengeGallerySettleInfo {
uint32 kill_monster_count = 12;
uint32 kill_special_monster_count = 8;
- uint32 Unk2700_OFKHLGLOPCM = 10;
+ uint32 clean_mud_count = 10;
uint32 gallery_id = 2;
- Unk2700_MOFABPNGIKP reason = 11;
+ GalleryStopReason reason = 11;
uint32 final_score = 13;
}
diff --git a/proto/Unk2700_JCOIDFNDHPB.proto b/proto/LuminanceStoneChallengeSettleInfo.proto
similarity index 85%
rename from proto/Unk2700_JCOIDFNDHPB.proto
rename to proto/LuminanceStoneChallengeSettleInfo.proto
index 31b963ec..312f85b7 100644
--- a/proto/Unk2700_JCOIDFNDHPB.proto
+++ b/proto/LuminanceStoneChallengeSettleInfo.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "Unk2700_HLHHNGHJLAO.proto";
+import "LuminanceStoneChallengeGallerySettleInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_JCOIDFNDHPB {
- Unk2700_HLHHNGHJLAO settle_info = 13;
+message LuminanceStoneChallengeSettleInfo {
+ LuminanceStoneChallengeGallerySettleInfo settle_info = 13;
bool is_new_record = 12;
}
diff --git a/proto/Unk2700_IMHNKDHHGMA.proto b/proto/LuminanceStoneChallengeSettleNotify.proto
similarity index 87%
rename from proto/Unk2700_IMHNKDHHGMA.proto
rename to proto/LuminanceStoneChallengeSettleNotify.proto
index 9bc54884..29edde87 100644
--- a/proto/Unk2700_IMHNKDHHGMA.proto
+++ b/proto/LuminanceStoneChallengeSettleNotify.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_JCOIDFNDHPB.proto";
+import "LuminanceStoneChallengeSettleInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8186
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_IMHNKDHHGMA {
+message LuminanceStoneChallengeSettleNotify {
uint32 gallery_id = 10;
- Unk2700_JCOIDFNDHPB settle_info = 13;
+ LuminanceStoneChallengeSettleInfo settle_info = 13;
}
diff --git a/proto/MailCollectState.proto b/proto/MailCollectState.proto
new file mode 100644
index 00000000..ef130f39
--- /dev/null
+++ b/proto/MailCollectState.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 MailCollectState {
+ MAIL_COLLECT_STATE_COLLECTIBLE_UNKONW = 0;
+ MAIL_COLLECT_STATE_NOT_COLLECTIBLE = 1;
+ MAIL_COLLECT_STATE_COLLECTIBLE_UNCOLLECTED = 2;
+ MAIL_COLLECT_STATE_COLLECTIBLE_COLLECTED = 3;
+}
diff --git a/proto/MailData.proto b/proto/MailData.proto
index 132f21e6..6a6842df 100644
--- a/proto/MailData.proto
+++ b/proto/MailData.proto
@@ -17,9 +17,9 @@
syntax = "proto3";
+import "MailCollectState.proto";
import "MailItem.proto";
import "MailTextContent.proto";
-import "Unk2700_CBJEDMGOBPL.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -34,5 +34,5 @@ message MailData {
bool is_attachment_got = 12;
uint32 config_id = 13;
repeated string argument_list = 14;
- Unk2700_CBJEDMGOBPL Unk2700_NDPPGJKJOMH = 15;
+ MailCollectState collect_state = 15;
}
diff --git a/proto/Unk2700_CILGDLMHCNG_ServerNotify.proto b/proto/MainCoopFailNotify.proto
similarity index 93%
rename from proto/Unk2700_CILGDLMHCNG_ServerNotify.proto
rename to proto/MainCoopFailNotify.proto
index 8505e2eb..3c8912e6 100644
--- a/proto/Unk2700_CILGDLMHCNG_ServerNotify.proto
+++ b/proto/MainCoopFailNotify.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 1951
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_CILGDLMHCNG_ServerNotify {
- string Unk2700_GEBOKAMGEEB = 7;
+message MainCoopFailNotify {
+ string textmap_id = 7;
uint32 chapter_id = 15;
}
diff --git a/proto/MatchType.proto b/proto/MatchType.proto
index e7f0efb8..2014a74e 100644
--- a/proto/MatchType.proto
+++ b/proto/MatchType.proto
@@ -25,4 +25,5 @@ enum MatchType {
MATCH_TYPE_MP_PLAY = 2;
MATCH_TYPE_MECHANICUS = 3;
MATCH_TYPE_GENERAL = 4;
+ MATCH_TYPE_GCG = 5;
}
diff --git a/proto/MichiaeMatsuriActivityDetailInfo.proto b/proto/MichiaeMatsuriActivityDetailInfo.proto
index db54354f..5460aafa 100644
--- a/proto/MichiaeMatsuriActivityDetailInfo.proto
+++ b/proto/MichiaeMatsuriActivityDetailInfo.proto
@@ -17,16 +17,16 @@
syntax = "proto3";
+import "MichiaeMatsuriChallengePositionInfo.proto";
+import "MichiaeMatsuriChestPositionInfo.proto";
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 MichiaeMatsuriChallengePositionInfo challenge_pos_list = 6;
+ uint32 gain_crystal_exp = 13;
+ repeated uint32 unlocked_crystal_skill_list = 2;
+ repeated MichiaeMatsuriChestPositionInfo chest_pos_list = 10;
repeated MichiaeMatsuriStage stage_list = 14;
}
diff --git a/proto/Unk2700_HGFFGMCODNC.proto b/proto/MichiaeMatsuriChallengePositionInfo.proto
similarity index 95%
rename from proto/Unk2700_HGFFGMCODNC.proto
rename to proto/MichiaeMatsuriChallengePositionInfo.proto
index 7c38a327..93e3db28 100644
--- a/proto/Unk2700_HGFFGMCODNC.proto
+++ b/proto/MichiaeMatsuriChallengePositionInfo.proto
@@ -21,7 +21,7 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_HGFFGMCODNC {
+message MichiaeMatsuriChallengePositionInfo {
uint32 group_id = 4;
uint32 gadget_id = 7;
Vector pos = 8;
diff --git a/proto/Unk2700_NAFAIMHFEFG.proto b/proto/MichiaeMatsuriChestPositionInfo.proto
similarity index 96%
rename from proto/Unk2700_NAFAIMHFEFG.proto
rename to proto/MichiaeMatsuriChestPositionInfo.proto
index 2a2ffeae..aa6a3894 100644
--- a/proto/Unk2700_NAFAIMHFEFG.proto
+++ b/proto/MichiaeMatsuriChestPositionInfo.proto
@@ -21,7 +21,7 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_NAFAIMHFEFG {
+message MichiaeMatsuriChestPositionInfo {
Vector pos = 10;
uint32 group_id = 2;
uint32 config_id = 11;
diff --git a/proto/Unk2700_IBOKDNKBMII.proto b/proto/MichiaeMatsuriDarkPressureLevelUpdateNotify.proto
similarity index 91%
rename from proto/Unk2700_IBOKDNKBMII.proto
rename to proto/MichiaeMatsuriDarkPressureLevelUpdateNotify.proto
index 330c4727..5ac2be6a 100644
--- a/proto/Unk2700_IBOKDNKBMII.proto
+++ b/proto/MichiaeMatsuriDarkPressureLevelUpdateNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8825
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_IBOKDNKBMII {
- uint32 Unk2700_MOKOAHDHAGA = 8;
+message MichiaeMatsuriDarkPressureLevelUpdateNotify {
+ uint32 dark_pressure_level = 8;
}
diff --git a/proto/Unk2700_OBDHJJHLIKJ.proto b/proto/MichiaeMatsuriGainCrystalExpUpdateNotify.proto
similarity index 92%
rename from proto/Unk2700_OBDHJJHLIKJ.proto
rename to proto/MichiaeMatsuriGainCrystalExpUpdateNotify.proto
index 74da2240..f5fd9d66 100644
--- a/proto/Unk2700_OBDHJJHLIKJ.proto
+++ b/proto/MichiaeMatsuriGainCrystalExpUpdateNotify.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8523
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_OBDHJJHLIKJ {
- uint32 Unk2700_MAOAHHBCKIA = 2;
+message MichiaeMatsuriGainCrystalExpUpdateNotify {
+ uint32 gain_crystal_exp = 2;
uint32 activity_id = 3;
}
diff --git a/proto/Unk2700_OCAJADDLPBB.proto b/proto/MichiaeMatsuriInteractStatueReq.proto
similarity index 93%
rename from proto/Unk2700_OCAJADDLPBB.proto
rename to proto/MichiaeMatsuriInteractStatueReq.proto
index 1a39d9b0..2b4bdf8c 100644
--- a/proto/Unk2700_OCAJADDLPBB.proto
+++ b/proto/MichiaeMatsuriInteractStatueReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_OCAJADDLPBB {
- uint32 Unk2700_LFALEEDODEC = 7;
+message MichiaeMatsuriInteractStatueReq {
+ uint32 statue_entity_id = 7;
}
diff --git a/proto/Unk2700_BPFNCHEFKJM.proto b/proto/MichiaeMatsuriInteractStatueRsp.proto
similarity index 96%
rename from proto/Unk2700_BPFNCHEFKJM.proto
rename to proto/MichiaeMatsuriInteractStatueRsp.proto
index 686ea423..d1872b40 100644
--- a/proto/Unk2700_BPFNCHEFKJM.proto
+++ b/proto/MichiaeMatsuriInteractStatueRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8449
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_BPFNCHEFKJM {
+message MichiaeMatsuriInteractStatueRsp {
int32 retcode = 10;
}
diff --git a/proto/Unk2700_OBCKNDBAPGE.proto b/proto/MichiaeMatsuriRemoveChallengeMarkNotify.proto
similarity index 95%
rename from proto/Unk2700_OBCKNDBAPGE.proto
rename to proto/MichiaeMatsuriRemoveChallengeMarkNotify.proto
index d2b3cd1b..4541793a 100644
--- a/proto/Unk2700_OBCKNDBAPGE.proto
+++ b/proto/MichiaeMatsuriRemoveChallengeMarkNotify.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8072
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_OBCKNDBAPGE {
+message MichiaeMatsuriRemoveChallengeMarkNotify {
uint32 gadget_id = 9;
uint32 group_id = 2;
}
diff --git a/proto/Unk2700_EKBMEKPHJGK.proto b/proto/MichiaeMatsuriRemoveChestMarkNotify.proto
similarity index 95%
rename from proto/Unk2700_EKBMEKPHJGK.proto
rename to proto/MichiaeMatsuriRemoveChestMarkNotify.proto
index 38601852..982914de 100644
--- a/proto/Unk2700_EKBMEKPHJGK.proto
+++ b/proto/MichiaeMatsuriRemoveChestMarkNotify.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8726
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_EKBMEKPHJGK {
+message MichiaeMatsuriRemoveChestMarkNotify {
uint32 config_id = 9;
uint32 group_id = 11;
}
diff --git a/proto/Unk2700_NGEKONFLEBB.proto b/proto/MichiaeMatsuriStartBossChallengeReq.proto
similarity index 95%
rename from proto/Unk2700_NGEKONFLEBB.proto
rename to proto/MichiaeMatsuriStartBossChallengeReq.proto
index 88497546..d195c599 100644
--- a/proto/Unk2700_NGEKONFLEBB.proto
+++ b/proto/MichiaeMatsuriStartBossChallengeReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_NGEKONFLEBB {
+message MichiaeMatsuriStartBossChallengeReq {
uint32 difficulty = 5;
uint32 gadget_entity_id = 15;
}
diff --git a/proto/Unk2700_OKNDIGOKMMC.proto b/proto/MichiaeMatsuriStartBossChallengeRsp.proto
similarity index 95%
rename from proto/Unk2700_OKNDIGOKMMC.proto
rename to proto/MichiaeMatsuriStartBossChallengeRsp.proto
index 26f57fd8..005285df 100644
--- a/proto/Unk2700_OKNDIGOKMMC.proto
+++ b/proto/MichiaeMatsuriStartBossChallengeRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8426
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_OKNDIGOKMMC {
+message MichiaeMatsuriStartBossChallengeRsp {
int32 retcode = 15;
}
diff --git a/proto/Unk2700_ODBNBICOCFK.proto b/proto/MichiaeMatsuriStartDarkChallengeReq.proto
similarity index 92%
rename from proto/Unk2700_ODBNBICOCFK.proto
rename to proto/MichiaeMatsuriStartDarkChallengeReq.proto
index 364df4f5..7a641483 100644
--- a/proto/Unk2700_ODBNBICOCFK.proto
+++ b/proto/MichiaeMatsuriStartDarkChallengeReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_ODBNBICOCFK {
- uint32 Unk2700_AOJDMJPGBOL = 2;
+message MichiaeMatsuriStartDarkChallengeReq {
+ uint32 worktop_entity_id = 2;
}
diff --git a/proto/MichiaeMatsuriStartDarkChallengeRsp.proto b/proto/MichiaeMatsuriStartDarkChallengeRsp.proto
new file mode 100644
index 00000000..d46d621e
--- /dev/null
+++ b/proto/MichiaeMatsuriStartDarkChallengeRsp.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy 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 MichiaeMatsuriStartDarkChallengeRsp {
+ int32 retcode = 2;
+}
diff --git a/proto/Unk2700_MFAIPHGDPBL.proto b/proto/MichiaeMatsuriUnlockCrystalSkillReq.proto
similarity index 93%
rename from proto/Unk2700_MFAIPHGDPBL.proto
rename to proto/MichiaeMatsuriUnlockCrystalSkillReq.proto
index accb95e4..a50ec31f 100644
--- a/proto/Unk2700_MFAIPHGDPBL.proto
+++ b/proto/MichiaeMatsuriUnlockCrystalSkillReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_MFAIPHGDPBL {
- uint32 Unk2700_LKBHLHIHJGL = 1;
+message MichiaeMatsuriUnlockCrystalSkillReq {
+ uint32 crystal_skill_id = 1;
}
diff --git a/proto/Unk2700_CPEMGFIMICD.proto b/proto/MichiaeMatsuriUnlockCrystalSkillRsp.proto
similarity index 93%
rename from proto/Unk2700_CPEMGFIMICD.proto
rename to proto/MichiaeMatsuriUnlockCrystalSkillRsp.proto
index 34ef4791..e6203b70 100644
--- a/proto/Unk2700_CPEMGFIMICD.proto
+++ b/proto/MichiaeMatsuriUnlockCrystalSkillRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8588
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_CPEMGFIMICD {
- uint32 Unk2700_LKBHLHIHJGL = 1;
+message MichiaeMatsuriUnlockCrystalSkillRsp {
+ uint32 crystal_skill_id = 1;
int32 retcode = 14;
}
diff --git a/proto/MiracleRingDeliverItemRsp.proto b/proto/MiracleRingDeliverItemRsp.proto
index 0fa6e4b5..93863ed6 100644
--- a/proto/MiracleRingDeliverItemRsp.proto
+++ b/proto/MiracleRingDeliverItemRsp.proto
@@ -17,8 +17,8 @@
syntax = "proto3";
-import "InteractType.proto";
import "InterOpType.proto";
+import "InteractType.proto";
option java_package = "emu.grasscutter.net.proto";
diff --git a/proto/Unk2700_AIKOFHAKNPC.proto b/proto/MistTrialGetDungeonExhibitionDataReq.proto
similarity index 95%
rename from proto/Unk2700_AIKOFHAKNPC.proto
rename to proto/MistTrialGetDungeonExhibitionDataReq.proto
index 7235c3da..12aee403 100644
--- a/proto/Unk2700_AIKOFHAKNPC.proto
+++ b/proto/MistTrialGetDungeonExhibitionDataReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_AIKOFHAKNPC {
+message MistTrialGetDungeonExhibitionDataReq {
uint32 trial_id = 13;
}
diff --git a/proto/Unk2700_AHOMMGBBIAH.proto b/proto/MistTrialGetDungeonExhibitionDataRsp.proto
similarity index 95%
rename from proto/Unk2700_AHOMMGBBIAH.proto
rename to proto/MistTrialGetDungeonExhibitionDataRsp.proto
index 0346d0f6..17da6997 100644
--- a/proto/Unk2700_AHOMMGBBIAH.proto
+++ b/proto/MistTrialGetDungeonExhibitionDataRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8066
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_AHOMMGBBIAH {
+message MistTrialGetDungeonExhibitionDataRsp {
uint32 trial_id = 12;
int32 retcode = 4;
}
diff --git a/proto/Unk2700_EELPPGCAKHL.proto b/proto/MistTrialSettleNotify.proto
similarity index 87%
rename from proto/Unk2700_EELPPGCAKHL.proto
rename to proto/MistTrialSettleNotify.proto
index cfe626f1..cd9e1901 100644
--- a/proto/Unk2700_EELPPGCAKHL.proto
+++ b/proto/MistTrialSettleNotify.proto
@@ -23,8 +23,8 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_EELPPGCAKHL {
- map Unk2700_BMLBMGGBFJG = 15;
- map Unk2700_OBFPKFEGGIK = 14;
+message MistTrialSettleNotify {
+ map exhibition_list_data_record_map = 15;
+ map exhibition_list_data_result_map = 14;
uint32 dungeon_id = 5;
}
diff --git a/proto/MotionState.proto b/proto/MotionState.proto
index d86e31ec..993fcbc1 100644
--- a/proto/MotionState.proto
+++ b/proto/MotionState.proto
@@ -74,7 +74,7 @@ enum MotionState {
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;
+ MOTION_STATE_AIM_MOVE = 54;
+ MOTION_STATE_AIR_COMPENSATION = 55;
+ MOTION_STATE_NUM = 56;
}
diff --git a/proto/MultistagePlayInfo.proto b/proto/MultistagePlayInfo.proto
index 937e5c90..0572ad86 100644
--- a/proto/MultistagePlayInfo.proto
+++ b/proto/MultistagePlayInfo.proto
@@ -17,6 +17,7 @@
syntax = "proto3";
+import "CharAmusementInfo.proto";
import "HideAndSeekStageInfo.proto";
import "InBattleChessInfo.proto";
import "InBattleFleurFairInfo.proto";
@@ -39,5 +40,6 @@ message MultistagePlayInfo {
HideAndSeekStageInfo hide_and_seek_info = 108;
InBattleChessInfo chess_info = 1758;
IrodoriChessInfo irodori_chess_info = 531;
+ CharAmusementInfo char_amusement_info = 324;
}
}
diff --git a/proto/MultistagePlaySettleNotify.proto b/proto/MultistagePlaySettleNotify.proto
index b26731fc..4a2b9273 100644
--- a/proto/MultistagePlaySettleNotify.proto
+++ b/proto/MultistagePlaySettleNotify.proto
@@ -18,8 +18,8 @@
syntax = "proto3";
import "InBattleChessSettleInfo.proto";
+import "InBattleIrodoriChessSettleInfo.proto";
import "InBattleMechanicusSettleInfo.proto";
-import "IrodoriChessSettleInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -32,6 +32,6 @@ message MultistagePlaySettleNotify {
oneof detail {
InBattleMechanicusSettleInfo mechanicus_settle_info = 1402;
InBattleChessSettleInfo chess_settle_info = 1283;
- IrodoriChessSettleInfo irodori_chess_settle_info = 612;
+ InBattleIrodoriChessSettleInfo irodori_chess_settle_info = 612;
}
}
diff --git a/proto/MuqadasPotionActivityDetailInfo.proto b/proto/MuqadasPotionActivityDetailInfo.proto
new file mode 100644
index 00000000..2d1112fa
--- /dev/null
+++ b/proto/MuqadasPotionActivityDetailInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "MuqadasPotionLevelData.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message MuqadasPotionActivityDetailInfo {
+ repeated MuqadasPotionLevelData muqadas_potion_level_data_list = 8;
+}
diff --git a/proto/Unk3000_KKHPGFINACH.proto b/proto/MuqadasPotionActivityEnterDungeonReq.proto
similarity index 95%
rename from proto/Unk3000_KKHPGFINACH.proto
rename to proto/MuqadasPotionActivityEnterDungeonReq.proto
index ebd8e4b8..9dda27ec 100644
--- a/proto/Unk3000_KKHPGFINACH.proto
+++ b/proto/MuqadasPotionActivityEnterDungeonReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_KKHPGFINACH {
+message MuqadasPotionActivityEnterDungeonReq {
uint32 level_id = 12;
}
diff --git a/proto/Unk3000_IGCECHKNKOO.proto b/proto/MuqadasPotionActivityEnterDungeonRsp.proto
similarity index 95%
rename from proto/Unk3000_IGCECHKNKOO.proto
rename to proto/MuqadasPotionActivityEnterDungeonRsp.proto
index 22706d30..4cf7bf75 100644
--- a/proto/Unk3000_IGCECHKNKOO.proto
+++ b/proto/MuqadasPotionActivityEnterDungeonRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 21804
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_IGCECHKNKOO {
+message MuqadasPotionActivityEnterDungeonRsp {
int32 retcode = 6;
uint32 level_id = 9;
}
diff --git a/proto/Unk3000_CPCMICDDBCH.proto b/proto/MuqadasPotionCaptureWeaknessReq.proto
similarity index 92%
rename from proto/Unk3000_CPCMICDDBCH.proto
rename to proto/MuqadasPotionCaptureWeaknessReq.proto
index 85ebd8b7..8dac9442 100644
--- a/proto/Unk3000_CPCMICDDBCH.proto
+++ b/proto/MuqadasPotionCaptureWeaknessReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_CPCMICDDBCH {
- uint32 Unk3000_MKFIPLFHJNE = 10;
+message MuqadasPotionCaptureWeaknessReq {
+ uint32 capture_weakness_count = 10;
uint32 level_id = 15;
}
diff --git a/proto/Unk3000_KHFMBKILMMD.proto b/proto/MuqadasPotionCaptureWeaknessRsp.proto
similarity index 96%
rename from proto/Unk3000_KHFMBKILMMD.proto
rename to proto/MuqadasPotionCaptureWeaknessRsp.proto
index 7ece94a2..7716dd20 100644
--- a/proto/Unk3000_KHFMBKILMMD.proto
+++ b/proto/MuqadasPotionCaptureWeaknessRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 24081
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_KHFMBKILMMD {
+message MuqadasPotionCaptureWeaknessRsp {
int32 retcode = 12;
}
diff --git a/proto/Unk3000_NHPPMHHJPMJ.proto b/proto/MuqadasPotionDungeonSettleNotify.proto
similarity index 93%
rename from proto/Unk3000_NHPPMHHJPMJ.proto
rename to proto/MuqadasPotionDungeonSettleNotify.proto
index 731b26ec..31b89f0c 100644
--- a/proto/Unk3000_NHPPMHHJPMJ.proto
+++ b/proto/MuqadasPotionDungeonSettleNotify.proto
@@ -22,9 +22,9 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 20005
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_NHPPMHHJPMJ {
+message MuqadasPotionDungeonSettleNotify {
uint32 final_score = 11;
- uint32 Unk3000_MKFIPLFHJNE = 15;
+ uint32 capture_weakness_count = 15;
bool is_success = 6;
uint32 level_id = 10;
bool is_new_record = 2;
diff --git a/proto/Unk3000_IIBHKLNAHHC.proto b/proto/MuqadasPotionLevelData.proto
similarity index 96%
rename from proto/Unk3000_IIBHKLNAHHC.proto
rename to proto/MuqadasPotionLevelData.proto
index 44506c58..adef172f 100644
--- a/proto/Unk3000_IIBHKLNAHHC.proto
+++ b/proto/MuqadasPotionLevelData.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_IIBHKLNAHHC {
+message MuqadasPotionLevelData {
uint32 level_id = 15;
uint32 max_score = 9;
bool is_open = 10;
diff --git a/proto/Unk3000_CMKEPEDFOKE.proto b/proto/MuqadasPotionRestartDungeonReq.proto
similarity index 96%
rename from proto/Unk3000_CMKEPEDFOKE.proto
rename to proto/MuqadasPotionRestartDungeonReq.proto
index 5aa93c8c..779a5b7e 100644
--- a/proto/Unk3000_CMKEPEDFOKE.proto
+++ b/proto/MuqadasPotionRestartDungeonReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_CMKEPEDFOKE {}
+message MuqadasPotionRestartDungeonReq {}
diff --git a/proto/Unk3000_GNLFOLGMEPN.proto b/proto/MuqadasPotionRestartDungeonRsp.proto
similarity index 96%
rename from proto/Unk3000_GNLFOLGMEPN.proto
rename to proto/MuqadasPotionRestartDungeonRsp.proto
index 6aebe7e7..089ad570 100644
--- a/proto/Unk3000_GNLFOLGMEPN.proto
+++ b/proto/MuqadasPotionRestartDungeonRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 21208
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_GNLFOLGMEPN {
+message MuqadasPotionRestartDungeonRsp {
int32 retcode = 5;
}
diff --git a/proto/MusicBeatmap.proto b/proto/MusicBeatmap.proto
deleted file mode 100644
index 399286e2..00000000
--- a/proto/MusicBeatmap.proto
+++ /dev/null
@@ -1,11 +0,0 @@
-// 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
deleted file mode 100644
index 13b01cf0..00000000
--- a/proto/MusicBeatmapList.proto
+++ /dev/null
@@ -1,10 +0,0 @@
-// 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
deleted file mode 100644
index cde64d3a..00000000
--- a/proto/MusicBeatmapNote.proto
+++ /dev/null
@@ -1,9 +0,0 @@
-// 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
deleted file mode 100644
index deba0f42..00000000
--- a/proto/MusicBriefInfo.proto
+++ /dev/null
@@ -1,43 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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
index 5dc1bd2b..c5fecac8 100644
--- a/proto/MusicGameActivityDetailInfo.proto
+++ b/proto/MusicGameActivityDetailInfo.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "MusicBriefInfo.proto";
import "MusicGameRecord.proto";
+import "UgcMusicBriefInfo.proto";
option java_package = "emu.grasscutter.net.proto";
message MusicGameActivityDetailInfo {
- repeated MusicBriefInfo Unk2700_HMNHCPMFDCP = 4;
- repeated MusicBriefInfo Unk2700_FOFAFGKAEJM = 7;
+ repeated UgcMusicBriefInfo ugc_record_list = 4;
+ repeated UgcMusicBriefInfo ugc_search_list = 7;
map music_game_record_map = 8;
}
diff --git a/proto/MusicGameCreateBeatmapReq.proto b/proto/MusicGameCreateBeatmapReq.proto
deleted file mode 100644
index 4a87f750..00000000
--- a/proto/MusicGameCreateBeatmapReq.proto
+++ /dev/null
@@ -1,22 +0,0 @@
-// 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
deleted file mode 100644
index 99a7231b..00000000
--- a/proto/MusicGameCreateBeatmapRsp.proto
+++ /dev/null
@@ -1,16 +0,0 @@
-// 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
deleted file mode 100644
index e33bbb68..00000000
--- a/proto/MusicGameGetBeatmapReq.proto
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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
deleted file mode 100644
index efad4a34..00000000
--- a/proto/MusicGameGetBeatmapReqType.proto
+++ /dev/null
@@ -1,15 +0,0 @@
-// 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
deleted file mode 100644
index fa355f96..00000000
--- a/proto/MusicGameGetBeatmapRsp.proto
+++ /dev/null
@@ -1,25 +0,0 @@
-// 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/MusicGameSearchBeatmapReq.proto b/proto/MusicGameSearchBeatmapReq.proto
deleted file mode 100644
index 9de25162..00000000
--- a/proto/MusicGameSearchBeatmapReq.proto
+++ /dev/null
@@ -1,15 +0,0 @@
-// 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
deleted file mode 100644
index 4f377e07..00000000
--- a/proto/MusicGameSearchBeatmapRsp.proto
+++ /dev/null
@@ -1,19 +0,0 @@
-// 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
index 3036ea64..cea475c1 100644
--- a/proto/MusicGameSettleReq.proto
+++ b/proto/MusicGameSettleReq.proto
@@ -24,22 +24,22 @@ option java_package = "emu.grasscutter.net.proto";
// EnetIsReliable: true
// IsAllowClient: true
message MusicGameSettleReq {
- repeated uint32 Unk2700_GDPKOANEDEB = 384;
- uint32 Unk2700_NMHGADLANMM = 795;
- repeated uint32 Unk2700_NNHGOCJLKFH = 4;
- uint32 Unk2700_NCHHEJNFECG = 15;
+ repeated uint32 button_list = 384;
+ uint32 delay = 795;
+ repeated uint32 note_list = 4;
+ uint32 score_rating = 15;
uint32 score = 9;
- uint64 Unk2700_CEPGMKAHHCD = 6;
- uint32 Unk2700_MMHHGALFHGA = 13;
- bool Unk2700_CBLIJHDFKHA = 422;
+ uint64 ugc_guid = 6;
+ uint32 restart_times = 13;
+ bool is_custom_delay = 422;
uint32 max_combo = 5;
- uint32 Unk2700_FBLBGPHMLAL = 1058;
+ uint32 is_full_combo = 1058;
float speed = 409;
- bool Unk2700_IOKPIKJDEHG = 3;
+ bool is_save_score = 3;
uint32 combo = 1;
uint32 music_basic_id = 7;
- uint32 Unk2700_DIMBABOGNEM = 2;
- uint32 Unk2700_IOMOHEKJJLJ = 1953;
+ uint32 star_rating = 2;
+ uint32 volume = 1953;
uint32 correct_hit = 14;
- bool Unk2700_LKJNLDJAGGL = 1285;
+ bool is_custom_speed = 1285;
}
diff --git a/proto/MusicGameSettleRsp.proto b/proto/MusicGameSettleRsp.proto
index b34b30c2..d1f08acd 100644
--- a/proto/MusicGameSettleRsp.proto
+++ b/proto/MusicGameSettleRsp.proto
@@ -27,5 +27,5 @@ message MusicGameSettleRsp {
uint32 music_basic_id = 5;
bool is_new_record = 6;
bool is_unlock_next_level = 2;
- uint64 Unk2700_CEPGMKAHHCD = 10;
+ uint64 ugc_guid = 10;
}
diff --git a/proto/MusicGameStartReq.proto b/proto/MusicGameStartReq.proto
index 2c9a76c0..e75c643b 100644
--- a/proto/MusicGameStartReq.proto
+++ b/proto/MusicGameStartReq.proto
@@ -25,6 +25,6 @@ option java_package = "emu.grasscutter.net.proto";
// IsAllowClient: true
message MusicGameStartReq {
uint32 music_basic_id = 2;
- bool Unk2700_IOKPIKJDEHG = 11;
- uint64 Unk2700_CEPGMKAHHCD = 3;
+ bool is_save_score = 11;
+ uint64 ugc_guid = 3;
}
diff --git a/proto/MusicGameStartRsp.proto b/proto/MusicGameStartRsp.proto
index f23845ef..27ef489f 100644
--- a/proto/MusicGameStartRsp.proto
+++ b/proto/MusicGameStartRsp.proto
@@ -25,5 +25,5 @@ option java_package = "emu.grasscutter.net.proto";
message MusicGameStartRsp {
uint32 music_basic_id = 4;
int32 retcode = 1;
- uint64 Unk2700_CEPGMKAHHCD = 15;
+ uint64 ugc_guid = 15;
}
diff --git a/proto/MusicGameStartToPlayOthersBeatmapReq.proto b/proto/MusicGameStartToPlayOthersBeatmapReq.proto
deleted file mode 100644
index 25fcad8a..00000000
--- a/proto/MusicGameStartToPlayOthersBeatmapReq.proto
+++ /dev/null
@@ -1,14 +0,0 @@
-// 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
deleted file mode 100644
index 8f935b9e..00000000
--- a/proto/MusicGameStartToPlayOthersBeatmapRsp.proto
+++ /dev/null
@@ -1,15 +0,0 @@
-// 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
deleted file mode 100644
index 38fca4a4..00000000
--- a/proto/MusicGameUnknown1Enum.proto
+++ /dev/null
@@ -1,9 +0,0 @@
-// 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
deleted file mode 100644
index 4c61a1d3..00000000
--- a/proto/MusicGameUnknown2Enum.proto
+++ /dev/null
@@ -1,10 +0,0 @@
-// 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/Unk2700_MFINCDMFGLD_ServerNotify.proto b/proto/NicknameAuditConfigNotify.proto
similarity index 92%
rename from proto/Unk2700_MFINCDMFGLD_ServerNotify.proto
rename to proto/NicknameAuditConfigNotify.proto
index 9be983a1..e58dd651 100644
--- a/proto/Unk2700_MFINCDMFGLD_ServerNotify.proto
+++ b/proto/NicknameAuditConfigNotify.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 152
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_MFINCDMFGLD_ServerNotify {
+message NicknameAuditConfigNotify {
bool is_open = 8;
- uint32 Unk2700_JEKIGDDNCAB = 12;
+ uint32 submit_limit = 12;
}
diff --git a/proto/Unk2700_GBPNAHCAKJE.proto b/proto/NicknameSignatureAuditData.proto
similarity index 78%
rename from proto/Unk2700_GBPNAHCAKJE.proto
rename to proto/NicknameSignatureAuditData.proto
index 8c514fd1..9edc7a25 100644
--- a/proto/Unk2700_GBPNAHCAKJE.proto
+++ b/proto/NicknameSignatureAuditData.proto
@@ -17,18 +17,18 @@
syntax = "proto3";
-import "Unk2700_EDNGHJGKEKC.proto";
-import "Unk2700_LBPFDCBHCBL.proto";
+import "ContentAuditAuxiliaryField.proto";
+import "ContentAuditField.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_GBPNAHCAKJE {
- string Unk2700_OAKBDKKBFHP = 1;
+message NicknameSignatureAuditData {
+ string aid = 1;
string entity_id = 2;
string lang = 3;
- string Unk2700_NDEJPMGPBAH = 4;
+ string queue_key = 4;
string region = 5;
uint32 uid = 6;
- repeated Unk2700_EDNGHJGKEKC Unk2700_LHPECOEIIKL = 7;
- repeated Unk2700_LBPFDCBHCBL Unk2700_LABLGMEOEFM = 8;
+ repeated ContentAuditField audit_field_list = 7;
+ repeated ContentAuditAuxiliaryField aux_field_list = 8;
}
diff --git a/proto/Unk2800_DNKCFLKHKJG.proto b/proto/NightCrowGadgetObservationMatchReq.proto
similarity index 93%
rename from proto/Unk2800_DNKCFLKHKJG.proto
rename to proto/NightCrowGadgetObservationMatchReq.proto
index b0e36224..12b68cbf 100644
--- a/proto/Unk2800_DNKCFLKHKJG.proto
+++ b/proto/NightCrowGadgetObservationMatchReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2800_DNKCFLKHKJG {
- uint32 Unk2800_LEHIJIPEONO = 3;
+message NightCrowGadgetObservationMatchReq {
+ uint32 target_gadget_state = 3;
uint32 gadget_entity_id = 8;
}
diff --git a/proto/Unk2800_ANGFAFEJBAE.proto b/proto/NightCrowGadgetObservationMatchRsp.proto
similarity index 95%
rename from proto/Unk2800_ANGFAFEJBAE.proto
rename to proto/NightCrowGadgetObservationMatchRsp.proto
index e3bf3fb3..6e48add9 100644
--- a/proto/Unk2800_ANGFAFEJBAE.proto
+++ b/proto/NightCrowGadgetObservationMatchRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 846
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_ANGFAFEJBAE {
+message NightCrowGadgetObservationMatchRsp {
int32 retcode = 15;
}
diff --git a/proto/NpcTalkStateNotify.proto b/proto/NpcTalkStateNotify.proto
new file mode 100644
index 00000000..1aaf3d6d
--- /dev/null
+++ b/proto/NpcTalkStateNotify.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy 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 NpcTalkStateNotify {
+ bool is_ban = 5;
+}
diff --git a/proto/Unk2700_MMJJMKMHANL.proto b/proto/OfficialCustomDungeon.proto
similarity index 93%
rename from proto/Unk2700_MMJJMKMHANL.proto
rename to proto/OfficialCustomDungeon.proto
index a10c78f3..aaf6a0a1 100644
--- a/proto/Unk2700_MMJJMKMHANL.proto
+++ b/proto/OfficialCustomDungeon.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_MMJJMKMHANL {
+message OfficialCustomDungeon {
uint32 dungeon_id = 11;
- uint32 Unk2700_FMOFEBIAOFO = 3;
+ uint32 win_times = 3;
}
diff --git a/proto/Unk2700_GHHCCEHGKLH.proto b/proto/OtherCustomDungeonBrief.proto
similarity index 68%
rename from proto/Unk2700_GHHCCEHGKLH.proto
rename to proto/OtherCustomDungeonBrief.proto
index b370224c..e8e7df01 100644
--- a/proto/Unk2700_GHHCCEHGKLH.proto
+++ b/proto/OtherCustomDungeonBrief.proto
@@ -17,23 +17,23 @@
syntax = "proto3";
+import "CustomDungeonAbstract.proto";
+import "CustomDungeonSetting.proto";
+import "CustomDungeonSocial.proto";
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;
+message OtherCustomDungeonBrief {
+ SocialDetail creator_detail = 4;
+ uint32 battle_min_cost_time = 15;
+ CustomDungeonAbstract abstract = 2;
+ uint64 dungeon_guid = 14;
+ CustomDungeonSetting setting = 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;
+ bool is_adventure_dungeon = 11;
+ bool is_psn_platform = 9;
+ bool is_stored = 3;
+ CustomDungeonSocial social = 12;
}
diff --git a/proto/Unk2700_FFOBMLOCPMH_ClientNotify.proto b/proto/OutStuckCustomDungeonReq.proto
similarity index 95%
rename from proto/Unk2700_FFOBMLOCPMH_ClientNotify.proto
rename to proto/OutStuckCustomDungeonReq.proto
index 0e8d5bfd..9aef5a92 100644
--- a/proto/Unk2700_FFOBMLOCPMH_ClientNotify.proto
+++ b/proto/OutStuckCustomDungeonReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_FFOBMLOCPMH_ClientNotify {}
+message OutStuckCustomDungeonReq {}
diff --git a/proto/Unk2700_MHMBDFKOOLJ_ClientNotify.proto b/proto/OutStuckCustomDungeonRsp.proto
similarity index 96%
rename from proto/Unk2700_MHMBDFKOOLJ_ClientNotify.proto
rename to proto/OutStuckCustomDungeonRsp.proto
index 41faa67b..c36b626b 100644
--- a/proto/Unk2700_MHMBDFKOOLJ_ClientNotify.proto
+++ b/proto/OutStuckCustomDungeonRsp.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_MHMBDFKOOLJ_ClientNotify {
+message OutStuckCustomDungeonRsp {
int32 retcode = 15;
}
diff --git a/proto/PBNavMeshPoly.proto b/proto/PBNavMeshPoly.proto
index 913f8815..bba6964b 100644
--- a/proto/PBNavMeshPoly.proto
+++ b/proto/PBNavMeshPoly.proto
@@ -28,6 +28,6 @@ message PBNavMeshPoly {
EDGE_TYPE_INNER = 0;
EDGE_TYPE_TILE_BOUND = 1;
EDGE_TYPE_TILE_BOUND_UNCONNECT = 2;
- EDGE_TYPE_Unk2700_BFOKBOEBPJF = 3;
+ EDGE_TYPE_TILE_BOUND_OVERIDE = 3;
}
}
diff --git a/proto/ParamList.proto b/proto/ParamList.proto
index ffa9a99f..90482d98 100644
--- a/proto/ParamList.proto
+++ b/proto/ParamList.proto
@@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message ParamList {
- repeated uint32 param_list_ = 1;
+ repeated uint32 param_list = 1;
}
diff --git a/proto/ParentQuest.proto b/proto/ParentQuest.proto
index 451ead29..93dfc276 100644
--- a/proto/ParentQuest.proto
+++ b/proto/ParentQuest.proto
@@ -18,8 +18,8 @@
syntax = "proto3";
import "ChildQuest.proto";
+import "InferencePageInfo.proto";
import "ParentQuestRandomInfo.proto";
-import "Unk3000_ENLDIHLGNCK.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -28,11 +28,11 @@ message ParentQuest {
map time_var_map = 8;
uint32 parent_quest_state = 1;
bool is_finished = 7;
- repeated Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 15;
+ repeated InferencePageInfo inference_page_list = 15;
ParentQuestRandomInfo random_info = 12;
uint32 parent_quest_id = 3;
bool is_random = 13;
- uint64 Unk2700_KHDDIJNOICK = 6;
+ uint64 video_key = 6;
uint32 quest_var_seq = 11;
repeated ChildQuest child_quest_list = 9;
}
diff --git a/proto/Unk3000_DCLAGIJJEHB.proto b/proto/ParentQuestInferenceDataNotify.proto
similarity index 88%
rename from proto/Unk3000_DCLAGIJJEHB.proto
rename to proto/ParentQuestInferenceDataNotify.proto
index 177be344..fd5e816b 100644
--- a/proto/Unk3000_DCLAGIJJEHB.proto
+++ b/proto/ParentQuestInferenceDataNotify.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk3000_ENLDIHLGNCK.proto";
+import "InferencePageInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 402
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_DCLAGIJJEHB {
+message ParentQuestInferenceDataNotify {
uint32 parent_quest_id = 2;
- repeated Unk3000_ENLDIHLGNCK Unk3000_HLPGILIGGCB = 1;
+ repeated InferencePageInfo inference_page_list = 1;
}
diff --git a/proto/PathfindingEnterSceneReq.proto b/proto/PathfindingEnterSceneReq.proto
index 8903cb34..eb5c205b 100644
--- a/proto/PathfindingEnterSceneReq.proto
+++ b/proto/PathfindingEnterSceneReq.proto
@@ -28,9 +28,9 @@ option java_package = "emu.grasscutter.net.proto";
message PathfindingEnterSceneReq {
uint32 scene_id = 12;
repeated uint32 activity_id = 14;
- uint32 Unk2800_NCDFAFMGMIG = 15;
+ uint32 scene_tag_hash = 15;
uint32 version = 6;
bool is_editor = 11;
repeated ObstacleInfo obstacles = 13;
- uint32 Unk2800_MBDFGODMPFN = 4;
+ uint32 polygon_id = 4;
}
diff --git a/proto/Unk2800_IGKGDAGGCEC.proto b/proto/PersistentDungeonSwitchAvatarReq.proto
similarity index 96%
rename from proto/Unk2800_IGKGDAGGCEC.proto
rename to proto/PersistentDungeonSwitchAvatarReq.proto
index 8d2c89a6..c53f2f7d 100644
--- a/proto/Unk2800_IGKGDAGGCEC.proto
+++ b/proto/PersistentDungeonSwitchAvatarReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2800_IGKGDAGGCEC {
+message PersistentDungeonSwitchAvatarReq {
uint64 cur_avatar_guid = 8;
repeated uint64 avatar_team_guid_list = 3;
}
diff --git a/proto/Unk2800_KJEOLFNEOPF.proto b/proto/PersistentDungeonSwitchAvatarRsp.proto
similarity index 96%
rename from proto/Unk2800_KJEOLFNEOPF.proto
rename to proto/PersistentDungeonSwitchAvatarRsp.proto
index dfe4b1cd..4b3cf594 100644
--- a/proto/Unk2800_KJEOLFNEOPF.proto
+++ b/proto/PersistentDungeonSwitchAvatarRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 1768
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_KJEOLFNEOPF {
+message PersistentDungeonSwitchAvatarRsp {
repeated uint64 avatar_team_guid_list = 14;
int32 retcode = 7;
uint64 cur_avatar_guid = 15;
diff --git a/proto/Unk2700_GNPPPIHBDLJ.proto b/proto/PhotoActivityClientViewReq.proto
similarity index 94%
rename from proto/Unk2700_GNPPPIHBDLJ.proto
rename to proto/PhotoActivityClientViewReq.proto
index 2f34db81..d9c3590a 100644
--- a/proto/Unk2700_GNPPPIHBDLJ.proto
+++ b/proto/PhotoActivityClientViewReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_GNPPPIHBDLJ {
- uint32 Unk2700_CKGJEOOKFIF = 13;
+message PhotoActivityClientViewReq {
+ uint32 pos_id = 13;
}
diff --git a/proto/Unk2700_PKKJEOFNLCF.proto b/proto/PhotoActivityClientViewRsp.proto
similarity index 94%
rename from proto/Unk2700_PKKJEOFNLCF.proto
rename to proto/PhotoActivityClientViewRsp.proto
index 97249606..8ea66dc0 100644
--- a/proto/Unk2700_PKKJEOFNLCF.proto
+++ b/proto/PhotoActivityClientViewRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8983
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_PKKJEOFNLCF {
+message PhotoActivityClientViewRsp {
int32 retcode = 3;
- uint32 Unk2700_CKGJEOOKFIF = 8;
+ uint32 pos_id = 8;
}
diff --git a/proto/PhotoActivityDetailInfo.proto b/proto/PhotoActivityDetailInfo.proto
index 984ffdae..c02d77be 100644
--- a/proto/PhotoActivityDetailInfo.proto
+++ b/proto/PhotoActivityDetailInfo.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "PhotoStage.proto";
+import "PhotoPosData.proto";
option java_package = "emu.grasscutter.net.proto";
message PhotoActivityDetailInfo {
bool is_content_closed = 4;
- repeated PhotoStage photo_stage_list = 12;
+ repeated PhotoPosData photo_pos_data_list = 12;
}
diff --git a/proto/Unk2700_BOEHCEAAKKA.proto b/proto/PhotoActivityFinishReq.proto
similarity index 91%
rename from proto/Unk2700_BOEHCEAAKKA.proto
rename to proto/PhotoActivityFinishReq.proto
index a3e1e9ae..0370975a 100644
--- a/proto/Unk2700_BOEHCEAAKKA.proto
+++ b/proto/PhotoActivityFinishReq.proto
@@ -23,8 +23,8 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_BOEHCEAAKKA {
- uint32 Unk2700_CKGJEOOKFIF = 15;
- uint32 Unk2700_ADNAKNMDMGG = 2;
+message PhotoActivityFinishReq {
+ uint32 pos_id = 15;
+ uint32 check_root_id = 2;
bool is_succ = 5;
}
diff --git a/proto/Unk2700_BLNOMGJJLOI.proto b/proto/PhotoActivityFinishRsp.proto
similarity index 94%
rename from proto/Unk2700_BLNOMGJJLOI.proto
rename to proto/PhotoActivityFinishRsp.proto
index 3e0c6873..79d67677 100644
--- a/proto/Unk2700_BLNOMGJJLOI.proto
+++ b/proto/PhotoActivityFinishRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8854
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_BLNOMGJJLOI {
+message PhotoActivityFinishRsp {
int32 retcode = 1;
- uint32 Unk2700_CKGJEOOKFIF = 8;
+ uint32 pos_id = 8;
}
diff --git a/proto/PhotoGallerySettleInfo.proto b/proto/PhotoGallerySettleInfo.proto
new file mode 100644
index 00000000..09d90604
--- /dev/null
+++ b/proto/PhotoGallerySettleInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GalleryStopReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message PhotoGallerySettleInfo {
+ GalleryStopReason reason = 7;
+}
diff --git a/proto/PhotoStage.proto b/proto/PhotoPosData.proto
similarity index 92%
rename from proto/PhotoStage.proto
rename to proto/PhotoPosData.proto
index b09a916e..fe885555 100644
--- a/proto/PhotoStage.proto
+++ b/proto/PhotoPosData.proto
@@ -21,10 +21,10 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
-message PhotoStage {
+message PhotoPosData {
Vector center = 15;
uint32 open_time = 2;
- bool Unk2700_DDOBNKLLLDF = 4;
- uint32 Unk2700_CKGJEOOKFIF = 9;
+ bool is_view = 4;
+ uint32 pos_id = 9;
bool is_open = 6;
}
diff --git a/proto/PlatformType.proto b/proto/PlatformType.proto
index db77e8cd..1bf40a14 100644
--- a/proto/PlatformType.proto
+++ b/proto/PlatformType.proto
@@ -31,8 +31,8 @@ enum PlatformType {
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;
+ PLATFORM_TYPE_CLOUD_MAC = 11;
+ PLATFORM_TYPE_CLOUD_PC = 12;
+ PLATFORM_TYPE_CLOUD_THIRD_PARTY_MOBILE = 13;
+ PLATFORM_TYPE_CLOUD_THIRD_PARTY_PC = 14;
}
diff --git a/proto/Unk3000_DLCDJPKNGBD.proto b/proto/PlayerCompoundMaterialBoostReq.proto
similarity index 85%
rename from proto/Unk3000_DLCDJPKNGBD.proto
rename to proto/PlayerCompoundMaterialBoostReq.proto
index 27fc37d5..a13c324a 100644
--- a/proto/Unk3000_DLCDJPKNGBD.proto
+++ b/proto/PlayerCompoundMaterialBoostReq.proto
@@ -23,9 +23,9 @@ option java_package = "emu.grasscutter.net.proto";
// 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;
+message PlayerCompoundMaterialBoostReq {
+ bool is_boost_all = 8;
+ uint32 target_compound_group_id = 14;
+ uint32 consume_material_id = 9;
+ uint32 consume_material_count = 1;
}
diff --git a/proto/Unk3000_JDCOHPBDPED.proto b/proto/PlayerCompoundMaterialBoostRsp.proto
similarity index 86%
rename from proto/Unk3000_JDCOHPBDPED.proto
rename to proto/PlayerCompoundMaterialBoostRsp.proto
index 8f847d56..3474988a 100644
--- a/proto/Unk3000_JDCOHPBDPED.proto
+++ b/proto/PlayerCompoundMaterialBoostRsp.proto
@@ -17,18 +17,18 @@
syntax = "proto3";
+import "CompoundBoostTakeStatusType.proto";
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;
+message PlayerCompoundMaterialBoostRsp {
+ repeated ItemParam take_item_list = 2;
+ CompoundBoostTakeStatusType take_status = 6;
int32 retcode = 7;
repeated CompoundQueueData compound_que_data_list = 1;
}
diff --git a/proto/Unk2700_DGDJKHJNLGO.proto b/proto/PlayerCustomDungeonMuipData.proto
similarity index 79%
rename from proto/Unk2700_DGDJKHJNLGO.proto
rename to proto/PlayerCustomDungeonMuipData.proto
index 824a8c09..af9aeff9 100644
--- a/proto/Unk2700_DGDJKHJNLGO.proto
+++ b/proto/PlayerCustomDungeonMuipData.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk2700_PGFLJBBEBKG.proto";
+import "CustomDungeonBattleRecordMuipData.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_DGDJKHJNLGO {
+message PlayerCustomDungeonMuipData {
uint32 uid = 1;
- repeated uint64 Unk2700_OEFLHAPAMFH = 2;
- repeated uint64 Unk2700_OJNBAOCJBCH = 3;
- repeated Unk2700_PGFLJBBEBKG Unk2700_GDDGEKHOLGL = 4;
+ repeated uint64 publish_dungeon_list = 2;
+ repeated uint64 store_dungeon_list = 3;
+ repeated CustomDungeonBattleRecordMuipData battle_record_list = 4;
}
diff --git a/proto/Unk3000_IPAKLDNKDAO.proto b/proto/PlayerDeathZoneNotify.proto
similarity index 94%
rename from proto/Unk3000_IPAKLDNKDAO.proto
rename to proto/PlayerDeathZoneNotify.proto
index 8280a9f0..25826d93 100644
--- a/proto/Unk3000_IPAKLDNKDAO.proto
+++ b/proto/PlayerDeathZoneNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 6275
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_IPAKLDNKDAO {
- uint32 Unk3000_FJIJOIMJMPF = 8;
+message PlayerDeathZoneNotify {
+ uint32 cur_death_zone_id = 8;
}
diff --git a/proto/PlayerEnterDungeonReq.proto b/proto/PlayerEnterDungeonReq.proto
index fb91f1d2..6b6766f4 100644
--- a/proto/PlayerEnterDungeonReq.proto
+++ b/proto/PlayerEnterDungeonReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2800_JKLFAJKDLDG.proto";
+import "DungeonEnterPosInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -26,7 +26,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetIsReliable: true
// IsAllowClient: true
message PlayerEnterDungeonReq {
- Unk2800_JKLFAJKDLDG Unk2800_ANJAHBGBIFD = 2;
+ DungeonEnterPosInfo enter_pos_info = 2;
uint32 point_id = 13;
uint32 dungeon_id = 7;
}
diff --git a/proto/PlayerEyePointStateNotify.proto b/proto/PlayerEyePointStateNotify.proto
index e04ddece..1ed67881 100644
--- a/proto/PlayerEyePointStateNotify.proto
+++ b/proto/PlayerEyePointStateNotify.proto
@@ -33,7 +33,7 @@ message PlayerEyePointStateNotify {
uint32 region_config_id = 7;
uint32 region_shape = 12;
bool is_filter_stream_pos = 2;
- int32 Unk2800_GBBMMIGJFCF = 5;
+ int32 fix_lod_level = 5;
uint32 region_group_id = 4;
oneof region_size {
float sphere_radius = 255;
diff --git a/proto/PlayerGCGMatchConfirmNotify.proto b/proto/PlayerGCGMatchConfirmNotify.proto
new file mode 100644
index 00000000..f59dfcef
--- /dev/null
+++ b/proto/PlayerGCGMatchConfirmNotify.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 4185
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerGCGMatchConfirmNotify {
+ uint32 uid = 10;
+ bool is_agree = 5;
+ uint32 match_id = 14;
+}
diff --git a/proto/PlayerGCGMatchDismissNotify.proto b/proto/PlayerGCGMatchDismissNotify.proto
new file mode 100644
index 00000000..6d53428c
--- /dev/null
+++ b/proto/PlayerGCGMatchDismissNotify.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: 4173
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PlayerGCGMatchDismissNotify {
+ uint32 match_id = 11;
+ MatchReason reason = 5;
+ repeated uint32 uid_list = 7;
+}
diff --git a/proto/PlayerLoginReq.proto b/proto/PlayerLoginReq.proto
index 06427672..d88b2f27 100644
--- a/proto/PlayerLoginReq.proto
+++ b/proto/PlayerLoginReq.proto
@@ -37,10 +37,10 @@ message PlayerLoginReq {
uint32 client_data_version = 688;
string account_uid = 2;
string client_version = 12;
- string Unk2700_NGKCNPKKIKB = 772;
+ string security_library_md5 = 772;
string country_code = 2000;
string psn_id = 1268;
- uint32 Unk2700_GPPBEMDGEHH = 431;
+ uint32 client_port = 431;
string device_name = 9;
string cps = 1163;
uint64 login_rand = 3;
@@ -54,7 +54,7 @@ message PlayerLoginReq {
bool is_editor = 8;
string checksum_client_version = 861;
bytes security_cmd_reply = 1995;
- string Unk2700_JNDKPBBCACB = 1213;
+ string security_library_version = 1213;
string birthday = 1652;
string device_uuid = 4;
uint32 client_token = 1546;
diff --git a/proto/PlayerLoginRsp.proto b/proto/PlayerLoginRsp.proto
index fa8da164..9ff8e830 100644
--- a/proto/PlayerLoginRsp.proto
+++ b/proto/PlayerLoginRsp.proto
@@ -48,7 +48,7 @@ message PlayerLoginRsp {
bytes sc_info = 2024;
int32 ability_hash_code = 12;
string register_cps = 2040;
- bool Unk3100_EDIDPOKBKHG = 1649;
+ bool is_login_rsp_split = 1649;
bool is_use_ability_hash = 2;
map ability_hash_map = 11;
repeated ShortAbilityHashPair short_ability_hash_map = 250;
diff --git a/proto/PlayerLuaShellNotify.proto b/proto/PlayerLuaShellNotify.proto
index 6ee34c63..4a323cee 100644
--- a/proto/PlayerLuaShellNotify.proto
+++ b/proto/PlayerLuaShellNotify.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2700_JOEPIGNPDGH.proto";
+import "LuaShellType.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,7 +25,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
message PlayerLuaShellNotify {
- Unk2700_JOEPIGNPDGH Unk2700_JJMHFFHNJJO = 7;
+ LuaShellType shell_type = 7;
uint32 id = 5;
bytes lua_shell = 12;
uint32 use_type = 10;
diff --git a/proto/PlayerMatchInfoNotify.proto b/proto/PlayerMatchInfoNotify.proto
index bde16ab0..5fde71b0 100644
--- a/proto/PlayerMatchInfoNotify.proto
+++ b/proto/PlayerMatchInfoNotify.proto
@@ -25,12 +25,13 @@ option java_package = "emu.grasscutter.net.proto";
// 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;
+ MatchType match_type = 11;
+ uint32 mechanicus_difficult_level = 12;
+ repeated uint32 match_param_list = 6;
+ uint32 estimate_match_cost_time = 3;
+ uint32 mp_play_id = 5;
uint32 host_uid = 13;
}
diff --git a/proto/PlayerMatchSuccNotify.proto b/proto/PlayerMatchSuccNotify.proto
index 4b40b831..05efe1a0 100644
--- a/proto/PlayerMatchSuccNotify.proto
+++ b/proto/PlayerMatchSuccNotify.proto
@@ -17,6 +17,7 @@
syntax = "proto3";
+import "GCGMatchInfo.proto";
import "GeneralMatchInfo.proto";
import "MatchType.proto";
@@ -26,11 +27,12 @@ option java_package = "emu.grasscutter.net.proto";
// 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 mp_play_id = 15;
uint32 host_uid = 3;
+ MatchType match_type = 5;
+ GCGMatchInfo gcg_match_info = 11;
uint32 confirm_end_time = 2;
+ uint32 dungeon_id = 6;
+ uint32 mechanicus_difficult_level = 1;
}
diff --git a/proto/Unk2700_KIHEEAGDGIL_ServerNotify.proto b/proto/PlayerNicknameAuditDataNotify.proto
similarity index 90%
rename from proto/Unk2700_KIHEEAGDGIL_ServerNotify.proto
rename to proto/PlayerNicknameAuditDataNotify.proto
index 5dc66f84..2468ab33 100644
--- a/proto/Unk2700_KIHEEAGDGIL_ServerNotify.proto
+++ b/proto/PlayerNicknameAuditDataNotify.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk2700_DPPCDPBBABA.proto";
+import "ContentAuditInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 108
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_KIHEEAGDGIL_ServerNotify {
- Unk2700_DPPCDPBBABA info = 13;
+message PlayerNicknameAuditDataNotify {
+ ContentAuditInfo info = 13;
}
diff --git a/proto/Unk2700_JEHIAJHHIMP_ServerNotify.proto b/proto/PlayerNicknameNotify.proto
similarity index 96%
rename from proto/Unk2700_JEHIAJHHIMP_ServerNotify.proto
rename to proto/PlayerNicknameNotify.proto
index 29186360..55c096cd 100644
--- a/proto/Unk2700_JEHIAJHHIMP_ServerNotify.proto
+++ b/proto/PlayerNicknameNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 109
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_JEHIAJHHIMP_ServerNotify {
+message PlayerNicknameNotify {
string nickname = 7;
}
diff --git a/proto/PlayerQuitFromMpNotify.proto b/proto/PlayerQuitFromMpNotify.proto
index 6b37c86d..533f582b 100644
--- a/proto/PlayerQuitFromMpNotify.proto
+++ b/proto/PlayerQuitFromMpNotify.proto
@@ -36,6 +36,6 @@ message PlayerQuitFromMpNotify {
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;
+ QUIT_REASON_KICK_BY_ISLAND_PARTY_GALLERY_START_FAILED = 10;
}
}
diff --git a/proto/Unk2700_FPJLFMEHHLB_ServerNotify.proto b/proto/PlayerSignatureAuditDataNotify.proto
similarity index 90%
rename from proto/Unk2700_FPJLFMEHHLB_ServerNotify.proto
rename to proto/PlayerSignatureAuditDataNotify.proto
index 96cd58ed..d1dab48a 100644
--- a/proto/Unk2700_FPJLFMEHHLB_ServerNotify.proto
+++ b/proto/PlayerSignatureAuditDataNotify.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk2700_DPPCDPBBABA.proto";
+import "ContentAuditInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 4060
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_FPJLFMEHHLB_ServerNotify {
- Unk2700_DPPCDPBBABA info = 14;
+message PlayerSignatureAuditDataNotify {
+ ContentAuditInfo info = 14;
}
diff --git a/proto/Unk2700_LCFGKHHIAEH_ServerNotify.proto b/proto/PlayerSignatureNotify.proto
similarity index 96%
rename from proto/Unk2700_LCFGKHHIAEH_ServerNotify.proto
rename to proto/PlayerSignatureNotify.proto
index 2aa396e1..62381787 100644
--- a/proto/Unk2700_LCFGKHHIAEH_ServerNotify.proto
+++ b/proto/PlayerSignatureNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 4014
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_LCFGKHHIAEH_ServerNotify {
+message PlayerSignatureNotify {
string signature = 12;
}
diff --git a/proto/Unk3000_HKHFFDEMNKN.proto b/proto/PlayerWidgetInfo.proto
similarity index 97%
rename from proto/Unk3000_HKHFFDEMNKN.proto
rename to proto/PlayerWidgetInfo.proto
index 808d8612..c83f09a8 100644
--- a/proto/Unk3000_HKHFFDEMNKN.proto
+++ b/proto/PlayerWidgetInfo.proto
@@ -21,7 +21,7 @@ import "WidgetSlotData.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_HKHFFDEMNKN {
+message PlayerWidgetInfo {
uint32 uid = 14;
repeated WidgetSlotData slot_list = 13;
}
diff --git a/proto/PotionActivityDetailInfo.proto b/proto/PotionActivityDetailInfo.proto
index 61a386a8..7d582b4e 100644
--- a/proto/PotionActivityDetailInfo.proto
+++ b/proto/PotionActivityDetailInfo.proto
@@ -17,10 +17,10 @@
syntax = "proto3";
-import "PotionStage.proto";
+import "PotionStageData.proto";
option java_package = "emu.grasscutter.net.proto";
message PotionActivityDetailInfo {
- repeated PotionStage stage_list = 10;
+ repeated PotionStageData stage_list = 10;
}
diff --git a/proto/Unk2700_AMKLCEFNNCC.proto b/proto/PotionAvatarInfo.proto
similarity index 97%
rename from proto/Unk2700_AMKLCEFNNCC.proto
rename to proto/PotionAvatarInfo.proto
index dad0aa79..1d1ffd2a 100644
--- a/proto/Unk2700_AMKLCEFNNCC.proto
+++ b/proto/PotionAvatarInfo.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_AMKLCEFNNCC {
+message PotionAvatarInfo {
bool is_trial = 6;
uint64 avatar_id = 8;
}
diff --git a/proto/Unk2700_KHDMDKKDOCD.proto b/proto/PotionDungeonAvatar.proto
similarity index 97%
rename from proto/Unk2700_KHDMDKKDOCD.proto
rename to proto/PotionDungeonAvatar.proto
index 49a0d40c..21b52cfe 100644
--- a/proto/Unk2700_KHDMDKKDOCD.proto
+++ b/proto/PotionDungeonAvatar.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_KHDMDKKDOCD {
+message PotionDungeonAvatar {
uint64 avatar_guid = 8;
bool is_trial = 2;
}
diff --git a/proto/PotionDungeonResultInfo.proto b/proto/PotionDungeonResultInfo.proto
index b7d0e4fc..9cf9f6ee 100644
--- a/proto/PotionDungeonResultInfo.proto
+++ b/proto/PotionDungeonResultInfo.proto
@@ -22,8 +22,8 @@ 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 difficulty_level = 14;
+ uint32 mode_id = 11;
uint32 level_id = 4;
uint32 stage_id = 2;
}
diff --git a/proto/Unk2700_PIEJMALFKIF.proto b/proto/PotionEnterDungeonNotify.proto
similarity index 84%
rename from proto/Unk2700_PIEJMALFKIF.proto
rename to proto/PotionEnterDungeonNotify.proto
index 723bbf53..2a63de75 100644
--- a/proto/Unk2700_PIEJMALFKIF.proto
+++ b/proto/PotionEnterDungeonNotify.proto
@@ -17,17 +17,17 @@
syntax = "proto3";
-import "Unk2700_KHDMDKKDOCD.proto";
+import "PotionDungeonAvatar.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8531
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_PIEJMALFKIF {
+message PotionEnterDungeonNotify {
uint32 stage_id = 13;
- uint32 Unk2700_FHEHGDABALE = 7;
- repeated Unk2700_KHDMDKKDOCD dungeon_avatar_list = 6;
+ uint32 difficulty_level = 7;
+ repeated PotionDungeonAvatar dungeon_avatar_list = 6;
uint32 level_id = 8;
- uint32 Unk2700_HKFEBBCMBHL = 5;
+ uint32 mode_id = 5;
}
diff --git a/proto/Unk2700_GKKNFMNJFDP.proto b/proto/PotionEnterDungeonReq.proto
similarity index 87%
rename from proto/Unk2700_GKKNFMNJFDP.proto
rename to proto/PotionEnterDungeonReq.proto
index 160c7d32..1db12fc1 100644
--- a/proto/Unk2700_GKKNFMNJFDP.proto
+++ b/proto/PotionEnterDungeonReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2700_AMKLCEFNNCC.proto";
+import "PotionAvatarInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,10 +25,10 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_GKKNFMNJFDP {
+message PotionEnterDungeonReq {
repeated uint32 buff_id_list = 15;
uint32 level_id = 5;
- repeated Unk2700_AMKLCEFNNCC avatar_info_list = 14;
- uint32 Unk2700_HKFEBBCMBHL = 2;
+ repeated PotionAvatarInfo avatar_info_list = 14;
+ uint32 mode_id = 2;
uint32 stage_id = 13;
}
diff --git a/proto/Unk2700_FKMOKPBJIKO.proto b/proto/PotionEnterDungeonRsp.proto
similarity index 96%
rename from proto/Unk2700_FKMOKPBJIKO.proto
rename to proto/PotionEnterDungeonRsp.proto
index 41369e70..eef1ea41 100644
--- a/proto/Unk2700_FKMOKPBJIKO.proto
+++ b/proto/PotionEnterDungeonRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8482
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_FKMOKPBJIKO {
+message PotionEnterDungeonRsp {
int32 retcode = 11;
}
diff --git a/proto/Unk2700_JLHKOLGFAMI.proto b/proto/PotionLevelData.proto
similarity index 91%
rename from proto/Unk2700_JLHKOLGFAMI.proto
rename to proto/PotionLevelData.proto
index 72e5878e..628617d2 100644
--- a/proto/Unk2700_JLHKOLGFAMI.proto
+++ b/proto/PotionLevelData.proto
@@ -19,9 +19,9 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_JLHKOLGFAMI {
+message PotionLevelData {
uint32 level_id = 10;
uint32 score = 7;
- uint32 Unk2700_HKFEBBCMBHL = 5;
- uint32 Unk2700_FHEHGDABALE = 2;
+ uint32 mode_id = 5;
+ uint32 difficulty_level = 2;
}
diff --git a/proto/Unk2700_MIEJMGNBPJE.proto b/proto/PotionResetChallengeReq.proto
similarity index 96%
rename from proto/Unk2700_MIEJMGNBPJE.proto
rename to proto/PotionResetChallengeReq.proto
index 8e7fb6e6..55c37d83 100644
--- a/proto/Unk2700_MIEJMGNBPJE.proto
+++ b/proto/PotionResetChallengeReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_MIEJMGNBPJE {
+message PotionResetChallengeReq {
uint32 stage_id = 1;
}
diff --git a/proto/Unk2700_ODJKHILOILK.proto b/proto/PotionResetChallengeRsp.proto
similarity index 91%
rename from proto/Unk2700_ODJKHILOILK.proto
rename to proto/PotionResetChallengeRsp.proto
index f239cd10..d090fa12 100644
--- a/proto/Unk2700_ODJKHILOILK.proto
+++ b/proto/PotionResetChallengeRsp.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "PotionStage.proto";
+import "PotionStageData.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8067
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_ODJKHILOILK {
+message PotionResetChallengeRsp {
int32 retcode = 11;
- PotionStage Unk2700_BBEEMJECIAA = 14;
+ PotionStageData stage_data = 14;
}
diff --git a/proto/Unk2700_PPBALCAKIBD.proto b/proto/PotionRestartDungeonReq.proto
similarity index 96%
rename from proto/Unk2700_PPBALCAKIBD.proto
rename to proto/PotionRestartDungeonReq.proto
index 5f15d1d5..da6a31b9 100644
--- a/proto/Unk2700_PPBALCAKIBD.proto
+++ b/proto/PotionRestartDungeonReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_PPBALCAKIBD {}
+message PotionRestartDungeonReq {}
diff --git a/proto/Unk2700_LBOPCDPFJEC.proto b/proto/PotionRestartDungeonRsp.proto
similarity index 96%
rename from proto/Unk2700_LBOPCDPFJEC.proto
rename to proto/PotionRestartDungeonRsp.proto
index 72da433a..ff71b3f8 100644
--- a/proto/Unk2700_LBOPCDPFJEC.proto
+++ b/proto/PotionRestartDungeonRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8062
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_LBOPCDPFJEC {
+message PotionRestartDungeonRsp {
int32 retcode = 4;
}
diff --git a/proto/Unk2700_BBLJNCKPKPN.proto b/proto/PotionSaveDungeonResultReq.proto
similarity index 96%
rename from proto/Unk2700_BBLJNCKPKPN.proto
rename to proto/PotionSaveDungeonResultReq.proto
index d375801d..cc292da6 100644
--- a/proto/Unk2700_BBLJNCKPKPN.proto
+++ b/proto/PotionSaveDungeonResultReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_BBLJNCKPKPN {
+message PotionSaveDungeonResultReq {
uint32 level_id = 8;
uint32 stage_id = 7;
}
diff --git a/proto/Unk2700_GKHEKGMFBJN.proto b/proto/PotionSaveDungeonResultRsp.proto
similarity index 96%
rename from proto/Unk2700_GKHEKGMFBJN.proto
rename to proto/PotionSaveDungeonResultRsp.proto
index 224083be..62e34535 100644
--- a/proto/Unk2700_GKHEKGMFBJN.proto
+++ b/proto/PotionSaveDungeonResultRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8688
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_GKHEKGMFBJN {
+message PotionSaveDungeonResultRsp {
int32 retcode = 5;
}
diff --git a/proto/PotionStage.proto b/proto/PotionStageData.proto
similarity index 83%
rename from proto/PotionStage.proto
rename to proto/PotionStageData.proto
index 17454e5f..16ac4441 100644
--- a/proto/PotionStage.proto
+++ b/proto/PotionStageData.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_JLHKOLGFAMI.proto";
+import "PotionLevelData.proto";
option java_package = "emu.grasscutter.net.proto";
-message PotionStage {
+message PotionStageData {
uint32 stage_id = 11;
- repeated uint32 Unk2700_HFHCCJFDOKA = 2;
+ repeated uint32 cool_down_buff_id_list = 2;
bool is_open = 15;
- repeated Unk2700_JLHKOLGFAMI level_list = 14;
- repeated uint32 Unk2700_LONIJGBDPIG = 13;
+ repeated PotionLevelData level_list = 14;
+ repeated uint32 cool_down_avatar_id_list = 13;
}
diff --git a/proto/Unk2700_INBDPOIMAHK_ClientReq.proto b/proto/PublishCustomDungeonReq.proto
similarity index 93%
rename from proto/Unk2700_INBDPOIMAHK_ClientReq.proto
rename to proto/PublishCustomDungeonReq.proto
index f4d7aa2f..23852374 100644
--- a/proto/Unk2700_INBDPOIMAHK_ClientReq.proto
+++ b/proto/PublishCustomDungeonReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_INBDPOIMAHK_ClientReq {
+message PublishCustomDungeonReq {
repeated uint32 tag_list = 1;
- uint64 Unk2700_ONOOJBEABOE = 5;
+ uint64 dungeon_guid = 5;
}
diff --git a/proto/Unk2700_PFFKAEPBEHE_ServerRsp.proto b/proto/PublishCustomDungeonRsp.proto
similarity index 96%
rename from proto/Unk2700_PFFKAEPBEHE_ServerRsp.proto
rename to proto/PublishCustomDungeonRsp.proto
index 0f229884..d36b862f 100644
--- a/proto/Unk2700_PFFKAEPBEHE_ServerRsp.proto
+++ b/proto/PublishCustomDungeonRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 6214
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_PFFKAEPBEHE_ServerRsp {
+message PublishCustomDungeonRsp {
int32 retcode = 2;
}
diff --git a/proto/PublishUgcReq.proto b/proto/PublishUgcReq.proto
new file mode 100644
index 00000000..29d1f423
--- /dev/null
+++ b/proto/PublishUgcReq.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 "UgcType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6344
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message PublishUgcReq {
+ UgcType ugc_type = 7;
+ uint64 ugc_guid = 12;
+}
diff --git a/proto/PublishUgcRsp.proto b/proto/PublishUgcRsp.proto
new file mode 100644
index 00000000..8c367942
--- /dev/null
+++ b/proto/PublishUgcRsp.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 "UgcType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6349
+// EnetChannelId: 0
+// EnetIsReliable: true
+message PublishUgcRsp {
+ uint64 ugc_guid = 14;
+ int32 retcode = 15;
+ UgcType ugc_type = 13;
+}
diff --git a/proto/QueryCodexMonsterBeKilledNumRsp.proto b/proto/QueryCodexMonsterBeKilledNumRsp.proto
index e0be5ae8..2e920733 100644
--- a/proto/QueryCodexMonsterBeKilledNumRsp.proto
+++ b/proto/QueryCodexMonsterBeKilledNumRsp.proto
@@ -24,7 +24,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetIsReliable: true
message QueryCodexMonsterBeKilledNumRsp {
repeated uint32 codex_id_list = 4;
- repeated uint32 Unk2700_MKOBMGGPNMI = 6;
+ repeated uint32 be_captured_num_list = 6;
repeated uint32 be_killed_num_list = 12;
int32 retcode = 5;
}
diff --git a/proto/Unk2700_BMDBBHFJMPF.proto b/proto/QuickOpenActivityReq.proto
similarity index 97%
rename from proto/Unk2700_BMDBBHFJMPF.proto
rename to proto/QuickOpenActivityReq.proto
index b8fa6b9a..be699710 100644
--- a/proto/Unk2700_BMDBBHFJMPF.proto
+++ b/proto/QuickOpenActivityReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_BMDBBHFJMPF {
+message QuickOpenActivityReq {
uint32 activity_id = 1;
}
diff --git a/proto/Unk2700_EHFBIEDHILL.proto b/proto/QuickOpenActivityRsp.proto
similarity index 97%
rename from proto/Unk2700_EHFBIEDHILL.proto
rename to proto/QuickOpenActivityRsp.proto
index 8946edeb..908712a5 100644
--- a/proto/Unk2700_EHFBIEDHILL.proto
+++ b/proto/QuickOpenActivityRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8882
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_EHFBIEDHILL {
+message QuickOpenActivityRsp {
int32 retcode = 2;
uint32 activity_id = 4;
}
diff --git a/proto/RacingGallerySettleInfo.proto b/proto/RacingGallerySettleInfo.proto
new file mode 100644
index 00000000..9bb0c922
--- /dev/null
+++ b/proto/RacingGallerySettleInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "GalleryStopReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message RacingGallerySettleInfo {
+ uint32 winner_uid = 6;
+ GalleryStopReason reason = 4;
+ uint32 use_time = 1;
+}
diff --git a/proto/Unk2700_LGGAIDMLDIA_ServerReq.proto b/proto/ReadNicknameAuditReq.proto
similarity index 96%
rename from proto/Unk2700_LGGAIDMLDIA_ServerReq.proto
rename to proto/ReadNicknameAuditReq.proto
index d8a57eab..1559bb8b 100644
--- a/proto/Unk2700_LGGAIDMLDIA_ServerReq.proto
+++ b/proto/ReadNicknameAuditReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_LGGAIDMLDIA_ServerReq {}
+message ReadNicknameAuditReq {}
diff --git a/proto/Unk2700_HBLAGOMHKPL_ClientRsp.proto b/proto/ReadNicknameAuditRsp.proto
similarity index 96%
rename from proto/Unk2700_HBLAGOMHKPL_ClientRsp.proto
rename to proto/ReadNicknameAuditRsp.proto
index 77007bb5..189bb43f 100644
--- a/proto/Unk2700_HBLAGOMHKPL_ClientRsp.proto
+++ b/proto/ReadNicknameAuditRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 137
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_HBLAGOMHKPL_ClientRsp {
+message ReadNicknameAuditRsp {
int32 retcode = 12;
}
diff --git a/proto/Unk2700_MDPHLPEGFCG_ClientReq.proto b/proto/ReadSignatureAuditReq.proto
similarity index 96%
rename from proto/Unk2700_MDPHLPEGFCG_ClientReq.proto
rename to proto/ReadSignatureAuditReq.proto
index d12f1611..41b2cb36 100644
--- a/proto/Unk2700_MDPHLPEGFCG_ClientReq.proto
+++ b/proto/ReadSignatureAuditReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_MDPHLPEGFCG_ClientReq {}
+message ReadSignatureAuditReq {}
diff --git a/proto/Unk2700_EAAMIOAFNOD_ServerRsp.proto b/proto/ReadSignatureAuditRsp.proto
similarity index 96%
rename from proto/Unk2700_EAAMIOAFNOD_ServerRsp.proto
rename to proto/ReadSignatureAuditRsp.proto
index b33b5fd8..f16a4cbb 100644
--- a/proto/Unk2700_EAAMIOAFNOD_ServerRsp.proto
+++ b/proto/ReadSignatureAuditRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 4064
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_EAAMIOAFNOD_ServerRsp {
+message ReadSignatureAuditRsp {
int32 retcode = 9;
}
diff --git a/proto/RechargeRsp.proto b/proto/RechargeRsp.proto
index bdabf611..188b68b3 100644
--- a/proto/RechargeRsp.proto
+++ b/proto/RechargeRsp.proto
@@ -24,6 +24,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetIsReliable: true
message RechargeRsp {
int32 retcode = 12;
- bool Unk2700_FGENAOBDIEA = 6;
+ bool is_show_minors_hint = 6;
string product_id = 2;
}
diff --git a/proto/RecordUsage.proto b/proto/RecordUsage.proto
new file mode 100644
index 00000000..4a4848ed
--- /dev/null
+++ b/proto/RecordUsage.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 RecordUsage {
+ RECORD_USAGE_UGC_RECORD_USAGE_NONE = 0;
+ RECORD_USAGE_UGC_RECORD_USAGE_IMPORT = 1;
+ RECORD_USAGE_UGC_RECORD_USAGE_PLAY = 2;
+ RECORD_USAGE_UGC_RECORD_USAGE_TRIAL = 3;
+ RECORD_USAGE_UGC_RECORD_USAGE_COMPARE = 4;
+}
diff --git a/proto/Unk2700_ALBPFHFJHHF_ClientReq.proto b/proto/ReformFireworksReq.proto
similarity index 89%
rename from proto/Unk2700_ALBPFHFJHHF_ClientReq.proto
rename to proto/ReformFireworksReq.proto
index faf77300..85fed92a 100644
--- a/proto/Unk2700_ALBPFHFJHHF_ClientReq.proto
+++ b/proto/ReformFireworksReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2700_JDPMOMKAPIF.proto";
+import "FireworksReformData.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,6 +25,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_ALBPFHFJHHF_ClientReq {
- Unk2700_JDPMOMKAPIF Unk2700_HPNDCCFNPEF = 3;
+message ReformFireworksReq {
+ FireworksReformData fireworks_reform_data = 3;
}
diff --git a/proto/Unk2700_JCOECJGPNOL_ServerRsp.proto b/proto/ReformFireworksRsp.proto
similarity index 96%
rename from proto/Unk2700_JCOECJGPNOL_ServerRsp.proto
rename to proto/ReformFireworksRsp.proto
index aca905c4..1553ea31 100644
--- a/proto/Unk2700_JCOECJGPNOL_ServerRsp.proto
+++ b/proto/ReformFireworksRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 5929
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_JCOECJGPNOL_ServerRsp {
+message ReformFireworksRsp {
int32 retcode = 8;
}
diff --git a/proto/Unk3100_ADOMNIEPKEK.proto b/proto/RefreshEntityAuthNotify.proto
similarity index 96%
rename from proto/Unk3100_ADOMNIEPKEK.proto
rename to proto/RefreshEntityAuthNotify.proto
index a76cc625..5f96ac70 100644
--- a/proto/Unk3100_ADOMNIEPKEK.proto
+++ b/proto/RefreshEntityAuthNotify.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3100_ADOMNIEPKEK {
+message RefreshEntityAuthNotify {
repeated uint32 entity_id_list = 7;
}
diff --git a/proto/Unk2700_GNOAKIGLPCG.proto b/proto/RefreshRogueDiaryCardReq.proto
similarity index 93%
rename from proto/Unk2700_GNOAKIGLPCG.proto
rename to proto/RefreshRogueDiaryCardReq.proto
index cd5ea6f8..7d98f672 100644
--- a/proto/Unk2700_GNOAKIGLPCG.proto
+++ b/proto/RefreshRogueDiaryCardReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_GNOAKIGLPCG {
- repeated uint32 Unk2700_IIJKCKNHPKD = 8;
+message RefreshRogueDiaryCardReq {
+ repeated uint32 refresh_card_list = 8;
}
diff --git a/proto/Unk2700_ICABIPHHPKE.proto b/proto/RefreshRogueDiaryCardRsp.proto
similarity index 93%
rename from proto/Unk2700_ICABIPHHPKE.proto
rename to proto/RefreshRogueDiaryCardRsp.proto
index f7e2a36c..82c22e42 100644
--- a/proto/Unk2700_ICABIPHHPKE.proto
+++ b/proto/RefreshRogueDiaryCardRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8028
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_ICABIPHHPKE {
- repeated uint32 Unk2700_GGNBBHMGLAN = 15;
+message RefreshRogueDiaryCardRsp {
+ repeated uint32 rand_card_list = 15;
int32 retcode = 1;
}
diff --git a/proto/RegionInfo.proto b/proto/RegionInfo.proto
index 2928de78..1ad781d3 100644
--- a/proto/RegionInfo.proto
+++ b/proto/RegionInfo.proto
@@ -50,4 +50,5 @@ message RegionInfo {
string privacy_policy_url = 33;
string next_resource_url = 34;
ResVersionConfig next_res_version_config = 35;
+ string game_biz = 36;
}
diff --git a/proto/Unk2700_FKCDCGCBIEA_ServerNotify.proto b/proto/RegionalPlayInfoNotify.proto
similarity index 82%
rename from proto/Unk2700_FKCDCGCBIEA_ServerNotify.proto
rename to proto/RegionalPlayInfoNotify.proto
index 608890fb..ccffdefb 100644
--- a/proto/Unk2700_FKCDCGCBIEA_ServerNotify.proto
+++ b/proto/RegionalPlayInfoNotify.proto
@@ -17,17 +17,17 @@
syntax = "proto3";
-import "Unk2700_NAPLFKNOECD.proto";
+import "RegionalPlayVar.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;
+message RegionalPlayInfoNotify {
+ repeated RegionalPlayVar var_list = 5;
+ string play_name = 9;
+ bool is_enabled = 15;
uint32 play_type = 7;
- bool Unk3000_JHAMNNJMOCI = 4;
+ bool is_in_region = 4;
}
diff --git a/proto/Unk2700_NAPLFKNOECD.proto b/proto/RegionalPlayVar.proto
similarity index 90%
rename from proto/Unk2700_NAPLFKNOECD.proto
rename to proto/RegionalPlayVar.proto
index c299fb0e..fe7faca3 100644
--- a/proto/Unk2700_NAPLFKNOECD.proto
+++ b/proto/RegionalPlayVar.proto
@@ -19,9 +19,9 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_NAPLFKNOECD {
+message RegionalPlayVar {
uint32 type = 15;
- float Unk2700_KJGKBENCNKF = 11;
+ float max_value = 11;
float value = 3;
- float Unk2700_POGMHNNJKDM = 10;
+ float base_value = 10;
}
diff --git a/proto/Unk3000_HBIPKOBMGGD.proto b/proto/RemotePlayerWidgetNotify.proto
similarity index 88%
rename from proto/Unk3000_HBIPKOBMGGD.proto
rename to proto/RemotePlayerWidgetNotify.proto
index e5e4a783..a5cc1c9b 100644
--- a/proto/Unk3000_HBIPKOBMGGD.proto
+++ b/proto/RemotePlayerWidgetNotify.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk3000_HKHFFDEMNKN.proto";
+import "PlayerWidgetInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 5995
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_HBIPKOBMGGD {
- repeated Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 3;
+message RemotePlayerWidgetNotify {
+ repeated PlayerWidgetInfo player_widget_info_list = 3;
}
diff --git a/proto/Unk2700_FOOOKMANFPE_ClientReq.proto b/proto/RemoveCustomDungeonReq.proto
similarity index 93%
rename from proto/Unk2700_FOOOKMANFPE_ClientReq.proto
rename to proto/RemoveCustomDungeonReq.proto
index 521f7022..1dbdcf89 100644
--- a/proto/Unk2700_FOOOKMANFPE_ClientReq.proto
+++ b/proto/RemoveCustomDungeonReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_FOOOKMANFPE_ClientReq {
- uint64 Unk2700_ONOOJBEABOE = 14;
+message RemoveCustomDungeonReq {
+ uint64 dungeon_guid = 14;
}
diff --git a/proto/Unk2700_HGMOIKODALP_ServerRsp.proto b/proto/RemoveCustomDungeonRsp.proto
similarity index 93%
rename from proto/Unk2700_HGMOIKODALP_ServerRsp.proto
rename to proto/RemoveCustomDungeonRsp.proto
index 4013cb16..c5738047 100644
--- a/proto/Unk2700_HGMOIKODALP_ServerRsp.proto
+++ b/proto/RemoveCustomDungeonRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 6220
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_HGMOIKODALP_ServerRsp {
+message RemoveCustomDungeonRsp {
int32 retcode = 14;
- uint64 Unk2700_ONOOJBEABOE = 11;
+ uint64 dungeon_guid = 11;
}
diff --git a/proto/Unk2700_IDADEMGCJBF_ClientNotify.proto b/proto/ReplayCustomDungeonReq.proto
similarity index 95%
rename from proto/Unk2700_IDADEMGCJBF_ClientNotify.proto
rename to proto/ReplayCustomDungeonReq.proto
index a78566a7..a2ab77b3 100644
--- a/proto/Unk2700_IDADEMGCJBF_ClientNotify.proto
+++ b/proto/ReplayCustomDungeonReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_IDADEMGCJBF_ClientNotify {}
+message ReplayCustomDungeonReq {}
diff --git a/proto/Unk2700_ADBFKMECFNJ_ClientNotify.proto b/proto/ReplayCustomDungeonRsp.proto
similarity index 96%
rename from proto/Unk2700_ADBFKMECFNJ_ClientNotify.proto
rename to proto/ReplayCustomDungeonRsp.proto
index 41457184..5daeacad 100644
--- a/proto/Unk2700_ADBFKMECFNJ_ClientNotify.proto
+++ b/proto/ReplayCustomDungeonRsp.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_ADBFKMECFNJ_ClientNotify {
+message ReplayCustomDungeonRsp {
int32 retcode = 15;
}
diff --git a/proto/Unk2700_LDJLMCAHHEN.proto b/proto/ReserveRogueDiaryAvatarReq.proto
similarity index 89%
rename from proto/Unk2700_LDJLMCAHHEN.proto
rename to proto/ReserveRogueDiaryAvatarReq.proto
index e1951070..0038c0c3 100644
--- a/proto/Unk2700_LDJLMCAHHEN.proto
+++ b/proto/ReserveRogueDiaryAvatarReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2700_HJLFNKLPFBH.proto";
+import "RogueDiaryAvatar.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,6 +25,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_LDJLMCAHHEN {
- repeated Unk2700_HJLFNKLPFBH Unk2700_OHECOOHPNHG = 6;
+message ReserveRogueDiaryAvatarReq {
+ repeated RogueDiaryAvatar reserve_avatar_list = 6;
}
diff --git a/proto/Unk2700_IDAGMLJOJMP.proto b/proto/ReserveRogueDiaryAvatarRsp.proto
similarity index 96%
rename from proto/Unk2700_IDAGMLJOJMP.proto
rename to proto/ReserveRogueDiaryAvatarRsp.proto
index 3984fa7e..aa5fef8c 100644
--- a/proto/Unk2700_IDAGMLJOJMP.proto
+++ b/proto/ReserveRogueDiaryAvatarRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8799
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_IDAGMLJOJMP {
+message ReserveRogueDiaryAvatarRsp {
int32 retcode = 13;
}
diff --git a/proto/Unk2700_DBPDHLEGOLB.proto b/proto/ResetRogueDiaryPlayReq.proto
similarity index 96%
rename from proto/Unk2700_DBPDHLEGOLB.proto
rename to proto/ResetRogueDiaryPlayReq.proto
index e461b84b..1ea4d1d1 100644
--- a/proto/Unk2700_DBPDHLEGOLB.proto
+++ b/proto/ResetRogueDiaryPlayReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_DBPDHLEGOLB {
+message ResetRogueDiaryPlayReq {
uint32 stage_id = 5;
}
diff --git a/proto/Unk2700_BLCHNMCGJCJ.proto b/proto/ResetRogueDiaryPlayRsp.proto
similarity index 96%
rename from proto/Unk2700_BLCHNMCGJCJ.proto
rename to proto/ResetRogueDiaryPlayRsp.proto
index 8e246de9..3f8b62d7 100644
--- a/proto/Unk2700_BLCHNMCGJCJ.proto
+++ b/proto/ResetRogueDiaryPlayRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8948
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_BLCHNMCGJCJ {
+message ResetRogueDiaryPlayRsp {
int32 retcode = 11;
}
diff --git a/proto/Unk2700_EBJCAMGPFDB.proto b/proto/ResumeRogueDiaryDungeonReq.proto
similarity index 96%
rename from proto/Unk2700_EBJCAMGPFDB.proto
rename to proto/ResumeRogueDiaryDungeonReq.proto
index 60bc7259..5e28722f 100644
--- a/proto/Unk2700_EBJCAMGPFDB.proto
+++ b/proto/ResumeRogueDiaryDungeonReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_EBJCAMGPFDB {
+message ResumeRogueDiaryDungeonReq {
uint32 stage_id = 2;
}
diff --git a/proto/Unk2700_FFMAKIPBPHE.proto b/proto/ResumeRogueDiaryDungeonRsp.proto
similarity index 96%
rename from proto/Unk2700_FFMAKIPBPHE.proto
rename to proto/ResumeRogueDiaryDungeonRsp.proto
index c616f741..19147dbb 100644
--- a/proto/Unk2700_FFMAKIPBPHE.proto
+++ b/proto/ResumeRogueDiaryDungeonRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8989
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_FFMAKIPBPHE {
+message ResumeRogueDiaryDungeonRsp {
int32 retcode = 15;
}
diff --git a/proto/Retcode.proto b/proto/Retcode.proto
deleted file mode 100644
index 3d937c6e..00000000
--- a/proto/Retcode.proto
+++ /dev/null
@@ -1,1055 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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/Unk2700_FGJBPNIKNDE.proto b/proto/RetryCurRogueDiaryDungeonReq.proto
similarity index 96%
rename from proto/Unk2700_FGJBPNIKNDE.proto
rename to proto/RetryCurRogueDiaryDungeonReq.proto
index 06637130..11220c65 100644
--- a/proto/Unk2700_FGJBPNIKNDE.proto
+++ b/proto/RetryCurRogueDiaryDungeonReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_FGJBPNIKNDE {}
+message RetryCurRogueDiaryDungeonReq {}
diff --git a/proto/Unk2700_FDJBLKOBFIH.proto b/proto/RetryCurRogueDiaryDungeonRsp.proto
similarity index 96%
rename from proto/Unk2700_FDJBLKOBFIH.proto
rename to proto/RetryCurRogueDiaryDungeonRsp.proto
index 834ff9a2..fa3de58d 100644
--- a/proto/Unk2700_FDJBLKOBFIH.proto
+++ b/proto/RetryCurRogueDiaryDungeonRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8334
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_FDJBLKOBFIH {
+message RetryCurRogueDiaryDungeonRsp {
int32 retcode = 5;
}
diff --git a/proto/RockBoardExploreDetailInfo.proto b/proto/RockBoardExploreDetailInfo.proto
index dbfd95b8..e6a9380c 100644
--- a/proto/RockBoardExploreDetailInfo.proto
+++ b/proto/RockBoardExploreDetailInfo.proto
@@ -17,10 +17,10 @@
syntax = "proto3";
-import "Unk3100_FKKBIDJONKF.proto";
+import "RockBoardExploreStageData.proto";
option java_package = "emu.grasscutter.net.proto";
message RockBoardExploreDetailInfo {
- repeated Unk3100_FKKBIDJONKF Unk2800_PDBHCBCLFBM = 9;
+ repeated RockBoardExploreStageData stage_data_list = 9;
}
diff --git a/proto/Unk3100_FKKBIDJONKF.proto b/proto/RockBoardExploreStageData.proto
similarity index 94%
rename from proto/Unk3100_FKKBIDJONKF.proto
rename to proto/RockBoardExploreStageData.proto
index 7912d0dc..b1428961 100644
--- a/proto/Unk3100_FKKBIDJONKF.proto
+++ b/proto/RockBoardExploreStageData.proto
@@ -19,8 +19,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3100_FKKBIDJONKF {
- bool Unk2700_MMNILGLDHHD = 6;
+message RockBoardExploreStageData {
+ bool is_finish = 6;
uint32 open_time = 7;
bool is_open = 5;
uint32 stage_id = 3;
diff --git a/proto/RogueCellState.proto b/proto/RogueCellState.proto
index 332d27a1..7af01852 100644
--- a/proto/RogueCellState.proto
+++ b/proto/RogueCellState.proto
@@ -24,5 +24,5 @@ enum RogueCellState {
ROGUE_CELL_STATE_BATTLE = 1;
ROGUE_CELL_STATE_SUCCESS = 2;
ROGUE_CELL_STATE_FINISH = 3;
- ROGUE_CELL_STATE_Unk2200_KKHGKOBCFKJ = 4;
+ ROGUE_CELL_STATE_TAKEN_CHEST = 4;
}
diff --git a/proto/RogueDiaryActivityDetailInfo.proto b/proto/RogueDiaryActivityDetailInfo.proto
index c31b16ba..d6a47631 100644
--- a/proto/RogueDiaryActivityDetailInfo.proto
+++ b/proto/RogueDiaryActivityDetailInfo.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "RogueDiaryStage.proto";
-import "Unk2700_PILILDPMNNA.proto";
+import "RogueDiaryProgress.proto";
+import "RogueDiaryStageInfo.proto";
option java_package = "emu.grasscutter.net.proto";
message RogueDiaryActivityDetailInfo {
- repeated RogueDiaryStage stage_list = 11;
+ repeated RogueDiaryStageInfo stage_list = 11;
bool is_have_progress = 10;
bool is_content_closed = 2;
- Unk2700_PILILDPMNNA cur_progress = 7;
+ RogueDiaryProgress cur_progress = 7;
}
diff --git a/proto/Unk2700_HJLFNKLPFBH.proto b/proto/RogueDiaryAvatar.proto
similarity index 80%
rename from proto/Unk2700_HJLFNKLPFBH.proto
rename to proto/RogueDiaryAvatar.proto
index 519c194e..71d28a9f 100644
--- a/proto/Unk2700_HJLFNKLPFBH.proto
+++ b/proto/RogueDiaryAvatar.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_AGIDJODJNEA.proto";
-import "Unk2700_FMGGGEDNGGN.proto";
+import "ActivityDungeonAvatar.proto";
+import "RogueDiaryAvatarDisableStatus.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_HJLFNKLPFBH {
- Unk2700_FMGGGEDNGGN avatar = 2;
+message RogueDiaryAvatar {
+ ActivityDungeonAvatar avatar = 2;
uint32 level = 14;
- uint32 Unk2700_EGKOIPOHCHG = 13;
- repeated Unk2700_AGIDJODJNEA Unk2700_JCKLLFKOFCG = 9;
+ uint32 tired_round = 13;
+ repeated RogueDiaryAvatarDisableStatus disable_status_list = 9;
}
diff --git a/proto/RogueDiaryAvatarDisableStatus.proto b/proto/RogueDiaryAvatarDisableStatus.proto
new file mode 100644
index 00000000..3635146d
--- /dev/null
+++ b/proto/RogueDiaryAvatarDisableStatus.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 RogueDiaryAvatarDisableStatus {
+ ROGUE_DIARY_AVATAR_DISABLE_STATUS_NONE = 0;
+ ROGUE_DIARY_AVATAR_DISABLE_STATUS_DEATH = 1;
+ ROGUE_DIARY_AVATAR_DISABLE_STATUS_TIRED = 2;
+ ROGUE_DIARY_AVATAR_DISABLE_STATUS_DUPLICATED = 3;
+}
diff --git a/proto/Unk2700_BNCBHLOKDCD.proto b/proto/RogueDiaryCoinAddNotify.proto
similarity index 96%
rename from proto/Unk2700_BNCBHLOKDCD.proto
rename to proto/RogueDiaryCoinAddNotify.proto
index 7464cb81..66484c6b 100644
--- a/proto/Unk2700_BNCBHLOKDCD.proto
+++ b/proto/RogueDiaryCoinAddNotify.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_BNCBHLOKDCD {
+message RogueDiaryCoinAddNotify {
uint32 num = 10;
}
diff --git a/proto/Unk2700_CAODHBDOGNE.proto b/proto/RogueDiaryDungeonInfoNotify.proto
similarity index 80%
rename from proto/Unk2700_CAODHBDOGNE.proto
rename to proto/RogueDiaryDungeonInfoNotify.proto
index b207a01e..441256ef 100644
--- a/proto/Unk2700_CAODHBDOGNE.proto
+++ b/proto/RogueDiaryDungeonInfoNotify.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2700_BJJOMPDLNAL.proto";
+import "RogueDiaryRoomInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,15 +25,15 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_CAODHBDOGNE {
+message RogueDiaryDungeonInfoNotify {
uint32 stage_id = 12;
- repeated uint32 Unk2700_HIMJICENGCC = 15;
+ repeated uint32 round_monster_list = 15;
uint32 time = 4;
- uint32 Unk2700_COOCEOOMMKC = 5;
- uint32 Unk2700_PPEBOKBCPLE = 6;
+ uint32 cur_room = 5;
+ uint32 cur_round = 6;
uint32 coin = 11;
uint32 difficulty = 8;
uint32 dungeon_id = 14;
- repeated Unk2700_BJJOMPDLNAL Unk2700_AAGBIFHNNPP = 7;
- repeated uint32 Unk2700_ALMOAMMNNGP = 10;
+ repeated RogueDiaryRoomInfo room_list = 7;
+ repeated uint32 round_card_list = 10;
}
diff --git a/proto/Unk2700_CMOCCENBOLJ.proto b/proto/RogueDiaryDungeonRecord.proto
similarity index 91%
rename from proto/Unk2700_CMOCCENBOLJ.proto
rename to proto/RogueDiaryDungeonRecord.proto
index 95c5205e..e63b49e7 100644
--- a/proto/Unk2700_CMOCCENBOLJ.proto
+++ b/proto/RogueDiaryDungeonRecord.proto
@@ -19,9 +19,9 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_CMOCCENBOLJ {
- bool Unk2700_MMNILGLDHHD = 10;
- uint32 Unk2700_OLLKIFMOPAG = 5;
+message RogueDiaryDungeonRecord {
+ bool is_finish = 10;
+ uint32 max_round = 5;
uint32 finish_time = 15;
uint32 difficulty = 13;
}
diff --git a/proto/RogueDiaryDungeonSettleNotify.proto b/proto/RogueDiaryDungeonSettleNotify.proto
new file mode 100644
index 00000000..fc816bfb
--- /dev/null
+++ b/proto/RogueDiaryDungeonSettleNotify.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy 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 RogueDiaryDungeonSettleNotify {
+ uint32 explore_time = 1;
+ bool is_finish = 3;
+ uint32 cur_round = 2;
+}
diff --git a/proto/Unk2700_PILILDPMNNA.proto b/proto/RogueDiaryProgress.proto
similarity index 87%
rename from proto/Unk2700_PILILDPMNNA.proto
rename to proto/RogueDiaryProgress.proto
index c8efefc2..e05d2020 100644
--- a/proto/Unk2700_PILILDPMNNA.proto
+++ b/proto/RogueDiaryProgress.proto
@@ -19,10 +19,10 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_PILILDPMNNA {
+message RogueDiaryProgress {
uint32 difficulty = 7;
- repeated uint32 Unk2700_EGBDDLOBCDL = 4;
- bool Unk2700_MMFHBHNKLDG = 9;
+ repeated uint32 optional_card_list = 4;
+ bool is_enter_dungeon = 9;
uint32 stage_id = 12;
- uint32 Unk2700_PPEBOKBCPLE = 3;
+ uint32 cur_round = 3;
}
diff --git a/proto/Unk2700_BNMDCEKPDMC.proto b/proto/RogueDiaryRepairInfoNotify.proto
similarity index 70%
rename from proto/Unk2700_BNMDCEKPDMC.proto
rename to proto/RogueDiaryRepairInfoNotify.proto
index 260f6687..e65a16bf 100644
--- a/proto/Unk2700_BNMDCEKPDMC.proto
+++ b/proto/RogueDiaryRepairInfoNotify.proto
@@ -17,8 +17,8 @@
syntax = "proto3";
-import "Unk2700_BJJOMPDLNAL.proto";
-import "Unk2700_HJLFNKLPFBH.proto";
+import "RogueDiaryAvatar.proto";
+import "RogueDiaryRoomInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -26,13 +26,13 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_BNMDCEKPDMC {
+message RogueDiaryRepairInfoNotify {
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;
+ repeated uint32 select_card_list = 14;
+ repeated RogueDiaryAvatar avatar_list = 13;
+ repeated RogueDiaryRoomInfo room_list = 2;
+ repeated uint32 rand_card_list = 10;
+ repeated RogueDiaryAvatar select_avatar_list = 9;
+ repeated uint32 chosen_card_list = 15;
+ repeated RogueDiaryAvatar trial_avatar_list = 11;
}
diff --git a/proto/Unk2700_MDGKMNEBIBA.proto b/proto/RogueDiaryReviveAvatarReq.proto
similarity index 90%
rename from proto/Unk2700_MDGKMNEBIBA.proto
rename to proto/RogueDiaryReviveAvatarReq.proto
index 13c26ae9..23c4aab4 100644
--- a/proto/Unk2700_MDGKMNEBIBA.proto
+++ b/proto/RogueDiaryReviveAvatarReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2700_HJLFNKLPFBH.proto";
+import "RogueDiaryAvatar.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,6 +25,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_MDGKMNEBIBA {
- Unk2700_HJLFNKLPFBH Unk2700_GIMLODDEDJH = 2;
+message RogueDiaryReviveAvatarReq {
+ RogueDiaryAvatar revive_avatar = 2;
}
diff --git a/proto/Unk2700_OLKJCGDHENH.proto b/proto/RogueDiaryReviveAvatarRsp.proto
similarity index 96%
rename from proto/Unk2700_OLKJCGDHENH.proto
rename to proto/RogueDiaryReviveAvatarRsp.proto
index 5ed2a206..cdbaf370 100644
--- a/proto/Unk2700_OLKJCGDHENH.proto
+++ b/proto/RogueDiaryReviveAvatarRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8343
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_OLKJCGDHENH {
+message RogueDiaryReviveAvatarRsp {
int32 retcode = 8;
}
diff --git a/proto/Unk2700_BJJOMPDLNAL.proto b/proto/RogueDiaryRoomInfo.proto
similarity index 94%
rename from proto/Unk2700_BJJOMPDLNAL.proto
rename to proto/RogueDiaryRoomInfo.proto
index 5d6a1980..9a3afaff 100644
--- a/proto/Unk2700_BJJOMPDLNAL.proto
+++ b/proto/RogueDiaryRoomInfo.proto
@@ -21,8 +21,8 @@ import "Uint32Pair.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_BJJOMPDLNAL {
+message RogueDiaryRoomInfo {
repeated Uint32Pair monster_list = 1;
- bool Unk2700_NILLABGAALO = 3;
+ bool is_boss = 3;
uint32 config_id = 7;
}
diff --git a/proto/RogueDiaryStage.proto b/proto/RogueDiaryStageInfo.proto
similarity index 87%
rename from proto/RogueDiaryStage.proto
rename to proto/RogueDiaryStageInfo.proto
index 1f1d116a..493e6faa 100644
--- a/proto/RogueDiaryStage.proto
+++ b/proto/RogueDiaryStageInfo.proto
@@ -17,12 +17,12 @@
syntax = "proto3";
-import "Unk2700_CMOCCENBOLJ.proto";
+import "RogueDiaryDungeonRecord.proto";
option java_package = "emu.grasscutter.net.proto";
-message RogueDiaryStage {
+message RogueDiaryStageInfo {
uint32 stage_id = 1;
- Unk2700_CMOCCENBOLJ best_record = 12;
- bool Unk2700_PEDCFBJLHGP = 10;
+ RogueDiaryDungeonRecord best_record = 12;
+ bool is_have_try = 10;
}
diff --git a/proto/Unk2700_MNIBEMEMGMO.proto b/proto/RogueDiaryTiredAvatarNotify.proto
similarity index 82%
rename from proto/Unk2700_MNIBEMEMGMO.proto
rename to proto/RogueDiaryTiredAvatarNotify.proto
index 41e53c20..37e2edd5 100644
--- a/proto/Unk2700_MNIBEMEMGMO.proto
+++ b/proto/RogueDiaryTiredAvatarNotify.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2700_HJLFNKLPFBH.proto";
+import "RogueDiaryAvatar.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,9 +25,9 @@ option java_package = "emu.grasscutter.net.proto";
// 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;
+message RogueDiaryTiredAvatarNotify {
+ repeated RogueDiaryAvatar optianal_tired_avatar_list = 10;
+ uint32 reserve_avatar_num = 6;
+ uint32 tired_type = 8;
+ bool is_need_show = 7;
}
diff --git a/proto/Unk2700_KPMMEBNMMCL.proto b/proto/RogueFinishRepairReq.proto
similarity index 86%
rename from proto/Unk2700_KPMMEBNMMCL.proto
rename to proto/RogueFinishRepairReq.proto
index 38456318..63a25d10 100644
--- a/proto/Unk2700_KPMMEBNMMCL.proto
+++ b/proto/RogueFinishRepairReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2700_HJLFNKLPFBH.proto";
+import "RogueDiaryAvatar.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,7 +25,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_KPMMEBNMMCL {
- repeated uint32 Unk2700_OKGKHPCMNMN = 1;
- repeated Unk2700_HJLFNKLPFBH Unk2700_ELOOIKFNJCG = 8;
+message RogueFinishRepairReq {
+ repeated uint32 chosen_card_list = 1;
+ repeated RogueDiaryAvatar chosen_avatar_list = 8;
}
diff --git a/proto/Unk2700_COGBIJAPDLE.proto b/proto/RogueFinishRepairRsp.proto
similarity index 97%
rename from proto/Unk2700_COGBIJAPDLE.proto
rename to proto/RogueFinishRepairRsp.proto
index df74c236..9f3f1d07 100644
--- a/proto/Unk2700_COGBIJAPDLE.proto
+++ b/proto/RogueFinishRepairRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8535
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_COGBIJAPDLE {
+message RogueFinishRepairRsp {
int32 retcode = 3;
}
diff --git a/proto/RogueStageInfo.proto b/proto/RogueStageInfo.proto
index d35b436b..e192f59c 100644
--- a/proto/RogueStageInfo.proto
+++ b/proto/RogueStageInfo.proto
@@ -17,8 +17,8 @@
syntax = "proto3";
-import "RoguelikeRuneRecord.proto";
import "RogueShowAvatarTeamInfo.proto";
+import "RoguelikeRuneRecord.proto";
option java_package = "emu.grasscutter.net.proto";
diff --git a/proto/RoguelikeDungeonActivityDetailInfo.proto b/proto/RoguelikeDungeonActivityDetailInfo.proto
index 67dd3195..b7368fb8 100644
--- a/proto/RoguelikeDungeonActivityDetailInfo.proto
+++ b/proto/RoguelikeDungeonActivityDetailInfo.proto
@@ -17,8 +17,8 @@
syntax = "proto3";
-import "RoguelikeShikigamiRecord.proto";
import "RogueStageInfo.proto";
+import "RoguelikeShikigamiRecord.proto";
option java_package = "emu.grasscutter.net.proto";
diff --git a/proto/RoutePoint.proto b/proto/RoutePoint.proto
index c347c52d..bce0d609 100644
--- a/proto/RoutePoint.proto
+++ b/proto/RoutePoint.proto
@@ -25,6 +25,7 @@ option java_package = "emu.grasscutter.net.proto";
message RoutePoint {
Vector position = 1;
float arrive_range = 2;
+ bool has_reach_event = 3;
oneof move_params {
float velocity = 11;
float time = 12;
diff --git a/proto/SalvageBundleChallengeInfo.proto b/proto/SalvageBundleChallengeInfo.proto
new file mode 100644
index 00000000..47ad74d0
--- /dev/null
+++ b/proto/SalvageBundleChallengeInfo.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 SalvageBundleChallengeInfo {
+ repeated uint32 finished_bundle_list = 13;
+}
diff --git a/proto/Unk2700_DMPIJLBHEAE.proto b/proto/SalvageChallengeInfo.proto
similarity index 80%
rename from proto/Unk2700_DMPIJLBHEAE.proto
rename to proto/SalvageChallengeInfo.proto
index bf2f0f13..774477f6 100644
--- a/proto/Unk2700_DMPIJLBHEAE.proto
+++ b/proto/SalvageChallengeInfo.proto
@@ -17,17 +17,17 @@
syntax = "proto3";
-import "BundleInfo.proto";
-import "ScoreChallengeInfo.proto";
+import "SalvageBundleChallengeInfo.proto";
+import "SalvageScoreChallengeInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_DMPIJLBHEAE {
+message SalvageChallengeInfo {
uint32 challenge_type = 5;
bool is_unlock = 12;
- oneof Unk2700_AFHAGFONBFM {
- BundleInfo bundle_info = 11;
- ScoreChallengeInfo score_challenge_info = 13;
+ oneof challenge_detail {
+ SalvageBundleChallengeInfo bundle_info = 11;
+ SalvageScoreChallengeInfo score_challenge_info = 13;
uint32 boss_challenge_id = 2;
}
}
diff --git a/proto/SalvageEscortGallerySettleInfo.proto b/proto/SalvageEscortGallerySettleInfo.proto
new file mode 100644
index 00000000..3aa773f0
--- /dev/null
+++ b/proto/SalvageEscortGallerySettleInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SalvageEscortStopReason.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SalvageEscortGallerySettleInfo {
+ uint32 time_remain = 14;
+ SalvageEscortStopReason reason = 7;
+}
diff --git a/proto/Unk2700_OKEKCGDGPDA.proto b/proto/SalvageEscortRestartReq.proto
similarity index 96%
rename from proto/Unk2700_OKEKCGDGPDA.proto
rename to proto/SalvageEscortRestartReq.proto
index 11c94a25..cf56e8f2 100644
--- a/proto/Unk2700_OKEKCGDGPDA.proto
+++ b/proto/SalvageEscortRestartReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_OKEKCGDGPDA {
+message SalvageEscortRestartReq {
uint32 gallery_id = 4;
}
diff --git a/proto/Unk2700_ILLDDDFLKHP.proto b/proto/SalvageEscortRestartRsp.proto
similarity index 96%
rename from proto/Unk2700_ILLDDDFLKHP.proto
rename to proto/SalvageEscortRestartRsp.proto
index d156bd2f..9cface58 100644
--- a/proto/Unk2700_ILLDDDFLKHP.proto
+++ b/proto/SalvageEscortRestartRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8959
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_ILLDDDFLKHP {
+message SalvageEscortRestartRsp {
uint32 gallery_id = 14;
int32 retcode = 5;
}
diff --git a/proto/Unk2700_BKHBKHINBIA.proto b/proto/SalvageEscortSettleInfo.proto
similarity index 88%
rename from proto/Unk2700_BKHBKHINBIA.proto
rename to proto/SalvageEscortSettleInfo.proto
index 4987137d..fb6dd28b 100644
--- a/proto/Unk2700_BKHBKHINBIA.proto
+++ b/proto/SalvageEscortSettleInfo.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "Unk2700_EGKIHLIOLDM.proto";
+import "SalvageEscortGallerySettleInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_BKHBKHINBIA {
- Unk2700_EGKIHLIOLDM settle_info = 3;
+message SalvageEscortSettleInfo {
+ SalvageEscortGallerySettleInfo settle_info = 3;
bool is_new_record = 2;
}
diff --git a/proto/Unk2700_BEDCCMDPNCH.proto b/proto/SalvageEscortSettleNotify.proto
similarity index 89%
rename from proto/Unk2700_BEDCCMDPNCH.proto
rename to proto/SalvageEscortSettleNotify.proto
index f7fc4031..76090771 100644
--- a/proto/Unk2700_BEDCCMDPNCH.proto
+++ b/proto/SalvageEscortSettleNotify.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_BKHBKHINBIA.proto";
+import "SalvageEscortSettleInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8499
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_BEDCCMDPNCH {
+message SalvageEscortSettleNotify {
uint32 gallery_id = 14;
- Unk2700_BKHBKHINBIA settle_info = 15;
+ SalvageEscortSettleInfo settle_info = 15;
}
diff --git a/proto/SalvageEscortStopReason.proto b/proto/SalvageEscortStopReason.proto
new file mode 100644
index 00000000..daad30d9
--- /dev/null
+++ b/proto/SalvageEscortStopReason.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 SalvageEscortStopReason {
+ SALVAGE_ESCORT_STOP_REASON_NONE = 0;
+ SALVAGE_ESCORT_STOP_REASON_SUCCESS = 1;
+ SALVAGE_ESCORT_STOP_REASON_DUMP = 2;
+ SALVAGE_ESCORT_STOP_REASON_TIME = 3;
+ SALVAGE_ESCORT_STOP_REASON_INTERRUPT = 4;
+ SALVAGE_ESCORT_STOP_REASON_LEAVE = 5;
+ SALVAGE_ESCORT_STOP_REASON_FULL = 6;
+}
diff --git a/proto/Unk2700_KLJLJGJOBDI.proto b/proto/SalvagePreventGallerySettleInfo.proto
similarity index 84%
rename from proto/Unk2700_KLJLJGJOBDI.proto
rename to proto/SalvagePreventGallerySettleInfo.proto
index e719b336..b2c17931 100644
--- a/proto/Unk2700_KLJLJGJOBDI.proto
+++ b/proto/SalvagePreventGallerySettleInfo.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk2700_NCNPNMFFONG.proto";
+import "SalvagePreventStopReason.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_KLJLJGJOBDI {
- uint32 Unk2700_CDDONJJMFCI = 8;
- Unk2700_NCNPNMFFONG reason = 7;
+message SalvagePreventGallerySettleInfo {
+ uint32 time_remain = 8;
+ SalvagePreventStopReason reason = 7;
uint32 final_score = 13;
- uint32 Unk2700_FFCCLGIFGIP = 15;
+ uint32 monster_count = 15;
}
diff --git a/proto/Unk2700_PJCMAELKFEP.proto b/proto/SalvagePreventRestartReq.proto
similarity index 96%
rename from proto/Unk2700_PJCMAELKFEP.proto
rename to proto/SalvagePreventRestartReq.proto
index cb97c068..f18220be 100644
--- a/proto/Unk2700_PJCMAELKFEP.proto
+++ b/proto/SalvagePreventRestartReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_PJCMAELKFEP {
+message SalvagePreventRestartReq {
uint32 gallery_id = 13;
}
diff --git a/proto/Unk2700_CLMGFEOPNFH.proto b/proto/SalvagePreventRestartRsp.proto
similarity index 96%
rename from proto/Unk2700_CLMGFEOPNFH.proto
rename to proto/SalvagePreventRestartRsp.proto
index cf12fc81..ad25c7ac 100644
--- a/proto/Unk2700_CLMGFEOPNFH.proto
+++ b/proto/SalvagePreventRestartRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8938
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_CLMGFEOPNFH {
+message SalvagePreventRestartRsp {
int32 retcode = 10;
uint32 gallery_id = 12;
}
diff --git a/proto/SalvagePreventSettleInfo.proto b/proto/SalvagePreventSettleInfo.proto
new file mode 100644
index 00000000..03bdcd0b
--- /dev/null
+++ b/proto/SalvagePreventSettleInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "SalvagePreventGallerySettleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SalvagePreventSettleInfo {
+ bool is_new_record = 8;
+ SalvagePreventGallerySettleInfo settle_info = 14;
+}
diff --git a/proto/Unk2700_AAHKMNNAFIH.proto b/proto/SalvagePreventSettleNotify.proto
similarity index 89%
rename from proto/Unk2700_AAHKMNNAFIH.proto
rename to proto/SalvagePreventSettleNotify.proto
index f5183a35..f79b6a3f 100644
--- a/proto/Unk2700_AAHKMNNAFIH.proto
+++ b/proto/SalvagePreventSettleNotify.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_ICPNKAALJEP.proto";
+import "SalvagePreventSettleInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8231
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_AAHKMNNAFIH {
+message SalvagePreventSettleNotify {
uint32 gallery_id = 13;
- Unk2700_ICPNKAALJEP settle_info = 12;
+ SalvagePreventSettleInfo settle_info = 12;
}
diff --git a/proto/SalvagePreventStopReason.proto b/proto/SalvagePreventStopReason.proto
new file mode 100644
index 00000000..91df65c3
--- /dev/null
+++ b/proto/SalvagePreventStopReason.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 SalvagePreventStopReason {
+ SALVAGE_PREVENT_STOP_REASON_NONE = 0;
+ SALVAGE_PREVENT_STOP_REASON_SUCCESS = 1;
+ SALVAGE_PREVENT_STOP_REASON_ARRIVAL = 2;
+ SALVAGE_PREVENT_STOP_REASON_INTERRUPT = 3;
+ SALVAGE_PREVENT_STOP_REASON_LEAVE = 4;
+ SALVAGE_PREVENT_STOP_REASON_FULL = 5;
+ SALVAGE_PREVENT_STOP_REASON_AWAY = 6;
+}
diff --git a/proto/ScoreChallengeInfo.proto b/proto/SalvageScoreChallengeInfo.proto
similarity index 93%
rename from proto/ScoreChallengeInfo.proto
rename to proto/SalvageScoreChallengeInfo.proto
index eef94a08..894b3bdd 100644
--- a/proto/ScoreChallengeInfo.proto
+++ b/proto/SalvageScoreChallengeInfo.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message ScoreChallengeInfo {
- uint32 Unk2700_LJCOLDIKHNE = 13;
+message SalvageScoreChallengeInfo {
+ uint32 salvage_challenge_id = 13;
uint32 max_score = 7;
}
diff --git a/proto/Unk2700_LLGDCAKMCKL.proto b/proto/SalvageStageInfo.proto
similarity index 89%
rename from proto/Unk2700_LLGDCAKMCKL.proto
rename to proto/SalvageStageInfo.proto
index 973d3ac2..7d13103e 100644
--- a/proto/Unk2700_LLGDCAKMCKL.proto
+++ b/proto/SalvageStageInfo.proto
@@ -17,12 +17,12 @@
syntax = "proto3";
-import "Unk2700_DMPIJLBHEAE.proto";
+import "SalvageChallengeInfo.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_LLGDCAKMCKL {
- repeated Unk2700_DMPIJLBHEAE challenge_info_list = 9;
+message SalvageStageInfo {
+ repeated SalvageChallengeInfo challenge_info_list = 9;
bool is_open = 10;
uint32 stage_id = 2;
}
diff --git a/proto/Unk2700_ANGBJGAOMHF_ClientReq.proto b/proto/SaveCustomDungeonRoomReq.proto
similarity index 81%
rename from proto/Unk2700_ANGBJGAOMHF_ClientReq.proto
rename to proto/SaveCustomDungeonRoomReq.proto
index b1a4cb08..8b6951f0 100644
--- a/proto/Unk2700_ANGBJGAOMHF_ClientReq.proto
+++ b/proto/SaveCustomDungeonRoomReq.proto
@@ -17,15 +17,17 @@
syntax = "proto3";
-import "Unk2700_OPEBMJPOOBL.proto";
+import "CustomDungeonRoom.proto";
+import "CustomDungeonSetting.proto";
option java_package = "emu.grasscutter.net.proto";
-// CmdId: 6344
+// CmdId: 6225
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_ANGBJGAOMHF_ClientReq {
- Unk2700_OPEBMJPOOBL Unk2700_KHBDAPGDOJA = 7;
- uint64 Unk2700_CEPGMKAHHCD = 12;
+message SaveCustomDungeonRoomReq {
+ CustomDungeonRoom custom_dungeon_room = 5;
+ bool is_update_setting = 7;
+ CustomDungeonSetting setting = 13;
}
diff --git a/proto/Unk2700_DCKKCAJCNKP_ServerRsp.proto b/proto/SaveCustomDungeonRoomRsp.proto
similarity index 88%
rename from proto/Unk2700_DCKKCAJCNKP_ServerRsp.proto
rename to proto/SaveCustomDungeonRoomRsp.proto
index 04ba2bff..4f56d1ff 100644
--- a/proto/Unk2700_DCKKCAJCNKP_ServerRsp.proto
+++ b/proto/SaveCustomDungeonRoomRsp.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "Unk2700_IGJLOMCPLLE.proto";
+import "CustomDungeonBlock.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 6207
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_DCKKCAJCNKP_ServerRsp {
+message SaveCustomDungeonRoomRsp {
uint32 room_id = 14;
- repeated Unk2700_IGJLOMCPLLE Unk2700_MPNOBKBMDFG = 9;
+ repeated CustomDungeonBlock error_block_list = 9;
int32 retcode = 12;
}
diff --git a/proto/SaveUgcReq.proto b/proto/SaveUgcReq.proto
new file mode 100644
index 00000000..ca1bf365
--- /dev/null
+++ b/proto/SaveUgcReq.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 "UgcMusicBriefInfo.proto";
+import "UgcType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6329
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message SaveUgcReq {
+ UgcType ugc_type = 11;
+ oneof record {
+ UgcMusicBriefInfo music_record = 2;
+ }
+ oneof brief {
+ UgcMusicBriefInfo music_brief_info = 1488;
+ }
+}
diff --git a/proto/SaveUgcRsp.proto b/proto/SaveUgcRsp.proto
new file mode 100644
index 00000000..d1237e4a
--- /dev/null
+++ b/proto/SaveUgcRsp.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 "UgcType.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6322
+// EnetChannelId: 0
+// EnetIsReliable: true
+message SaveUgcRsp {
+ int32 retcode = 15;
+ uint64 ugc_guid = 8;
+ UgcType ugc_type = 1;
+}
diff --git a/proto/SceneFishInfo.proto b/proto/SceneFishInfo.proto
index cb101c97..f3ee3106 100644
--- a/proto/SceneFishInfo.proto
+++ b/proto/SceneFishInfo.proto
@@ -26,5 +26,5 @@ message SceneFishInfo {
uint32 fish_pool_entity_id = 2;
Vector fish_pool_pos = 3;
uint32 fish_pool_gadget_id = 4;
- uint32 Unk2700_HIPFHKFMBBE = 5;
+ uint32 last_shock_time = 5;
}
diff --git a/proto/SceneGalleryCharAmusementInfo.proto b/proto/SceneGalleryCharAmusementInfo.proto
new file mode 100644
index 00000000..c2b7df4e
--- /dev/null
+++ b/proto/SceneGalleryCharAmusementInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryCharAmusementInfo {
+ bool is_last_level = 2;
+ uint32 max_score = 9;
+ uint32 cur_score = 14;
+ bool is_finish = 10;
+ bool is_success = 1;
+}
diff --git a/proto/SceneGalleryEffigyChallengeV2Info.proto b/proto/SceneGalleryEffigyChallengeV2Info.proto
new file mode 100644
index 00000000..dd30c5e3
--- /dev/null
+++ b/proto/SceneGalleryEffigyChallengeV2Info.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryEffigyChallengeV2Info {
+ uint32 killed_monster_cnt = 10;
+ uint32 total_target_kill_cnt = 15;
+ uint32 scene_start_time = 14;
+ uint32 t_remain_use_time = 6;
+ uint32 boss_violent_level = 9;
+}
diff --git a/proto/SceneGalleryFungusFighterCaptureInfo.proto b/proto/SceneGalleryFungusFighterCaptureInfo.proto
new file mode 100644
index 00000000..21413291
--- /dev/null
+++ b/proto/SceneGalleryFungusFighterCaptureInfo.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 SceneGalleryFungusFighterCaptureInfo {
+ bool is_hide_progress = 13;
+}
diff --git a/proto/SceneGalleryFungusFighterTrainingInfo.proto b/proto/SceneGalleryFungusFighterTrainingInfo.proto
new file mode 100644
index 00000000..b4d6fc0f
--- /dev/null
+++ b/proto/SceneGalleryFungusFighterTrainingInfo.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message SceneGalleryFungusFighterTrainingInfo {
+ uint32 max_monster_count = 4;
+ uint32 killed_monster_count = 9;
+ uint32 buff_start_time = 13;
+ uint32 buff_id = 1;
+ uint32 max_skill_count = 10;
+ uint32 buff_last_time = 14;
+ uint32 rest_skill_count = 5;
+}
diff --git a/proto/SceneGalleryHomeSeekFurnitureInfo.proto b/proto/SceneGalleryHomeSeekFurnitureInfo.proto
index 791d3179..92f88b7a 100644
--- a/proto/SceneGalleryHomeSeekFurnitureInfo.proto
+++ b/proto/SceneGalleryHomeSeekFurnitureInfo.proto
@@ -20,8 +20,8 @@ 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;
+ uint32 cur_tide_left_num = 6;
+ map player_score_map = 8;
+ uint32 cur_tide_duration_time = 12;
+ uint32 cur_tide_total_num = 9;
}
diff --git a/proto/SceneGalleryInfo.proto b/proto/SceneGalleryInfo.proto
index 70ad5a4a..8eeb73c9 100644
--- a/proto/SceneGalleryInfo.proto
+++ b/proto/SceneGalleryInfo.proto
@@ -23,9 +23,13 @@ import "SceneGalleryBounceConjuringInfo.proto";
import "SceneGalleryBrokenFloorInfo.proto";
import "SceneGalleryBulletInfo.proto";
import "SceneGalleryBuoyantCombatInfo.proto";
+import "SceneGalleryCharAmusementInfo.proto";
import "SceneGalleryCrystalLinkInfo.proto";
+import "SceneGalleryEffigyChallengeV2Info.proto";
import "SceneGalleryFallInfo.proto";
import "SceneGalleryFlowerInfo.proto";
+import "SceneGalleryFungusFighterCaptureInfo.proto";
+import "SceneGalleryFungusFighterTrainingInfo.proto";
import "SceneGalleryHandballInfo.proto";
import "SceneGalleryHideAndSeekInfo.proto";
import "SceneGalleryHomeBalloonInfo.proto";
@@ -49,13 +53,14 @@ 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;
+ uint32 start_time = 3;
+ uint32 end_time = 11;
+ uint32 owner_uid = 9;
+ uint32 player_count = 1;
+ uint32 pre_start_end_time = 15;
oneof info {
SceneGalleryBalloonInfo balloon_info = 14;
SceneGalleryFallInfo fall_info = 7;
@@ -83,5 +88,9 @@ message SceneGalleryInfo {
SceneGalleryTreasureSeelieInfo treasure_seelie_info = 1525;
SceneGalleryVintageHuntingInfo vintage_hunting_info = 254;
SceneGalleryWindFieldInfo wind_field_info = 1080;
+ SceneGalleryFungusFighterTrainingInfo fungus_fighter_training_info = 1328;
+ SceneGalleryEffigyChallengeV2Info effigy_challenge_info = 882;
+ SceneGalleryFungusFighterCaptureInfo fungus_fighter_capture_info = 422;
+ SceneGalleryCharAmusementInfo char_amusement_info = 1086;
}
}
diff --git a/proto/Unk3000_OMCBMAHOLHB.proto b/proto/SceneGalleryInstableSprayBuffInfo.proto
similarity index 90%
rename from proto/Unk3000_OMCBMAHOLHB.proto
rename to proto/SceneGalleryInstableSprayBuffInfo.proto
index 208a0b20..639ded19 100644
--- a/proto/Unk3000_OMCBMAHOLHB.proto
+++ b/proto/SceneGalleryInstableSprayBuffInfo.proto
@@ -19,8 +19,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_OMCBMAHOLHB {
+message SceneGalleryInstableSprayBuffInfo {
uint32 buff_id = 6;
- uint64 Unk3000_KDOLDNMNHGL = 9;
- uint64 Unk3000_OKIDNAAKOJC = 4;
+ uint64 buff_end_time = 9;
+ uint64 buff_max_time = 4;
}
diff --git a/proto/SceneGalleryInstableSprayInfo.proto b/proto/SceneGalleryInstableSprayInfo.proto
index cba7f8d1..d3aa90cc 100644
--- a/proto/SceneGalleryInstableSprayInfo.proto
+++ b/proto/SceneGalleryInstableSprayInfo.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "Unk3000_OMCBMAHOLHB.proto";
+import "SceneGalleryInstableSprayBuffInfo.proto";
option java_package = "emu.grasscutter.net.proto";
message SceneGalleryInstableSprayInfo {
uint32 score = 5;
- repeated Unk3000_OMCBMAHOLHB Unk2700_INIBKFPMCFO = 12;
+ repeated SceneGalleryInstableSprayBuffInfo buff_info_list = 12;
}
diff --git a/proto/SceneGalleryIrodoriMasterInfo.proto b/proto/SceneGalleryIrodoriMasterInfo.proto
index 5e11abe6..ce58be14 100644
--- a/proto/SceneGalleryIrodoriMasterInfo.proto
+++ b/proto/SceneGalleryIrodoriMasterInfo.proto
@@ -22,5 +22,5 @@ option java_package = "emu.grasscutter.net.proto";
message SceneGalleryIrodoriMasterInfo {
uint32 level_id = 8;
uint32 difficulty = 1;
- bool Unk2700_FKDMOBOGMCM = 5;
+ bool is_cg_viewed = 5;
}
diff --git a/proto/SceneGalleryIslandPartyDownHillInfo.proto b/proto/SceneGalleryIslandPartyDownHillInfo.proto
index faa0e707..53a93c03 100644
--- a/proto/SceneGalleryIslandPartyDownHillInfo.proto
+++ b/proto/SceneGalleryIslandPartyDownHillInfo.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk2800_FMAOEPEBKHB.proto";
+import "GalleryStartSource.proto";
option java_package = "emu.grasscutter.net.proto";
message SceneGalleryIslandPartyDownHillInfo {
- uint32 Unk2800_LBPCDCHOOLJ = 14;
- Unk2800_FMAOEPEBKHB Unk2800_ENJGEFBCLOL = 15;
- uint32 Unk2800_BKEFLDCEBLF = 5;
+ uint32 total_kill_monster_count = 14;
+ GalleryStartSource start_source = 15;
+ uint32 max_kill_monster_count = 5;
uint32 coin = 13;
}
diff --git a/proto/SceneGalleryIslandPartyRaftInfo.proto b/proto/SceneGalleryIslandPartyRaftInfo.proto
index f9246dbe..7d47cc4e 100644
--- a/proto/SceneGalleryIslandPartyRaftInfo.proto
+++ b/proto/SceneGalleryIslandPartyRaftInfo.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "Unk2800_FMAOEPEBKHB.proto";
+import "GalleryStartSource.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;
+ GalleryStartSource start_source = 7;
+ uint32 component = 1;
+ uint32 fuel = 15;
uint32 point_id = 12;
- uint32 Unk2800_MKNGANDAJFJ = 4;
+ uint32 raft_entity_id = 4;
}
diff --git a/proto/SceneGalleryIslandPartySailInfo.proto b/proto/SceneGalleryIslandPartySailInfo.proto
index 3231e7f1..9ff6cf14 100644
--- a/proto/SceneGalleryIslandPartySailInfo.proto
+++ b/proto/SceneGalleryIslandPartySailInfo.proto
@@ -17,17 +17,17 @@
syntax = "proto3";
-import "Unk2800_FMAOEPEBKHB.proto";
-import "Unk2800_IMLDGLIMODE.proto";
+import "GalleryStartSource.proto";
+import "IslandPartySailStage.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 max_clean_progress = 14;
+ uint32 clean_progress = 10;
+ GalleryStartSource start_source = 1;
+ uint32 kill_progress = 11;
uint32 coin = 15;
- Unk2800_IMLDGLIMODE stage = 12;
- uint32 Unk2800_GMOCMEFBGIP = 8;
+ IslandPartySailStage stage = 12;
+ uint32 max_kill_progress = 8;
}
diff --git a/proto/SceneGalleryLuminanceStoneChallengeInfo.proto b/proto/SceneGalleryLuminanceStoneChallengeInfo.proto
index 16efa63b..cd81c7e1 100644
--- a/proto/SceneGalleryLuminanceStoneChallengeInfo.proto
+++ b/proto/SceneGalleryLuminanceStoneChallengeInfo.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
message SceneGalleryLuminanceStoneChallengeInfo {
uint32 kill_monster_count = 5;
uint32 score = 3;
- uint32 Unk2700_OFKHLGLOPCM = 2;
+ uint32 clean_mud_count = 2;
uint32 kill_special_monster_count = 6;
}
diff --git a/proto/SceneGalleryMuqadasPotionInfo.proto b/proto/SceneGalleryMuqadasPotionInfo.proto
index aa95c7b6..15c44d90 100644
--- a/proto/SceneGalleryMuqadasPotionInfo.proto
+++ b/proto/SceneGalleryMuqadasPotionInfo.proto
@@ -21,7 +21,7 @@ option java_package = "emu.grasscutter.net.proto";
message SceneGalleryMuqadasPotionInfo {
uint32 score = 6;
- uint32 Unk3000_MKFIPLFHJNE = 4;
- uint32 Unk3000_FELJKCAAJMJ = 10;
- uint32 Unk3000_JKHKNKNBFDC = 9;
+ uint32 capture_weakness_count = 4;
+ uint32 skill_energy = 10;
+ uint32 skill_use_limit = 9;
}
diff --git a/proto/SceneGallerySalvageEscortInfoInfo.proto b/proto/SceneGallerySalvageEscortInfoInfo.proto
index 243ad206..b560129c 100644
--- a/proto/SceneGallerySalvageEscortInfoInfo.proto
+++ b/proto/SceneGallerySalvageEscortInfoInfo.proto
@@ -20,8 +20,8 @@ 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;
+ uint32 max_box_count = 14;
+ uint32 max_monster_count = 3;
+ uint32 box_count = 7;
+ uint32 monster_count = 11;
}
diff --git a/proto/SceneGallerySalvagePreventInfo.proto b/proto/SceneGallerySalvagePreventInfo.proto
index 152a4dc8..d9104c61 100644
--- a/proto/SceneGallerySalvagePreventInfo.proto
+++ b/proto/SceneGallerySalvagePreventInfo.proto
@@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message SceneGallerySalvagePreventInfo {
- uint32 Unk2700_FFCCLGIFGIP = 7;
+ uint32 monster_count = 7;
}
diff --git a/proto/SceneGallerySummerTimeV2BoatInfo.proto b/proto/SceneGallerySummerTimeV2BoatInfo.proto
index b27442d1..add5db1c 100644
--- a/proto/SceneGallerySummerTimeV2BoatInfo.proto
+++ b/proto/SceneGallerySummerTimeV2BoatInfo.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
message SceneGallerySummerTimeV2BoatInfo {
uint32 param1 = 15;
uint32 param3 = 3;
- uint32 Unk2800_NGGPIECNHJA = 11;
+ uint32 used_time = 11;
uint32 param2 = 7;
}
diff --git a/proto/SceneGalleryTreasureSeelieInfo.proto b/proto/SceneGalleryTreasureSeelieInfo.proto
index a16c43c3..593c97f5 100644
--- a/proto/SceneGalleryTreasureSeelieInfo.proto
+++ b/proto/SceneGalleryTreasureSeelieInfo.proto
@@ -21,5 +21,5 @@ option java_package = "emu.grasscutter.net.proto";
message SceneGalleryTreasureSeelieInfo {
uint32 progress = 15;
- uint32 Unk3000_MONNEPNGNCA = 14;
+ uint32 goal = 14;
}
diff --git a/proto/SceneGalleryVintageHuntingFirstStageInfo.proto b/proto/SceneGalleryVintageHuntingFirstStageInfo.proto
deleted file mode 100644
index 6bc27e78..00000000
--- a/proto/SceneGalleryVintageHuntingFirstStageInfo.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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
index b5a5d849..fea43196 100644
--- a/proto/SceneGalleryVintageHuntingInfo.proto
+++ b/proto/SceneGalleryVintageHuntingInfo.proto
@@ -17,17 +17,17 @@
syntax = "proto3";
-import "SceneGalleryVintageHuntingFirstStageInfo.proto";
-import "SceneGalleryVintageHuntingSecondStageInfo.proto";
-import "SceneGalleryVintageHuntingThirdStageInfo.proto";
+import "VintageHuntingFirstStageInfo.proto";
+import "VintageHuntingSecondStageInfo.proto";
+import "VintageHuntingThirdStageInfo.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;
+ VintageHuntingFirstStageInfo first_stage_info = 2;
+ VintageHuntingSecondStageInfo second_stage_info = 15;
+ VintageHuntingThirdStageInfo third_stage_info = 12;
}
}
diff --git a/proto/Unk3100_JKGDHFGAJMH.proto b/proto/SceneGalleryVintageHuntingSettleNotify.proto
similarity index 68%
rename from proto/Unk3100_JKGDHFGAJMH.proto
rename to proto/SceneGalleryVintageHuntingSettleNotify.proto
index 7b6725ec..39cd3f8a 100644
--- a/proto/Unk3100_JKGDHFGAJMH.proto
+++ b/proto/SceneGalleryVintageHuntingSettleNotify.proto
@@ -17,24 +17,24 @@
syntax = "proto3";
-import "Unk3100_JKGDHFGAJMH_FirstStageInfo.proto";
-import "Unk3100_JKGDHFGAJMH_SecondStageInfo.proto";
-import "Unk3100_JKGDHFGAJMH_ThirdStageInfo.proto";
+import "VintageHuntingFirstStageSettleInfo.proto";
+import "VintageHuntingSecondStageSettleInfo.proto";
+import "VintageHuntingThirdStageSettleInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 20324
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_JKGDHFGAJMH {
- bool Unk3100_CNJDDIKJHLL = 11;
+message SceneGalleryVintageHuntingSettleNotify {
+ bool has_new_watcher = 11;
uint32 stage_id = 9;
- uint32 Unk3100_ONLIFLEFPBO = 12;
- uint32 Unk3100_PPEIAMHIJBP = 6;
+ uint32 total_watcher_num = 12;
+ uint32 finished_watcher_num = 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;
+ VintageHuntingFirstStageSettleInfo first_stage_info = 4;
+ VintageHuntingSecondStageSettleInfo second_stage_info = 10;
+ VintageHuntingThirdStageSettleInfo third_stage_info = 8;
}
}
diff --git a/proto/SceneGalleryWindFieldInfo.proto b/proto/SceneGalleryWindFieldInfo.proto
index 0419061e..1ec3b2dc 100644
--- a/proto/SceneGalleryWindFieldInfo.proto
+++ b/proto/SceneGalleryWindFieldInfo.proto
@@ -20,12 +20,12 @@ 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;
+ uint32 killed_monster_num = 5;
+ uint32 challenge_ball_max_count = 12;
+ uint32 show_id = 15;
+ uint32 challenge_total_time = 4;
+ uint32 challenge_ball_cur_count = 9;
+ uint32 coin_num = 1;
+ uint32 challenge_timestamp = 13;
+ uint32 element_ball_num = 10;
}
diff --git a/proto/SceneMonsterInfo.proto b/proto/SceneMonsterInfo.proto
index ab777d57..f4125bc2 100644
--- a/proto/SceneMonsterInfo.proto
+++ b/proto/SceneMonsterInfo.proto
@@ -47,8 +47,8 @@ message SceneMonsterInfo {
uint32 ai_config_id = 19;
uint32 level_route_id = 20;
uint32 init_pose_id = 21;
- bool Unk2800_JEGLENPDPNI = 22;
- uint32 Unk3000_CCKJDCBDEKD = 23;
+ bool is_light = 22;
+ uint32 kill_num = 23;
oneof content {
SceneFishInfo fish_info = 50;
FishtankFishInfo fishtank_fish_info = 51;
diff --git a/proto/ScenePlayBattleResultNotify.proto b/proto/ScenePlayBattleResultNotify.proto
index 8192c31e..ae6dd563 100644
--- a/proto/ScenePlayBattleResultNotify.proto
+++ b/proto/ScenePlayBattleResultNotify.proto
@@ -18,7 +18,7 @@
syntax = "proto3";
import "ScenePlayBattleSettlePlayerInfo.proto";
-import "Unk2700_OHOKEEGPPBG.proto";
+import "ScenePlayBattleSettleRewardInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -31,5 +31,5 @@ message ScenePlayBattleResultNotify {
uint32 play_type = 15;
uint32 play_id = 11;
repeated ScenePlayBattleSettlePlayerInfo settle_player_info_list = 4;
- repeated Unk2700_OHOKEEGPPBG Unk2700_HMENAAMGMBB = 14;
+ repeated ScenePlayBattleSettleRewardInfo settle_reward_info_list = 14;
}
diff --git a/proto/Unk2700_OHOKEEGPPBG.proto b/proto/ScenePlayBattleSettleRewardInfo.proto
similarity index 96%
rename from proto/Unk2700_OHOKEEGPPBG.proto
rename to proto/ScenePlayBattleSettleRewardInfo.proto
index 41194533..833a460c 100644
--- a/proto/Unk2700_OHOKEEGPPBG.proto
+++ b/proto/ScenePlayBattleSettleRewardInfo.proto
@@ -21,7 +21,7 @@ import "ItemParam.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_OHOKEEGPPBG {
+message ScenePlayBattleSettleRewardInfo {
repeated ItemParam reward_item_list = 4;
uint32 uid = 3;
}
diff --git a/proto/ScenePlayerBackgroundAvatarRefreshNotify.proto b/proto/ScenePlayerBackgroundAvatarRefreshNotify.proto
new file mode 100644
index 00000000..84a43d59
--- /dev/null
+++ b/proto/ScenePlayerBackgroundAvatarRefreshNotify.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: 3274
+// EnetChannelId: 0
+// EnetIsReliable: true
+message ScenePlayerBackgroundAvatarRefreshNotify {
+ repeated SceneEntityInfo entity_list = 4;
+ VisionType appear_type = 8;
+ uint32 param = 9;
+}
diff --git a/proto/Unk2700_GPIHGEEKBOO_ClientReq.proto b/proto/SearchCustomDungeonReq.proto
similarity index 93%
rename from proto/Unk2700_GPIHGEEKBOO_ClientReq.proto
rename to proto/SearchCustomDungeonReq.proto
index abb14fbf..06231e9c 100644
--- a/proto/Unk2700_GPIHGEEKBOO_ClientReq.proto
+++ b/proto/SearchCustomDungeonReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_GPIHGEEKBOO_ClientReq {
- string Unk2700_BMBJKEOELCG = 6;
+message SearchCustomDungeonReq {
+ string dungeon_code = 6;
}
diff --git a/proto/Unk2700_DDLBKAMGGEE_ServerRsp.proto b/proto/SearchCustomDungeonRsp.proto
similarity index 89%
rename from proto/Unk2700_DDLBKAMGGEE_ServerRsp.proto
rename to proto/SearchCustomDungeonRsp.proto
index 6e205bc2..77f9fae0 100644
--- a/proto/Unk2700_DDLBKAMGGEE_ServerRsp.proto
+++ b/proto/SearchCustomDungeonRsp.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_GHHCCEHGKLH.proto";
+import "OtherCustomDungeonBrief.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 6215
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_DDLBKAMGGEE_ServerRsp {
+message SearchCustomDungeonRsp {
int32 retcode = 15;
- Unk2700_GHHCCEHGKLH Unk2700_AMOAHIICCPC = 14;
+ OtherCustomDungeonBrief custom_dungeon_brief = 14;
}
diff --git a/proto/SeekFurnitureGalleryInfo.proto b/proto/SeekFurnitureGalleryInfo.proto
index 449e3597..8c8ebac0 100644
--- a/proto/SeekFurnitureGalleryInfo.proto
+++ b/proto/SeekFurnitureGalleryInfo.proto
@@ -17,10 +17,10 @@
syntax = "proto3";
-import "Unk2700_JCBJHCFEONO.proto";
+import "HomeSeekFurnitureOneRecord.proto";
option java_package = "emu.grasscutter.net.proto";
message SeekFurnitureGalleryInfo {
- repeated Unk2700_JCBJHCFEONO record_list = 5;
+ repeated HomeSeekFurnitureOneRecord record_list = 5;
}
diff --git a/proto/Unk2700_EAAGDFHHNMJ_ServerReq.proto b/proto/ServerCombatEndNotify.proto
similarity index 92%
rename from proto/Unk2700_EAAGDFHHNMJ_ServerReq.proto
rename to proto/ServerCombatEndNotify.proto
index fdda7600..4fa7bda8 100644
--- a/proto/Unk2700_EAAGDFHHNMJ_ServerReq.proto
+++ b/proto/ServerCombatEndNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 1105
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_EAAGDFHHNMJ_ServerReq {
- repeated uint32 Unk2700_IBJECDLKPGM = 14;
+message ServerCombatEndNotify {
+ repeated uint32 combat_end_type_list = 14;
}
diff --git a/proto/Unk2700_MPPAHFFHIPI_ServerNotify.proto b/proto/ServerTryCancelGeneralMatchNotify.proto
similarity index 95%
rename from proto/Unk2700_MPPAHFFHIPI_ServerNotify.proto
rename to proto/ServerTryCancelGeneralMatchNotify.proto
index f37c58ed..5017379d 100644
--- a/proto/Unk2700_MPPAHFFHIPI_ServerNotify.proto
+++ b/proto/ServerTryCancelGeneralMatchNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 4187
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_MPPAHFFHIPI_ServerNotify {
+message ServerTryCancelGeneralMatchNotify {
uint32 match_id = 9;
}
diff --git a/proto/ServerUpdateGlobalValueNotify.proto b/proto/ServerUpdateGlobalValueNotify.proto
index 2e98036a..60402d43 100644
--- a/proto/ServerUpdateGlobalValueNotify.proto
+++ b/proto/ServerUpdateGlobalValueNotify.proto
@@ -30,7 +30,7 @@ message ServerUpdateGlobalValueNotify {
float value = 6;
enum UpdateType {
- UPDATE_TYPE_INVALUE = 0;
+ UPDATE_TYPE_INVALID = 0;
UPDATE_TYPE_ADD = 1;
UPDATE_TYPE_SET = 2;
}
diff --git a/proto/Unk2700_KOGOPPONCHB_ClientReq.proto b/proto/SetCodexPushtipsReadReq.proto
similarity index 93%
rename from proto/Unk2700_KOGOPPONCHB_ClientReq.proto
rename to proto/SetCodexPushtipsReadReq.proto
index 9688cf02..cff39e19 100644
--- a/proto/Unk2700_KOGOPPONCHB_ClientReq.proto
+++ b/proto/SetCodexPushtipsReadReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_KOGOPPONCHB_ClientReq {
+message SetCodexPushtipsReadReq {
uint32 type_id = 2;
- uint32 Unk2700_LEKOKKMDNAO = 14;
+ uint32 codex_id = 14;
}
diff --git a/proto/Unk2700_HIIFAMCBJCD_ServerRsp.proto b/proto/SetCodexPushtipsReadRsp.proto
similarity index 93%
rename from proto/Unk2700_HIIFAMCBJCD_ServerRsp.proto
rename to proto/SetCodexPushtipsReadRsp.proto
index 3ef0af1f..c1e073a7 100644
--- a/proto/Unk2700_HIIFAMCBJCD_ServerRsp.proto
+++ b/proto/SetCodexPushtipsReadRsp.proto
@@ -22,8 +22,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 4206
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_HIIFAMCBJCD_ServerRsp {
+message SetCodexPushtipsReadRsp {
int32 retcode = 10;
uint32 type_id = 5;
- uint32 Unk2700_LEKOKKMDNAO = 14;
+ uint32 codex_id = 14;
}
diff --git a/proto/ShapeBox.proto b/proto/ShapeBox.proto
index 9bb78f32..bb2ef9fa 100644
--- a/proto/ShapeBox.proto
+++ b/proto/ShapeBox.proto
@@ -23,8 +23,8 @@ 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 axis0 = 2;
+ Vector axis1 = 3;
+ Vector axis2 = 4;
Vector extents = 5;
}
diff --git a/proto/Unk2700_EKDHFFHMNCD.proto b/proto/ShareCDInfo.proto
similarity index 90%
rename from proto/Unk2700_EKDHFFHMNCD.proto
rename to proto/ShareCDInfo.proto
index 39b6a3ac..50b28f9a 100644
--- a/proto/Unk2700_EKDHFFHMNCD.proto
+++ b/proto/ShareCDInfo.proto
@@ -19,8 +19,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_EKDHFFHMNCD {
+message ShareCDInfo {
uint32 index = 2;
- uint64 Unk2700_FALGECBMIHD = 14;
- uint32 Unk2700_PBAFCLCIABF = 12;
+ uint64 cd_start_time = 14;
+ uint32 share_cd_id = 12;
}
diff --git a/proto/ShowTemplateReminderNotify.proto b/proto/ShowTemplateReminderNotify.proto
index 28c7a6d2..a9322b8d 100644
--- a/proto/ShowTemplateReminderNotify.proto
+++ b/proto/ShowTemplateReminderNotify.proto
@@ -23,8 +23,9 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
message ShowTemplateReminderNotify {
+ bool is_revoke = 1;
+ uint32 template_reminder_id = 14;
repeated uint32 param_uid_list = 3;
repeated int32 param_list = 10;
- uint32 template_reminder_id = 14;
- bool is_revoke = 1;
+ bool is_need_cache = 15;
}
diff --git a/proto/Unk2700_HENCIJOPCIF.proto b/proto/SignInData.proto
similarity index 94%
rename from proto/Unk2700_HENCIJOPCIF.proto
rename to proto/SignInData.proto
index 0cbe6fab..8a416b9e 100644
--- a/proto/Unk2700_HENCIJOPCIF.proto
+++ b/proto/SignInData.proto
@@ -21,7 +21,7 @@ import "ItemParam.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_HENCIJOPCIF {
- uint32 Unk2700_EMIELBMCCPF = 14;
+message SignInData {
+ uint32 day_count = 14;
repeated ItemParam reward_item_list = 5;
}
diff --git a/proto/SignInInfo.proto b/proto/SignInInfo.proto
index d504fcc3..4850f2b9 100644
--- a/proto/SignInInfo.proto
+++ b/proto/SignInInfo.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_HENCIJOPCIF.proto";
+import "SignInData.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;
+ repeated SignInData signin_data_list = 12;
uint32 config_id = 8;
uint32 sign_in_count = 2;
uint32 schedule_id = 3;
diff --git a/proto/Unk2700_IAADLJBLOIN_ServerNotify.proto b/proto/SignatureAuditConfigNotify.proto
similarity index 92%
rename from proto/Unk2700_IAADLJBLOIN_ServerNotify.proto
rename to proto/SignatureAuditConfigNotify.proto
index d8366143..163873d5 100644
--- a/proto/Unk2700_IAADLJBLOIN_ServerNotify.proto
+++ b/proto/SignatureAuditConfigNotify.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 4092
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_IAADLJBLOIN_ServerNotify {
+message SignatureAuditConfigNotify {
bool is_open = 9;
- uint32 Unk2700_JEKIGDDNCAB = 10;
+ uint32 submit_limit = 10;
}
diff --git a/proto/Unk2700_CCEOEOHLAPK.proto b/proto/SkyCrystalDetectorData.proto
similarity index 97%
rename from proto/Unk2700_CCEOEOHLAPK.proto
rename to proto/SkyCrystalDetectorData.proto
index b4ad80ff..d50929a1 100644
--- a/proto/Unk2700_CCEOEOHLAPK.proto
+++ b/proto/SkyCrystalDetectorData.proto
@@ -21,7 +21,7 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_CCEOEOHLAPK {
+message SkyCrystalDetectorData {
bool is_hint_valid = 3;
Vector hint_center_pos = 8;
uint32 group_id = 6;
diff --git a/proto/Unk2700_MKLLNAHEJJC_ServerRsp.proto b/proto/SkyCrystalDetectorDataUpdateNotify.proto
similarity index 87%
rename from proto/Unk2700_MKLLNAHEJJC_ServerRsp.proto
rename to proto/SkyCrystalDetectorDataUpdateNotify.proto
index b36100ba..732d6f11 100644
--- a/proto/Unk2700_MKLLNAHEJJC_ServerRsp.proto
+++ b/proto/SkyCrystalDetectorDataUpdateNotify.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk2700_CCEOEOHLAPK.proto";
+import "SkyCrystalDetectorData.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 4287
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_MKLLNAHEJJC_ServerRsp {
- Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 9;
+message SkyCrystalDetectorDataUpdateNotify {
+ SkyCrystalDetectorData sky_crystal_detector_data = 9;
}
diff --git a/proto/SkyCrystalDetectorQuickUseResult.proto b/proto/SkyCrystalDetectorQuickUseResult.proto
index 090f24aa..3bfd6248 100644
--- a/proto/SkyCrystalDetectorQuickUseResult.proto
+++ b/proto/SkyCrystalDetectorQuickUseResult.proto
@@ -17,11 +17,11 @@
syntax = "proto3";
-import "Unk2700_CCEOEOHLAPK.proto";
+import "SkyCrystalDetectorData.proto";
option java_package = "emu.grasscutter.net.proto";
message SkyCrystalDetectorQuickUseResult {
- Unk2700_CCEOEOHLAPK Unk2700_COIELIGEACL = 9;
+ SkyCrystalDetectorData sky_crystal_detector_data = 9;
int32 retcode = 8;
}
diff --git a/proto/SpiceActivityDetailInfo.proto b/proto/SpiceActivityDetailInfo.proto
index 94ff5a58..fe06fd4d 100644
--- a/proto/SpiceActivityDetailInfo.proto
+++ b/proto/SpiceActivityDetailInfo.proto
@@ -17,12 +17,12 @@
syntax = "proto3";
-import "SpiceStage.proto";
+import "SpiceStageData.proto";
option java_package = "emu.grasscutter.net.proto";
message SpiceActivityDetailInfo {
- uint32 Unk2700_IGMHNDNGNPG = 15;
- repeated SpiceStage spice_stage_list = 7;
- uint32 Unk2700_KIAHJKGOLGO = 13;
+ uint32 current_increase_avatar_fetter_times = 15;
+ repeated SpiceStageData spice_stage_list = 7;
+ uint32 increase_avatar_fetter_limit_times = 13;
}
diff --git a/proto/Unk2700_JEFIMHGLOJF.proto b/proto/SpiceActivityFinishMakeSpiceReq.proto
similarity index 90%
rename from proto/Unk2700_JEFIMHGLOJF.proto
rename to proto/SpiceActivityFinishMakeSpiceReq.proto
index 91eb4c3f..cce90234 100644
--- a/proto/Unk2700_JEFIMHGLOJF.proto
+++ b/proto/SpiceActivityFinishMakeSpiceReq.proto
@@ -23,9 +23,9 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_JEFIMHGLOJF {
- uint32 Unk2700_MCGIJIGJCIG = 4;
+message SpiceActivityFinishMakeSpiceReq {
+ uint32 left_turns = 4;
bool is_success = 9;
- repeated uint32 Unk2700_LOMDDJKOMCK = 12;
+ repeated uint32 left_material_id_list = 12;
uint32 stage_id = 15;
}
diff --git a/proto/Unk2700_AEEMJIMOPKD.proto b/proto/SpiceActivityFinishMakeSpiceRsp.proto
similarity index 96%
rename from proto/Unk2700_AEEMJIMOPKD.proto
rename to proto/SpiceActivityFinishMakeSpiceRsp.proto
index 2a0e30a3..1da3ca14 100644
--- a/proto/Unk2700_AEEMJIMOPKD.proto
+++ b/proto/SpiceActivityFinishMakeSpiceRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8481
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_AEEMJIMOPKD {
+message SpiceActivityFinishMakeSpiceRsp {
uint32 stage_id = 13;
int32 retcode = 14;
bool is_success = 3;
diff --git a/proto/Unk2700_NCMPMILICGJ.proto b/proto/SpiceActivityGivingRecordNotify.proto
similarity index 87%
rename from proto/Unk2700_NCMPMILICGJ.proto
rename to proto/SpiceActivityGivingRecordNotify.proto
index 4d5a0467..161ec509 100644
--- a/proto/Unk2700_NCMPMILICGJ.proto
+++ b/proto/SpiceActivityGivingRecordNotify.proto
@@ -22,8 +22,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8407
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_NCMPMILICGJ {
- uint32 Unk2700_IGMHNDNGNPG = 3;
- uint32 Unk2700_KIAHJKGOLGO = 7;
+message SpiceActivityGivingRecordNotify {
+ uint32 current_increase_avatar_fetter_times = 3;
+ uint32 increase_avatar_fetter_limit_times = 7;
uint32 avatar_id = 11;
}
diff --git a/proto/Unk2700_APOBKAEHMEL.proto b/proto/SpiceActivityProcessFoodReq.proto
similarity index 92%
rename from proto/Unk2700_APOBKAEHMEL.proto
rename to proto/SpiceActivityProcessFoodReq.proto
index 7974a00b..35020582 100644
--- a/proto/Unk2700_APOBKAEHMEL.proto
+++ b/proto/SpiceActivityProcessFoodReq.proto
@@ -25,6 +25,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_APOBKAEHMEL {
- repeated ItemParam Unk2700_EENOCHNIAJL = 1;
+message SpiceActivityProcessFoodReq {
+ repeated ItemParam normal_food_list = 1;
}
diff --git a/proto/Unk2700_BLFFJBMLAPI.proto b/proto/SpiceActivityProcessFoodRsp.proto
similarity index 89%
rename from proto/Unk2700_BLFFJBMLAPI.proto
rename to proto/SpiceActivityProcessFoodRsp.proto
index f26c2749..9fdd8399 100644
--- a/proto/Unk2700_BLFFJBMLAPI.proto
+++ b/proto/SpiceActivityProcessFoodRsp.proto
@@ -24,8 +24,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8772
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_BLFFJBMLAPI {
+message SpiceActivityProcessFoodRsp {
int32 retcode = 9;
- repeated ItemParam Unk2700_PILJPPJNGEJ = 14;
- repeated ItemParam Unk2700_EENOCHNIAJL = 1;
+ repeated ItemParam special_food_list = 14;
+ repeated ItemParam normal_food_list = 1;
}
diff --git a/proto/SpiceStage.proto b/proto/SpiceStageData.proto
similarity index 94%
rename from proto/SpiceStage.proto
rename to proto/SpiceStageData.proto
index 39e259d4..194249a6 100644
--- a/proto/SpiceStage.proto
+++ b/proto/SpiceStageData.proto
@@ -19,8 +19,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message SpiceStage {
+message SpiceStageData {
bool is_open = 12;
- uint32 Unk2700_KLOFGMKDDAK = 1;
+ uint32 success_times = 1;
uint32 stage_id = 6;
}
diff --git a/proto/Unk2700_BCFKCLHCBDI.proto b/proto/StartRogueDiaryPlayReq.proto
similarity index 97%
rename from proto/Unk2700_BCFKCLHCBDI.proto
rename to proto/StartRogueDiaryPlayReq.proto
index 75cc6b13..4634db81 100644
--- a/proto/Unk2700_BCFKCLHCBDI.proto
+++ b/proto/StartRogueDiaryPlayReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_BCFKCLHCBDI {
+message StartRogueDiaryPlayReq {
uint32 difficulty = 1;
uint32 stage_id = 12;
}
diff --git a/proto/Unk2700_PMKNJBJPLBH.proto b/proto/StartRogueDiaryPlayRsp.proto
similarity index 82%
rename from proto/Unk2700_PMKNJBJPLBH.proto
rename to proto/StartRogueDiaryPlayRsp.proto
index cf994378..b3499080 100644
--- a/proto/Unk2700_PMKNJBJPLBH.proto
+++ b/proto/StartRogueDiaryPlayRsp.proto
@@ -17,16 +17,16 @@
syntax = "proto3";
-import "Unk2700_HJLFNKLPFBH.proto";
+import "RogueDiaryAvatar.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8385
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_PMKNJBJPLBH {
+message StartRogueDiaryPlayRsp {
int32 retcode = 11;
- repeated Unk2700_HJLFNKLPFBH Unk2700_BBGHICEDLBB = 13;
- repeated uint32 Unk2700_GGNBBHMGLAN = 12;
- repeated Unk2700_HJLFNKLPFBH avatar_list = 9;
+ repeated RogueDiaryAvatar trial_avatar_list = 13;
+ repeated uint32 rand_card_list = 12;
+ repeated RogueDiaryAvatar avatar_list = 9;
}
diff --git a/proto/Unk2700_CBGOFDNILKA.proto b/proto/StartRogueDiaryRoomReq.proto
similarity index 91%
rename from proto/Unk2700_CBGOFDNILKA.proto
rename to proto/StartRogueDiaryRoomReq.proto
index 3f017f38..9a58d48d 100644
--- a/proto/Unk2700_CBGOFDNILKA.proto
+++ b/proto/StartRogueDiaryRoomReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_CBGOFDNILKA {
- uint32 Unk2700_APJPPLAAFEM = 13;
- bool Unk2700_JGAMIHLFFOI = 1;
+message StartRogueDiaryRoomReq {
+ uint32 room_difficulty = 13;
+ bool is_select_hard = 1;
}
diff --git a/proto/Unk2700_IDGCNKONBBJ.proto b/proto/StartRogueDiaryRoomRsp.proto
similarity index 96%
rename from proto/Unk2700_IDGCNKONBBJ.proto
rename to proto/StartRogueDiaryRoomRsp.proto
index 1faa670b..26526382 100644
--- a/proto/Unk2700_IDGCNKONBBJ.proto
+++ b/proto/StartRogueDiaryRoomRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8793
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_IDGCNKONBBJ {
+message StartRogueDiaryRoomRsp {
int32 retcode = 4;
}
diff --git a/proto/Unk2800_ILKIAECAAKG.proto b/proto/StopReminderNotify.proto
similarity index 97%
rename from proto/Unk2800_ILKIAECAAKG.proto
rename to proto/StopReminderNotify.proto
index 5d50d3aa..8ecb69f5 100644
--- a/proto/Unk2800_ILKIAECAAKG.proto
+++ b/proto/StopReminderNotify.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2800_ILKIAECAAKG {
+message StopReminderNotify {
uint32 reminder_id = 15;
}
diff --git a/proto/StoreCustomDungeonReq.proto b/proto/StoreCustomDungeonReq.proto
new file mode 100644
index 00000000..5ee9eecc
--- /dev/null
+++ b/proto/StoreCustomDungeonReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy 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 StoreCustomDungeonReq {
+ bool is_cancel_store = 9;
+ uint64 dungeon_guid = 11;
+}
diff --git a/proto/Unk2700_KMNPMLCHELD_ServerRsp.proto b/proto/StoreCustomDungeonRsp.proto
similarity index 96%
rename from proto/Unk2700_KMNPMLCHELD_ServerRsp.proto
rename to proto/StoreCustomDungeonRsp.proto
index a1b690d7..31a40875 100644
--- a/proto/Unk2700_KMNPMLCHELD_ServerRsp.proto
+++ b/proto/StoreCustomDungeonRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 6201
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_KMNPMLCHELD_ServerRsp {
+message StoreCustomDungeonRsp {
int32 retcode = 12;
}
diff --git a/proto/SubmitInferenceWordReq.proto b/proto/SubmitInferenceWordReq.proto
new file mode 100644
index 00000000..50f18ca1
--- /dev/null
+++ b/proto/SubmitInferenceWordReq.proto
@@ -0,0 +1,29 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy 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 SubmitInferenceWordReq {
+ uint32 word_id = 4;
+ uint32 page_id = 9;
+}
diff --git a/proto/SubmitInferenceWordRsp.proto b/proto/SubmitInferenceWordRsp.proto
new file mode 100644
index 00000000..65046fe5
--- /dev/null
+++ b/proto/SubmitInferenceWordRsp.proto
@@ -0,0 +1,30 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy 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 SubmitInferenceWordRsp {
+ uint32 word_id = 2;
+ uint32 page_id = 13;
+ uint32 conclusion_id = 5;
+ int32 retcode = 8;
+}
diff --git a/proto/Unk2800_CEAECGGBOKL.proto b/proto/SummerTimeDungeonInfo.proto
similarity index 85%
rename from proto/Unk2800_CEAECGGBOKL.proto
rename to proto/SummerTimeDungeonInfo.proto
index 3fcaad9b..2ca7ef5f 100644
--- a/proto/Unk2800_CEAECGGBOKL.proto
+++ b/proto/SummerTimeDungeonInfo.proto
@@ -19,10 +19,10 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2800_CEAECGGBOKL {
- uint32 Unk2800_KDLIIGEGDDH = 15;
- uint32 Unk2800_ENMCNIPGGIA = 12;
- uint32 Unk2800_DEIGAGPAJGK = 14;
+message SummerTimeDungeonInfo {
+ uint32 taken_chest_count = 15;
+ uint32 total_chest_count = 12;
+ uint32 taken_shell_count = 14;
uint32 dungeon_id = 4;
- uint32 Unk2800_JKOGDAMMBIN = 13;
+ uint32 total_shell_count = 13;
}
diff --git a/proto/Unk2800_IOBHBFFAONO.proto b/proto/SummerTimeV2BoatGallerySettleInfo.proto
similarity index 88%
rename from proto/Unk2800_IOBHBFFAONO.proto
rename to proto/SummerTimeV2BoatGallerySettleInfo.proto
index 9f16eb6c..825dfc21 100644
--- a/proto/Unk2800_IOBHBFFAONO.proto
+++ b/proto/SummerTimeV2BoatGallerySettleInfo.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "Unk2700_MOFABPNGIKP.proto";
+import "GalleryStopReason.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2800_IOBHBFFAONO {
+message SummerTimeV2BoatGallerySettleInfo {
uint32 param1 = 7;
uint32 param2 = 2;
- Unk2700_MOFABPNGIKP reason = 3;
+ GalleryStopReason reason = 3;
uint32 param3 = 6;
- uint32 Unk2800_NGGPIECNHJA = 12;
+ uint32 used_time = 12;
uint32 gallery_id = 1;
}
diff --git a/proto/Unk2800_NHEOHBNFHJD.proto b/proto/SummerTimeV2BoatSettleNotify.proto
similarity index 88%
rename from proto/Unk2800_NHEOHBNFHJD.proto
rename to proto/SummerTimeV2BoatSettleNotify.proto
index fccb2211..063973a4 100644
--- a/proto/Unk2800_NHEOHBNFHJD.proto
+++ b/proto/SummerTimeV2BoatSettleNotify.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "Unk2800_IOBHBFFAONO.proto";
+import "SummerTimeV2BoatGallerySettleInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8870
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_NHEOHBNFHJD {
- Unk2800_IOBHBFFAONO settle_info = 11;
+message SummerTimeV2BoatSettleNotify {
+ SummerTimeV2BoatGallerySettleInfo settle_info = 11;
uint32 stage_id = 7;
bool is_new_record = 2;
uint32 gallery_id = 1;
diff --git a/proto/Unk2800_CGPNLBNMPCM.proto b/proto/SummerTimeV2BoatStageInfo.proto
similarity index 96%
rename from proto/Unk2800_CGPNLBNMPCM.proto
rename to proto/SummerTimeV2BoatStageInfo.proto
index 7faf0165..689af0e4 100644
--- a/proto/Unk2800_CGPNLBNMPCM.proto
+++ b/proto/SummerTimeV2BoatStageInfo.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2800_CGPNLBNMPCM {
+message SummerTimeV2BoatStageInfo {
uint32 open_time = 7;
bool is_open = 14;
uint32 stage_id = 10;
diff --git a/proto/SummerTimeV2DetailInfo.proto b/proto/SummerTimeV2DetailInfo.proto
index 0a50ef19..41f4f606 100644
--- a/proto/SummerTimeV2DetailInfo.proto
+++ b/proto/SummerTimeV2DetailInfo.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "Unk2800_CGODFDDALAG.proto";
-import "Unk2800_CGPNLBNMPCM.proto";
+import "SummerTimeV2BoatStageInfo.proto";
+import "SummerTimeV2DungeonStageInfo.proto";
option java_package = "emu.grasscutter.net.proto";
message SummerTimeV2DetailInfo {
- repeated Unk2800_CGODFDDALAG Unk2800_PNBLCPIBKPO = 13;
- uint32 Unk2800_HDEFJKGDNEH = 10;
+ repeated SummerTimeV2DungeonStageInfo dungeon_stage_info_list = 13;
+ uint32 cur_dungeon_reward_limit = 10;
bool is_content_closed = 4;
- uint32 Unk2800_ELHBCNPKOJG = 5;
- repeated Unk2800_CGPNLBNMPCM Unk2800_MPKLJJIEHIB = 15;
+ uint32 taken_reward_count = 5;
+ repeated SummerTimeV2BoatStageInfo boat_stage_info_list = 15;
}
diff --git a/proto/SummerTimeV2DungeonSettleInfo.proto b/proto/SummerTimeV2DungeonSettleInfo.proto
index a8d311b6..b77b49bf 100644
--- a/proto/SummerTimeV2DungeonSettleInfo.proto
+++ b/proto/SummerTimeV2DungeonSettleInfo.proto
@@ -21,6 +21,6 @@ option java_package = "emu.grasscutter.net.proto";
message SummerTimeV2DungeonSettleInfo {
bool is_success = 5;
- uint32 Unk2800_ELHBCNPKOJG = 2;
- uint32 Unk2800_HDEFJKGDNEH = 11;
+ uint32 taken_reward_count = 2;
+ uint32 cur_dungeon_reward_limit = 11;
}
diff --git a/proto/Unk2800_CGODFDDALAG.proto b/proto/SummerTimeV2DungeonStageInfo.proto
similarity index 93%
rename from proto/Unk2800_CGODFDDALAG.proto
rename to proto/SummerTimeV2DungeonStageInfo.proto
index 48e27d97..c2569260 100644
--- a/proto/Unk2800_CGODFDDALAG.proto
+++ b/proto/SummerTimeV2DungeonStageInfo.proto
@@ -19,9 +19,9 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2800_CGODFDDALAG {
+message SummerTimeV2DungeonStageInfo {
uint32 stage_id = 10;
bool is_open = 3;
uint32 open_time = 12;
- bool Unk2800_GCPNBJIJEDA = 15;
+ bool is_prev_dungeon_succeed = 15;
}
diff --git a/proto/Unk2800_IILBEPIEBJO.proto b/proto/SummerTimeV2RestartBoatGalleryReq.proto
similarity index 96%
rename from proto/Unk2800_IILBEPIEBJO.proto
rename to proto/SummerTimeV2RestartBoatGalleryReq.proto
index 4fa468e9..c0ae9755 100644
--- a/proto/Unk2800_IILBEPIEBJO.proto
+++ b/proto/SummerTimeV2RestartBoatGalleryReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2800_IILBEPIEBJO {
+message SummerTimeV2RestartBoatGalleryReq {
uint32 gallery_id = 5;
}
diff --git a/proto/Unk2800_MNBDNGKGDGF.proto b/proto/SummerTimeV2RestartBoatGalleryRsp.proto
similarity index 96%
rename from proto/Unk2800_MNBDNGKGDGF.proto
rename to proto/SummerTimeV2RestartBoatGalleryRsp.proto
index c5a7f593..d92a49f4 100644
--- a/proto/Unk2800_MNBDNGKGDGF.proto
+++ b/proto/SummerTimeV2RestartBoatGalleryRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8004
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_MNBDNGKGDGF {
+message SummerTimeV2RestartBoatGalleryRsp {
uint32 gallery_id = 13;
int32 retcode = 8;
}
diff --git a/proto/Unk2800_DKDJCLLNGNL.proto b/proto/SummerTimeV2RestartDungeonReq.proto
similarity index 96%
rename from proto/Unk2800_DKDJCLLNGNL.proto
rename to proto/SummerTimeV2RestartDungeonReq.proto
index 66d3449a..1ecc0d8f 100644
--- a/proto/Unk2800_DKDJCLLNGNL.proto
+++ b/proto/SummerTimeV2RestartDungeonReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2800_DKDJCLLNGNL {}
+message SummerTimeV2RestartDungeonReq {}
diff --git a/proto/Unk2800_KFNCDHFHJPD.proto b/proto/SummerTimeV2RestartDungeonRsp.proto
similarity index 96%
rename from proto/Unk2800_KFNCDHFHJPD.proto
rename to proto/SummerTimeV2RestartDungeonRsp.proto
index afd1cdf1..ba16a4a1 100644
--- a/proto/Unk2800_KFNCDHFHJPD.proto
+++ b/proto/SummerTimeV2RestartDungeonRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8996
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_KFNCDHFHJPD {
+message SummerTimeV2RestartDungeonRsp {
int32 retcode = 3;
}
diff --git a/proto/SumoActivityDetailInfo.proto b/proto/SumoActivityDetailInfo.proto
index fa8370d7..18e2844b 100644
--- a/proto/SumoActivityDetailInfo.proto
+++ b/proto/SumoActivityDetailInfo.proto
@@ -24,5 +24,5 @@ option java_package = "emu.grasscutter.net.proto";
message SumoActivityDetailInfo {
uint32 difficulty_id = 11;
map sumo_stage_map = 13;
- uint32 Unk2700_NIJIAJMFLLD = 14;
+ uint32 last_stage_id = 14;
}
diff --git a/proto/Unk2800_OFIHDGFMDGB.proto b/proto/TakeBackGivingItemReq.proto
similarity index 97%
rename from proto/Unk2800_OFIHDGFMDGB.proto
rename to proto/TakeBackGivingItemReq.proto
index 15f4e372..4a2c00c0 100644
--- a/proto/Unk2800_OFIHDGFMDGB.proto
+++ b/proto/TakeBackGivingItemReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2800_OFIHDGFMDGB {
+message TakeBackGivingItemReq {
uint32 giving_id = 4;
}
diff --git a/proto/Unk2800_HKBAEOMCFOD.proto b/proto/TakeBackGivingItemRsp.proto
similarity index 97%
rename from proto/Unk2800_HKBAEOMCFOD.proto
rename to proto/TakeBackGivingItemRsp.proto
index 9e553c11..0b168f63 100644
--- a/proto/Unk2800_HKBAEOMCFOD.proto
+++ b/proto/TakeBackGivingItemRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 145
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2800_HKBAEOMCFOD {
+message TakeBackGivingItemRsp {
uint32 giving_id = 10;
int32 retcode = 6;
}
diff --git a/proto/TanukiTravelActivityDetailInfo.proto b/proto/TanukiTravelActivityDetailInfo.proto
index 87f3e052..faa0cbfe 100644
--- a/proto/TanukiTravelActivityDetailInfo.proto
+++ b/proto/TanukiTravelActivityDetailInfo.proto
@@ -17,12 +17,12 @@
syntax = "proto3";
-import "Unk2700_BIFNFOGBPNM.proto";
+import "TanukiTravelLevelData.proto";
option java_package = "emu.grasscutter.net.proto";
message TanukiTravelActivityDetailInfo {
- repeated Unk2700_BIFNFOGBPNM Unk2700_JBPFIDDPGME = 4;
+ repeated TanukiTravelLevelData tanuki_travel_level_data_list = 4;
bool is_content_closed = 11;
- uint32 Unk2700_BHHCNOLMCJM = 10;
+ uint32 finished_level_index = 10;
}
diff --git a/proto/Unk2700_PBGBOLJMIIB.proto b/proto/TanukiTravelFinishGuideQuestNotify.proto
similarity index 95%
rename from proto/Unk2700_PBGBOLJMIIB.proto
rename to proto/TanukiTravelFinishGuideQuestNotify.proto
index f22c52a8..c5208062 100644
--- a/proto/Unk2700_PBGBOLJMIIB.proto
+++ b/proto/TanukiTravelFinishGuideQuestNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8924
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_PBGBOLJMIIB {
+message TanukiTravelFinishGuideQuestNotify {
uint32 activity_id = 14;
}
diff --git a/proto/Unk2700_BIFNFOGBPNM.proto b/proto/TanukiTravelLevelData.proto
similarity index 94%
rename from proto/Unk2700_BIFNFOGBPNM.proto
rename to proto/TanukiTravelLevelData.proto
index 02843a30..e1063dc6 100644
--- a/proto/Unk2700_BIFNFOGBPNM.proto
+++ b/proto/TanukiTravelLevelData.proto
@@ -19,8 +19,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_BIFNFOGBPNM {
+message TanukiTravelLevelData {
bool is_open = 5;
uint32 route_id = 9;
- bool Unk2700_MMNILGLDHHD = 15;
+ bool is_finish = 15;
}
diff --git a/proto/Unk3000_NBGBGODDBMP.proto b/proto/ToTheMoonAddObstacleReq.proto
similarity index 88%
rename from proto/Unk3000_NBGBGODDBMP.proto
rename to proto/ToTheMoonAddObstacleReq.proto
index 71536153..d2291ab5 100644
--- a/proto/Unk3000_NBGBGODDBMP.proto
+++ b/proto/ToTheMoonAddObstacleReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk3000_LBNFMLHLBIH.proto";
+import "ToTheMoonObstacleInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,9 +25,9 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_NBGBGODDBMP {
- bool Unk3000_PHOPHGOGIIK = 12;
- Unk3000_LBNFMLHLBIH Unk3000_APCKCDLMGMN = 13;
+message ToTheMoonAddObstacleReq {
+ bool use_edge = 12;
+ ToTheMoonObstacleInfo obstacle = 13;
int32 query_id = 9;
uint32 scene_id = 3;
}
diff --git a/proto/Unk3000_FPDBJJJLKEP.proto b/proto/ToTheMoonAddObstacleRsp.proto
similarity index 90%
rename from proto/Unk3000_FPDBJJJLKEP.proto
rename to proto/ToTheMoonAddObstacleRsp.proto
index 4e64bd9c..d7dfac15 100644
--- a/proto/Unk3000_FPDBJJJLKEP.proto
+++ b/proto/ToTheMoonAddObstacleRsp.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "Unk3000_BGPMEPKCLPA.proto";
+import "DynamicNodes.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 6103
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_FPDBJJJLKEP {
- Unk3000_BGPMEPKCLPA Unk3000_ADJJOGDKIKL = 2;
+message ToTheMoonAddObstacleRsp {
+ DynamicNodes dynamic_nodes = 2;
int32 query_id = 13;
int32 retcode = 11;
}
diff --git a/proto/Unk3000_MEFJDDHIAOK.proto b/proto/ToTheMoonEnterSceneReq.proto
similarity index 97%
rename from proto/Unk3000_MEFJDDHIAOK.proto
rename to proto/ToTheMoonEnterSceneReq.proto
index 816ba139..bce8cdd9 100644
--- a/proto/Unk3000_MEFJDDHIAOK.proto
+++ b/proto/ToTheMoonEnterSceneReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_MEFJDDHIAOK {
+message ToTheMoonEnterSceneReq {
uint32 version = 14;
uint32 scene_id = 15;
}
diff --git a/proto/Unk3000_LHEMAMBKEKI.proto b/proto/ToTheMoonEnterSceneRsp.proto
similarity index 96%
rename from proto/Unk3000_LHEMAMBKEKI.proto
rename to proto/ToTheMoonEnterSceneRsp.proto
index 1893803f..52d309e8 100644
--- a/proto/Unk3000_LHEMAMBKEKI.proto
+++ b/proto/ToTheMoonEnterSceneRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 6107
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_LHEMAMBKEKI {
+message ToTheMoonEnterSceneRsp {
int32 retcode = 7;
}
diff --git a/proto/Unk3000_LBNFMLHLBIH.proto b/proto/ToTheMoonObstacleInfo.proto
similarity index 80%
rename from proto/Unk3000_LBNFMLHLBIH.proto
rename to proto/ToTheMoonObstacleInfo.proto
index 3a2e4252..23d69197 100644
--- a/proto/Unk3000_LBNFMLHLBIH.proto
+++ b/proto/ToTheMoonObstacleInfo.proto
@@ -22,15 +22,15 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_LBNFMLHLBIH {
- Unk3000_GPHBIBGMHJN type = 2;
- int32 Unk3000_MFHLAJACMFA = 11;
+message ToTheMoonObstacleInfo {
+ ShapeType type = 2;
+ int32 handle_id = 11;
MathQuaternion rotation = 7;
Vector center = 13;
- Vector Unk3000_LNHPLNEBBIP = 14;
+ Vector half_extents = 14;
- enum Unk3000_GPHBIBGMHJN {
- Unk3000_GPHBIBGMHJN_OBSTACLE_SHAPE_CAPSULE = 0;
- Unk3000_GPHBIBGMHJN_OBSTACLE_SHAPE_BOX = 1;
+ enum ShapeType {
+ SHAPE_TYPE_OBSTACLE_SHAPE_CAPSULE = 0;
+ SHAPE_TYPE_OBSTACLE_SHAPE_BOX = 1;
}
}
diff --git a/proto/ToTheMoonObstaclesModifyNotify.proto b/proto/ToTheMoonObstaclesModifyNotify.proto
new file mode 100644
index 00000000..ec7ba092
--- /dev/null
+++ b/proto/ToTheMoonObstaclesModifyNotify.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 "ToTheMoonObstacleInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+// CmdId: 6199
+// EnetChannelId: 0
+// EnetIsReliable: true
+// IsAllowClient: true
+message ToTheMoonObstaclesModifyNotify {
+ repeated ToTheMoonObstacleInfo add_obstacles = 4;
+ repeated int32 remove_obstacle_ids = 13;
+ uint32 scene_id = 15;
+ bool use_edge = 1;
+}
diff --git a/proto/Unk3000_NJNPNJDFEOL.proto b/proto/ToTheMoonPingNotify.proto
similarity index 97%
rename from proto/Unk3000_NJNPNJDFEOL.proto
rename to proto/ToTheMoonPingNotify.proto
index 8e9af976..8776fa49 100644
--- a/proto/Unk3000_NJNPNJDFEOL.proto
+++ b/proto/ToTheMoonPingNotify.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_NJNPNJDFEOL {}
+message ToTheMoonPingNotify {}
diff --git a/proto/Unk3000_NMENEAHJGKE.proto b/proto/ToTheMoonQueryPathReq.proto
similarity index 67%
rename from proto/Unk3000_NMENEAHJGKE.proto
rename to proto/ToTheMoonQueryPathReq.proto
index 74f7dad5..410bf8c4 100644
--- a/proto/Unk3000_NMENEAHJGKE.proto
+++ b/proto/ToTheMoonQueryPathReq.proto
@@ -25,26 +25,33 @@ option java_package = "emu.grasscutter.net.proto";
// 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;
+message ToTheMoonQueryPathReq {
Vector destination_pos = 9;
- int32 query_id = 11;
+ int32 fuzzy_range = 15;
+ OptionType query_type = 8;
+ AStarMethod astar_method = 1;
uint32 scene_id = 6;
+ int32 query_id = 11;
+ FilterType filter_type = 3;
+ bool refined = 13;
+ bool use_full_neighbor = 5;
+ Vector source_pos = 10;
- enum Unk3000_MPAGIMDCEDK {
- Unk3000_MPAGIMDCEDK_OPTION_NONE = 0;
- Unk3000_MPAGIMDCEDK_OPTION_NORMAL = 1;
+ enum OptionType {
+ OPTION_TYPE_NONE = 0;
+ OPTION_TYPE_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;
+ enum AStarMethod {
+ A_STAR_METHOD_CLASSIC = 0;
+ A_STAR_METHOD_TENDENCY = 1;
+ A_STAR_METHOD_ADAPTIVE = 2;
+ A_STAR_METHOD_INFLECTION = 3;
+ }
+
+ enum FilterType {
+ FILTER_TYPE_ALL = 0;
+ FILTER_TYPE_AIR = 1;
+ FILTER_TYPE_WATER = 2;
}
}
diff --git a/proto/Unk3000_MFCAIADEPGJ.proto b/proto/ToTheMoonQueryPathRsp.proto
similarity index 83%
rename from proto/Unk3000_MFCAIADEPGJ.proto
rename to proto/ToTheMoonQueryPathRsp.proto
index 8680b3da..86de647a 100644
--- a/proto/Unk3000_MFCAIADEPGJ.proto
+++ b/proto/ToTheMoonQueryPathRsp.proto
@@ -24,17 +24,17 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 6198
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_MFCAIADEPGJ {
- Unk3000_PNOAFGLCLPG query_status = 7;
+message ToTheMoonQueryPathRsp {
+ PathStatusType 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;
+ enum PathStatusType {
+ PATH_STATUS_TYPE_FAIL = 0;
+ PATH_STATUS_TYPE_SUCC = 1;
+ PATH_STATUS_TYPE_PARTIAL = 2;
}
}
diff --git a/proto/Unk3000_KOKEHAPLNHF.proto b/proto/ToTheMoonRemoveObstacleReq.proto
similarity index 85%
rename from proto/Unk3000_KOKEHAPLNHF.proto
rename to proto/ToTheMoonRemoveObstacleReq.proto
index 13de827c..044a6ae8 100644
--- a/proto/Unk3000_KOKEHAPLNHF.proto
+++ b/proto/ToTheMoonRemoveObstacleReq.proto
@@ -23,13 +23,13 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_KOKEHAPLNHF {
- int32 Unk3000_ACPIAKFPDND = 12;
+message ToTheMoonRemoveObstacleReq {
+ int32 handle = 12;
uint32 scene_id = 10;
int32 query_id = 11;
- enum Unk3000_GKFABJEJMKB {
- Unk3000_GKFABJEJMKB_Unk3000_IEAAFHCHOIA = 0;
- Unk3000_GKFABJEJMKB_Unk3000_DBHGONMGIOJ = 1;
+ enum ObstacleType {
+ OBSTACLE_TYPE_BOX = 0;
+ OBSTACLE_TYPE_CAPSULE = 1;
}
}
diff --git a/proto/Unk3000_CNDHIGKNELM.proto b/proto/ToTheMoonRemoveObstacleRsp.proto
similarity index 90%
rename from proto/Unk3000_CNDHIGKNELM.proto
rename to proto/ToTheMoonRemoveObstacleRsp.proto
index 591f87e4..4967a30f 100644
--- a/proto/Unk3000_CNDHIGKNELM.proto
+++ b/proto/ToTheMoonRemoveObstacleRsp.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "Unk3000_BGPMEPKCLPA.proto";
+import "DynamicNodes.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 6173
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_CNDHIGKNELM {
+message ToTheMoonRemoveObstacleRsp {
int32 query_id = 3;
int32 retcode = 14;
- Unk3000_BGPMEPKCLPA Unk3000_ADJJOGDKIKL = 8;
+ DynamicNodes dynamic_nodes = 8;
}
diff --git a/proto/TowerCurLevelRecord.proto b/proto/TowerCurLevelRecord.proto
index 9a2c2b86..77789806 100644
--- a/proto/TowerCurLevelRecord.proto
+++ b/proto/TowerCurLevelRecord.proto
@@ -25,7 +25,7 @@ message TowerCurLevelRecord {
repeated TowerTeam tower_team_list = 8;
bool is_empty = 6;
repeated uint32 buff_id_list = 4;
- bool Unk2700_CBPNPEBMPOH = 2;
+ bool is_upper_part = 2;
uint32 cur_level_index = 1;
uint32 cur_floor_id = 15;
}
diff --git a/proto/TowerLevelStarCondData.proto b/proto/TowerLevelStarCondData.proto
index 7b23c141..c4039e43 100644
--- a/proto/TowerLevelStarCondData.proto
+++ b/proto/TowerLevelStarCondData.proto
@@ -20,7 +20,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message TowerLevelStarCondData {
- bool Unk2700_HIFMJMAHEMB = 15;
+ bool is_fail = 15;
uint32 cond_value = 9;
bool is_pause = 13;
uint32 star_cond_index = 6;
diff --git a/proto/TreasureSeelieDetailInfo.proto b/proto/TreasureSeelieActivityDetailInfo.proto
similarity index 87%
rename from proto/TreasureSeelieDetailInfo.proto
rename to proto/TreasureSeelieActivityDetailInfo.proto
index 338ee1ef..4e81b7fe 100644
--- a/proto/TreasureSeelieDetailInfo.proto
+++ b/proto/TreasureSeelieActivityDetailInfo.proto
@@ -17,12 +17,12 @@
syntax = "proto3";
-import "Unk3000_HDJHHOCABBK.proto";
+import "TreasureSeelieRegionData.proto";
option java_package = "emu.grasscutter.net.proto";
-message TreasureSeelieDetailInfo {
+message TreasureSeelieActivityDetailInfo {
uint32 treasure_close_time = 10;
bool is_content_closed = 8;
- repeated Unk3000_HDJHHOCABBK Unk3000_NMEPJANNLLE = 14;
+ repeated TreasureSeelieRegionData region_data_list = 14;
}
diff --git a/proto/Unk3000_JIMGCFDPFCK.proto b/proto/TreasureSeelieCollectOrbsNotify.proto
similarity index 93%
rename from proto/Unk3000_JIMGCFDPFCK.proto
rename to proto/TreasureSeelieCollectOrbsNotify.proto
index 61eca5ab..230f9466 100644
--- a/proto/Unk3000_JIMGCFDPFCK.proto
+++ b/proto/TreasureSeelieCollectOrbsNotify.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 20754
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_JIMGCFDPFCK {
- uint32 Unk2700_MDJOPHOHFDB = 11;
+message TreasureSeelieCollectOrbsNotify {
+ uint32 current_num = 11;
uint32 total_num = 5;
}
diff --git a/proto/Unk3000_HDJHHOCABBK.proto b/proto/TreasureSeelieRegionData.proto
similarity index 89%
rename from proto/Unk3000_HDJHHOCABBK.proto
rename to proto/TreasureSeelieRegionData.proto
index 7a5cec96..7d2f7413 100644
--- a/proto/Unk3000_HDJHHOCABBK.proto
+++ b/proto/TreasureSeelieRegionData.proto
@@ -21,15 +21,15 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_HDJHHOCABBK {
+message TreasureSeelieRegionData {
bool is_done = 12;
- uint32 Unk3000_LIHPABKOAIP = 6;
- uint32 Unk3000_AEGHMLLEOJF = 10;
+ uint32 open_day = 6;
+ uint32 opened_chest_num = 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 total_chest_num = 15;
uint32 region_id = 1;
}
diff --git a/proto/TrialAvatarGrantRecord.proto b/proto/TrialAvatarGrantRecord.proto
index dc1f98b6..eefab4f4 100644
--- a/proto/TrialAvatarGrantRecord.proto
+++ b/proto/TrialAvatarGrantRecord.proto
@@ -30,12 +30,13 @@ message TrialAvatarGrantRecord {
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;
+ GRANT_REASON_BY_POTION_ACTIVITY = 6;
+ GRANT_REASON_BY_CRYSTAL_LINK_ACTIVITY = 7;
+ GRANT_REASON_BY_IRODORI_MASTER = 8;
+ GRANT_REASON_BY_GM = 9;
+ GRANT_REASON_BY_INSTABLE_SPRAY_ACTIVITY = 10;
+ GRANT_REASON_BY_MUQADAS_POTION_ACTIVITY = 11;
+ GRANT_REASON_BY_VINTAGE_HUNTING = 12;
+ GRANT_REASON_BY_CHAR_AMUSEMENT = 13;
}
}
diff --git a/proto/TriggerCreateGadgetToEquipPartNotify.proto b/proto/TriggerCreateGadgetToEquipPartNotify.proto
index 5c95edb0..7efc510a 100644
--- a/proto/TriggerCreateGadgetToEquipPartNotify.proto
+++ b/proto/TriggerCreateGadgetToEquipPartNotify.proto
@@ -22,7 +22,6 @@ 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;
diff --git a/proto/Unk2700_GNDOKLHDHBJ_ClientReq.proto b/proto/TryCustomDungeonReq.proto
similarity index 96%
rename from proto/Unk2700_GNDOKLHDHBJ_ClientReq.proto
rename to proto/TryCustomDungeonReq.proto
index a7195708..50791999 100644
--- a/proto/Unk2700_GNDOKLHDHBJ_ClientReq.proto
+++ b/proto/TryCustomDungeonReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_GNDOKLHDHBJ_ClientReq {
+message TryCustomDungeonReq {
uint32 room_id = 13;
}
diff --git a/proto/Unk2700_GIAILDLPEOO_ServerRsp.proto b/proto/TryCustomDungeonRsp.proto
similarity index 96%
rename from proto/Unk2700_GIAILDLPEOO_ServerRsp.proto
rename to proto/TryCustomDungeonRsp.proto
index 87f84703..c35020fc 100644
--- a/proto/Unk2700_GIAILDLPEOO_ServerRsp.proto
+++ b/proto/TryCustomDungeonRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 6241
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_GIAILDLPEOO_ServerRsp {
+message TryCustomDungeonRsp {
uint32 room_id = 4;
int32 retcode = 1;
}
diff --git a/proto/TryCustomDungeonType.proto b/proto/TryCustomDungeonType.proto
new file mode 100644
index 00000000..0912f26c
--- /dev/null
+++ b/proto/TryCustomDungeonType.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 TryCustomDungeonType {
+ TRY_CUSTOM_DUNGEON_TYPE_NONE = 0;
+ TRY_CUSTOM_DUNGEON_TYPE_ROOM = 1;
+ TRY_CUSTOM_DUNGEON_TYPE_ALL = 2;
+ TRY_CUSTOM_DUNGEON_TYPE_OFFICIAL_PLAY = 3;
+}
diff --git a/proto/TryEnterHomeReq.proto b/proto/TryEnterHomeReq.proto
index c8ee681e..3099d638 100644
--- a/proto/TryEnterHomeReq.proto
+++ b/proto/TryEnterHomeReq.proto
@@ -25,6 +25,6 @@ option java_package = "emu.grasscutter.net.proto";
// IsAllowClient: true
message TryEnterHomeReq {
uint32 target_uid = 3;
- bool Unk3100_KEMFDDMEBIG = 10;
+ bool is_transfer_to_safe_point = 10;
uint32 target_point = 9;
}
diff --git a/proto/Unk2700_BPPDLOJLAAO.proto b/proto/TryEnterNextRogueDiaryDungeonReq.proto
similarity index 95%
rename from proto/Unk2700_BPPDLOJLAAO.proto
rename to proto/TryEnterNextRogueDiaryDungeonReq.proto
index cd601f1a..6fa0e37f 100644
--- a/proto/Unk2700_BPPDLOJLAAO.proto
+++ b/proto/TryEnterNextRogueDiaryDungeonReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_BPPDLOJLAAO {}
+message TryEnterNextRogueDiaryDungeonReq {}
diff --git a/proto/Unk2700_LEMPLKGOOJC.proto b/proto/TryEnterNextRogueDiaryDungeonRsp.proto
similarity index 95%
rename from proto/Unk2700_LEMPLKGOOJC.proto
rename to proto/TryEnterNextRogueDiaryDungeonRsp.proto
index 4430893a..0a2e8fb0 100644
--- a/proto/Unk2700_LEMPLKGOOJC.proto
+++ b/proto/TryEnterNextRogueDiaryDungeonRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8362
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_LEMPLKGOOJC {
+message TryEnterNextRogueDiaryDungeonRsp {
int32 retcode = 4;
}
diff --git a/proto/Unk2700_EAOAMGDLJMP.proto b/proto/TryInterruptRogueDiaryDungeonReq.proto
similarity index 95%
rename from proto/Unk2700_EAOAMGDLJMP.proto
rename to proto/TryInterruptRogueDiaryDungeonReq.proto
index 02e4edad..85946b6f 100644
--- a/proto/Unk2700_EAOAMGDLJMP.proto
+++ b/proto/TryInterruptRogueDiaryDungeonReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_EAOAMGDLJMP {}
+message TryInterruptRogueDiaryDungeonReq {}
diff --git a/proto/Unk2700_CNEIMEHAAAF.proto b/proto/TryInterruptRogueDiaryDungeonRsp.proto
similarity index 95%
rename from proto/Unk2700_CNEIMEHAAAF.proto
rename to proto/TryInterruptRogueDiaryDungeonRsp.proto
index e65b9626..703c9750 100644
--- a/proto/Unk2700_CNEIMEHAAAF.proto
+++ b/proto/TryInterruptRogueDiaryDungeonRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8903
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_CNEIMEHAAAF {
+message TryInterruptRogueDiaryDungeonRsp {
int32 retcode = 4;
}
diff --git a/proto/UgcActivityDetailInfo.proto b/proto/UgcActivityDetailInfo.proto
index f704b390..d094bed6 100644
--- a/proto/UgcActivityDetailInfo.proto
+++ b/proto/UgcActivityDetailInfo.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk2700_MMJJMKMHANL.proto";
+import "OfficialCustomDungeon.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;
+ bool is_ugc_feature_closed = 10;
+ uint32 custom_dungeon_group_id = 12;
+ repeated OfficialCustomDungeon official_custom_dungeon_list = 5;
+ bool is_enable_ugc = 11;
}
diff --git a/proto/UgcMusicBriefInfo.proto b/proto/UgcMusicBriefInfo.proto
new file mode 100644
index 00000000..f2d720ae
--- /dev/null
+++ b/proto/UgcMusicBriefInfo.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 UgcMusicBriefInfo {
+ uint64 import_from_ugc_guid = 5;
+ bool is_published = 8;
+ bool is_played = 1;
+ uint32 music_id = 2;
+ uint32 save_page_type = 1182;
+ uint32 save_idx = 12;
+ string creator_nickname = 10;
+ uint32 version = 15;
+ uint32 save_time = 3;
+ repeated uint32 after_note_list = 1002;
+ repeated uint32 before_note_list = 982;
+ bool is_psn_platform = 9;
+ uint32 time_line_edit_time = 1822;
+ bool is_changed_after_publish = 11;
+ uint32 publish_time = 13;
+ uint32 max_score = 14;
+ uint32 real_time_edit_time = 576;
+ uint32 note_count = 7;
+ uint64 ugc_guid = 4;
+ uint32 self_max_score = 6;
+}
diff --git a/proto/Unk2700_DJDEPPHEHCP.proto b/proto/UgcMusicNote.proto
similarity index 97%
rename from proto/Unk2700_DJDEPPHEHCP.proto
rename to proto/UgcMusicNote.proto
index 38d89f4a..458fcb7d 100644
--- a/proto/Unk2700_DJDEPPHEHCP.proto
+++ b/proto/UgcMusicNote.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_DJDEPPHEHCP {
+message UgcMusicNote {
uint32 start_time = 12;
uint32 end_time = 5;
}
diff --git a/proto/UgcMusicTrack.proto b/proto/UgcMusicTrack.proto
new file mode 100644
index 00000000..95f3b5cf
--- /dev/null
+++ b/proto/UgcMusicTrack.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "UgcMusicNote.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message UgcMusicTrack {
+ repeated UgcMusicNote music_note_list = 6;
+}
diff --git a/proto/Unk2700_GLIILNDIPLK_ServerNotify.proto b/proto/UgcNotify.proto
similarity index 87%
rename from proto/Unk2700_GLIILNDIPLK_ServerNotify.proto
rename to proto/UgcNotify.proto
index dba59da5..cab896f9 100644
--- a/proto/Unk2700_GLIILNDIPLK_ServerNotify.proto
+++ b/proto/UgcNotify.proto
@@ -22,8 +22,8 @@ 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;
+message UgcNotify {
+ bool is_ugc_publish_ban = 12;
+ bool is_ugc_publish_feature_closed = 8;
+ bool is_ugc_feature_closed = 15;
}
diff --git a/proto/Unk2700_HHAMNOIDBPJ.proto b/proto/UgcType.proto
similarity index 93%
rename from proto/Unk2700_HHAMNOIDBPJ.proto
rename to proto/UgcType.proto
index ad25f9cc..b7222039 100644
--- a/proto/Unk2700_HHAMNOIDBPJ.proto
+++ b/proto/UgcType.proto
@@ -19,6 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_HHAMNOIDBPJ {
- float Unk2700_JFDNAOAAFMM = 9;
+enum UgcType {
+ UGC_TYPE_NONE = 0;
+ UGC_TYPE_MUSIC_GAME = 1;
}
diff --git a/proto/Unk2700_ADGLMHECKKJ.proto b/proto/Unk2700_ADGLMHECKKJ.proto
deleted file mode 100644
index c0d2d606..00000000
--- a/proto/Unk2700_ADGLMHECKKJ.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_AGIDJODJNEA.proto b/proto/Unk2700_AGIDJODJNEA.proto
deleted file mode 100644
index 7ef9320a..00000000
--- a/proto/Unk2700_AGIDJODJNEA.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_AIGECAPPCKK.proto b/proto/Unk2700_AIGECAPPCKK.proto
deleted file mode 100644
index 5566f2df..00000000
--- a/proto/Unk2700_AIGECAPPCKK.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_BGKMAAINPCO.proto b/proto/Unk2700_BGKMAAINPCO.proto
deleted file mode 100644
index 658491e6..00000000
--- a/proto/Unk2700_BGKMAAINPCO.proto
+++ /dev/null
@@ -1,28 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_BMBAIACNLDF.proto b/proto/Unk2700_BMBAIACNLDF.proto
deleted file mode 100644
index 0c4aa6a5..00000000
--- a/proto/Unk2700_BMBAIACNLDF.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_CBJEDMGOBPL.proto b/proto/Unk2700_CBJEDMGOBPL.proto
deleted file mode 100644
index 6a2290f3..00000000
--- a/proto/Unk2700_CBJEDMGOBPL.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_CEEONDKDIHH_ClientReq.proto b/proto/Unk2700_CEEONDKDIHH_ClientReq.proto
deleted file mode 100644
index 7b0a1360..00000000
--- a/proto/Unk2700_CEEONDKDIHH_ClientReq.proto
+++ /dev/null
@@ -1,29 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_CKMOPKMKCAO.proto b/proto/Unk2700_CKMOPKMKCAO.proto
deleted file mode 100644
index 85647072..00000000
--- a/proto/Unk2700_CKMOPKMKCAO.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_EAJCGENDICI.proto b/proto/Unk2700_EAJCGENDICI.proto
deleted file mode 100644
index 308f4af4..00000000
--- a/proto/Unk2700_EAJCGENDICI.proto
+++ /dev/null
@@ -1,29 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_EEPNCOAEKBM.proto b/proto/Unk2700_EEPNCOAEKBM.proto
deleted file mode 100644
index 03085cd3..00000000
--- a/proto/Unk2700_EEPNCOAEKBM.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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
deleted file mode 100644
index 29f54f84..00000000
--- a/proto/Unk2700_EGKIHLIOLDM.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_ELMEOJFCOFH.proto b/proto/Unk2700_ELMEOJFCOFH.proto
deleted file mode 100644
index 7d9000bb..00000000
--- a/proto/Unk2700_ELMEOJFCOFH.proto
+++ /dev/null
@@ -1,28 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_FCJOEKKHPLB.proto b/proto/Unk2700_FCJOEKKHPLB.proto
deleted file mode 100644
index a9faea9a..00000000
--- a/proto/Unk2700_FCJOEKKHPLB.proto
+++ /dev/null
@@ -1,29 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_FHOKHHBGPEG.proto b/proto/Unk2700_FHOKHHBGPEG.proto
deleted file mode 100644
index b291a03f..00000000
--- a/proto/Unk2700_FHOKHHBGPEG.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_FJEHHCPCBLG_ServerNotify.proto b/proto/Unk2700_FJEHHCPCBLG_ServerNotify.proto
deleted file mode 100644
index 5a51f256..00000000
--- a/proto/Unk2700_FJEHHCPCBLG_ServerNotify.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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
deleted file mode 100644
index 2893d17a..00000000
--- a/proto/Unk2700_FJJFKOEACCE.proto
+++ /dev/null
@@ -1,30 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_FLGMLEFJHBB_ClientReq.proto b/proto/Unk2700_FLGMLEFJHBB_ClientReq.proto
deleted file mode 100644
index 700fb480..00000000
--- a/proto/Unk2700_FLGMLEFJHBB_ClientReq.proto
+++ /dev/null
@@ -1,29 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_GALDCKFKPEK.proto b/proto/Unk2700_GALDCKFKPEK.proto
deleted file mode 100644
index 79f4198c..00000000
--- a/proto/Unk2700_GALDCKFKPEK.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_GBHAPPCDCIL.proto b/proto/Unk2700_GBHAPPCDCIL.proto
deleted file mode 100644
index 3398d95c..00000000
--- a/proto/Unk2700_GBHAPPCDCIL.proto
+++ /dev/null
@@ -1,28 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_HBOFACHAGIF_ServerNotify.proto b/proto/Unk2700_HBOFACHAGIF_ServerNotify.proto
deleted file mode 100644
index b46ee287..00000000
--- a/proto/Unk2700_HBOFACHAGIF_ServerNotify.proto
+++ /dev/null
@@ -1,29 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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
deleted file mode 100644
index eb03fc9d..00000000
--- a/proto/Unk2700_HDBFJJOBIAP_ClientReq.proto
+++ /dev/null
@@ -1,31 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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
deleted file mode 100644
index 3eafeb28..00000000
--- a/proto/Unk2700_HEMFKLPNNOM.proto
+++ /dev/null
@@ -1,29 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_HGMCNJOPDAA.proto b/proto/Unk2700_HGMCNJOPDAA.proto
deleted file mode 100644
index ada69174..00000000
--- a/proto/Unk2700_HGMCNJOPDAA.proto
+++ /dev/null
@@ -1,25 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_HHGMCHANCBJ_ServerNotify.proto b/proto/Unk2700_HHGMCHANCBJ_ServerNotify.proto
deleted file mode 100644
index 8e5bdb3a..00000000
--- a/proto/Unk2700_HHGMCHANCBJ_ServerNotify.proto
+++ /dev/null
@@ -1,34 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_IEFGLPNHHAJ.proto b/proto/Unk2700_IEFGLPNHHAJ.proto
deleted file mode 100644
index e6caf335..00000000
--- a/proto/Unk2700_IEFGLPNHHAJ.proto
+++ /dev/null
@@ -1,25 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_IGAFEBCFJEJ.proto b/proto/Unk2700_IGAFEBCFJEJ.proto
deleted file mode 100644
index 115e0a3d..00000000
--- a/proto/Unk2700_IGAFEBCFJEJ.proto
+++ /dev/null
@@ -1,25 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_IGPIIHEDJLJ_ServerRsp.proto b/proto/Unk2700_IGPIIHEDJLJ_ServerRsp.proto
deleted file mode 100644
index 3c8c6826..00000000
--- a/proto/Unk2700_IGPIIHEDJLJ_ServerRsp.proto
+++ /dev/null
@@ -1,33 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_IMGLPJNBHCH.proto b/proto/Unk2700_IMGLPJNBHCH.proto
deleted file mode 100644
index 7a42e66e..00000000
--- a/proto/Unk2700_IMGLPJNBHCH.proto
+++ /dev/null
@@ -1,25 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_INMNHKOPCFB.proto b/proto/Unk2700_INMNHKOPCFB.proto
deleted file mode 100644
index 2dccabe3..00000000
--- a/proto/Unk2700_INMNHKOPCFB.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_IOONEPPHCJP.proto b/proto/Unk2700_IOONEPPHCJP.proto
deleted file mode 100644
index e6c6e41f..00000000
--- a/proto/Unk2700_IOONEPPHCJP.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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
deleted file mode 100644
index c251aeba..00000000
--- a/proto/Unk2700_IPGJEAEFJMM_ServerRsp.proto
+++ /dev/null
@@ -1,41 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_JCNIPOJMFMH.proto b/proto/Unk2700_JCNIPOJMFMH.proto
deleted file mode 100644
index b1188e3b..00000000
--- a/proto/Unk2700_JCNIPOJMFMH.proto
+++ /dev/null
@@ -1,30 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_JJAFAJIKDDK_ServerRsp.proto b/proto/Unk2700_JJAFAJIKDDK_ServerRsp.proto
deleted file mode 100644
index 6324d089..00000000
--- a/proto/Unk2700_JJAFAJIKDDK_ServerRsp.proto
+++ /dev/null
@@ -1,35 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_JOEPIGNPDGH.proto b/proto/Unk2700_JOEPIGNPDGH.proto
deleted file mode 100644
index 222a1e26..00000000
--- a/proto/Unk2700_JOEPIGNPDGH.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_KBBDJNLFAKD.proto b/proto/Unk2700_KBBDJNLFAKD.proto
deleted file mode 100644
index 3dab1d40..00000000
--- a/proto/Unk2700_KBBDJNLFAKD.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_KHLJJPGOELG_ClientReq.proto b/proto/Unk2700_KHLJJPGOELG_ClientReq.proto
deleted file mode 100644
index 4ebb5163..00000000
--- a/proto/Unk2700_KHLJJPGOELG_ClientReq.proto
+++ /dev/null
@@ -1,33 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_KNGDOIDOFFB.proto b/proto/Unk2700_KNGDOIDOFFB.proto
deleted file mode 100644
index f4b2d062..00000000
--- a/proto/Unk2700_KNGDOIDOFFB.proto
+++ /dev/null
@@ -1,28 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_LGAGHFKFFDO_ServerRsp.proto b/proto/Unk2700_LGAGHFKFFDO_ServerRsp.proto
deleted file mode 100644
index 6ca9c909..00000000
--- a/proto/Unk2700_LGAGHFKFFDO_ServerRsp.proto
+++ /dev/null
@@ -1,31 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_LKPBBMPFPPE_ClientReq.proto b/proto/Unk2700_LKPBBMPFPPE_ClientReq.proto
deleted file mode 100644
index acc64aca..00000000
--- a/proto/Unk2700_LKPBBMPFPPE_ClientReq.proto
+++ /dev/null
@@ -1,36 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_MHPCNKJGEJN.proto b/proto/Unk2700_MHPCNKJGEJN.proto
deleted file mode 100644
index ccf751dc..00000000
--- a/proto/Unk2700_MHPCNKJGEJN.proto
+++ /dev/null
@@ -1,24 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_MJGFEHOMKJE.proto b/proto/Unk2700_MJGFEHOMKJE.proto
deleted file mode 100644
index bb867979..00000000
--- a/proto/Unk2700_MJGFEHOMKJE.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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
deleted file mode 100644
index 4276d72f..00000000
--- a/proto/Unk2700_MKAFBOPFDEF_ServerNotify.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_MOFABPNGIKP.proto b/proto/Unk2700_MOFABPNGIKP.proto
deleted file mode 100644
index 9fc0d80e..00000000
--- a/proto/Unk2700_MOFABPNGIKP.proto
+++ /dev/null
@@ -1,33 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_NCNPNMFFONG.proto b/proto/Unk2700_NCNPNMFFONG.proto
deleted file mode 100644
index 3696651c..00000000
--- a/proto/Unk2700_NCNPNMFFONG.proto
+++ /dev/null
@@ -1,30 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_NGPMINKIOPK.proto b/proto/Unk2700_NGPMINKIOPK.proto
deleted file mode 100644
index f68227c1..00000000
--- a/proto/Unk2700_NGPMINKIOPK.proto
+++ /dev/null
@@ -1,30 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_NLFDMMFNMIO.proto b/proto/Unk2700_NLFDMMFNMIO.proto
deleted file mode 100644
index 1d7b3a8e..00000000
--- a/proto/Unk2700_NLFDMMFNMIO.proto
+++ /dev/null
@@ -1,30 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_NOCLNCCJEGK.proto b/proto/Unk2700_NOCLNCCJEGK.proto
deleted file mode 100644
index e73f7eac..00000000
--- a/proto/Unk2700_NOCLNCCJEGK.proto
+++ /dev/null
@@ -1,25 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_NPOBPFNDJKK.proto b/proto/Unk2700_NPOBPFNDJKK.proto
deleted file mode 100644
index cdd241ce..00000000
--- a/proto/Unk2700_NPOBPFNDJKK.proto
+++ /dev/null
@@ -1,30 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_OCOKILBJIPJ.proto b/proto/Unk2700_OCOKILBJIPJ.proto
deleted file mode 100644
index 2190139b..00000000
--- a/proto/Unk2700_OCOKILBJIPJ.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_OHBMICGFIIK.proto b/proto/Unk2700_OHBMICGFIIK.proto
deleted file mode 100644
index b34e8eb5..00000000
--- a/proto/Unk2700_OHBMICGFIIK.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_OPEBMJPOOBL.proto b/proto/Unk2700_OPEBMJPOOBL.proto
deleted file mode 100644
index 0f19a245..00000000
--- a/proto/Unk2700_OPEBMJPOOBL.proto
+++ /dev/null
@@ -1,25 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_PDGLEKKMCBD.proto b/proto/Unk2700_PDGLEKKMCBD.proto
deleted file mode 100644
index 3d8d01d8..00000000
--- a/proto/Unk2700_PDGLEKKMCBD.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_PGFLJBBEBKG.proto b/proto/Unk2700_PGFLJBBEBKG.proto
deleted file mode 100644
index 26d19b40..00000000
--- a/proto/Unk2700_PGFLJBBEBKG.proto
+++ /dev/null
@@ -1,25 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_PHGGAEDHLBN.proto b/proto/Unk2700_PHGGAEDHLBN.proto
deleted file mode 100644
index 0d953678..00000000
--- a/proto/Unk2700_PHGGAEDHLBN.proto
+++ /dev/null
@@ -1,30 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_PIAFGFGHGHM.proto b/proto/Unk2700_PIAFGFGHGHM.proto
deleted file mode 100644
index 771d1f86..00000000
--- a/proto/Unk2700_PIAFGFGHGHM.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_PJPMOLPHNEH.proto b/proto/Unk2700_PJPMOLPHNEH.proto
deleted file mode 100644
index 2579187d..00000000
--- a/proto/Unk2700_PJPMOLPHNEH.proto
+++ /dev/null
@@ -1,30 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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
deleted file mode 100644
index 9d6e55c9..00000000
--- a/proto/Unk2700_PKAPCOBGIJL.proto
+++ /dev/null
@@ -1,25 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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/Unk2800_FDLKPKFOIIK.proto b/proto/Unk2800_FDLKPKFOIIK.proto
deleted file mode 100644
index 1fe98139..00000000
--- a/proto/Unk2800_FDLKPKFOIIK.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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
deleted file mode 100644
index 1b50ba70..00000000
--- a/proto/Unk2800_FGFMMFAKDEL.proto
+++ /dev/null
@@ -1,28 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_FMAOEPEBKHB.proto b/proto/Unk2800_FMAOEPEBKHB.proto
deleted file mode 100644
index 3768b91b..00000000
--- a/proto/Unk2800_FMAOEPEBKHB.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_IMLDGLIMODE.proto b/proto/Unk2800_IMLDGLIMODE.proto
deleted file mode 100644
index 5be691f2..00000000
--- a/proto/Unk2800_IMLDGLIMODE.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_PHPHMILPOLC.proto b/proto/Unk2800_PHPHMILPOLC.proto
deleted file mode 100644
index 545747c0..00000000
--- a/proto/Unk2800_PHPHMILPOLC.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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
deleted file mode 100644
index 50b45f1a..00000000
--- a/proto/Unk3000_ACNMEFGKHKO.proto
+++ /dev/null
@@ -1,30 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_AHNHHIOAHBC.proto b/proto/Unk3000_AHNHHIOAHBC.proto
deleted file mode 100644
index ae7db209..00000000
--- a/proto/Unk3000_AHNHHIOAHBC.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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
deleted file mode 100644
index 0f012e1f..00000000
--- a/proto/Unk3000_ALPEACOMIPG.proto
+++ /dev/null
@@ -1,28 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_BGPMEPKCLPA.proto b/proto/Unk3000_BGPMEPKCLPA.proto
deleted file mode 100644
index c1a84585..00000000
--- a/proto/Unk3000_BGPMEPKCLPA.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_CMEPCFFDIGL.proto b/proto/Unk3000_CMEPCFFDIGL.proto
deleted file mode 100644
index 0b73679c..00000000
--- a/proto/Unk3000_CMEPCFFDIGL.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_EDGJEBLODLF.proto b/proto/Unk3000_EDGJEBLODLF.proto
deleted file mode 100644
index d30633c4..00000000
--- a/proto/Unk3000_EDGJEBLODLF.proto
+++ /dev/null
@@ -1,30 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_ENLDIHLGNCK.proto b/proto/Unk3000_ENLDIHLGNCK.proto
deleted file mode 100644
index dab2da8a..00000000
--- a/proto/Unk3000_ENLDIHLGNCK.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_FFOBEKMOHOI.proto b/proto/Unk3000_FFOBEKMOHOI.proto
deleted file mode 100644
index 5d62bec5..00000000
--- a/proto/Unk3000_FFOBEKMOHOI.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_GDDGGJIFNCH.proto b/proto/Unk3000_GDDGGJIFNCH.proto
deleted file mode 100644
index a1009fb4..00000000
--- a/proto/Unk3000_GDDGGJIFNCH.proto
+++ /dev/null
@@ -1,28 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_ILLNKBDNGKP.proto b/proto/Unk3000_ILLNKBDNGKP.proto
deleted file mode 100644
index 59a8852d..00000000
--- a/proto/Unk3000_ILLNKBDNGKP.proto
+++ /dev/null
@@ -1,28 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_INJDOLGMLAG.proto b/proto/Unk3000_INJDOLGMLAG.proto
deleted file mode 100644
index b549891b..00000000
--- a/proto/Unk3000_INJDOLGMLAG.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_KEJLPBEOHNH.proto b/proto/Unk3000_KEJLPBEOHNH.proto
deleted file mode 100644
index e93bdb66..00000000
--- a/proto/Unk3000_KEJLPBEOHNH.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_KJNIKBPKAED.proto b/proto/Unk3000_KJNIKBPKAED.proto
deleted file mode 100644
index 34321b4c..00000000
--- a/proto/Unk3000_KJNIKBPKAED.proto
+++ /dev/null
@@ -1,29 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_LNCOEOMFKAO.proto b/proto/Unk3000_LNCOEOMFKAO.proto
deleted file mode 100644
index 1ca9988e..00000000
--- a/proto/Unk3000_LNCOEOMFKAO.proto
+++ /dev/null
@@ -1,25 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_MFHOOFLHNPH.proto b/proto/Unk3000_MFHOOFLHNPH.proto
deleted file mode 100644
index 75c04066..00000000
--- a/proto/Unk3000_MFHOOFLHNPH.proto
+++ /dev/null
@@ -1,29 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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
deleted file mode 100644
index deb6e361..00000000
--- a/proto/Unk3000_MOIPPIJMIJC.proto
+++ /dev/null
@@ -1,30 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_OFMFFECMKLE.proto b/proto/Unk3000_OFMFFECMKLE.proto
deleted file mode 100644
index 9045292f..00000000
--- a/proto/Unk3000_OFMFFECMKLE.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_PKHPBOIDLEA.proto b/proto/Unk3000_PKHPBOIDLEA.proto
deleted file mode 100644
index eda22a77..00000000
--- a/proto/Unk3000_PKHPBOIDLEA.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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_PONJHEGKBBP.proto b/proto/Unk3000_PONJHEGKBBP.proto
deleted file mode 100644
index 9c67acdd..00000000
--- a/proto/Unk3000_PONJHEGKBBP.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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
deleted file mode 100644
index a112de9f..00000000
--- a/proto/Unk3000_PPDLLPNMJMK.proto
+++ /dev/null
@@ -1,29 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_GINCGFOCGAI.proto b/proto/Unk3100_GINCGFOCGAI.proto
deleted file mode 100644
index 0cbec524..00000000
--- a/proto/Unk3100_GINCGFOCGAI.proto
+++ /dev/null
@@ -1,28 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_HJALLGOLFGL.proto b/proto/Unk3100_HJALLGOLFGL.proto
deleted file mode 100644
index 9d0859ae..00000000
--- a/proto/Unk3100_HJALLGOLFGL.proto
+++ /dev/null
@@ -1,28 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a 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
deleted file mode 100644
index 6ff084ae..00000000
--- a/proto/Unk3100_IALGADDCFNN.proto
+++ /dev/null
@@ -1,28 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_JKGDHFGAJMH_FirstStageInfo.proto b/proto/Unk3100_JKGDHFGAJMH_FirstStageInfo.proto
deleted file mode 100644
index b62b89bc..00000000
--- a/proto/Unk3100_JKGDHFGAJMH_FirstStageInfo.proto
+++ /dev/null
@@ -1,27 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_LFIMJOCPILC.proto b/proto/Unk3100_LFIMJOCPILC.proto
deleted file mode 100644
index 5147ae80..00000000
--- a/proto/Unk3100_LFIMJOCPILC.proto
+++ /dev/null
@@ -1,24 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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
deleted file mode 100644
index 9e39d1b6..00000000
--- a/proto/Unk3100_MCIBDBBEKEK.proto
+++ /dev/null
@@ -1,25 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more details.
-//
-// You should have received a copy 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_NBBMHKJHJJI.proto b/proto/Unk3100_NBBMHKJHJJI.proto
deleted file mode 100644
index 42d50428..00000000
--- a/proto/Unk3100_NBBMHKJHJJI.proto
+++ /dev/null
@@ -1,48 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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_OMJPPGKDLEE.proto b/proto/Unk3100_OMJPPGKDLEE.proto
deleted file mode 100644
index 2db66ed7..00000000
--- a/proto/Unk3100_OMJPPGKDLEE.proto
+++ /dev/null
@@ -1,26 +0,0 @@
-// Proto has been converted from Sorapointa to Grasscutter format
-// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
-// Copyright (C) 2022 Sorapointa Team
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Affero General Public License for more 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/Unk3150_ANPCHELGJNH.proto b/proto/Unk3150_ANPCHELGJNH.proto
new file mode 100644
index 00000000..4041c5d7
--- /dev/null
+++ b/proto/Unk3150_ANPCHELGJNH.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 Unk3150_ANPCHELGJNH {
+ string name = 1;
+ string Unk3150_IFEHBFDGEED = 2;
+}
diff --git a/proto/Unk3000_OJOAECCPCBP.proto b/proto/Unk3150_IMJOACIFIAB.proto
similarity index 96%
rename from proto/Unk3000_OJOAECCPCBP.proto
rename to proto/Unk3150_IMJOACIFIAB.proto
index 26f2aa72..f1f3bf2d 100644
--- a/proto/Unk3000_OJOAECCPCBP.proto
+++ b/proto/Unk3150_IMJOACIFIAB.proto
@@ -19,4 +19,4 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3000_OJOAECCPCBP {}
+message Unk3150_IMJOACIFIAB {}
diff --git a/proto/Unk2700_GPOIPAHPHJE.proto b/proto/UpdateSalvageBundleMarkReq.proto
similarity index 96%
rename from proto/Unk2700_GPOIPAHPHJE.proto
rename to proto/UpdateSalvageBundleMarkReq.proto
index c4674cf9..d8f3a1ae 100644
--- a/proto/Unk2700_GPOIPAHPHJE.proto
+++ b/proto/UpdateSalvageBundleMarkReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_GPOIPAHPHJE {
+message UpdateSalvageBundleMarkReq {
uint32 stage_id = 14;
uint32 challenge_type = 13;
}
diff --git a/proto/Unk2700_NKIEIGPLMIO.proto b/proto/UpdateSalvageBundleMarkRsp.proto
similarity index 96%
rename from proto/Unk2700_NKIEIGPLMIO.proto
rename to proto/UpdateSalvageBundleMarkRsp.proto
index 2af3f039..df919055 100644
--- a/proto/Unk2700_NKIEIGPLMIO.proto
+++ b/proto/UpdateSalvageBundleMarkRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8459
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_NKIEIGPLMIO {
+message UpdateSalvageBundleMarkRsp {
uint32 challenge_type = 1;
int32 retcode = 4;
uint32 stage_id = 7;
diff --git a/proto/ViewCodexRsp.proto b/proto/ViewCodexRsp.proto
index 08588ccf..23a7f7b5 100644
--- a/proto/ViewCodexRsp.proto
+++ b/proto/ViewCodexRsp.proto
@@ -26,8 +26,8 @@ option java_package = "emu.grasscutter.net.proto";
// EnetIsReliable: true
message ViewCodexRsp {
int32 retcode = 12;
- repeated uint32 Unk2800_IPOCJIPGNEJ = 10;
- repeated uint32 Unk2700_DFJJHFHHIHF = 3;
+ repeated uint32 push_tips_reward_list = 10;
+ repeated uint32 recent_viewed_pushtips_list = 3;
repeated CodexTypeData type_data_list = 9;
- repeated uint32 Unk2800_OIPJCEPGJCF = 15;
+ repeated uint32 push_tips_read_list = 15;
}
diff --git a/proto/Unk2700_PCBGAIAJPHH.proto b/proto/ViewLanternProjectionLevelTipsReq.proto
similarity index 96%
rename from proto/Unk2700_PCBGAIAJPHH.proto
rename to proto/ViewLanternProjectionLevelTipsReq.proto
index fdab8b4a..91b5b79f 100644
--- a/proto/Unk2700_PCBGAIAJPHH.proto
+++ b/proto/ViewLanternProjectionLevelTipsReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_PCBGAIAJPHH {
+message ViewLanternProjectionLevelTipsReq {
uint32 level_id = 7;
}
diff --git a/proto/Unk2700_DJMKFGKGAEA.proto b/proto/ViewLanternProjectionLevelTipsRsp.proto
similarity index 95%
rename from proto/Unk2700_DJMKFGKGAEA.proto
rename to proto/ViewLanternProjectionLevelTipsRsp.proto
index 2211cb8c..e24ae316 100644
--- a/proto/Unk2700_DJMKFGKGAEA.proto
+++ b/proto/ViewLanternProjectionLevelTipsRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8411
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_DJMKFGKGAEA {
+message ViewLanternProjectionLevelTipsRsp {
int32 retcode = 15;
}
diff --git a/proto/Unk2700_KKEDIMOKCGD.proto b/proto/ViewLanternProjectionTipsReq.proto
similarity index 87%
rename from proto/Unk2700_KKEDIMOKCGD.proto
rename to proto/ViewLanternProjectionTipsReq.proto
index 17130c71..ccacb6ba 100644
--- a/proto/Unk2700_KKEDIMOKCGD.proto
+++ b/proto/ViewLanternProjectionTipsReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2700_EEPNCOAEKBM.proto";
+import "ClientInputType.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,7 +25,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_KKEDIMOKCGD {
- bool Unk2700_NHBDAFBHNMH = 9;
- Unk2700_EEPNCOAEKBM Unk2700_KEAGHCIIGGN = 10;
+message ViewLanternProjectionTipsReq {
+ bool is_input_tips = 9;
+ ClientInputType input_type = 10;
}
diff --git a/proto/Unk2700_BOPIJJPNHCK.proto b/proto/ViewLanternProjectionTipsRsp.proto
similarity index 96%
rename from proto/Unk2700_BOPIJJPNHCK.proto
rename to proto/ViewLanternProjectionTipsRsp.proto
index f197b4b1..d1bacfac 100644
--- a/proto/Unk2700_BOPIJJPNHCK.proto
+++ b/proto/ViewLanternProjectionTipsRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8590
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_BOPIJJPNHCK {
+message ViewLanternProjectionTipsRsp {
int32 retcode = 4;
}
diff --git a/proto/Unk3100_AHIKHIOFBJJ.proto b/proto/VintageBoothUsedItemData.proto
similarity index 96%
rename from proto/Unk3100_AHIKHIOFBJJ.proto
rename to proto/VintageBoothUsedItemData.proto
index 406693bd..211c2e50 100644
--- a/proto/Unk3100_AHIKHIOFBJJ.proto
+++ b/proto/VintageBoothUsedItemData.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3100_AHIKHIOFBJJ {
+message VintageBoothUsedItemData {
bool is_open = 7;
uint32 gadget_id = 8;
}
diff --git a/proto/Unk3100_BDEGPHDCIDN.proto b/proto/VintageCampChallengeLevelData.proto
similarity index 94%
rename from proto/Unk3100_BDEGPHDCIDN.proto
rename to proto/VintageCampChallengeLevelData.proto
index 02e01d39..e1267892 100644
--- a/proto/Unk3100_BDEGPHDCIDN.proto
+++ b/proto/VintageCampChallengeLevelData.proto
@@ -19,9 +19,9 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3100_BDEGPHDCIDN {
+message VintageCampChallengeLevelData {
uint32 stage_id = 14;
uint32 level_id = 11;
- bool Unk2700_MMNILGLDHHD = 8;
+ bool is_finish = 8;
bool is_open = 6;
}
diff --git a/proto/Unk3100_FHDBCIIMLLP.proto b/proto/VintageCampChallengeStageData.proto
similarity index 83%
rename from proto/Unk3100_FHDBCIIMLLP.proto
rename to proto/VintageCampChallengeStageData.proto
index c4ee86f9..83c68907 100644
--- a/proto/Unk3100_FHDBCIIMLLP.proto
+++ b/proto/VintageCampChallengeStageData.proto
@@ -17,15 +17,15 @@
syntax = "proto3";
-import "Unk3100_BDEGPHDCIDN.proto";
+import "VintageCampChallengeLevelData.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk3100_FHDBCIIMLLP {
+message VintageCampChallengeStageData {
bool is_open = 5;
- uint32 Unk3100_OJNFPCDHBLH = 11;
+ uint32 max_finished_level = 11;
uint32 open_time = 3;
- bool Unk2700_MMNILGLDHHD = 10;
+ bool is_finish = 10;
uint32 stage_id = 4;
- map Unk3100_PBAJFKPPMMF = 2;
+ map camp_level_map = 2;
}
diff --git a/proto/Unk3100_BPALEKJDCCC.proto b/proto/VintageCampGroupBundleRegisterNotify.proto
similarity index 92%
rename from proto/Unk3100_BPALEKJDCCC.proto
rename to proto/VintageCampGroupBundleRegisterNotify.proto
index 63566cfb..ff6d22d9 100644
--- a/proto/Unk3100_BPALEKJDCCC.proto
+++ b/proto/VintageCampGroupBundleRegisterNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 24244
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_BPALEKJDCCC {
- uint32 Unk3000_OHKPPFPNKNF = 10;
+message VintageCampGroupBundleRegisterNotify {
+ uint32 group_bundle_id = 10;
}
diff --git a/proto/Unk3100_JBBEJECGEFI.proto b/proto/VintageCampStageFinishNotify.proto
similarity index 96%
rename from proto/Unk3100_JBBEJECGEFI.proto
rename to proto/VintageCampStageFinishNotify.proto
index c6956ebf..26bf8f5f 100644
--- a/proto/Unk3100_JBBEJECGEFI.proto
+++ b/proto/VintageCampStageFinishNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 22830
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_JBBEJECGEFI {
+message VintageCampStageFinishNotify {
uint32 stage_id = 11;
}
diff --git a/proto/Unk3100_OIDABBJEMCG.proto b/proto/VintageDecorateBoothReq.proto
similarity index 93%
rename from proto/Unk3100_OIDABBJEMCG.proto
rename to proto/VintageDecorateBoothReq.proto
index 50fd7bbd..7cb15613 100644
--- a/proto/Unk3100_OIDABBJEMCG.proto
+++ b/proto/VintageDecorateBoothReq.proto
@@ -25,7 +25,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3100_OIDABBJEMCG {
+message VintageDecorateBoothReq {
uint32 entity_id = 6;
- CustomGadgetTreeInfo Unk2700_OCIHJFOKHPK = 11;
+ CustomGadgetTreeInfo combination_info = 11;
}
diff --git a/proto/Unk3100_LDKPEAGMAGH.proto b/proto/VintageDecorateBoothRsp.proto
similarity index 96%
rename from proto/Unk3100_LDKPEAGMAGH.proto
rename to proto/VintageDecorateBoothRsp.proto
index 6c01a6d6..6b3adc45 100644
--- a/proto/Unk3100_LDKPEAGMAGH.proto
+++ b/proto/VintageDecorateBoothRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 20993
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_LDKPEAGMAGH {
+message VintageDecorateBoothRsp {
int32 retcode = 1;
}
diff --git a/proto/VintageDetailInfo.proto b/proto/VintageDetailInfo.proto
index d6f7d936..89fb6014 100644
--- a/proto/VintageDetailInfo.proto
+++ b/proto/VintageDetailInfo.proto
@@ -17,19 +17,19 @@
syntax = "proto3";
-import "Unk3100_AHIKHIOFBJJ.proto";
-import "Unk3100_FHDBCIIMLLP.proto";
-import "Unk3100_HEJFCDEKFOE.proto";
-import "Unk3100_IOJKKDNELHE.proto";
-import "Unk3100_NBBMHKJHJJI.proto";
+import "VintageBoothUsedItemData.proto";
+import "VintageCampChallengeStageData.proto";
+import "VintageHuntingStageData.proto";
+import "VintageMarketInfo.proto";
+import "VintagePresentStageData.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;
+ VintageMarketInfo market_info = 2;
+ map hunting_stage_map = 7;
+ VintageBoothUsedItemData booth_data = 5;
+ map camp_stage_map = 13;
+ map present_stage_map = 4;
bool is_content_closed = 11;
}
diff --git a/proto/VintageHuntingFirstStageInfo.proto b/proto/VintageHuntingFirstStageInfo.proto
new file mode 100644
index 00000000..2660f1d7
--- /dev/null
+++ b/proto/VintageHuntingFirstStageInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message VintageHuntingFirstStageInfo {
+ uint32 timid_cnt = 15;
+ uint32 brutal_cnt = 7;
+ uint32 score = 14;
+ uint32 elite_cnt = 11;
+}
diff --git a/proto/VintageHuntingFirstStageSettleInfo.proto b/proto/VintageHuntingFirstStageSettleInfo.proto
new file mode 100644
index 00000000..a438c480
--- /dev/null
+++ b/proto/VintageHuntingFirstStageSettleInfo.proto
@@ -0,0 +1,27 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message VintageHuntingFirstStageSettleInfo {
+ uint32 elite_cnt = 10;
+ uint32 timid_cnt = 2;
+ uint32 brutal_cnt = 6;
+ uint32 score = 14;
+}
diff --git a/proto/SceneGalleryVintageHuntingSecondStageInfo.proto b/proto/VintageHuntingSecondStageInfo.proto
similarity index 88%
rename from proto/SceneGalleryVintageHuntingSecondStageInfo.proto
rename to proto/VintageHuntingSecondStageInfo.proto
index 0e09624d..3c42898e 100644
--- a/proto/SceneGalleryVintageHuntingSecondStageInfo.proto
+++ b/proto/VintageHuntingSecondStageInfo.proto
@@ -19,8 +19,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message SceneGalleryVintageHuntingSecondStageInfo {
+message VintageHuntingSecondStageInfo {
uint32 total_num = 11;
- uint32 Unk3100_IFMAFOGLKOO = 13;
- uint32 Unk3100_KDKPDILFKFK = 3;
+ uint32 capture_animal_num = 13;
+ uint32 left_num = 3;
}
diff --git a/proto/Unk3100_JKGDHFGAJMH_SecondStageInfo.proto b/proto/VintageHuntingSecondStageSettleInfo.proto
similarity index 88%
rename from proto/Unk3100_JKGDHFGAJMH_SecondStageInfo.proto
rename to proto/VintageHuntingSecondStageSettleInfo.proto
index a758623b..e72b0ddc 100644
--- a/proto/Unk3100_JKGDHFGAJMH_SecondStageInfo.proto
+++ b/proto/VintageHuntingSecondStageSettleInfo.proto
@@ -19,8 +19,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3100_JKGDHFGAJMH_SecondStageInfo {
- map Unk3100_IDNCFGLFIPF = 6;
- uint32 Unk3100_IFMAFOGLKOO = 7;
+message VintageHuntingSecondStageSettleInfo {
+ map animal_count_map = 6;
+ uint32 capture_animal_num = 7;
uint32 total_num = 15;
}
diff --git a/proto/Unk3100_HEJFCDEKFOE.proto b/proto/VintageHuntingStageData.proto
similarity index 91%
rename from proto/Unk3100_HEJFCDEKFOE.proto
rename to proto/VintageHuntingStageData.proto
index 80f48a1a..81136599 100644
--- a/proto/Unk3100_HEJFCDEKFOE.proto
+++ b/proto/VintageHuntingStageData.proto
@@ -19,10 +19,10 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3100_HEJFCDEKFOE {
+message VintageHuntingStageData {
uint32 open_time = 10;
- bool Unk2700_MMNILGLDHHD = 3;
+ bool is_finish = 3;
bool is_open = 9;
- uint32 Unk3100_HBJLJFAPPCC = 12;
+ uint32 record_value = 12;
uint32 stage_id = 7;
}
diff --git a/proto/Unk3100_DFOIHKPBGPD.proto b/proto/VintageHuntingStartGalleryReq.proto
similarity index 96%
rename from proto/Unk3100_DFOIHKPBGPD.proto
rename to proto/VintageHuntingStartGalleryReq.proto
index 7c67de33..47454705 100644
--- a/proto/Unk3100_DFOIHKPBGPD.proto
+++ b/proto/VintageHuntingStartGalleryReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3100_DFOIHKPBGPD {
+message VintageHuntingStartGalleryReq {
uint32 stage_id = 7;
}
diff --git a/proto/Unk3100_DJEOICDIKKD.proto b/proto/VintageHuntingStartGalleryRsp.proto
similarity index 96%
rename from proto/Unk3100_DJEOICDIKKD.proto
rename to proto/VintageHuntingStartGalleryRsp.proto
index e5b8e923..e77950b2 100644
--- a/proto/Unk3100_DJEOICDIKKD.proto
+++ b/proto/VintageHuntingStartGalleryRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 21951
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_DJEOICDIKKD {
+message VintageHuntingStartGalleryRsp {
int32 retcode = 4;
}
diff --git a/proto/VintageHuntingThirdStageInfo.proto b/proto/VintageHuntingThirdStageInfo.proto
new file mode 100644
index 00000000..903c1b2f
--- /dev/null
+++ b/proto/VintageHuntingThirdStageInfo.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 VintageHuntingThirdStageInfo {}
diff --git a/proto/Unk3100_JKGDHFGAJMH_ThirdStageInfo.proto b/proto/VintageHuntingThirdStageSettleInfo.proto
similarity index 95%
rename from proto/Unk3100_JKGDHFGAJMH_ThirdStageInfo.proto
rename to proto/VintageHuntingThirdStageSettleInfo.proto
index 35b006ca..1e155e84 100644
--- a/proto/Unk3100_JKGDHFGAJMH_ThirdStageInfo.proto
+++ b/proto/VintageHuntingThirdStageSettleInfo.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3100_JKGDHFGAJMH_ThirdStageInfo {
+message VintageHuntingThirdStageSettleInfo {
uint32 left_time = 13;
bool is_success = 9;
}
diff --git a/proto/VintageMarketDealInfo.proto b/proto/VintageMarketDealInfo.proto
new file mode 100644
index 00000000..fa871f8a
--- /dev/null
+++ b/proto/VintageMarketDealInfo.proto
@@ -0,0 +1,26 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+import "VintageMarketTraderInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message VintageMarketDealInfo {
+ map trader_item_info_map = 13;
+}
diff --git a/proto/Unk3100_PEBEPNKENON.proto b/proto/VintageMarketDeliverItemReq.proto
similarity index 90%
rename from proto/Unk3100_PEBEPNKENON.proto
rename to proto/VintageMarketDeliverItemReq.proto
index 1aba2e63..f818fd49 100644
--- a/proto/Unk3100_PEBEPNKENON.proto
+++ b/proto/VintageMarketDeliverItemReq.proto
@@ -25,7 +25,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3100_PEBEPNKENON {
- repeated ItemParam Unk3100_JDNHCGPELBA = 3;
- uint32 Unk3100_FOOACIGDBFB = 5;
+message VintageMarketDeliverItemReq {
+ repeated ItemParam deliver_item_list = 3;
+ uint32 trader_id = 5;
}
diff --git a/proto/Unk3100_FMAINCNFHOL.proto b/proto/VintageMarketDeliverItemRsp.proto
similarity index 94%
rename from proto/Unk3100_FMAINCNFHOL.proto
rename to proto/VintageMarketDeliverItemRsp.proto
index 51193584..d60fce16 100644
--- a/proto/Unk3100_FMAINCNFHOL.proto
+++ b/proto/VintageMarketDeliverItemRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 22181
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_FMAINCNFHOL {
+message VintageMarketDeliverItemRsp {
int32 retcode = 6;
- uint32 Unk3100_FOOACIGDBFB = 3;
+ uint32 trader_id = 3;
}
diff --git a/proto/Unk3100_NNJNENGFHII.proto b/proto/VintageMarketDividendFinishNotify.proto
similarity index 94%
rename from proto/Unk3100_NNJNENGFHII.proto
rename to proto/VintageMarketDividendFinishNotify.proto
index c5e2e002..27ce8d70 100644
--- a/proto/Unk3100_NNJNENGFHII.proto
+++ b/proto/VintageMarketDividendFinishNotify.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 23147
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_NNJNENGFHII {
- uint32 Unk3100_BCHHFFJEJCD = 5;
+message VintageMarketDividendFinishNotify {
+ uint32 coin_a = 5;
uint32 coin_c = 11;
}
diff --git a/proto/Unk3100_CEKADDKEFOB.proto b/proto/VintageMarketFinishStorePlayReq.proto
similarity index 86%
rename from proto/Unk3100_CEKADDKEFOB.proto
rename to proto/VintageMarketFinishStorePlayReq.proto
index 88b7722a..6653e45d 100644
--- a/proto/Unk3100_CEKADDKEFOB.proto
+++ b/proto/VintageMarketFinishStorePlayReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk3100_GINCGFOCGAI.proto";
+import "VintageMarketStoreOpInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,7 +25,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3100_CEKADDKEFOB {
- uint32 Unk3100_IFHHJEFBLNI = 9;
- repeated Unk3100_GINCGFOCGAI Unk3100_AELOKNKDCDE = 3;
+message VintageMarketFinishStorePlayReq {
+ uint32 store_round = 9;
+ repeated VintageMarketStoreOpInfo store_op_list = 3;
}
diff --git a/proto/Unk3100_KLKDONEJEEG.proto b/proto/VintageMarketFinishStorePlayRsp.proto
similarity index 72%
rename from proto/Unk3100_KLKDONEJEEG.proto
rename to proto/VintageMarketFinishStorePlayRsp.proto
index 85eb7f2a..cf39d6a5 100644
--- a/proto/Unk3100_KLKDONEJEEG.proto
+++ b/proto/VintageMarketFinishStorePlayRsp.proto
@@ -22,15 +22,15 @@ 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;
+message VintageMarketFinishStorePlayRsp {
+ repeated uint32 trigger_env_event_list = 8;
+ uint32 store_round = 12;
+ repeated uint32 trigger_npc_event_list = 10;
+ repeated uint32 low_attr_store_list = 11;
+ uint32 round_coin_b_income = 9;
+ uint32 round_delta_coin_c = 1;
+ map store_income_map = 3;
int32 retcode = 7;
- uint32 Unk3100_JCIBNDGDKPK = 14;
- uint32 Unk3100_PKFCBGPFEOE = 15;
+ uint32 round_total_income = 14;
+ uint32 display_return_coin_b = 15;
}
diff --git a/proto/VintageMarketInfo.proto b/proto/VintageMarketInfo.proto
new file mode 100644
index 00000000..bc9e025a
--- /dev/null
+++ b/proto/VintageMarketInfo.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 "VintageMarketDealInfo.proto";
+import "VintageMarketStoreInfo.proto";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message VintageMarketInfo {
+ bool is_help_module_open = 1485;
+ bool is_store_content_interrupt = 15;
+ VintageMarketDealInfo deal_info = 11;
+ uint32 store_round = 7;
+ repeated uint32 store_round_income_list = 207;
+ bool is_store_content_finish = 5;
+ repeated uint32 cur_env_event_list = 8;
+ bool is_market_content_open = 10;
+ uint32 next_can_use_help_round = 1800;
+ bool is_market_content_finish = 2;
+ repeated uint32 viewed_strategy_list = 14;
+ uint32 prev_coin_c_num = 3;
+ map bargain_info_map = 6;
+ uint32 dividend_reward_count = 1798;
+ repeated uint32 cur_npc_event_list = 4;
+ bool is_help_in_cd = 366;
+ uint32 prev_coin_b_num = 1;
+ repeated VintageMarketStoreInfo open_store_list = 9;
+ uint32 help_skill_id = 760;
+ bool is_round_tips_view = 12;
+ bool is_strategy_module_open = 876;
+ repeated uint32 unlock_strategy_list = 13;
+}
diff --git a/proto/Unk3100_AILMJOHBIDC.proto b/proto/VintageMarketNpcEventFinishNotify.proto
similarity index 90%
rename from proto/Unk3100_AILMJOHBIDC.proto
rename to proto/VintageMarketNpcEventFinishNotify.proto
index 05f9cd26..536adfe9 100644
--- a/proto/Unk3100_AILMJOHBIDC.proto
+++ b/proto/VintageMarketNpcEventFinishNotify.proto
@@ -22,8 +22,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 24201
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_AILMJOHBIDC {
- repeated uint32 Unk3100_KHPFAPCPGBE = 15;
+message VintageMarketNpcEventFinishNotify {
+ repeated uint32 unlock_strategy_list = 15;
uint32 coin_c = 12;
- uint32 Unk3100_BCHHFFJEJCD = 4;
+ uint32 coin_a = 4;
}
diff --git a/proto/Unk3100_ANELMFHNGHE.proto b/proto/VintageMarketStartStorePlayReq.proto
similarity index 93%
rename from proto/Unk3100_ANELMFHNGHE.proto
rename to proto/VintageMarketStartStorePlayReq.proto
index 89210d0b..1b595444 100644
--- a/proto/Unk3100_ANELMFHNGHE.proto
+++ b/proto/VintageMarketStartStorePlayReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3100_ANELMFHNGHE {
- uint32 Unk3100_IFHHJEFBLNI = 5;
+message VintageMarketStartStorePlayReq {
+ uint32 store_round = 5;
}
diff --git a/proto/Unk3100_OGIPKMEFMDI.proto b/proto/VintageMarketStartStorePlayRsp.proto
similarity index 88%
rename from proto/Unk3100_OGIPKMEFMDI.proto
rename to proto/VintageMarketStartStorePlayRsp.proto
index 67aa7689..e5b3a18f 100644
--- a/proto/Unk3100_OGIPKMEFMDI.proto
+++ b/proto/VintageMarketStartStorePlayRsp.proto
@@ -22,9 +22,9 @@ 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;
+message VintageMarketStartStorePlayRsp {
+ uint32 prev_round_coin_b = 7;
+ uint32 store_round = 2;
+ uint32 prev_round_coin_c = 5;
int32 retcode = 8;
}
diff --git a/proto/Unk3100_OEAPOMDPBDE.proto b/proto/VintageMarketStoreChooseStrategyReq.proto
similarity index 83%
rename from proto/Unk3100_OEAPOMDPBDE.proto
rename to proto/VintageMarketStoreChooseStrategyReq.proto
index ee4df4ed..5c05205f 100644
--- a/proto/Unk3100_OEAPOMDPBDE.proto
+++ b/proto/VintageMarketStoreChooseStrategyReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk3100_GINCGFOCGAI.proto";
+import "VintageMarketStoreOpInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,8 +25,8 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3100_OEAPOMDPBDE {
- uint32 Unk3100_CIJIHEGPEMB = 6;
- repeated Unk3100_GINCGFOCGAI Unk3100_AELOKNKDCDE = 9;
- repeated uint32 Unk3100_CKOJIKGDEPO = 8;
+message VintageMarketStoreChooseStrategyReq {
+ uint32 store_id = 6;
+ repeated VintageMarketStoreOpInfo store_op_list = 9;
+ repeated uint32 strategy_list = 8;
}
diff --git a/proto/Unk3100_JJKFAMDHEBL.proto b/proto/VintageMarketStoreChooseStrategyRsp.proto
similarity index 90%
rename from proto/Unk3100_JJKFAMDHEBL.proto
rename to proto/VintageMarketStoreChooseStrategyRsp.proto
index 04d58dd0..a93ad945 100644
--- a/proto/Unk3100_JJKFAMDHEBL.proto
+++ b/proto/VintageMarketStoreChooseStrategyRsp.proto
@@ -22,8 +22,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 24860
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_JJKFAMDHEBL {
- uint32 Unk3100_CIJIHEGPEMB = 15;
+message VintageMarketStoreChooseStrategyRsp {
+ uint32 store_id = 15;
int32 retcode = 9;
- repeated uint32 Unk3100_CKOJIKGDEPO = 2;
+ repeated uint32 strategy_list = 2;
}
diff --git a/proto/VintageMarketStoreInfo.proto b/proto/VintageMarketStoreInfo.proto
new file mode 100644
index 00000000..8a168287
--- /dev/null
+++ b/proto/VintageMarketStoreInfo.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+syntax = "proto3";
+
+option java_package = "emu.grasscutter.net.proto";
+
+message VintageMarketStoreInfo {
+ repeated uint32 cur_attr_list = 5;
+ repeated uint32 next_aim_attr_list = 14;
+ repeated uint32 strategy_list = 2;
+ uint32 slot_count = 3;
+ uint32 store_id = 10;
+}
diff --git a/proto/ElementReliquaryResponse.proto b/proto/VintageMarketStoreOpInfo.proto
similarity index 83%
rename from proto/ElementReliquaryResponse.proto
rename to proto/VintageMarketStoreOpInfo.proto
index 466583a9..bfc87719 100644
--- a/proto/ElementReliquaryResponse.proto
+++ b/proto/VintageMarketStoreOpInfo.proto
@@ -17,12 +17,12 @@
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;
+message VintageMarketStoreOpInfo {
+ repeated uint32 strategy_list = 5;
+ uint32 help_uid = 9;
+ uint32 store_id = 2;
+ uint32 help_skill_id = 7;
+ repeated uint32 add_attr_list = 15;
}
diff --git a/proto/Unk3100_DNDKAGHCAKF.proto b/proto/VintageMarketStoreUnlockSlotReq.proto
similarity index 94%
rename from proto/Unk3100_DNDKAGHCAKF.proto
rename to proto/VintageMarketStoreUnlockSlotReq.proto
index 05871a12..1a90e577 100644
--- a/proto/Unk3100_DNDKAGHCAKF.proto
+++ b/proto/VintageMarketStoreUnlockSlotReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3100_DNDKAGHCAKF {
- uint32 Unk3100_CIJIHEGPEMB = 10;
+message VintageMarketStoreUnlockSlotReq {
+ uint32 store_id = 10;
}
diff --git a/proto/Unk3100_PPAENPFDOOO.proto b/proto/VintageMarketStoreUnlockSlotRsp.proto
similarity index 91%
rename from proto/Unk3100_PPAENPFDOOO.proto
rename to proto/VintageMarketStoreUnlockSlotRsp.proto
index 3e42d9b9..94b514af 100644
--- a/proto/Unk3100_PPAENPFDOOO.proto
+++ b/proto/VintageMarketStoreUnlockSlotRsp.proto
@@ -22,8 +22,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 20733
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_PPAENPFDOOO {
+message VintageMarketStoreUnlockSlotRsp {
int32 retcode = 1;
- uint32 Unk3100_MBDCDNHEDFO = 6;
- uint32 Unk3100_CIJIHEGPEMB = 10;
+ uint32 slot_count = 6;
+ uint32 store_id = 10;
}
diff --git a/proto/Unk3100_ALLPCCMKIGD.proto b/proto/VintageMarketStoreViewStrategyReq.proto
similarity index 90%
rename from proto/Unk3100_ALLPCCMKIGD.proto
rename to proto/VintageMarketStoreViewStrategyReq.proto
index d757c990..ed599c95 100644
--- a/proto/Unk3100_ALLPCCMKIGD.proto
+++ b/proto/VintageMarketStoreViewStrategyReq.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3100_ALLPCCMKIGD {
- uint32 Unk3100_HGKBAEHFMKI = 1;
- repeated uint32 Unk3100_CKOJIKGDEPO = 14;
+message VintageMarketStoreViewStrategyReq {
+ uint32 strategy_id = 1;
+ repeated uint32 strategy_list = 14;
}
diff --git a/proto/Unk3100_ENNGOAOEIKE.proto b/proto/VintageMarketStoreViewStrategyRsp.proto
similarity index 90%
rename from proto/Unk3100_ENNGOAOEIKE.proto
rename to proto/VintageMarketStoreViewStrategyRsp.proto
index 9b2dc0fe..36390b0b 100644
--- a/proto/Unk3100_ENNGOAOEIKE.proto
+++ b/proto/VintageMarketStoreViewStrategyRsp.proto
@@ -22,8 +22,8 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 21814
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_ENNGOAOEIKE {
+message VintageMarketStoreViewStrategyRsp {
int32 retcode = 2;
- repeated uint32 Unk3100_CKOJIKGDEPO = 3;
- uint32 Unk3100_HGKBAEHFMKI = 14;
+ repeated uint32 strategy_list = 3;
+ uint32 strategy_id = 14;
}
diff --git a/proto/Unk3100_JLKDDKHHFPO.proto b/proto/VintageMarketTraderInfo.proto
similarity index 89%
rename from proto/Unk3100_JLKDDKHHFPO.proto
rename to proto/VintageMarketTraderInfo.proto
index 3f9f1140..a31e673b 100644
--- a/proto/Unk3100_JLKDDKHHFPO.proto
+++ b/proto/VintageMarketTraderInfo.proto
@@ -21,7 +21,7 @@ import "ItemParam.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk3100_JLKDDKHHFPO {
- uint32 Unk3100_FOOACIGDBFB = 7;
- repeated ItemParam Unk3100_FGHHLOJHMIK = 9;
+message VintageMarketTraderInfo {
+ uint32 trader_id = 7;
+ repeated ItemParam available_item_list = 9;
}
diff --git a/proto/Unk3100_OMJOFLDLNDG.proto b/proto/VintagePresentFinishNoify.proto
similarity index 94%
rename from proto/Unk3100_OMJOFLDLNDG.proto
rename to proto/VintagePresentFinishNoify.proto
index a526d715..5e232ad3 100644
--- a/proto/Unk3100_OMJOFLDLNDG.proto
+++ b/proto/VintagePresentFinishNoify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 24142
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_OMJOFLDLNDG {
- uint32 Unk3100_LINPNGLHPDL = 7;
+message VintagePresentFinishNoify {
+ uint32 present_id = 7;
}
diff --git a/proto/Unk3100_JNOIANKCPPG.proto b/proto/VintagePresentFinishNotify.proto
similarity index 94%
rename from proto/Unk3100_JNOIANKCPPG.proto
rename to proto/VintagePresentFinishNotify.proto
index 3a34c9e9..11513a09 100644
--- a/proto/Unk3100_JNOIANKCPPG.proto
+++ b/proto/VintagePresentFinishNotify.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 20086
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_JNOIANKCPPG {
- uint32 Unk3100_LINPNGLHPDL = 3;
+message VintagePresentFinishNotify {
+ uint32 present_id = 3;
}
diff --git a/proto/Unk3100_APOOGGMHCJI.proto b/proto/VintagePresentLevelData.proto
similarity index 91%
rename from proto/Unk3100_APOOGGMHCJI.proto
rename to proto/VintagePresentLevelData.proto
index 72200fb0..7fef296a 100644
--- a/proto/Unk3100_APOOGGMHCJI.proto
+++ b/proto/VintagePresentLevelData.proto
@@ -19,9 +19,9 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3100_APOOGGMHCJI {
- uint32 Unk3100_LINPNGLHPDL = 10;
+message VintagePresentLevelData {
+ uint32 present_id = 10;
bool is_open = 11;
- bool Unk2700_MMNILGLDHHD = 5;
+ bool is_finish = 5;
uint32 stage_id = 1;
}
diff --git a/proto/Unk3100_IOJKKDNELHE.proto b/proto/VintagePresentStageData.proto
similarity index 86%
rename from proto/Unk3100_IOJKKDNELHE.proto
rename to proto/VintagePresentStageData.proto
index 9efb2e50..867f6c78 100644
--- a/proto/Unk3100_IOJKKDNELHE.proto
+++ b/proto/VintagePresentStageData.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk3100_APOOGGMHCJI.proto";
+import "VintagePresentLevelData.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk3100_IOJKKDNELHE {
+message VintagePresentStageData {
uint32 open_time = 1;
uint32 stage_id = 15;
- bool Unk2700_MMNILGLDHHD = 13;
+ bool is_finish = 13;
bool is_open = 10;
- map Unk3100_EAGEPOFAMDB = 2;
+ map present_level_map = 2;
}
diff --git a/proto/VisionType.proto b/proto/VisionType.proto
index ffb61eb2..1c653948 100644
--- a/proto/VisionType.proto
+++ b/proto/VisionType.proto
@@ -39,5 +39,5 @@ enum VisionType {
VISION_TYPE_FISH_REFRESH = 16;
VISION_TYPE_FISH_BIG_SHOCK = 17;
VISION_TYPE_FISH_QTE_SUCC = 18;
- VISION_TYPE_Unk2700_EPFKMOIPADB = 19;
+ VISION_TYPE_CAPTURE_DISAPPEAR = 19;
}
diff --git a/proto/Unk3000_PNIEIHDLIDN.proto b/proto/WatcherEventStageNotify.proto
similarity index 97%
rename from proto/Unk3000_PNIEIHDLIDN.proto
rename to proto/WatcherEventStageNotify.proto
index 5efdb65f..eac285e7 100644
--- a/proto/Unk3000_PNIEIHDLIDN.proto
+++ b/proto/WatcherEventStageNotify.proto
@@ -23,7 +23,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_PNIEIHDLIDN {
+message WatcherEventStageNotify {
uint32 add_progress = 4;
uint32 stage = 2;
uint32 watcher_id = 12;
diff --git a/proto/Unk2700_JOHOODKBINN_ClientReq.proto b/proto/WidgetCaptureAnimalReq.proto
similarity index 96%
rename from proto/Unk2700_JOHOODKBINN_ClientReq.proto
rename to proto/WidgetCaptureAnimalReq.proto
index ef91f025..eb285836 100644
--- a/proto/Unk2700_JOHOODKBINN_ClientReq.proto
+++ b/proto/WidgetCaptureAnimalReq.proto
@@ -25,7 +25,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_JOHOODKBINN_ClientReq {
+message WidgetCaptureAnimalReq {
Vector pos = 10;
uint32 entity_id = 15;
uint32 material_id = 6;
diff --git a/proto/Unk2700_KAJNLGIDKAB_ServerRsp.proto b/proto/WidgetCaptureAnimalRsp.proto
similarity index 96%
rename from proto/Unk2700_KAJNLGIDKAB_ServerRsp.proto
rename to proto/WidgetCaptureAnimalRsp.proto
index 0261f8e1..053897f8 100644
--- a/proto/Unk2700_KAJNLGIDKAB_ServerRsp.proto
+++ b/proto/WidgetCaptureAnimalRsp.proto
@@ -24,7 +24,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 4289
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_KAJNLGIDKAB_ServerRsp {
+message WidgetCaptureAnimalRsp {
int32 retcode = 9;
uint32 entity_id = 4;
uint32 material_id = 8;
diff --git a/proto/WidgetExtraCdType.proto b/proto/WidgetExtraCdType.proto
new file mode 100644
index 00000000..01f5f502
--- /dev/null
+++ b/proto/WidgetExtraCdType.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 WidgetExtraCdType {
+ WIDGET_EXTRA_CD_TYPE_NONE = 0;
+ WIDGET_EXTRA_CD_TYPE_E_SKILL_SHARED = 1;
+}
diff --git a/proto/Unk3000_NOMEJNJKGGL.proto b/proto/WidgetQuickHitTreeReq.proto
similarity index 89%
rename from proto/Unk3000_NOMEJNJKGGL.proto
rename to proto/WidgetQuickHitTreeReq.proto
index 673d1c82..ecd9dde1 100644
--- a/proto/Unk3000_NOMEJNJKGGL.proto
+++ b/proto/WidgetQuickHitTreeReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk3000_EMMKKLIECLB.proto";
+import "HitTreeInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,6 +25,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3000_NOMEJNJKGGL {
- repeated Unk3000_EMMKKLIECLB Unk3000_GGGLAIIIJOJ = 5;
+message WidgetQuickHitTreeReq {
+ repeated HitTreeInfo hit_tree_info_list = 5;
}
diff --git a/proto/Unk3000_PILFPILPMFO.proto b/proto/WidgetQuickHitTreeRsp.proto
similarity index 96%
rename from proto/Unk3000_PILFPILPMFO.proto
rename to proto/WidgetQuickHitTreeRsp.proto
index 1a363397..80af278e 100644
--- a/proto/Unk3000_PILFPILPMFO.proto
+++ b/proto/WidgetQuickHitTreeRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 3336
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_PILFPILPMFO {
+message WidgetQuickHitTreeRsp {
int32 retcode = 2;
}
diff --git a/proto/WidgetReportReq.proto b/proto/WidgetReportReq.proto
index 0e69772c..d689e5e5 100644
--- a/proto/WidgetReportReq.proto
+++ b/proto/WidgetReportReq.proto
@@ -24,7 +24,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetIsReliable: true
// IsAllowClient: true
message WidgetReportReq {
- bool Unk2700_MFEHMLBNNAG = 5;
+ bool is_clear_sky_crystal_hint = 5;
bool is_client_collect = 14;
bool is_clear_hint = 13;
uint32 material_id = 15;
diff --git a/proto/Unk2700_GLAPMLGHDDC_ClientReq.proto b/proto/WidgetUpdateExtraCDReq.proto
similarity index 87%
rename from proto/Unk2700_GLAPMLGHDDC_ClientReq.proto
rename to proto/WidgetUpdateExtraCDReq.proto
index 4d744aa0..d6283f4c 100644
--- a/proto/Unk2700_GLAPMLGHDDC_ClientReq.proto
+++ b/proto/WidgetUpdateExtraCDReq.proto
@@ -17,7 +17,7 @@
syntax = "proto3";
-import "Unk2700_NOCLNCCJEGK.proto";
+import "WidgetExtraCdType.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -25,8 +25,8 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_GLAPMLGHDDC_ClientReq {
+message WidgetUpdateExtraCDReq {
uint32 material_id = 14;
- Unk2700_NOCLNCCJEGK Unk2700_MHEKJGAIFBO = 10;
- uint32 Unk2700_GMHLHKIIGIC = 7;
+ WidgetExtraCdType extra_cd_type = 10;
+ uint32 cd_group = 7;
}
diff --git a/proto/Unk2700_HOPDLJLBKIC_ServerRsp.proto b/proto/WidgetUpdateExtraCDRsp.proto
similarity index 84%
rename from proto/Unk2700_HOPDLJLBKIC_ServerRsp.proto
rename to proto/WidgetUpdateExtraCDRsp.proto
index 29712f49..1314bf4d 100644
--- a/proto/Unk2700_HOPDLJLBKIC_ServerRsp.proto
+++ b/proto/WidgetUpdateExtraCDRsp.proto
@@ -17,18 +17,18 @@
syntax = "proto3";
-import "Unk2700_NOCLNCCJEGK.proto";
import "WidgetCoolDownData.proto";
+import "WidgetExtraCdType.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 6056
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_HOPDLJLBKIC_ServerRsp {
+message WidgetUpdateExtraCDRsp {
int32 retcode = 14;
uint32 material_id = 11;
- Unk2700_NOCLNCCJEGK Unk2700_MHEKJGAIFBO = 6;
- WidgetCoolDownData Unk2700_LNPJLPODIGB = 10;
- uint32 Unk2700_GMHLHKIIGIC = 15;
+ WidgetExtraCdType extra_cd_type = 6;
+ WidgetCoolDownData cool_data = 10;
+ uint32 cd_group = 15;
}
diff --git a/proto/WindFieldDetailInfo.proto b/proto/WindFieldDetailInfo.proto
index cf330634..f4e68dde 100644
--- a/proto/WindFieldDetailInfo.proto
+++ b/proto/WindFieldDetailInfo.proto
@@ -17,10 +17,10 @@
syntax = "proto3";
-import "Unk3100_OCAPENGJILJ.proto";
+import "WindFieldStageInfo.proto";
option java_package = "emu.grasscutter.net.proto";
message WindFieldDetailInfo {
- repeated Unk3100_OCAPENGJILJ Unk2700_PHKHIPLDOOA = 11;
+ repeated WindFieldStageInfo stage_info_list = 11;
}
diff --git a/proto/WindFieldDungeonFailReason.proto b/proto/WindFieldDungeonFailReason.proto
new file mode 100644
index 00000000..2661c9e1
--- /dev/null
+++ b/proto/WindFieldDungeonFailReason.proto
@@ -0,0 +1,28 @@
+// Proto has been converted from Sorapointa to Grasscutter format
+// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
+// Copyright (C) 2022 Sorapointa Team
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a 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 WindFieldDungeonFailReason {
+ WIND_FIELD_DUNGEON_FAIL_REASON_NONE = 0;
+ WIND_FIELD_DUNGEON_FAIL_REASON_CANCEL = 1;
+ WIND_FIELD_DUNGEON_FAIL_REASON_TIMEOUT = 2;
+ WIND_FIELD_DUNGEON_FAIL_REASON_ALL_AVATAR_DIE = 3;
+ WIND_FIELD_DUNGEON_FAIL_REASON_LUA_INTERRUPT = 4;
+}
diff --git a/proto/WindFieldDungeonSettleInfo.proto b/proto/WindFieldDungeonSettleInfo.proto
index 36a5b3a0..182c37f3 100644
--- a/proto/WindFieldDungeonSettleInfo.proto
+++ b/proto/WindFieldDungeonSettleInfo.proto
@@ -17,12 +17,12 @@
syntax = "proto3";
-import "Unk3100_HJALLGOLFGL.proto";
+import "WindFieldDungeonFailReason.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;
+ repeated uint32 after_watcher_id_list = 11;
+ repeated uint32 before_watcher_id_list = 7;
+ WindFieldDungeonFailReason fail_reason = 2;
}
diff --git a/proto/Unk3100_DPCPLEIJPDB.proto b/proto/WindFieldGalleryChallengeInfoNotify.proto
similarity index 82%
rename from proto/Unk3100_DPCPLEIJPDB.proto
rename to proto/WindFieldGalleryChallengeInfoNotify.proto
index defa25bb..96075196 100644
--- a/proto/Unk3100_DPCPLEIJPDB.proto
+++ b/proto/WindFieldGalleryChallengeInfoNotify.proto
@@ -22,12 +22,12 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 5563
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_DPCPLEIJPDB {
- uint32 Unk3100_CHGHHBNGNHH = 6;
+message WindFieldGalleryChallengeInfoNotify {
+ uint32 challenge_timestamp = 6;
bool is_start = 8;
- uint32 Unk3100_MPJOMKKCHKC = 12;
+ uint32 show_id = 12;
bool is_success = 7;
- uint32 Unk3100_KAKJMGFBOOH = 13;
- uint32 Unk3100_CDJOHNPJAAB = 11;
- uint32 Unk3100_EDMNOAPJIDC = 1;
+ uint32 challenge_total_time = 13;
+ uint32 challenge_ball_max_count = 11;
+ uint32 challenge_ball_cur_count = 1;
}
diff --git a/proto/Unk3100_JJNBDPJAFKK.proto b/proto/WindFieldGalleryInfoNotify.proto
similarity index 76%
rename from proto/Unk3100_JJNBDPJAFKK.proto
rename to proto/WindFieldGalleryInfoNotify.proto
index 7d3393be..fcb347eb 100644
--- a/proto/Unk3100_JJNBDPJAFKK.proto
+++ b/proto/WindFieldGalleryInfoNotify.proto
@@ -22,13 +22,13 @@ 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;
+message WindFieldGalleryInfoNotify {
+ uint32 show_id = 3;
+ uint32 killed_monster_num = 7;
+ uint32 coin_num = 9;
+ uint32 challenge_ball_max_count = 1;
+ uint32 challenge_total_time = 5;
+ uint32 challenge_ball_cur_count = 10;
+ uint32 challenge_timestamp = 4;
+ uint32 element_ball_num = 14;
}
diff --git a/proto/Unk3100_MHHKLJEDNHN.proto b/proto/WindFieldRestartDungeonReq.proto
similarity index 96%
rename from proto/Unk3100_MHHKLJEDNHN.proto
rename to proto/WindFieldRestartDungeonReq.proto
index 170ab75c..dfc3a720 100644
--- a/proto/Unk3100_MHHKLJEDNHN.proto
+++ b/proto/WindFieldRestartDungeonReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk3100_MHHKLJEDNHN {}
+message WindFieldRestartDungeonReq {}
diff --git a/proto/Unk3100_EDNBMJJHOKM.proto b/proto/WindFieldRestartDungeonRsp.proto
similarity index 96%
rename from proto/Unk3100_EDNBMJJHOKM.proto
rename to proto/WindFieldRestartDungeonRsp.proto
index 0e5552e6..9ca06301 100644
--- a/proto/Unk3100_EDNBMJJHOKM.proto
+++ b/proto/WindFieldRestartDungeonRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 24712
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3100_EDNBMJJHOKM {
+message WindFieldRestartDungeonRsp {
int32 retcode = 5;
}
diff --git a/proto/Unk3100_OCAPENGJILJ.proto b/proto/WindFieldStageInfo.proto
similarity index 97%
rename from proto/Unk3100_OCAPENGJILJ.proto
rename to proto/WindFieldStageInfo.proto
index 24f43289..fac015d2 100644
--- a/proto/Unk3100_OCAPENGJILJ.proto
+++ b/proto/WindFieldStageInfo.proto
@@ -19,7 +19,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
-message Unk3100_OCAPENGJILJ {
+message WindFieldStageInfo {
bool is_open = 12;
uint32 open_time = 14;
uint32 stage_id = 8;
diff --git a/proto/Unk2700_LHMOFCJCIKM.proto b/proto/WinterCampAcceptAllGiveItemReq.proto
similarity index 96%
rename from proto/Unk2700_LHMOFCJCIKM.proto
rename to proto/WinterCampAcceptAllGiveItemReq.proto
index 26894efc..52949a41 100644
--- a/proto/Unk2700_LHMOFCJCIKM.proto
+++ b/proto/WinterCampAcceptAllGiveItemReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_LHMOFCJCIKM {}
+message WinterCampAcceptAllGiveItemReq {}
diff --git a/proto/Unk2700_NLBJHDNKPCC.proto b/proto/WinterCampAcceptAllGiveItemRsp.proto
similarity index 86%
rename from proto/Unk2700_NLBJHDNKPCC.proto
rename to proto/WinterCampAcceptAllGiveItemRsp.proto
index 3b2b6170..7d0f9a7b 100644
--- a/proto/Unk2700_NLBJHDNKPCC.proto
+++ b/proto/WinterCampAcceptAllGiveItemRsp.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_GPPKNKGDCHJ.proto";
+import "WinterCampAcceptItemResultInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8626
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_NLBJHDNKPCC {
+message WinterCampAcceptAllGiveItemRsp {
int32 retcode = 6;
- repeated Unk2700_GPPKNKGDCHJ Unk2700_AAOHOIJEOEG = 14;
+ repeated WinterCampAcceptItemResultInfo accept_item_result_info = 14;
}
diff --git a/proto/Unk2700_EDMCLPMBEMH.proto b/proto/WinterCampAcceptGiveItemReq.proto
similarity index 96%
rename from proto/Unk2700_EDMCLPMBEMH.proto
rename to proto/WinterCampAcceptGiveItemReq.proto
index adf99e12..acfdba39 100644
--- a/proto/Unk2700_EDMCLPMBEMH.proto
+++ b/proto/WinterCampAcceptGiveItemReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_EDMCLPMBEMH {
+message WinterCampAcceptGiveItemReq {
uint32 uid = 11;
}
diff --git a/proto/Unk2700_KPGMEMHEEMD.proto b/proto/WinterCampAcceptGiveItemRsp.proto
similarity index 87%
rename from proto/Unk2700_KPGMEMHEEMD.proto
rename to proto/WinterCampAcceptGiveItemRsp.proto
index 9bd88d25..134bfee6 100644
--- a/proto/Unk2700_KPGMEMHEEMD.proto
+++ b/proto/WinterCampAcceptGiveItemRsp.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_GPPKNKGDCHJ.proto";
+import "WinterCampAcceptItemResultInfo.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8185
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_KPGMEMHEEMD {
+message WinterCampAcceptGiveItemRsp {
int32 retcode = 14;
- Unk2700_GPPKNKGDCHJ Unk2700_AAOHOIJEOEG = 3;
+ WinterCampAcceptItemResultInfo accept_item_result_info = 3;
}
diff --git a/proto/Unk2700_GPPKNKGDCHJ.proto b/proto/WinterCampAcceptItemResultInfo.proto
similarity index 88%
rename from proto/Unk2700_GPPKNKGDCHJ.proto
rename to proto/WinterCampAcceptItemResultInfo.proto
index 57a144bd..6d397e5b 100644
--- a/proto/Unk2700_GPPKNKGDCHJ.proto
+++ b/proto/WinterCampAcceptItemResultInfo.proto
@@ -21,8 +21,8 @@ import "ItemParam.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_GPPKNKGDCHJ {
- repeated ItemParam Unk2700_MNPGJOAHINC = 2;
+message WinterCampAcceptItemResultInfo {
+ repeated ItemParam accept_item_list = 2;
uint32 uid = 6;
- repeated ItemParam Unk2700_LBIKFNBNEBC = 9;
+ repeated ItemParam unaccept_item_list = 9;
}
diff --git a/proto/WinterCampActivityDetailInfo.proto b/proto/WinterCampActivityDetailInfo.proto
index a79e1deb..d9a88700 100644
--- a/proto/WinterCampActivityDetailInfo.proto
+++ b/proto/WinterCampActivityDetailInfo.proto
@@ -18,18 +18,18 @@
syntax = "proto3";
import "ItemParam.proto";
-import "Unk2700_DIEGJDEIDKO.proto";
-import "Unk2700_MBIDJDLLBNM.proto";
+import "WinterCampRaceStageInfo.proto";
+import "WinterCampStageInfo.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;
+ repeated WinterCampRaceStageInfo race_info_list = 9;
+ WinterCampStageInfo battle_info = 10;
+ repeated uint32 wish_id_list = 8;
+ repeated uint32 battle_taken_reward_list = 14;
+ repeated uint32 explore_taken_reward_list = 6;
bool is_content_closed = 15;
- Unk2700_DIEGJDEIDKO explore_info = 11;
- repeated ItemParam Unk2700_CFENLEBIKGG = 2;
+ WinterCampStageInfo explore_info = 11;
+ repeated ItemParam used_item_list = 2;
}
diff --git a/proto/Unk2700_DDAHPHCEIIM.proto b/proto/WinterCampEditSnowmanCombinationReq.proto
similarity index 92%
rename from proto/Unk2700_DDAHPHCEIIM.proto
rename to proto/WinterCampEditSnowmanCombinationReq.proto
index 2ad3b1c5..0086e688 100644
--- a/proto/Unk2700_DDAHPHCEIIM.proto
+++ b/proto/WinterCampEditSnowmanCombinationReq.proto
@@ -25,7 +25,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_DDAHPHCEIIM {
+message WinterCampEditSnowmanCombinationReq {
uint32 entity_id = 9;
- CustomGadgetTreeInfo Unk2700_OCIHJFOKHPK = 6;
+ CustomGadgetTreeInfo combination_info = 6;
}
diff --git a/proto/Unk2700_JPLFIOOMCGG.proto b/proto/WinterCampEditSnowmanCombinationRsp.proto
similarity index 95%
rename from proto/Unk2700_JPLFIOOMCGG.proto
rename to proto/WinterCampEditSnowmanCombinationRsp.proto
index b759642e..492bfec5 100644
--- a/proto/Unk2700_JPLFIOOMCGG.proto
+++ b/proto/WinterCampEditSnowmanCombinationRsp.proto
@@ -22,6 +22,6 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8142
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_JPLFIOOMCGG {
+message WinterCampEditSnowmanCombinationRsp {
int32 retcode = 10;
}
diff --git a/proto/Unk2700_AFOPONDCLKC.proto b/proto/WinterCampFriendWishData.proto
similarity index 96%
rename from proto/Unk2700_AFOPONDCLKC.proto
rename to proto/WinterCampFriendWishData.proto
index 5b3dd695..17ab57cb 100644
--- a/proto/Unk2700_AFOPONDCLKC.proto
+++ b/proto/WinterCampFriendWishData.proto
@@ -21,7 +21,7 @@ import "ProfilePicture.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_AFOPONDCLKC {
+message WinterCampFriendWishData {
string nickname = 14;
uint32 uid = 12;
ProfilePicture profile_picture = 5;
diff --git a/proto/Unk2700_LIJCBOBECHJ.proto b/proto/WinterCampGetCanGiveFriendItemReq.proto
similarity index 95%
rename from proto/Unk2700_LIJCBOBECHJ.proto
rename to proto/WinterCampGetCanGiveFriendItemReq.proto
index d1bf5578..bc9da743 100644
--- a/proto/Unk2700_LIJCBOBECHJ.proto
+++ b/proto/WinterCampGetCanGiveFriendItemReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_LIJCBOBECHJ {}
+message WinterCampGetCanGiveFriendItemReq {}
diff --git a/proto/Unk2700_ANEBALDAFJI.proto b/proto/WinterCampGetCanGiveFriendItemRsp.proto
similarity index 96%
rename from proto/Unk2700_ANEBALDAFJI.proto
rename to proto/WinterCampGetCanGiveFriendItemRsp.proto
index d21b3ed1..b3130aae 100644
--- a/proto/Unk2700_ANEBALDAFJI.proto
+++ b/proto/WinterCampGetCanGiveFriendItemRsp.proto
@@ -24,7 +24,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8357
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_ANEBALDAFJI {
+message WinterCampGetCanGiveFriendItemRsp {
repeated ItemParam item_list = 8;
int32 retcode = 11;
}
diff --git a/proto/Unk2700_HMFCCGCKHCA.proto b/proto/WinterCampGetFriendWishListReq.proto
similarity index 96%
rename from proto/Unk2700_HMFCCGCKHCA.proto
rename to proto/WinterCampGetFriendWishListReq.proto
index 9332787d..333d37f6 100644
--- a/proto/Unk2700_HMFCCGCKHCA.proto
+++ b/proto/WinterCampGetFriendWishListReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_HMFCCGCKHCA {}
+message WinterCampGetFriendWishListReq {}
diff --git a/proto/Unk2700_FIODAJPNBIK.proto b/proto/WinterCampGetFriendWishListRsp.proto
similarity index 88%
rename from proto/Unk2700_FIODAJPNBIK.proto
rename to proto/WinterCampGetFriendWishListRsp.proto
index 31279219..c759fdb0 100644
--- a/proto/Unk2700_FIODAJPNBIK.proto
+++ b/proto/WinterCampGetFriendWishListRsp.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_AFOPONDCLKC.proto";
+import "WinterCampFriendWishData.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8937
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_FIODAJPNBIK {
+message WinterCampGetFriendWishListRsp {
int32 retcode = 12;
- repeated Unk2700_AFOPONDCLKC Unk2700_MAKCLMEGEBJ = 5;
+ repeated WinterCampFriendWishData wish_data_list = 5;
}
diff --git a/proto/Unk2700_CFLKEDHFPAB.proto b/proto/WinterCampGetRecvItemListReq.proto
similarity index 96%
rename from proto/Unk2700_CFLKEDHFPAB.proto
rename to proto/WinterCampGetRecvItemListReq.proto
index c28648ce..e32b84df 100644
--- a/proto/Unk2700_CFLKEDHFPAB.proto
+++ b/proto/WinterCampGetRecvItemListReq.proto
@@ -23,4 +23,4 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_CFLKEDHFPAB {}
+message WinterCampGetRecvItemListReq {}
diff --git a/proto/Unk2700_PKCLMDHHPFI.proto b/proto/WinterCampGetRecvItemListRsp.proto
similarity index 88%
rename from proto/Unk2700_PKCLMDHHPFI.proto
rename to proto/WinterCampGetRecvItemListRsp.proto
index 14c6db24..c7a57106 100644
--- a/proto/Unk2700_PKCLMDHHPFI.proto
+++ b/proto/WinterCampGetRecvItemListRsp.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_KIGGOKAEFHM.proto";
+import "WinterCampRecvItemData.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8423
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_PKCLMDHHPFI {
- repeated Unk2700_KIGGOKAEFHM Unk2700_HHODMCCNGKE = 8;
+message WinterCampGetRecvItemListRsp {
+ repeated WinterCampRecvItemData recv_item_data_list = 8;
int32 retcode = 6;
}
diff --git a/proto/Unk2700_LNMFIHNFKOO.proto b/proto/WinterCampGiveFriendItemReq.proto
similarity index 96%
rename from proto/Unk2700_LNMFIHNFKOO.proto
rename to proto/WinterCampGiveFriendItemReq.proto
index f85bd311..6dccf35b 100644
--- a/proto/Unk2700_LNMFIHNFKOO.proto
+++ b/proto/WinterCampGiveFriendItemReq.proto
@@ -25,7 +25,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_LNMFIHNFKOO {
+message WinterCampGiveFriendItemReq {
uint32 uid = 12;
repeated ItemParam item_list = 11;
}
diff --git a/proto/Unk2700_CNNJKJFHGGD.proto b/proto/WinterCampGiveFriendItemRsp.proto
similarity index 92%
rename from proto/Unk2700_CNNJKJFHGGD.proto
rename to proto/WinterCampGiveFriendItemRsp.proto
index 9736719d..a9a93b59 100644
--- a/proto/Unk2700_CNNJKJFHGGD.proto
+++ b/proto/WinterCampGiveFriendItemRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8264
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_CNNJKJFHGGD {
- repeated uint32 Unk2700_ABJAKBCPEEC = 11;
+message WinterCampGiveFriendItemRsp {
+ repeated uint32 limit_item_id_list = 11;
int32 retcode = 3;
}
diff --git a/proto/Unk2700_CHICHNGLKPI.proto b/proto/WinterCampRaceScoreNotify.proto
similarity index 96%
rename from proto/Unk2700_CHICHNGLKPI.proto
rename to proto/WinterCampRaceScoreNotify.proto
index c3cb0e02..58629e5d 100644
--- a/proto/Unk2700_CHICHNGLKPI.proto
+++ b/proto/WinterCampRaceScoreNotify.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8149
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_CHICHNGLKPI {
+message WinterCampRaceScoreNotify {
uint32 id = 5;
uint32 max_score = 14;
}
diff --git a/proto/Unk2700_MBIDJDLLBNM.proto b/proto/WinterCampRaceStageInfo.proto
similarity index 96%
rename from proto/Unk2700_MBIDJDLLBNM.proto
rename to proto/WinterCampRaceStageInfo.proto
index f5174bef..74b64616 100644
--- a/proto/Unk2700_MBIDJDLLBNM.proto
+++ b/proto/WinterCampRaceStageInfo.proto
@@ -21,7 +21,7 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_MBIDJDLLBNM {
+message WinterCampRaceStageInfo {
uint32 open_time = 5;
uint32 id = 1;
Vector pos = 14;
diff --git a/proto/Unk2700_KIGGOKAEFHM.proto b/proto/WinterCampRecvItemData.proto
similarity index 97%
rename from proto/Unk2700_KIGGOKAEFHM.proto
rename to proto/WinterCampRecvItemData.proto
index cf0ca8ce..06b99062 100644
--- a/proto/Unk2700_KIGGOKAEFHM.proto
+++ b/proto/WinterCampRecvItemData.proto
@@ -22,7 +22,7 @@ import "ProfilePicture.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_KIGGOKAEFHM {
+message WinterCampRecvItemData {
repeated ItemParam item_list = 2;
uint32 uid = 8;
ProfilePicture profile_picture = 1;
diff --git a/proto/Unk2700_BBMKJGPMIOE.proto b/proto/WinterCampRecvItemNotify.proto
similarity index 89%
rename from proto/Unk2700_BBMKJGPMIOE.proto
rename to proto/WinterCampRecvItemNotify.proto
index ae91e6df..a4337158 100644
--- a/proto/Unk2700_BBMKJGPMIOE.proto
+++ b/proto/WinterCampRecvItemNotify.proto
@@ -17,13 +17,13 @@
syntax = "proto3";
-import "Unk2700_KIGGOKAEFHM.proto";
+import "WinterCampRecvItemData.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8580
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_BBMKJGPMIOE {
- Unk2700_KIGGOKAEFHM Unk2700_CNJPCCECBPD = 14;
+message WinterCampRecvItemNotify {
+ WinterCampRecvItemData recv_item_data = 14;
}
diff --git a/proto/Unk2700_FCLBOLKPMGK.proto b/proto/WinterCampSetWishListReq.proto
similarity index 96%
rename from proto/Unk2700_FCLBOLKPMGK.proto
rename to proto/WinterCampSetWishListReq.proto
index 470c160e..2ab4e72d 100644
--- a/proto/Unk2700_FCLBOLKPMGK.proto
+++ b/proto/WinterCampSetWishListReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_FCLBOLKPMGK {
+message WinterCampSetWishListReq {
repeated uint32 item_id_list = 4;
}
diff --git a/proto/Unk2700_NLJBCGILMIE.proto b/proto/WinterCampSetWishListRsp.proto
similarity index 96%
rename from proto/Unk2700_NLJBCGILMIE.proto
rename to proto/WinterCampSetWishListRsp.proto
index 0018c6e1..9e8b6d9f 100644
--- a/proto/Unk2700_NLJBCGILMIE.proto
+++ b/proto/WinterCampSetWishListRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8281
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_NLJBCGILMIE {
+message WinterCampSetWishListRsp {
int32 retcode = 4;
repeated uint32 item_id_list = 7;
}
diff --git a/proto/Unk2700_DIEGJDEIDKO.proto b/proto/WinterCampStageInfo.proto
similarity index 97%
rename from proto/Unk2700_DIEGJDEIDKO.proto
rename to proto/WinterCampStageInfo.proto
index 0822a094..e0f193e2 100644
--- a/proto/Unk2700_DIEGJDEIDKO.proto
+++ b/proto/WinterCampStageInfo.proto
@@ -21,7 +21,7 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto";
-message Unk2700_DIEGJDEIDKO {
+message WinterCampStageInfo {
uint32 cur_progress = 12;
uint32 id = 6;
uint32 open_time = 8;
diff --git a/proto/Unk2700_LLBCBPADBNO.proto b/proto/WinterCampStageInfoChangeNotify.proto
similarity index 86%
rename from proto/Unk2700_LLBCBPADBNO.proto
rename to proto/WinterCampStageInfoChangeNotify.proto
index 71866c6d..d63b9222 100644
--- a/proto/Unk2700_LLBCBPADBNO.proto
+++ b/proto/WinterCampStageInfoChangeNotify.proto
@@ -17,14 +17,14 @@
syntax = "proto3";
-import "Unk2700_DIEGJDEIDKO.proto";
+import "WinterCampStageInfo.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;
+message WinterCampStageInfoChangeNotify {
+ WinterCampStageInfo explore_info = 12;
+ WinterCampStageInfo battle_info = 4;
}
diff --git a/proto/Unk2700_ONKMCKLJNAL.proto b/proto/WinterCampTakeBattleRewardReq.proto
similarity index 96%
rename from proto/Unk2700_ONKMCKLJNAL.proto
rename to proto/WinterCampTakeBattleRewardReq.proto
index e9ef4e6d..74be62e0 100644
--- a/proto/Unk2700_ONKMCKLJNAL.proto
+++ b/proto/WinterCampTakeBattleRewardReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_ONKMCKLJNAL {
+message WinterCampTakeBattleRewardReq {
uint32 id = 2;
}
diff --git a/proto/Unk2700_CJKCCLEGPCM.proto b/proto/WinterCampTakeBattleRewardRsp.proto
similarity index 96%
rename from proto/Unk2700_CJKCCLEGPCM.proto
rename to proto/WinterCampTakeBattleRewardRsp.proto
index b50cc30d..1ca2bade 100644
--- a/proto/Unk2700_CJKCCLEGPCM.proto
+++ b/proto/WinterCampTakeBattleRewardRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8153
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_CJKCCLEGPCM {
+message WinterCampTakeBattleRewardRsp {
int32 retcode = 6;
uint32 id = 15;
}
diff --git a/proto/Unk2700_HNFGBBECGMJ.proto b/proto/WinterCampTakeExploreRewardReq.proto
similarity index 96%
rename from proto/Unk2700_HNFGBBECGMJ.proto
rename to proto/WinterCampTakeExploreRewardReq.proto
index cb0fbb50..63154e10 100644
--- a/proto/Unk2700_HNFGBBECGMJ.proto
+++ b/proto/WinterCampTakeExploreRewardReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_HNFGBBECGMJ {
+message WinterCampTakeExploreRewardReq {
uint32 id = 8;
}
diff --git a/proto/Unk2700_KFPEIHHCCLA.proto b/proto/WinterCampTakeExploreRewardRsp.proto
similarity index 96%
rename from proto/Unk2700_KFPEIHHCCLA.proto
rename to proto/WinterCampTakeExploreRewardRsp.proto
index a147b81f..c1cffdb8 100644
--- a/proto/Unk2700_KFPEIHHCCLA.proto
+++ b/proto/WinterCampTakeExploreRewardRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8978
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_KFPEIHHCCLA {
+message WinterCampTakeExploreRewardRsp {
int32 retcode = 2;
uint32 id = 15;
}
diff --git a/proto/Unk2700_DLAEFMAMIIJ.proto b/proto/WinterCampTriathlonRestartReq.proto
similarity index 96%
rename from proto/Unk2700_DLAEFMAMIIJ.proto
rename to proto/WinterCampTriathlonRestartReq.proto
index 8ab5e319..b23f3864 100644
--- a/proto/Unk2700_DLAEFMAMIIJ.proto
+++ b/proto/WinterCampTriathlonRestartReq.proto
@@ -23,6 +23,6 @@ option java_package = "emu.grasscutter.net.proto";
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
-message Unk2700_DLAEFMAMIIJ {
+message WinterCampTriathlonRestartReq {
uint32 gallery_id = 6;
}
diff --git a/proto/Unk2700_MJAIKMBPKCD.proto b/proto/WinterCampTriathlonRestartRsp.proto
similarity index 96%
rename from proto/Unk2700_MJAIKMBPKCD.proto
rename to proto/WinterCampTriathlonRestartRsp.proto
index 1f8476b0..a064ca41 100644
--- a/proto/Unk2700_MJAIKMBPKCD.proto
+++ b/proto/WinterCampTriathlonRestartRsp.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8569
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_MJAIKMBPKCD {
+message WinterCampTriathlonRestartRsp {
int32 retcode = 10;
uint32 gallery_id = 14;
}
diff --git a/proto/Unk2700_DGLIANMBMPA.proto b/proto/WinterCampTriathlonSettleNotify.proto
similarity index 89%
rename from proto/Unk2700_DGLIANMBMPA.proto
rename to proto/WinterCampTriathlonSettleNotify.proto
index 42a158e6..55312a4b 100644
--- a/proto/Unk2700_DGLIANMBMPA.proto
+++ b/proto/WinterCampTriathlonSettleNotify.proto
@@ -22,13 +22,13 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 8342
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk2700_DGLIANMBMPA {
- uint32 Unk2700_FHNECPGFPBK = 9;
- uint32 Unk2700_OAKEBJPBNMA = 2;
+message WinterCampTriathlonSettleNotify {
+ uint32 limited_coin = 9;
+ uint32 normal_coin = 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;
+ uint32 race_id = 15;
}
diff --git a/proto/Unk3000_GDMEIKLAMIB.proto b/proto/WorldChestOpenNotify.proto
similarity index 97%
rename from proto/Unk3000_GDMEIKLAMIB.proto
rename to proto/WorldChestOpenNotify.proto
index 786edbeb..1e054fa3 100644
--- a/proto/Unk3000_GDMEIKLAMIB.proto
+++ b/proto/WorldChestOpenNotify.proto
@@ -22,7 +22,7 @@ option java_package = "emu.grasscutter.net.proto";
// CmdId: 3295
// EnetChannelId: 0
// EnetIsReliable: true
-message Unk3000_GDMEIKLAMIB {
+message WorldChestOpenNotify {
uint32 group_id = 6;
uint32 scene_id = 9;
uint32 config_id = 12;
diff --git a/proto/WorldPlayerInfoNotify.proto b/proto/WorldPlayerInfoNotify.proto
index ea82530e..2a451a59 100644
--- a/proto/WorldPlayerInfoNotify.proto
+++ b/proto/WorldPlayerInfoNotify.proto
@@ -18,7 +18,7 @@
syntax = "proto3";
import "OnlinePlayerInfo.proto";
-import "Unk3000_HKHFFDEMNKN.proto";
+import "PlayerWidgetInfo.proto";
option java_package = "emu.grasscutter.net.proto";
@@ -27,7 +27,7 @@ option java_package = "emu.grasscutter.net.proto";
// EnetIsReliable: true
// IsAllowClient: true
message WorldPlayerInfoNotify {
- repeated Unk3000_HKHFFDEMNKN Unk3000_GCJLJCJAADG = 8;
+ repeated PlayerWidgetInfo player_widget_info_list = 8;
repeated OnlinePlayerInfo player_info_list = 14;
repeated uint32 player_uid_list = 11;
}