Initial commit

This commit is contained in:
Crypto137 2023-07-16 04:48:17 +03:00
commit 391e45df5f
157 changed files with 168204 additions and 0 deletions

398
.gitignore vendored Normal file
View file

@ -0,0 +1,398 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Mono auto generated files
mono_crash.*
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Ll]ogs/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# ASP.NET Scaffolding
ScaffoldingReadMe.txt
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.tlog
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Coverlet is a free, cross platform Code Coverage Tool
coverage*.json
coverage*.xml
coverage*.info
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio 6 auto-generated project file (contains which files were open etc.)
*.vbp
# Visual Studio 6 workspace and project file (working project files containing files to include in project)
*.dsw
*.dsp
# Visual Studio 6 technical files
*.ncb
*.aps
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
# Visual Studio History (VSHistory) files
.vshistory/
# BeatPulse healthcheck temp database
healthchecksdb
# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/
# Ionide (cross platform F# VS Code tools) working folder
.ionide/
# Fody - auto-generated XML schema
FodyWeavers.xsd
# VS Code files for those working on multiple tools
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace
# Local History for Visual Studio Code
.history/
# Windows Installer files from build outputs
*.cab
*.msi
*.msix
*.msm
*.msp
# JetBrains Rider
*.sln.iml

661
LICENSE Normal file
View file

@ -0,0 +1,661 @@
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
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.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
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
<https://www.gnu.org/licenses/>.

31
MHServerEmu.sln Normal file
View file

@ -0,0 +1,31 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.4.33122.133
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MHServerEmu", "src\MHServerEmu\MHServerEmu.csproj", "{F7898A66-82D6-45C2-A20A-E4C390567C39}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibGazillion", "src\LibGazillion\LibGazillion.csproj", "{7D085437-F307-49D6-AF7A-C3B3DF4E4189}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F7898A66-82D6-45C2-A20A-E4C390567C39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F7898A66-82D6-45C2-A20A-E4C390567C39}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F7898A66-82D6-45C2-A20A-E4C390567C39}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F7898A66-82D6-45C2-A20A-E4C390567C39}.Release|Any CPU.Build.0 = Release|Any CPU
{7D085437-F307-49D6-AF7A-C3B3DF4E4189}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7D085437-F307-49D6-AF7A-C3B3DF4E4189}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7D085437-F307-49D6-AF7A-C3B3DF4E4189}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7D085437-F307-49D6-AF7A-C3B3DF4E4189}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {32E9F67B-DFB8-4F7F-9C2D-88DADB5FCB19}
EndGlobalSection
EndGlobal

19
README.md Normal file
View file

@ -0,0 +1,19 @@
# MHServerEmu
MHServerEmu is a proof of concept server emulator for Marvel Heroes.
The only currently supported version of the game client is **1.10.0.83**.
Please see Overview.md to find out how everything works.
## Features
This server emulator is currently in very early stages of development.
- Partial network protocol implementation.
- Initial server-client communication implementation.
## Setup
See Setup.md for information on how to set the server up.

31
assets/SiteConfig.xml Normal file
View file

@ -0,0 +1,31 @@
<config>
<str name="AuthServerAddress" value="localhost" />
<str name="AuthServerUrl" value="/marvelheroes/AuthServer/Login/IndexPB" />
<str name="AuthServerTicketUrl" value="" />
<str name="AuthServerPort" value="80" />
<str name="CrashReportHost" value="hq-gar-dev01" />
<str name="CrashReportUrl" value="/MinidumpWebService/Home/ProcessPostedDump" />
<str name="CrashReportPort" value="" />
<str name="VerifyFailureHost" value="localhost" />
<str name="VerifyFailureUrl" value="" />
<str name="VerifyFailurePort" value="" />
<str name="ReportDefectHost" value="" />
<str name="ReportDefectUrl" value="/BugAndFeatureWebService/NewDefect" />
<str name="ReportDefectPort" value="" />
<str name="ReportSuggestionHost" value="" />
<str name="ReportSuggestionUrl" value="/BugAndFeatureWebService/NewSuggestion" />
<str name="ReportSuggestionPort" value="" />
<bool name="UsePlaytestOnlyCommands" value="false" />
<str name="OnCloseUrl" value="" />
<str name="OnCloseUrlSteam" value="" />
<str name="AccountWebsiteUrl" value="https://www.marvelheroes.com" />
<str name="AccountRegistrationUrl" value="https://login.marvelheroes.com/registration.php?pcode=" />
<str name="SteamAccountRegistrationUrl" value="https://login.marvelheroes.com/registration.php?pcode=steam" />
<str name="BitRaiderAccountRegistrationUrl" value="" />
<str name="SteamMicroTransactionCompleteHost" value="partner.marvelheroes.com" />
<str name="SteamMicroTransactionCompletePort" value="" />
<str name="SteamMicroTransactionCompleteUrl" value="/steam/finalize" />
<bool name="SteamMicroTransactionCompleteUseSsl" value="false" />
<str name="DriverUpdateURL" value="https://marvelheroes.com/support/drivers" />
<bool name="AllowNonSteamStoreInSteamBuild" value="true" />
</config>

View file

@ -0,0 +1,33 @@
Copyright 2008, Google Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Code generated by the Protocol Buffer compiler is owned by the owner
of the input file used when generating it. This code is not
standalone and requires a support library to be linked with it. This
support library is itself covered by the above license.

Binary file not shown.

File diff suppressed because it is too large Load diff

37
docs/ClientConfig.md Normal file
View file

@ -0,0 +1,37 @@
# ClientConfig
ClientConfig.xml is a configuration file that comes with the client. By default it includes SiteConfigLocation and KioskMode fields.
## Fields
These fields were extracted from version 1.10.0.83. The differences between versions are minor, but you can get the exact fields and their default values for a specific version from a game process memory dump.
| Name | Type | Default Value | Note |
| ------------------------ | ---- | ------------------------------------------------------------ | ---- |
| SiteConfigLocation | str | http://10.10.11.31/bitraider/marvelplaytest/regionConfig.xml | |
| PlatformAuthToken | | | |
| ServerOverride | | | |
| DefaultRegionOverride | | | |
| DefaultCellOverride | | | |
| EnvOverride | | | |
| AllowDebugDialogs | | | |
| EmailAddress | | | |
| Password | | | |
| DbServerName | | | |
| CollectionName | | | |
| RequestPlayerWipe | | | |
| PowersArtMode | | | |
| RegionsArtMode | | | |
| SkipMotionComics | | | |
| KioskMode | bool | false | |
| PlayerImportFile | | | |
| DisplayNameToggle | | | |
| FloatingNumbersToggle | | | |
| XPNumbersToggle | | | |
| CombatLogToggle | | | |
| LogInAsAnotherPlayer | | | |
| LogInAsPlayer | | | |
| NoPersistenceThisSession | | | |
| ClientDownloader | | | |
| MachineId | | | |
| NoCatalog | | | |

View file

@ -0,0 +1,47 @@
# Client Launch Parameters
To launch any version of the game without any launcher you can use the following combination of launch parameters: "-solidstate -nobitraider -nosteam". Older versions of the game from before BitRaider was removed don't require the -solidstate parameter.
## Game-specific parameters
These require further checking for compatibility with various versions of the client.
| Parameter | Description |
| ---------------------- | ----------- |
| -defaultregion= | |
| -defaultcell= | |
| -startingregion= | |
| -startingcell= | |
| -envoverride= | |
| -collectionname= | |
| -emailaddress= | |
| -password= | |
| -twofactorauthcode= | |
| -twofactorauthname= | |
| -twofactortrustmachine | |
| -loginasplayer | |
| -loginasanother | |
| -nosave | |
| -serveroverride= | |
| -webtoken | |
| -siteconfigurl= | |
| -nosolidstate | |
| -nosteam | |
| -robocopy | |
| -solidstate | |
| -steam | |
| -skipmotioncomics | |
| -nocatalog | |
| -displaynametoggle | |
| -xpnumberstoggle | |
| -floatingnumberstoggle | |
| -combatlogtoggle | |
| -nouinotifications | |
## Generic Unreal Engine parameters
| Parameter | Description |
| ---------------- | ----------- |
| -nostartupmovies | |
| -nomovies | |
| -nosplash | |

50
docs/Overview.md Normal file
View file

@ -0,0 +1,50 @@
# Overview
Marvel Heroes uses [Protocol Buffers](https://protobuf.dev/) for network message serialization. It is possible to extract protobuf schemas (.proto) from the main client executable using [protod](https://github.com/dennwc/protod) and then use them with tools such as protogen included with [protobuf-csharp-port](https://github.com/jskeet/protobuf-csharp-port).
Protobuf payloads follow the following structure:
```
byte MessageId          // same as index in its .proto schema
byte MessageSize        // in bytes
byte[] EncodedMessage
```
When a player tries to log in, the client first requests an AuthTicket protobuf message from the auth server specified in SiteConfig.xml over https. This message contains session info (id, token, AES-256 encryption key), as well as the frontend server address and port that the client proceeds to connect to.
The frontend server routes messages to various services using what is called mux. Communication with the frontend server requires a 6 byte header with the following structure:
```
ushort MuxId
byte BodySize
byte UnknownByte3
byte UnknownByte4
byte Command
```
There are a total of 5 mux commands:
```
enum MuxCommand
{
    Connect = 0x01,
    Accept = 0x02, // Expected response to Connect and Insert
    Disconnect = 0x03,
    Insert = 0x04, // Purpose unclear, works similar to connect
    Message = 0x05 // Requires a protobuf payload as body
}
```
After establishing a mux connection with the frontend server, the client sends a ClientCredentials message that contains a session id and a session token encrypted using the AES-256 key provided in the AuthTicket message along with a specified random IV.
The frontend server can respond with either a LoginQueueStatus to display a login queue screen in the client, or a SessionEncryptionChanged to proceed with authorization. It's currently unclear how SessionEncryptionChanged functions.
The client responds to the SessionEncryptionChanged message with two messages in a row: InitialClientHandshake with PLAYERMGR_SERVER_FRONTEND followed by NetMessageReadyForGameJoin that is most likely supposed to be routed to the server specified in the handshake.
What is supposed to happen after that is currently unclear:
- PLAYERMGR_SERVER_FRONTEND can initiate time synchronization with a NetMessageReadyForTimeSync. The client will then send a NetMessageSyncTimeRequest that can be responded with NetMessageSyncTimeReply. The client will then periodically send NetMessagePing.
- Sending a NetMessageReadyAndLoggedIn will cause the client to start a new mux connection on a different muxId and use it to send another InitialClientHandshake message, but this one is addressed to GROUPING_MANAGER_FRONTEND. The client doesn't respond to any GroupingManager messages.
- It's is possible in some cases to make the client display either a hero selection screen or a loading screen using NetMessageSelectStartingAvatarForNewPlayer or NetMessageQueueLoadingScreen respectively. However, these messages appear to require a timestamp of some type, and it's currently unclear how it fits in the protobuf payload structure.

40
docs/Setup.md Normal file
View file

@ -0,0 +1,40 @@
# Setup
First you need to get the 1.10.0.83 client. If you still have Marvel Heroes in your Steam library, you can download it like this:
1. Open the Steam console: steam://open/console
2. Enter the following command: download_depot 226320 226321 2278274898429684559
3. Steam will begin to download the requested client build. There will be no download progress indication.
4. The console will display a message when the download finishes. You can find the client files in the following directory %SteamInstallationDirectory%\steamapps\content\app_226320\depot_226321
You can find depot and manifest ids for other builds on [SteamDB](https://steamdb.info/app/226320/depots/). Some versions of the client have also been uploaded to the [Internet Archive](https://archive.org/).
Then you need to set up a web server to serve SiteConfig.xml and redirect the https AuthTicket request to localhost:8080. You can use either set the server up yourself, or use a solution stack such as WAMP.
1. Set up your preferred web server.
2. Enable HTTPS support ([here](https://gist.github.com/danieldogeanu/081dc198a2d727afd6bf01174990ee8d) are instructions for WAMP)
3. Add the following lines to your virtual host configuration in httpd-ssl.conf:
```
RewriteEngine on
RewriteRule ^/marvelheroes(.*) http://%{HTTP_HOST}:8080$1
```
Now you can actually redirect the client to your server and connect.
1. Create a marvelheroes directory in your web server's www folder and put SiteConfig.xml provided in this repository in it.
2. Edit your ClientConfig.xml file located in "Marvel Heroes\Data\Configs" and replace the SiteConfigLocation value with "localhost/marvelheroes/SiteConfig.xml".
3. Compile and run MHServerEmu.
4. Run MarvelGame.exe with the -nobitraider -nosteam arguments.
5. Log in with any email and password.
If everything works correctly, the server should display client connection information.

41
docs/SiteConfig.md Normal file
View file

@ -0,0 +1,41 @@
# SiteConfig
SiteConfig.xml is a configuration file that the client requests from a CDN on startup that includes information required for logging in, such as AuthServerAddress. SiteConfig.xml follows the same syntax as ClientConfig.xml that comes with the client.
Some versions of the game refuse to start without a SiteConfig. In some of those cases you can work around this by putting a defaultsiteconfig.xml file in the same directory as ClientConfig.xml.
## Fields
These fields were extracted from version 1.10.0.83. The differences between versions are minor, but you can get the exact fields and their default values for a specific version from a game process memory dump.
| Name | Type | Default Value | Note |
| --------------------------------- | ---- | ----------------------------------------------------------- | -------------------------------------- |
| AuthServerAddress | str | auth.marvelheroes.com | Default value from later versions |
| AuthServerUrl | str | /AuthServer/Login/IndexPB | Default value from later versions |
| AuthServerTicketUrl | str | | |
| AuthServerPort | | 80 | The game actually always uses port 443 |
| CrashReportHost | str | hq-gar-dev01 | |
| CrashReportUrl | str | /MinidumpWebService/Home/ProcessPostedDump | |
| CrashReportPort | | | |
| VerifyFailureHost | str | localhost | |
| VerifyFailureUrl | str | | |
| VerifyFailurePort | | | |
| ReportDefectHost | str | | |
| ReportDefectUrl | str | /BugAndFeatureWebService/NewDefect | |
| ReportDefectPort | | | |
| ReportSuggestionHost | str | | |
| ReportSuggestionUrl | str | /BugAndFeatureWebService/NewSuggestion | |
| ReportSuggestionPort | | | |
| UsePlaytestOnlyCommands | bool | | |
| OnCloseUrl | str | | |
| OnCloseUrlSteam | str | | |
| AccountWebsiteUrl | str | https://www.marvelheroes.com | |
| AccountRegistrationUrl | str | https://login.marvelheroes.com/registration.php?pcode= | |
| SteamAccountRegistrationUrl | str | https://login.marvelheroes.com/registration.php?pcode=steam | |
| BitRaiderAccountRegistrationUrl | str | | |
| SteamMicroTransactionCompleteHost | str | partner.marvelheroes.com | |
| SteamMicroTransactionCompletePort | | | |
| SteamMicroTransactionCompleteUrl | str | /steam/finalize | |
| DriverUpdateURL | str | https://marvelheroes.com/support/drivers | |

View file

@ -0,0 +1,22 @@
syntax = "proto2";
package Gazillion;
message AuthTicket {
optional bytes sessionKey = 1;
optional bytes sessionToken = 2;
required uint64 sessionId = 3;
optional string errorMessage = 4;
optional string frontendServer = 5;
optional string frontendPort = 6;
optional string platformTicket = 7;
optional bool presalePurchase = 8;
optional string tosurl = 9;
optional bool success = 10;
optional uint64 accountId = 11;
optional bool hasnews = 12;
optional string newsurl = 13;
optional bool hasPendingGift = 14;
optional string pendingGiftUrl = 15;
}

View file

@ -0,0 +1,25 @@
syntax = "proto2";
package Gazillion;
enum AvailableBadges {
Badge_CanGrantBadges = 1;
Badge_SiteCommands = 2;
Badge_CanBroadcastChat = 3;
Badge_AllContentAccess = 4;
Badge_CanLogInAsAnotherAccount = 5;
Badge_CanDisablePersistence = 6;
Badge_PlaytestCommands = 7;
Badge_NumberOfBadges = 8;
}
message BadgeDescriptions {
optional string CanGrantBadges = 1 [default = "User can grant badges to other users"];
optional string SiteCommands = 2 [default = "User can run the site commands (player/regions lists, change to specific region etc)"];
optional string CanBroadcastChat = 3 [default = "User can send a a chat message to all players"];
optional string AllContentAccess = 4 [default = "User has access to all content in the game"];
optional string CanLogInAsAnotherAccount = 5 [default = "User has ability to log in as another account"];
optional string CanDisablePersistence = 6 [default = "User has ability to play without saving"];
optional string PlaytestCommands = 7 [default = "User can always use commands that are normally only available during a playtest (e.g. bug)"];
}

View file

@ -0,0 +1,74 @@
syntax = "proto2";
package Gazillion;
enum BuyItemResultErrorCodes {
BUY_RESULT_ERROR_SUCCESS = 0;
BUY_RESULT_ERROR_ALREADY_HAVE_AVATAR = 1;
BUY_RESULT_ERROR_ALREADY_HAVE_STASH_INV = 2;
BUY_RESULT_ERROR_ALREADY_HAVE_PERMABUFF = 3;
BUY_RESULT_ERROR_INSUFFICIENT_BALANCE = 4;
BUY_RESULT_ERROR_IS_GIFT = 5;
BUY_RESULT_ERROR_UNKNOWN = 6;
}
enum RedeemCodeResultErrorCodes {
REDEEM_CODE_RESULT_ERROR_SUCCESS = 0;
REDEEM_CODE_RESULT_ERROR_ALREADY_REDEEMED = 1;
REDEEM_CODE_RESULT_ERROR_INVALID_KEY = 2;
REDEEM_CODE_RESULT_ERROR_UNKNOWN = 3;
}
message MHCatalogEntryType {
required string name = 1;
required int32 order = 2;
}
message MHCatalogEntryTypeModifier {
required string name = 1;
required int32 order = 2;
}
message MHBannerUrl {
required string type = 1;
required string url = 2;
}
message MHLocalizedCatalogUrls {
required string localeId = 1;
optional string storeHomePageUrl = 2;
repeated MHBannerUrl storeBannerPageUrls = 3;
optional string storeRealMoneyUrl = 4;
}
message MHLocalizedCatalogEntry {
required string language_id = 1;
optional string description = 2;
optional string title = 3;
optional string releaseDate = 5;
required int64 itemPrice = 6;
}
message MHLocalizedCatalogEntryUrlOrData {
required string language_id = 1;
optional string url = 2;
optional bytes imagedata = 3;
}
message MHCatalogGuidEntry {
optional uint64 prototypeGuid = 1;
optional uint64 itemPrototypeRuntimeIdForClient = 2;
optional int32 quantity = 3 [default = 1];
}
message MarvelHeroesCatalogEntry {
required int64 skuId = 1;
repeated MHCatalogGuidEntry guidItems = 9;
repeated MHCatalogGuidEntry additionalGuidItems = 10;
repeated MHLocalizedCatalogEntry localizedEntries = 5;
repeated MHLocalizedCatalogEntryUrlOrData infourls = 2;
repeated MHLocalizedCatalogEntryUrlOrData contentdata = 3;
optional MHCatalogEntryType type = 6;
repeated MHCatalogEntryTypeModifier typeModifier = 7;
}

View file

@ -0,0 +1,47 @@
syntax = "proto2";
package Gazillion;
import "CommonMessages.proto";
enum ChatRoomTypes {
CHAT_ROOM_TYPE_LOCAL = 0;
CHAT_ROOM_TYPE_SAY = 1;
CHAT_ROOM_TYPE_PARTY = 2;
CHAT_ROOM_TYPE_TELL = 3;
CHAT_ROOM_TYPE_BROADCAST_ALL_SERVERS = 4;
CHAT_ROOM_TYPE_SOCIAL = 5;
CHAT_ROOM_TYPE_TRADE = 6;
CHAT_ROOM_TYPE_LFG = 7;
CHAT_ROOM_TYPE_GUILD = 8;
CHAT_ROOM_TYPE_FACTION = 9;
CHAT_ROOM_TYPE_EMOTE = 10;
CHAT_ROOM_TYPE_ENDGAME = 11;
CHAT_ROOM_TYPE_METAGAME = 12;
CHAT_ROOM_TYPE_NUM_TYPES = 13;
}
enum GroupLeaveReason {
GROUP_LEAVE_REASON_LEFT = 1;
GROUP_LEAVE_REASON_BOOTED = 2;
GROUP_LEAVE_REASON_DISBANDED = 3;
}
enum ChatErrorMessages {
CHAT_ERROR_NO_SUCH_USER = 0;
CHAT_ERROR_COMMAND_NOT_RECOGNIZED = 1;
CHAT_ERROR_NUM_ERRORS = 2;
}
message ChatMessageAttachments {
repeated bytes attachmments = 1;
optional int64 emoteDataRef = 2;
repeated NetStructItemSpec itemSpecs = 3;
}
message ChatMessage {
optional string body = 1;
optional int64 bodyId = 2;
optional ChatMessageAttachments attachment = 3;
}

View file

@ -0,0 +1,679 @@
syntax = "proto2";
package Gazillion;
import "GazillionCommon.proto";
import "CommonMessages.proto";
import "ChatCommon.proto";
import "Guild.proto";
import "GlobalEventsCommon.proto";
message NetMessageReadyForGameJoin {
required string playerName = 1;
required int32 wipesDataIfMismatchedInDb = 3 [default = 0];
optional bool wipePlayerRecordsOnLogin = 2 [default = false];
optional string domainLoginName = 4;
optional bytes playerImportData = 5;
required string localeName = 6;
optional int32 clientOperatingSystem = 7;
}
message NetMessagePlayerSystemMetrics {
required int32 compatLevelCpu = 1 [default = -1];
required int32 compatLevelGpu = 2 [default = -1];
required int32 compatLevelComposite = 3 [default = -1];
optional string osName = 4;
optional string cpuName = 5;
optional string ramName = 6;
optional string displayDeviceName = 7;
optional bool displayDeviceDualGPU = 8;
optional string displayDeviceDriverDate = 9;
}
message NetMessageSyncTimeRequest {
required int64 gameTimeClientSent = 1;
required int64 dateTimeClientSent = 2;
}
message NetMessageSetTimeDialation {
required int64 gameTimeDialationStarted = 1;
required int64 dateTimeDialationStarted = 2;
required float dialation = 3;
}
message NetMessageIsRegionAvailable {
required uint64 regionPrototype = 1;
required bool isAvailable = 2;
}
message NetMessageUpdateAvatarState {
required uint64 idAvatar = 1;
required NetStructPoint3 position = 2;
required NetStructPoint3 orientation = 3;
optional int32 avatarworldinstanceid = 4;
optional NetStructLocomotionState locomotionstate = 5;
}
message NetMessageCellLoaded {
required uint32 cellId = 1;
required uint64 regionId = 2;
}
message NetMessageTeleportAckResponse {
required uint32 ackseq = 1;
}
message NetMessageAdminCommand {
required string command = 1;
}
message NetMessageTryActivatePower {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
optional uint64 idTargetEntity = 3;
optional NetStructPoint3 targetPosition = 4;
optional float movementSpeed = 5;
optional uint64 movementTimeMS = 6;
optional uint32 powerRandomSeed = 7;
optional uint64 itemSourceId = 8;
required uint32 fxRandomSeed = 9;
}
message NetMessagePowerRelease {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
optional uint64 idTargetEntity = 3;
optional NetStructPoint3 targetPosition = 4;
}
message NetMessageTryCancelPower {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
required uint32 endPowerFlags = 3;
}
message NetMessageTryCancelActivePower {
required uint64 idUserEntity = 1;
}
message NetMessageContinuousPowerUpdateToServer {
required uint64 powerPrototypeId = 1;
optional uint64 idTargetEntity = 2;
optional NetStructPoint3 targetPosition = 3;
}
message NetMessageCancelPendingAction {
}
message NetMessageStartAIDebugUI {
required uint64 idTargetNPC = 1;
}
message NetMessageStopAIDebugUI {
required uint64 idTargetNPC = 1;
}
message NetMessageStartAIPerformanceUI {
}
message NetMessageStopAIPerformanceUI {
}
message NetMessageStartMissionDebugUI {
required uint64 idTargetAgent = 1;
required uint64 missionPrototypeRefId = 2;
required string missionListMatchPattern = 3;
}
message NetMessageStopMissionDebugUI {
required uint64 idTargetAgent = 1;
}
message NetMessageStartPropertiesDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopPropertiesDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStartConditionsDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopConditionsDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStartPowersDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopPowersDebugUI {
required uint64 idTargetEntity = 1;
}
message NetStructMessageStoreMetric {
required AvailableStoreActions storeActionEnum = 1;
required uint64 unixTimestamp = 2;
optional uint64 targetPrototypeId = 3;
}
message NetMessagePing {
required bool displayOutput = 1;
required uint64 sendClientTime = 2;
optional uint64 sendGameTime = 3;
optional uint64 requestNetReceivedGameTime = 4;
optional uint64 lastClientLatency = 5;
optional float lastFps = 6;
optional uint64 regionPrototype = 7;
optional uint32 cpulevel = 8;
optional uint32 gpulevel = 9;
optional uint32 compositelevel = 10;
optional float minFps = 11;
optional NetStructPoint3 minFpsPos = 12;
repeated NetStructMessageStoreMetric storeMetrics = 13;
required uint32 maskedclientip = 14;
}
message NetMessagePickupInteraction {
required uint64 idTarget = 1;
optional bool useInteractFallbackRange = 2;
}
message NetMessageTryInventoryMove {
required uint64 itemId = 1;
required uint64 toInventoryOwnerId = 2;
required uint64 toInventoryPrototype = 3;
required uint32 toSlot = 4;
optional bool isStackSplit = 5;
}
message NetMessageTryMoveCraftingResultsToGeneral {
}
message NetMessageInventoryTrashItem {
required uint64 itemId = 1;
}
message NetMessageThrowInteraction {
required uint64 idTarget = 1;
}
message NetMessagePerformPreInteractPower {
required uint64 idTarget = 1;
required bool hasDialog = 2;
}
message NetMessageUseInteractableObject {
required uint64 idTarget = 1;
optional uint64 missionPrototypeRef = 2;
}
message NetMessageTryCraft {
required uint64 idRecipe = 1;
required uint64 idVendor = 2;
repeated uint64 idIngredients = 3;
}
message NetMessageUseWaypoint {
required uint64 idTransitionEntity = 1;
required uint64 waypointDataRef = 2;
required uint64 regionProtoId = 3;
}
message NetMessageDebugAcquireAndSwitchToAvatar {
required uint64 avatarPrototypeId = 1;
}
message NetMessageSwitchAvatarAndDifficulty {
required uint64 avatarId = 1;
required uint64 difficultyPrototypeId = 2;
}
message NetMessageAssignHotkey {
required uint64 avatarId = 1;
required uint64 prototypeRefId = 2;
required uint32 slotNumber = 3;
required uint32 destinationSlotNumber = 4;
}
message NetMessageUnassignHotkey {
required uint64 avatarId = 1;
required uint32 slotNumber = 2;
}
message NetMessageSetAbilityKeyMappingIndex {
required uint64 avatarId = 1;
required uint32 abilityKeyMappingIndex = 2;
}
message NetMessageAbilitySlotToAbilityBar {
required uint64 avatarId = 1;
required uint64 prototypeRefId = 2;
required uint32 slotNumber = 3;
}
message NetMessageAbilityUnslotFromAbilityBar {
required uint64 avatarId = 1;
required uint32 slotNumber = 2;
}
message NetMessageAbilityUnslotFromAllSlots {
required uint64 avatarId = 1;
required uint64 abilityProtoId = 2;
}
message NetMessageAbilitySwapInAbilityBar {
required uint64 avatarId = 1;
required uint32 slotNumberA = 2;
required uint32 slotNumberB = 3;
}
message NetMessageModCommitTemporary {
required uint64 avatarRef = 1;
required uint64 modTypeRef = 2;
repeated NetStructModChangeObject changes = 3;
}
message NetMessageModReset {
required uint64 avatarId = 1;
required uint64 modTypeRef = 2;
}
message NetMessagePowerPointAllocationCommit {
required uint64 avatarRef = 1;
repeated NetStructPowerPointAllocation allocations = 2;
}
message NetMessageRequestDeathRelease {
required bool hitOk = 1;
required bool resurrectedFromOtherEntity = 2;
}
message NetMessageRequestResurrectDecline {
}
message NetMessageRequestResurrectAvatar {
optional uint64 targetId = 1;
}
message NetMessageReturnToHub {
}
message NetMessageRequestStoryWarp {
required uint64 storyWarpPrototypeId = 1;
required uint64 storyWarpNPC = 2;
}
message NetMessageRequestMissionRewards {
required uint64 missionPrototypeId = 1;
required uint32 conditionIndex = 2;
optional uint64 entityId = 3;
}
message NetMessageInvitePlayer {
optional uint64 inviteeEntityId = 1;
optional string inviteeName = 2;
}
message NetMessageRequestPartyJoinPortal {
}
message NetMessageDeclineGroupInvite {
}
message NetMessageLeaveGroup {
}
message NetMessageChangeGroupLeader {
required uint64 targetMemberId = 1;
}
message NetMessageBootPlayer {
required uint64 targetMemberId = 1;
}
message NetMessageDisbandGroup {
}
message NetMessageGroupChangeType {
required GroupType type = 1;
}
message NetMessageGroupChangeTypeConfirmResponse {
required uint64 playerId = 1;
required bool accept = 2;
}
message NetMessageMatchQueueListRequest {
}
message NetMessageMatchQueueRequest {
required uint32 queueIndex = 1;
required bool queueEntireGroup = 2;
}
message NetMessageMatchStatisticsRequest {
required uint32 statRequestNumber = 1;
required string playerName = 2;
}
message NetMessageMatchInviteResponse {
required uint64 matchNumber = 1;
required bool inviteAccepted = 2;
}
message NetMessageDuelInvite {
required uint64 challengerEntityId = 1;
optional string challengerName = 2;
optional uint64 opponentEntityId = 3;
required string opponentName = 4;
}
message NetMessageDuelAccept {
required uint64 challengedEntityId = 1;
optional string challengedName = 2;
}
message NetMessageDuelCancel {
required uint64 cancellingEntityId = 1;
optional string cancellingName = 2;
}
message NetMessageMetaGameUpdateNotification {
required uint64 metaGameEntityId = 1;
}
message NetMessageChat {
required ChatRoomTypes roomType = 1;
required ChatMessage theMessage = 2;
}
message NetMessageTell {
required string targetPlayerName = 1;
required ChatMessage theMessage = 2;
}
message NetMessageReportPlayer {
required string targetPlayerName = 1;
required string reason = 2;
}
message NetMessageGetCatalog {
optional uint64 itemPrototypeRuntimeId = 1 [default = 0];
optional int64 timestamp_seconds = 3 [default = 0];
optional int64 timestamp_microseconds = 5 [default = 0];
optional string localeid = 4 [default = "en_us"];
}
message NetMessageGetCurrencyBalance {
}
message NetMessageBuyItemFromCatalog {
required int64 skuId = 1;
required int64 itemUnitPrice = 2;
optional int32 numUnits = 3 [default = 1];
}
message EntityPreviewerEnum {
enum Alliance {
Ally = 0;
Enemy = 1;
Total = 2;
}
}
message NetMessageEntityPreviewerNewTargets {
required EntityPreviewerEnum.Alliance alliance = 1;
optional uint32 numNewTargets = 2;
}
message NetMessageEntityPreviewerClearTargets {
}
message NetMessageEntityPreviewerSetTargetRef {
required uint64 targetRefId = 1;
}
message NetMessageEntityPreviewerActivatePower {
required uint64 casterId = 1;
required uint64 powerRefId = 2;
required bool createTarget = 3;
required bool randomTargetPos = 4;
}
message NetMessageEntityPreviewerAddTarget {
required uint64 targetId = 1;
}
message NetMessageEntityPreviewerSetEntityState {
required uint64 targetId = 1;
required uint64 stateRefId = 2;
}
message NetMessageEntityPreviewerApplyConditions {
required uint64 targetId = 1;
required uint64 powerRefId = 2;
}
message NetMessageCreateNewPlayerWithSelectedStartingAvatar {
required uint64 startingAvatarPrototypeId = 1;
}
message NetMessageOnKioskStartButtonPressed {
}
message NetMessageNotifyFullscreenMovieFinished {
required uint64 moviePrototypeId = 1;
required bool userCancelled = 2;
required uint32 syncRequestId = 3;
}
message NetMessageBotSetLevel {
required int32 level = 1;
}
message NetMessageBotGodMode {
}
message NetMessageBotPickAvatar {
required uint64 avatarBotDataId = 1;
optional int32 level = 2;
optional uint64 lootPrototype = 3;
optional uint32 lootTableRoll = 4;
}
message NetMessageBotRegionChange {
required uint64 regionDataId = 1;
}
message NetMessageBotWarpAreaNext {
}
message NetMessageBotLootGive {
required uint64 lootPrototype = 1;
required uint32 lootTableRoll = 2;
}
message NetMessageBotSetPvPFaction {
required uint64 factionSetPrototype = 1;
}
message NetMessageBotPvPQueue {
required uint64 pvpQueueId = 1;
}
message NetMessageGetTrackerReport {
required uint32 messageSource = 1;
required uint32 messageDirection = 2;
}
message NetMessagePlayKismetSeqDone {
required uint64 kismetSeqPrototypeId = 1;
required uint32 syncRequestId = 2;
}
message NetMessageVerifyFailedForRepId {
required uint64 repid1 = 1;
required string file = 2;
required uint32 line = 3;
required string debugmsg = 4;
optional uint64 repid2 = 5;
}
message NetMessageGracefulDisconnect {
}
message NetMessageRequestStartNewGame {
}
message NetMessageSetDialogTarget {
required uint64 targetId = 1;
}
message NetMessageVendorRequestBuyItemFrom {
required uint64 itemId = 1;
required uint64 vendorId = 2;
required uint32 inventorySlot = 3;
}
message NetMessageVendorRequestSellItemTo {
required uint64 itemId = 1;
required uint64 vendorId = 2;
}
message NetMessageVendorRequestDonateItemTo {
required uint64 itemId = 1;
required uint64 vendorId = 2;
}
message NetMessageVendorRequestRefresh {
required uint64 vendorId = 1;
}
message NetMessageTryModifyCommunityMemberCircle {
required uint64 circleId = 1;
required ModifyCircleOperation operation = 2;
required string playerName = 3;
}
message NetMessagePullCommunityStatus {
}
message NetMessageGuildMessageToPlayerManager {
required GuildMessageSetToPlayerManager messages = 1;
}
message NetMessageAkEvent {
required uint32 akEventId = 1;
required bool isVO = 2;
required uint32 eventType = 3;
}
message NetMessageSetShowTips {
required bool showTips = 1;
}
message NetMessageSetTipSeen {
required uint64 tipDataRefId = 1;
required uint64 avatarEntityId = 2;
}
message NetMessageResetSeenTips {
}
message NetMessageTryMoveInventoryContentsToGeneral {
required uint64 sourceInventoryPrototype = 1;
}
message NetMessageSetPlayerGameplayOptions {
required NetStructGameplayOptions optionsData = 1;
}
message NetMessageTeleportToPartyMember {
required string playerName = 1;
}
message NetMessageRegionRequestQueueCommandClient {
required uint64 regionProtoId = 1;
optional uint64 regionRequestGroupId = 2;
required RegionRequestQueueCommandVar command = 3;
optional bool allowAutoParty = 4 [default = false];
}
message NetMessageSelectAvatarSynergies {
required uint64 avatarId = 1;
repeated uint64 avatarPrototypes = 2;
}
message NetMessageRequestLegendaryMissionReroll {
}
message NetMessageAttemptShareLegendaryMission {
required string playerName = 1;
}
message NetMessageAttemptShareLegendaryMissionResponse {
required bool missionAccepted = 1;
}
message NetMessageRequestPlayerOwnsItemStatus {
required uint64 itemProtoId = 1;
}
message NetMessageRequestInterestInInventory {
required uint64 inventoryProtoId = 1;
}
message NetMessageRequestInterestInAgentEquipment {
required uint64 agentId = 1;
}
message NetMessageTryTeamUpSelect {
required uint64 teamUpPrototypeId = 1;
}
message NetMessageTryTeamUpPowerSelect {
required uint64 powerPrototypeId = 1;
}
message NetMessageRequestTeamUpDismiss {
}
message NetMessageSelectOmegaBonus {
required uint64 omegaBonusProtoRefID = 1;
required int32 rank = 2;
}
message NetMessageOmegaBonusAllocationCommit {
required uint64 avatarId = 1;
repeated NetMessageSelectOmegaBonus allocations = 2;
}
message NetMessageRespecOmegaBonus {
required uint64 avatarId = 1;
}
message NetMessageRequestGlobalEventUpdate {
required uint64 eventId = 1;
required GlobalEventUpdateType updateType = 2;
}
message NetMessageHasPendingGift {
optional bool hasPendingGift = 1;
}
message NetMessagePlayerTradeStart {
required string partnerPlayerName = 1;
}
message NetMessagePlayerTradeCancel {
}
message NetMessagePlayerTradeSetConfirmFlag {
required bool confirmFlag = 1;
required uint32 sequenceNumber = 2;
}

View file

@ -0,0 +1,8 @@
syntax = "proto2";
package Gazillion;
message ClientIgnoredInvite {
required uint64 decliningPlayerId = 1;
}

View file

@ -0,0 +1,368 @@
syntax = "proto2";
package Gazillion;
enum ModifyCircleOperation {
eMCO_Add = 1;
eMCO_Remove = 2;
}
enum GlobalTuningVar {
eGTV_VendorBuyPrice = 0;
eGTV_VendorSellPrice = 1;
eGTV_VendorXPGain = 2;
eGTV_PVPEnabled = 3;
eGTV_XPGain = 4;
eGTV_LootDropRate = 5;
eGTV_LootSpecialDropRate = 6;
eGTV_LootRarity = 7;
eGTV_PartyXPBonusPct = 8;
eGTV_PlayerTradeEnabled = 9;
eGTV_NumGlobalTuningVars = 10;
}
enum AreaTuningVar {
eATV_AreaMobSpawnHeat = 0;
eATV_AreaMobSpawnHeatReturn = 1;
eATV_NumAreaTuningVars = 2;
}
enum WorldEntityTuningVar {
eWETV_MobPowerDamage = 0;
eWETV_MobHealth = 1;
eWETV_MobXP = 2;
eWETV_MobDropRate = 3;
eWETV_MobSpecialDropRate = 4;
eWETV_Enabled = 5;
eWETV_MobDropRarity = 6;
eWETV_NumWorldEntityTuningVars = 7;
}
enum PopObjTuningVar {
ePOTV_PopulationObjectWeight = 0;
ePOTV_NumPopulationObjectTuningVars = 1;
}
enum PowerTuningVar {
ePTV_PowerCost = 0;
ePTV_PowerDamagePVE = 1;
ePTV_PowerDamagePVP = 2;
ePTV_PowerEnabled = 3;
ePTV_NumPowerTuningVars = 4;
}
enum RegionTuningVar {
eRTV_PlayerLimit = 0;
eRTV_Enabled = 1;
eRTV_NumRegionTuningVars = 2;
}
enum LootTableTuningVar {
eLTTV_Enabled = 0;
eLTTV_Weight = 1;
eLTTV_Rolls = 2;
eLTTV_NoDropPercent = 3;
eLTTV_NumLootTableTuningVars = 4;
}
enum MissionTuningVar {
eMTV_Enabled = 0;
eMTV_NumMissionTuningVars = 1;
}
enum RegionRequestQueueUpdateVar {
eRRQ_Invalid = 1;
eRRQ_SelectQueueMethod = 2;
eRRQ_RemovedFromGroup = 3;
eRRQ_RaidNotAllowed = 4;
eRRQ_GroupInvitePending = 5;
eRRQ_GroupInviteAccepted = 6;
eRRQ_GroupInviteDeclined = 7;
eRRQ_GroupInviteExpired = 8;
eRRQ_WaitingInQueue = 9;
eRRQ_WaitingInWaitlist = 10;
eRRQ_WaitingInWaitlistLocked = 11;
eRRQ_MatchInvitePending = 12;
eRRQ_MatchInviteAccepted = 13;
eRRQ_MatchInviteDeclined = 14;
eRRQ_MatchInviteExpired = 15;
eRRQ_InMatch = 16;
}
enum RegionRequestQueueCommandVar {
eRRQC_AddToQueueSolo = 1;
eRRQC_AddToQueueParty = 2;
eRRQC_AddToQueueBypass = 3;
eRRQC_GroupInviteAccept = 4;
eRRQC_GroupInviteDecline = 5;
eRRQC_RemoveFromQueue = 6;
eRRQC_MatchInviteAccept = 7;
eRRQC_MatchInviteDecline = 8;
eRRQC_DebugForceStart = 9;
eRRQC_DebugInfo = 10;
eRRQC_RequestToJoinGroup = 11;
}
enum RegionPlayerAccessVar {
eRPA_Invalid = 0;
eRPA_Open = 1;
eRPA_InviteOnly = 2;
eRPA_Locked = 3;
eRPA_Closed = 4;
}
enum RegionTransferFailure {
eRTF_GenericError = 0;
eRTF_CreationProhibitedByGame = 1;
eRTF_Full = 2;
eRTF_PartiesNotAllowed = 3;
eRTF_RaidsNotAllowed = 4;
eRTF_TargetPlayerUnavailable = 5;
eRTF_BodyslideRegionUnavailable = 6;
eRTF_DestinationInaccessible = 7;
eRTF_PlayerNotInDifficulty = 8;
eRTF_MatchNoTeleportToPlayer = 9;
eRTF_MatchNoTeleportToParty = 10;
eRTF_PlayerBlacklistedFromRegion = 11;
}
enum AvailableStoreActions {
StoreAction_ViewHomeTab = 1;
StoreAction_ViewHeroesTab = 2;
StoreAction_ViewCostumesTab = 3;
StoreAction_ViewItemsTab = 4;
StoreAction_ViewCardsTab = 5;
StoreAction_ViewSpecialsTab = 6;
StoreAction_ViewCostumesForHero = 7;
StoreAction_UserPressedBuy = 8;
StoreAction_UserPressedAddGs = 9;
StoreAction_StoreOpened = 10;
StoreAction_NumberOfStoreActions = 11;
}
enum MetricWaveResults {
MetricWaveResults_Success = 1;
MetricWaveResults_FailQuit = 2;
MetricWaveResults_FailPlayerWipe = 3;
MetricWaveResults_FailStudentDeath = 4;
MetricWaveResults_FailDeathTimeout = 5;
MetricWaveResults_NumberOfMetricWaveResults = 6;
}
enum LegendaryMissionShareResultType {
LegendaryMissionShare_Sent = 1;
LegendaryMissionShare_Accepted = 2;
LegendaryMissionShare_Declined = 3;
LegendaryMissionShare_RequestAlreadyPending = 4;
LegendaryMissionShare_FailPlayerNotFound = 5;
LegendaryMissionShare_FailNotEligible = 6;
LegendaryMissionShare_FailAlreadyHave = 7;
LegendaryMissionShare_FailCannotShareWithSelf = 8;
LegendaryMissionShare_FailCannotReShare = 9;
LegendaryMissionShare_UnknownFailure = 10;
}
enum GroupType {
GroupType_Invalid = 0;
GroupType_Party = 1;
GroupType_Raid = 2;
}
enum CurrencyType {
Currency_EternitySplinter = 1;
Currency_CubeShard = 2;
Currency_OdinMarks = 3;
Currency_Credits = 4;
CurrencySpend_NumberOfCurrencySpendTypes = 5;
}
message NetStructPoint3 {
optional float X = 1 [default = 0];
optional float Y = 2 [default = 0];
optional float Z = 3 [default = 0];
}
message NetStructIPoint3 {
optional uint32 X = 1 [default = 0];
optional uint32 Y = 2 [default = 0];
optional uint32 Z = 3 [default = 0];
}
message NetStructPoint2 {
optional float X = 1 [default = 0];
optional float Y = 2 [default = 0];
}
message NetStructIPoint2 {
optional uint32 X = 1 [default = 0];
optional uint32 Y = 2 [default = 0];
}
message NetStructProperty {
required uint64 id = 1;
required uint64 value = 2;
}
message NetStructPropertyList {
repeated NetStructProperty properties = 1;
}
message NetStructLocomotionPathNode {
required NetStructPoint3 vertex = 1;
required int32 vertexSideRadius = 2;
}
message NetStructLocomotionState {
optional uint32 locomotionflags = 1;
optional int32 method = 2;
optional float movespeed = 3;
optional uint32 height = 4;
optional uint64 followentityid = 5;
optional float followentityrange = 6;
required bool updatepathnodes = 7;
repeated NetStructLocomotionPathNode pathnodes = 8;
optional int32 pathgoalnodeindex = 9;
}
message NetStructUniqueTransition {
required uint64 regionId = 1;
required uint64 regionProtoId = 2;
required uint64 areaProtoId = 3;
required uint64 cellProtoId = 4;
optional uint64 entityProtoId = 5;
}
message NetStructCreateRegionParams {
required uint32 level = 1;
required uint64 difficultyModeId = 2;
optional NetStructUniqueTransition originUniqueTransition = 3;
optional uint64 gameStateId = 4;
optional bool levelIsOverride = 5 [default = false];
optional uint64 matchNumber = 6 [default = 0];
optional bool cheat = 7 [default = false];
}
message NetStructModChangeObject {
required uint64 mod = 1;
required uint32 change = 2;
}
message NetStructPowerPointAllocation {
required uint64 powerProtoId = 1;
required uint32 delta = 2;
}
message NetStructPortalInstance {
required uint64 entityDbId = 1;
required NetStructRegionLocation location = 2;
optional uint64 ownerPlayerDbId = 3;
optional bool boundToOwner = 4;
}
message NetStructRegionLocation {
required uint64 regionId = 1;
required NetStructPoint3 position = 2;
optional uint64 regionPrototypeId = 3;
optional uint64 areaPrototypeId = 4;
optional uint64 cellPrototypeId = 5;
}
message NetStructWarpDest {
required uint64 DestRegionPrototypeId = 1;
optional uint64 DestRegionId = 2;
optional uint64 DestEntityDbId = 3;
optional NetStructPoint3 DestPosition = 4;
optional uint64 TransferId = 5;
optional uint64 DestAreaPrototypeId = 6;
optional uint64 DestRegionConnectionTargetPrototypeId = 7;
optional bool UseStartTarget = 8;
optional int32 TeamIndex = 9 [default = -1];
}
message NetStructAffixSpec {
required uint64 affixProtoRef = 1;
required uint64 scopeProtoRef = 2;
required int32 seed = 3;
}
message NetStructItemSpec {
required uint64 itemProtoRef = 1;
required uint32 itemLevel = 2;
required uint64 rarityProtoRef = 3;
required uint32 seed = 4;
optional uint32 creditsAmount = 5;
repeated NetStructAffixSpec affixSpecs = 6;
optional uint64 equippableBy = 7;
}
message CommunityMemberBroadcast {
required uint64 memberPlayerDbId = 1;
optional uint64 currentRegionRefId = 2 [default = 123];
optional uint64 currentAvatarRefId = 3 [default = 123];
optional uint64 currentCharacterLevel = 4;
optional uint64 currentPvpFactionRefId = 5 [default = 123];
optional uint64 currentDifficultyModeRefId = 6 [default = 123];
optional string currentPlayerName = 7;
repeated uint64 memberPlayerDbIdIgnoreList = 8;
optional uint64 currentPrestigeLevel = 9;
optional int32 isOnline = 10 [default = -1];
optional int64 lastLogoutTimeAsFileTimeUtc = 11;
optional uint64 currentCostumeRefId = 12 [default = 123];
}
message CommunityNotify {
required uint64 targetPlayerDbId = 1;
required string sourcePlayerName = 2;
required uint64 circleId = 3;
required ModifyCircleOperation operation = 4;
}
message NetStructLiveTuningSettingEnumValue {
required int32 tuningVarEnum = 1;
required float tuningVarValue = 2;
}
message NetStructLiveTuningSettingProtoEnumValue {
required uint64 tuningVarProtoId = 1;
required int32 tuningVarEnum = 2;
required float tuningVarValue = 3;
}
message ChangeRegionFailed {
required RegionTransferFailure reason = 1;
optional uint64 regionProtoId = 2;
optional uint64 requiredItemProtoId = 3;
}
message NetStructChatChannelFilterState {
required uint64 channelProtoId = 1;
required bool isSubscribed = 2;
}
message NetStructChatTabState {
required uint64 channelProtoId = 1;
}
message NetStructGameplayOptions {
required bool autoPartyEnabled = 1;
required bool preferLowPopulationRegions = 2;
repeated NetStructChatChannelFilterState chatChannelFiltersMap = 3;
required bool disableHeroSynergyBonusXP = 4;
repeated NetStructChatTabState chatTabChannelsArray = 5;
}
message NetStructInventoryLocation {
required uint64 invLocContainerEntityId = 1;
required uint64 invLocInventoryPrototypeId = 2;
required uint32 invLocSlot = 3;
}
message ShareLegendaryMissionRequest {
required uint64 missionDataRef = 1;
}
message ShareLegendaryMissionResult {
required uint64 missionDataRef = 1;
required LegendaryMissionShareResultType result = 2;
}

View file

@ -0,0 +1,61 @@
syntax = "proto2";
package Gazillion;
import "PubSubProtocol.proto";
enum FrontendProtocolVersion {
CURRENT_VERSION = 1;
}
enum ExtendedLoginErrors {
NO_LOGIN_ERROR = 0;
CLIENT_MANAGER_NOT_AVAILABLE = 1;
}
message LoginDataPB {
required string emailAddress = 1;
required string password = 2;
optional string version = 3;
optional string dbservername = 4;
optional string token = 5;
optional bool loginAsAnotherPlayer = 6;
optional bool noPersistenceThisSession = 7;
optional string loginAsPlayer = 8;
optional string clientDownloader = 9;
optional string machineId = 10;
optional int32 timezoneutcbias = 11;
optional int32 platform = 12;
optional string platformString = 13;
}
message InitialClientHandshake {
required FrontendProtocolVersion protocolVersion = 1 [default = CURRENT_VERSION];
required PubSubServerTypes serverType = 2;
}
message ClientCredentials {
required uint64 sessionid = 1;
required bytes iv = 2;
required bytes encryptedToken = 3;
}
message LoginQueueStatus {
required uint64 placeInLine = 1;
required uint64 numberOfPlayersInLine = 2;
}
message SessionEncryptionChanged {
required uint32 randomNumberIndex = 1 [default = 1];
required bytes encryptedRandomNumber = 2;
}
message ExtendedLoginError {
optional ExtendedLoginErrors error = 1;
}
message EncryptedTrafficHeader {
required uint32 randomNumberIndex = 1;
required bytes encryptedTraffic = 2;
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,6 @@
syntax = "proto2";
package Gazillion;
import "google/protobuf/descriptor.proto";

View file

@ -0,0 +1,10 @@
syntax = "proto2";
package Gazillion;
enum GlobalEventUpdateType {
eGlobalEventUpdate_EventData = 0;
eGlobalEventUpdate_Leaderboard = 1;
eGlobalEventUpdate_Count = 2;
}

View file

@ -0,0 +1,210 @@
syntax = "proto2";
package Gazillion;
import "ChatCommon.proto";
import "CommonMessages.proto";
enum GroupingOperationType {
eGOP_InvitePlayer = 1;
eGOP_AcceptInvite = 2;
eGOP_ServerNotification = 3;
eGOP_KickPlayer = 4;
}
enum GroupingOperationResult {
eGOPR_Success = 1;
eGOPR_SystemError = 2;
eGOPR_TargetPlayerNotFound = 3;
eGOPR_TargetedSelf = 4;
eGOPR_AlreadyHasInvite = 5;
eGOPR_PartyFull = 6;
eGOPR_NotLeader = 7;
eGOPR_PendingPartyDisbanded = 8;
eGOPR_AutoParyPreventsKick = 9;
eGOPR_DifficultyModeMismatch = 10;
eGOPR_PartyPortalLeadsToMatch = 11;
eGOPR_AlreadyInParty = 12;
}
enum GroupingStateOfPlayer {
eGSOP_Solo = 1;
eGSOP_PendingInvite = 2;
eGSOP_InGroup = 3;
}
message PerPlayerInfo {
required string playerName = 1;
required uint64 playerSessionId = 2;
required uint64 playerDbId = 3;
}
message ClientInvitedToGroup {
required string invitingPlayerName = 1;
required bool usePortal = 2;
}
message ClientInviteAcceptFailed {
}
message ClientCreateGroup {
required uint64 groupId = 1;
required GroupType groupType = 2;
required uint64 leaderSessionId = 3;
required string leaderName = 4;
}
message PlayerJoinedGroup {
required string joiningPlayerName = 1;
required uint64 playerSessionId = 2;
required uint64 groupId = 3;
}
message GroupChangeType {
required uint64 groupId = 1;
required GroupType type = 2;
required bool confirm = 3;
}
message PlayerLeftGroup {
required string leaverName = 1;
required uint64 playerSessionId = 2;
optional uint64 newLeaderSessionId = 3;
required uint64 groupId = 4;
required GroupLeaveReason leaveReason = 5;
}
message PlayerChangedGroupLeader {
required uint64 requestingGameId = 1;
required uint64 groupId = 2;
required PerPlayerInfo newLeader = 3;
required PerPlayerInfo oldLeader = 4;
}
message ClientBootedFromGroup {
required uint64 groupId = 1;
required GroupLeaveReason leaveReason = 2;
}
message KickGroupMemberAttemptFailed {
required GroupingOperationResult reason = 1;
}
message PlayerDeclinedInvite {
optional string declinerName = 1;
optional uint64 declinerSessionId = 2;
}
message CurrentPartyInfo {
required uint64 groupId = 1;
required GroupType groupType = 2;
required PerPlayerInfo leader = 3;
repeated PerPlayerInfo members = 4;
}
message ChatResponseToExternalLogin {
optional bytes someresponse = 1;
}
message ChatNormalMessage {
required ChatRoomTypes roomType = 1;
required string fromPlayerName = 2;
required ChatMessage theMessage = 4;
optional int32 prestigeLevel = 5;
}
message ChatTellMessage {
required string fromPlayerName = 1;
required ChatMessage theMessage = 3;
optional int32 prestigeLevel = 4;
}
message ChatBroadcastMessage {
required ChatRoomTypes roomType = 1;
required string fromPlayerName = 2;
required ChatMessage theMessage = 3;
optional int32 prestigeLevel = 4;
}
message ChatErrorMessage {
required ChatErrorMessages errorMessage = 1;
}
message GroupingReportInvitationDestinationForPortal {
required uint64 acceptingPlayerDbId = 1;
required uint64 invitingPlayerDbId = 2;
required uint64 requestingGameId = 3;
required bool usePortal = 4;
}
message GroupingOperationResultMsg {
required uint64 requestingGameId = 1;
required uint64 requestingPlayerDbId = 2;
required GroupingOperationType opType = 3;
required GroupingOperationResult opResult = 4;
optional uint64 groupId = 5;
optional GroupType groupType = 6 [default = GroupType_Invalid];
optional PerPlayerInfo leaderInfo = 7;
repeated PerPlayerInfo currentPartyInfo = 8;
}
message GroupingManagerRemovedPlayer {
required uint64 requestingGameId = 1;
required PerPlayerInfo removedPlayer = 2;
required uint64 groupId = 3;
optional PerPlayerInfo newLeader = 4;
optional uint64 previousLeaderDbId = 6;
required GroupLeaveReason leaveReason = 5;
}
message GroupingManagerAddedPlayer {
required uint64 requestingGameId = 1;
required PerPlayerInfo addedPlayer = 2;
required uint64 groupId = 3;
}
message GroupingManagerCreateGroup {
required uint64 requestingGameId = 1;
required uint64 groupId = 2;
required GroupType groupType = 3;
required PerPlayerInfo leaderInfo = 4;
}
message GroupingManagerGroupChangeType {
required uint64 requestingGameId = 1;
required uint64 groupId = 2;
required GroupType type = 3;
}
message GroupingManagerPlayerEnteredRegion {
required uint64 playerDbId = 1;
required uint64 requestingGameId = 2;
required uint64 groupId = 3;
required GroupType groupType = 4;
optional PerPlayerInfo leaderInfo = 5;
repeated PerPlayerInfo members = 6;
}
message ChatCreateChatRoomResult {
required uint64 requestingGameId = 3;
optional bool success = 1 [default = false];
optional string reason = 2;
}
message ChatAddPlayerToRoomResult {
required uint64 requestingGameId = 3;
optional bool success = 1 [default = false];
optional string reason = 2;
}
message ChatScrubTextResult {
required uint64 requestingGameId = 1;
required string textOriginal = 2;
required string textScrubbed = 3;
required uint64 remoteJobId = 4;
}
message ChatServerNotification {
required string theMessage = 1;
}

View file

@ -0,0 +1,240 @@
syntax = "proto2";
package Gazillion;
enum GuildFormResultCode {
eGFCInternalError = 0;
eGFCGuildInErrorState = 1;
eGFCNotOnline = 2;
eGFCRestrictedName = 3;
eGFCDuplicateName = 4;
eGFCAlreadyInGuild = 5;
eGFCWaitingForDatabase = 6;
eGFCSuccess = 7;
}
enum GuildChangeNameResultCode {
eGCNRCInternalError = 0;
eGCNRCGuildInErrorState = 1;
eGCNRCNotOnline = 2;
eGCNRCInvalidGuild = 3;
eGCNRCNotInGuild = 4;
eGCNRCRestrictedName = 5;
eGCNRCDuplicateName = 6;
eGCNRCNoPermission = 7;
eGCNRCWaitingForDatabase = 8;
eGCNRCSuccess = 9;
}
enum GuildChangeMotdResultCode {
eGCMotdRCInternalError = 0;
eGCMotdRCGuildInErrorState = 1;
eGCMotdRCNotOnline = 2;
eGCMotdRCInvalidGuild = 3;
eGCMotdRCNotInGuild = 4;
eGCMotdRCNoPermission = 5;
eGCMotdRCWaitingForDatabase = 6;
eGCMotdRCSuccess = 7;
}
enum GuildInviteResultCode {
eGIRCInternalError = 0;
eGIRCGuildInErrorState = 1;
eGIRCGuildFull = 3;
eGIRCInvitedInGuild = 4;
eGIRCInvitedInOtherGuild = 5;
eGIRCInvitedUnkownPlayer = 6;
eGIRCInviterNotInGuild = 7;
eGIRCInviterNoPermission = 8;
eGIRCSuccess = 10;
}
enum GuildRespondToInviteCode {
eGRICRejected = 0;
eGRICAccepted = 1;
eGRICAutoIgnored = 2;
}
enum GuildRespondToInviteResultCode {
eGRIRCInternalError = 0;
eGRIRCGuildInErrorState = 1;
eGRIRCNotOnline = 2;
eGRIRCInvalidGuild = 3;
eGRIRCAlreadyInGuild = 4;
eGRIRCGuildFull = 5;
eGRIRCNotInvited = 6;
eGRIRCJoined = 7;
eGRIRCRejected = 8;
eGRIRAlreadyInOtherGuild = 9;
}
enum GuildMembership {
eGMNone = 0;
eGMMember = 1;
eGMOfficer = 2;
eGMLeader = 3;
}
enum GuildChangeMemberResultCode {
eGCMRCInternalError = 0;
eGCMRCGuildInErrorState = 1;
eGCMRCNotOnline = 2;
eGCMRCInitiatorNotInGuild = 3;
eGCMRCInitiatorNoPermission = 4;
eGCMRCUnknownMember = 5;
eGCMRCNoChange = 6;
eGCMRCCantModifyLeader = 7;
eGCMRCRequiresStaff = 8;
eGCMRCRequiresLeader = 9;
eGCMRCNoTransferLeadership = 10;
eGCMRCSuccess = 11;
eGCMRCSuccessGuildDissolved = 12;
}
message GuildForm {
required uint64 playerId = 1;
required string guildName = 2;
}
message GuildFormResult {
required string guildName = 1;
required GuildFormResultCode resultCode = 2;
required uint64 playerId = 3;
}
message GuildDisbanded {
required uint64 guildId = 1;
required string disbandingPlayerName = 2;
}
message GuildChangeName {
required uint64 playerId = 1;
required string guildName = 2;
}
message GuildChangeNameResult {
required string submittedName = 1;
required GuildChangeNameResultCode resultCode = 2;
}
message GuildNameChanged {
required uint64 guildId = 1;
required string newGuildName = 2;
optional string changedByPlayerName = 3;
}
message GuildChangeMotd {
required uint64 playerId = 1;
required string guildMotd = 2;
}
message GuildChangeMotdResult {
required string submittedMotd = 1;
required GuildChangeMotdResultCode resultCode = 2;
}
message GuildMotdChanged {
required uint64 guildId = 1;
required string newGuildMotd = 2;
optional string changedByPlayerName = 3;
}
message GuildMemberNameChanged {
required uint64 guildId = 1;
required uint64 playerId = 2;
required string newMemberName = 3;
}
message GuildInvite {
required string toInvitePlayerName = 1;
required uint64 invitedByPlayerId = 2;
}
message GuildInviteResult {
required GuildInvite invite = 1;
required GuildInviteResultCode resultCode = 2;
}
message GuildInvitedToJoin {
required uint64 guildId = 1;
required string guildName = 2;
required string invitedByPlayerName = 3;
}
message GuildRespondToInvite {
required uint64 playerId = 1;
required uint64 guildId = 2;
required GuildRespondToInviteCode respondCode = 3;
}
message GuildRespondToInviteResult {
required GuildRespondToInviteResultCode resultCode = 1;
required string guildName = 2;
}
message GuildMemberInfo {
required uint64 playerId = 1;
required string playerName = 2;
required GuildMembership membership = 3;
}
message GuildChangeMember {
required uint64 sourcePlayerId = 1;
required string targetPlayerName = 2;
required GuildMembership targetNewMembership = 3;
}
message GuildChangeMemberResult {
required string targetPlayerName = 1;
required GuildChangeMemberResultCode resultCode = 2;
}
message GuildMembersInfoChanged {
required uint64 guildId = 1;
repeated GuildMemberInfo members = 2;
required string initiatingMemberName = 3;
optional bool newMember = 4 [default = false];
}
message GuildCompleteInfo {
required uint64 guildId = 1;
required string guildName = 2;
repeated GuildMemberInfo members = 3;
optional string guildMotd = 4;
}
message GuildMessageSetToServer {
optional GuildNameChanged guildNameChanged = 1;
optional GuildMembersInfoChanged guildMembersInfoChanged = 2;
optional GuildCompleteInfo guildCompleteInfo = 3;
optional GuildDisbanded guildDisbanded = 4;
optional GuildFormResult guildFormResult = 5;
optional GuildMotdChanged guildMotdChanged = 6;
optional GuildMemberNameChanged guildMemberNameChanged = 7;
}
message GuildMessageSetToClient {
optional GuildChangeNameResult guildChangeNameResult = 2;
optional GuildInviteResult guildInviteResult = 3;
optional GuildRespondToInviteResult guildRespondToInviteResult = 4;
optional GuildChangeMemberResult guildChangeMemberResult = 5;
optional GuildInvitedToJoin guildInvitedToJoin = 6;
optional GuildChangeMotdResult guildChangeMotdResult = 11;
optional GuildNameChanged guildNameChanged = 7;
optional GuildMembersInfoChanged guildMembersInfoChanged = 8;
optional GuildCompleteInfo guildCompleteInfo = 9;
optional GuildDisbanded guildDisbanded = 10;
optional GuildFormResult guildFormResult = 1;
optional GuildMotdChanged guildMotdChanged = 12;
optional GuildMemberNameChanged guildMemberNameChanged = 13;
}
message GuildMessageSetToPlayerManager {
optional GuildForm guildForm = 1;
optional GuildChangeName guildChangeName = 2;
optional GuildInvite guildInvite = 3;
optional GuildRespondToInvite guildRespondToInvite = 4;
optional GuildChangeMember guildChangeMember = 5;
optional GuildChangeMotd guildChangeMotd = 6;
}

View file

@ -0,0 +1,73 @@
syntax = "proto2";
package Gazillion;
enum MatchPhase {
MP_Created = 0;
MP_Initialized = 1;
MP_Started = 2;
MP_Finished = 3;
MP_Shutdown = 4;
}
enum MatchPlayerEventType {
MPET_Left = 0;
MPET_Joined = 1;
}
enum MatchBalanceMethod {
MBM_None = 0;
MBM_PlayerRating = 1;
MBM_FixedTeam = 2;
}
enum MatchCheatRequestType {
MCRT_None = 0;
MCRT_ForceMatchStart = 1;
MCRT_ForceMatchEnd = 2;
MCRT_SwitchTeams = 3;
}
enum MatchControlEventType {
MCET_None = 0;
MCET_ForceStart = 1;
MCET_ForceEnd = 2;
}
message MatchTeamDescription {
required uint64 teamPrototypeGuid = 1;
required uint32 minPlayers = 2;
required uint32 maxPlayers = 3;
}
message MatchGameDescription {
required uint64 queuePrototypeGuid = 1;
required uint64 gamePrototypeGuid = 2;
required uint64 regionPrototypeId = 3;
repeated MatchTeamDescription teams = 4;
}
message MatchQueueDescription {
required uint64 queuePrototypeGuid = 1;
required MatchBalanceMethod balanceMethod = 2;
required uint32 regionLevel = 3;
repeated MatchGameDescription games = 4;
}
message MatchTeamResultData {
required uint64 teamPrototypeGuid = 1;
required bool creditWithWin = 2;
}
message MatchResultData {
repeated MatchTeamResultData teams = 1;
}
message MatchPlayerStatisticsSummary {
required uint64 queuePrototypeGuid = 1;
required uint64 gamePrototypeGuid = 2;
required uint32 gamesPlayed = 3;
required uint32 gamesWon = 4;
required uint32 ratingSummary = 5;
}

View file

@ -0,0 +1,50 @@
syntax = "proto2";
package Gazillion;
enum PubSubServerTypes {
FRONTEND_SERVER = 0;
GAME_INSTANCE_SERVER_USER = 1;
GAME_INSTANCE_SERVER_PLAYERMGR = 2;
GAME_INSTANCE_SERVER_GROUPING = 3;
GAME_INSTANCE_SERVER_METRICS = 4;
PLAYERMGR_SERVER_FRONTEND = 5;
PLAYERMGR_SERVER_SITEMGR_CONTROL = 6;
PLAYERMGR_SERVER_SOCIAL_COMMON = 7;
GROUPING_MANAGER_FRONTEND = 8;
FAKE_CHAT_LOAD_TESTER = 9;
GAME_INSTANCE_SERVER_BILLING = 10;
GAME_INSTANCE_SERVER_GLOBAL_GAME_EVENT = 12;
NUM_SERVER_TYPES = 13;
}
message PubSubPublish {
optional PubSubServerTypes serverType = 1 [default = NUM_SERVER_TYPES];
optional string serviceIPAddress = 2;
optional string servicePort = 3;
optional string serviceVersion = 4;
}
message PubSubSubscribe {
optional PubSubServerTypes serverType = 1 [default = NUM_SERVER_TYPES];
optional int32 subscriptionId = 2;
optional string serviceVersion = 3;
}
message PubSubEventNotification {
optional PubSubServerTypes serverType = 1 [default = NUM_SERVER_TYPES];
optional int32 subscriptionId = 2;
optional string serviceIPAddress = 3;
optional string servicePort = 4;
optional string serviceVersion = 5;
optional bool requestResignation = 6;
}
message PubSubOrderlyShutdown {
optional string message = 1;
optional int32 minutesToShutdown = 2 [default = 15];
}
message PubSubForceLogRollover {
}

View file

@ -0,0 +1,184 @@
syntax = "proto2";
package google.protobuf;
message FileDescriptorSet {
repeated FileDescriptorProto file = 1;
}
message FileDescriptorProto {
optional string name = 1;
optional string package = 2;
repeated string dependency = 3;
repeated int32 public_dependency = 10;
repeated int32 weak_dependency = 11;
repeated DescriptorProto message_type = 4;
repeated EnumDescriptorProto enum_type = 5;
repeated ServiceDescriptorProto service = 6;
repeated FieldDescriptorProto extension = 7;
optional FileOptions options = 8;
optional SourceCodeInfo source_code_info = 9;
}
message DescriptorProto {
message ExtensionRange {
optional int32 start = 1;
optional int32 end = 2;
}
optional string name = 1;
repeated FieldDescriptorProto field = 2;
repeated FieldDescriptorProto extension = 6;
repeated DescriptorProto nested_type = 3;
repeated EnumDescriptorProto enum_type = 4;
repeated ExtensionRange extension_range = 5;
optional MessageOptions options = 7;
}
message FieldDescriptorProto {
enum Type {
TYPE_DOUBLE = 1;
TYPE_FLOAT = 2;
TYPE_INT64 = 3;
TYPE_UINT64 = 4;
TYPE_INT32 = 5;
TYPE_FIXED64 = 6;
TYPE_FIXED32 = 7;
TYPE_BOOL = 8;
TYPE_STRING = 9;
TYPE_GROUP = 10;
TYPE_MESSAGE = 11;
TYPE_BYTES = 12;
TYPE_UINT32 = 13;
TYPE_ENUM = 14;
TYPE_SFIXED32 = 15;
TYPE_SFIXED64 = 16;
TYPE_SINT32 = 17;
TYPE_SINT64 = 18;
}
enum Label {
LABEL_OPTIONAL = 1;
LABEL_REQUIRED = 2;
LABEL_REPEATED = 3;
}
optional string name = 1;
optional int32 number = 3;
optional Label label = 4;
optional Type type = 5;
optional string type_name = 6;
optional string extendee = 2;
optional string default_value = 7;
optional FieldOptions options = 8;
}
message EnumDescriptorProto {
optional string name = 1;
repeated EnumValueDescriptorProto value = 2;
optional EnumOptions options = 3;
}
message EnumValueDescriptorProto {
optional string name = 1;
optional int32 number = 2;
optional EnumValueOptions options = 3;
}
message ServiceDescriptorProto {
optional string name = 1;
repeated MethodDescriptorProto method = 2;
optional ServiceOptions options = 3;
}
message MethodDescriptorProto {
optional string name = 1;
optional string input_type = 2;
optional string output_type = 3;
optional MethodOptions options = 4;
}
message FileOptions {
enum OptimizeMode {
SPEED = 1;
CODE_SIZE = 2;
LITE_RUNTIME = 3;
}
optional string java_package = 1;
optional string java_outer_classname = 8;
optional bool java_multiple_files = 10 [default = false];
optional bool java_generate_equals_and_hash = 20 [default = false];
optional OptimizeMode optimize_for = 9 [default = SPEED];
optional string go_package = 11;
optional bool cc_generic_services = 16 [default = false];
optional bool java_generic_services = 17 [default = false];
optional bool py_generic_services = 18 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message MessageOptions {
optional bool message_set_wire_format = 1 [default = false];
optional bool no_standard_descriptor_accessor = 2 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message FieldOptions {
enum CType {
STRING = 0;
CORD = 1;
STRING_PIECE = 2;
}
optional CType ctype = 1 [default = STRING];
optional bool packed = 2;
optional bool lazy = 5 [default = false];
optional bool deprecated = 3 [default = false];
optional string experimental_map_key = 9;
optional bool weak = 10 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message EnumOptions {
optional bool allow_alias = 2 [default = true];
repeated UninterpretedOption uninterpreted_option = 999;
}
message EnumValueOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message ServiceOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message MethodOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message UninterpretedOption {
message NamePart {
required string name_part = 1;
required bool is_extension = 2;
}
repeated NamePart name = 2;
optional string identifier_value = 3;
optional uint64 positive_int_value = 4;
optional int64 negative_int_value = 5;
optional double double_value = 6;
optional bytes string_value = 7;
optional string aggregate_value = 8;
}
message SourceCodeInfo {
message Location {
repeated int32 path = 1;
repeated int32 span = 2;
optional string leading_comments = 3;
optional string trailing_comments = 4;
}
repeated Location location = 1;
}

View file

@ -0,0 +1,17 @@
syntax = "proto2";
package Gazillion;
message AuthTicket {
optional bytes sessionKey = 1;
optional bytes sessionToken = 2;
required uint64 sessionId = 3;
optional string errorMessage = 4;
optional string frontendServer = 5;
optional string frontendPort = 6;
optional string platformTicket = 7;
optional bool presalePurchase = 8;
optional string tosurl = 9;
optional bool success = 10;
}

View file

@ -0,0 +1,53 @@
syntax = "proto2";
package Gazillion;
enum BuyItemResultErrorCodes {
BUY_RESULT_ERROR_SUCCESS = 0;
BUY_RESULT_ERROR_ALREADY_HAVE_AVATAR = 1;
BUY_RESULT_ERROR_ALREADY_HAVE_STASH_INV = 2;
BUY_RESULT_ERROR_ALREADY_HAVE_PERMABUFF = 3;
BUY_RESULT_ERROR_INSUFFICIENT_BALANCE = 4;
BUY_RESULT_ERROR_UNKNOWN = 5;
}
message MHCatalogEntryType {
required string name = 1;
required int32 order = 2;
}
message MHCatalogEntryTypeModifier {
required string name = 1;
required int32 order = 2;
}
message MHBannerUrl {
required string type = 1;
required string url = 2;
}
message MHLocalizedCatalogUrls {
required string localeId = 1;
optional string storeHomePageUrl = 2;
repeated MHBannerUrl storeBannerPageUrls = 3;
optional string storeRealMoneyUrl = 4;
}
message MHLocalizedCatalogEntry {
required string language_id = 1;
optional string description = 2;
optional string title = 3;
optional bytes imagedata = 4;
optional string releaseDate = 5;
required int64 itemPrice = 6;
}
message MarvelHeroesCatalogEntry {
required int64 skuId = 1;
repeated uint64 itemPrototypeGuids = 3;
repeated uint64 itemPrototypeRuntimeIdsForClient = 8;
repeated MHLocalizedCatalogEntry localizedEntries = 5;
optional MHCatalogEntryType type = 6;
repeated MHCatalogEntryTypeModifier typeModifier = 7;
}

View file

@ -0,0 +1,41 @@
syntax = "proto2";
package Gazillion;
enum ChatRoomTypes {
CHAT_ROOM_TYPE_LOCAL = 0;
CHAT_ROOM_TYPE_SAY = 1;
CHAT_ROOM_TYPE_PARTY = 2;
CHAT_ROOM_TYPE_TELL = 3;
CHAT_ROOM_TYPE_BROADCAST_ALL_SERVERS = 4;
CHAT_ROOM_TYPE_SOCIAL = 5;
CHAT_ROOM_TYPE_TRADE = 6;
CHAT_ROOM_TYPE_LFG = 7;
CHAT_ROOM_TYPE_GUILD = 8;
CHAT_ROOM_TYPE_FACTION = 9;
CHAT_ROOM_TYPE_EMOTE = 10;
CHAT_ROOM_TYPE_NUM_TYPES = 11;
}
enum GroupLeaveReason {
GROUP_LEAVE_REASON_LEFT = 1;
GROUP_LEAVE_REASON_BOOTED = 2;
GROUP_LEAVE_REASON_DISBANDED = 3;
}
enum ChatErrorMessages {
CHAT_ERROR_NO_SUCH_USER = 0;
CHAT_ERROR_COMMAND_NOT_RECOGNIZED = 1;
CHAT_ERROR_NUM_ERRORS = 2;
}
message ChatMessageAttachments {
repeated bytes attachmments = 1;
optional int64 emoteDataRef = 2;
}
message ChatMessage {
optional string body = 1;
optional ChatMessageAttachments attachment = 2;
}

View file

@ -0,0 +1,547 @@
syntax = "proto2";
package Gazillion;
import "GazillionCommon.proto";
import "CommonMessages.proto";
import "ChatCommon.proto";
import "Guild.proto";
message NetMessageReadyForGameJoin {
required string playerName = 1;
required int32 wipesDataIfMismatchedInDb = 3 [default = 0];
optional bool wipePlayerRecordsOnLogin = 2 [default = false];
optional string domainLoginName = 4;
optional bytes playerImportData = 5;
}
message NetMessagePlayerSystemMetrics {
required int32 compatLevelCpu = 1 [default = -1];
required int32 compatLevelGpu = 2 [default = -1];
required int32 compatLevelComposite = 3 [default = -1];
optional string osName = 4;
optional string cpuName = 5;
optional string ramName = 6;
optional string displayDeviceName = 7;
optional bool displayDeviceDualGPU = 8;
optional string displayDeviceDriverDate = 9;
}
message NetMessageSyncTimeRequest {
required int64 gameTimeClientSent = 1;
required int64 dateTimeClientSent = 2;
}
message NetMessageSetTimeDialation {
required int64 gameTimeDialationStarted = 1;
required int64 dateTimeDialationStarted = 2;
required float dialation = 3;
}
message NetMessageIsRegionAvailable {
required uint64 regionPrototype = 1;
required bool isAvailable = 2;
}
message NetMessageUpdateAvatarState {
required uint64 idAvatar = 1;
required NetStructPoint3 position = 2;
required NetStructPoint3 orientation = 3;
optional NetStructLocomotionState locomotionstate = 4;
optional bool isTeleport = 5;
}
message NetMessageCellLoaded {
required uint32 cellId = 1;
required uint64 regionId = 2;
}
message NetMessageTeleportAckResponse {
required uint32 ackseq = 1;
}
message NetMessageAdminCommand {
required string command = 1;
}
message NetMessageTryActivatePower {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
optional uint64 idTargetEntity = 3;
optional NetStructPoint3 targetPosition = 4;
optional float movementSpeed = 5;
optional uint64 movementTimeMS = 6;
optional uint32 missileRandomSeed = 7;
optional uint64 itemSourceId = 8;
}
message NetMessagePowerRelease {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
optional uint64 idTargetEntity = 3;
optional NetStructPoint3 targetPosition = 4;
}
message NetMessageTryCancelPower {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
required uint32 endPowerFlags = 3;
}
message NetMessageTryCancelActivePower {
required uint64 idUserEntity = 1;
}
message NetMessageContinuousPowerUpdateToServer {
required uint64 powerPrototypeId = 1;
optional uint64 idTargetEntity = 2;
optional NetStructPoint3 targetPosition = 3;
}
message NetMessageCancelPendingAction {
}
message NetMessageConfirmWeaponMissingStatus {
required uint64 idOwner = 1;
}
message NetMessageStartAIDebugUI {
required uint64 idTargetNPC = 1;
}
message NetMessageStopAIDebugUI {
required uint64 idTargetNPC = 1;
}
message NetMessageStartMissionDebugUI {
required uint64 idTargetAgent = 1;
required uint64 missionPrototypeRefId = 2;
required string missionListMatchPattern = 3;
}
message NetMessageStopMissionDebugUI {
required uint64 idTargetAgent = 1;
}
message NetMessageStartPropertiesDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopPropertiesDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStartConditionsDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopConditionsDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStartPowersDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopPowersDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessagePing {
required bool displayOutput = 1;
required uint64 sendClientTime = 2;
optional uint64 sendGameTime = 3;
optional uint64 requestNetReceivedGameTime = 4;
optional uint64 lastClientLatency = 5;
optional float lastFps = 6;
optional uint64 regionPrototype = 7;
optional uint32 cpulevel = 8;
optional uint32 gpulevel = 9;
optional uint32 compositelevel = 10;
optional float minFps = 11;
optional NetStructPoint3 minFpsPos = 12;
}
message NetMessagePickupInteraction {
required uint64 idTarget = 1;
optional bool useInteractFallbackRange = 2;
}
message NetMessageTryInventoryMove {
required uint64 itemId = 1;
required uint64 toInventoryOwnerId = 2;
required uint64 toInventoryPrototype = 3;
required uint32 toSlot = 4;
}
message NetMessageTryMoveCraftingResultsToGeneral {
}
message NetMessageInventoryTrashItem {
required uint64 itemId = 1;
}
message NetMessageThrowInteraction {
required uint64 idTarget = 1;
}
message NetMessagePerformPreInteractPower {
required uint64 idTarget = 1;
required bool hasDialog = 2;
}
message NetMessageUseInteractableObject {
required uint64 idTarget = 1;
optional uint64 missionPrototypeRef = 2;
}
message NetMessageTryCraft {
required uint64 idRecipe = 1;
required uint64 idVendor = 2;
repeated uint64 idIngredients = 3;
}
message NetMessageUseWaypoint {
required uint64 idTransitionEntity = 1;
required uint64 waypointDataRef = 2;
}
message NetMessageDebugAcquireAndSwitchToAvatar {
required uint64 avatarPrototypeId = 1;
}
message NetMessageSwitchAvatar {
required uint64 avatarId = 1;
}
message NetMessageAssignHotkey {
required uint64 avatarId = 1;
required uint64 prototypeRefId = 2;
required uint32 slotNumber = 3;
required uint32 destinationSlotNumber = 4;
}
message NetMessageUnassignHotkey {
required uint64 avatarId = 1;
required uint32 slotNumber = 2;
}
message NetMessageAssignAbility {
required uint64 avatarId = 1;
required uint64 prototypeRefId = 2;
required uint32 slotNumber = 3;
}
message NetMessageUnassignAbility {
required uint64 avatarId = 1;
required uint32 slotNumber = 2;
}
message NetMessageSwapAbilities {
required uint64 avatarId = 1;
required uint32 slotNumberA = 2;
required uint32 slotNumberB = 3;
}
message NetMessageModCommitTemporary {
required uint64 avatarRef = 1;
required uint64 modTypeRef = 2;
repeated NetStructModChangeObject changes = 3;
}
message NetMessageModReset {
required uint64 avatarId = 1;
required uint64 modTypeRef = 2;
}
message NetMessagePowerPointAllocationCommit {
required uint64 avatarRef = 1;
repeated NetStructPowerPointAllocation allocations = 2;
}
message NetMessageRequestDeathRelease {
required bool hitOk = 1;
required bool resurrectedFromOtherEntity = 2;
}
message NetMessageRequestResurrectDecline {
}
message NetMessageRequestResurrectAvatar {
optional uint64 targetId = 1;
}
message NetMessageReturnToHub {
}
message NetMessageRequestStoryWarp {
required uint64 storyWarpPrototypeId = 1;
required uint64 storyWarpNPC = 2;
}
message NetMessageInvitePlayer {
optional uint64 inviteeEntityId = 1;
optional string inviteeName = 2;
}
message NetMessageRequestPartyJoinPortal {
required bool usePortal = 1;
optional NetStructWarpDest warpToDest = 2;
optional bool bypassValidation = 3;
}
message NetMessageDeclineGroupInvite {
}
message NetMessageLeaveGroup {
}
message NetMessageChangeGroupLeader {
required uint64 targetMemberId = 1;
}
message NetMessageBootPlayer {
required uint64 targetMemberId = 1;
}
message NetMessageDisbandGroup {
}
message NetMessageMatchQueueListRequest {
}
message NetMessageMatchQueueRequest {
required uint32 queueIndex = 1;
required bool queueEntireGroup = 2;
}
message NetMessageMatchStatisticsRequest {
required uint32 statRequestNumber = 1;
required string playerName = 2;
}
message NetMessageMatchInviteResponse {
required uint64 matchNumber = 1;
required bool inviteAccepted = 2;
}
message NetMessageDuelInvite {
required uint64 challengerEntityId = 1;
optional string challengerName = 2;
optional uint64 opponentEntityId = 3;
required string opponentName = 4;
}
message NetMessageDuelAccept {
required uint64 challengedEntityId = 1;
optional string challengedName = 2;
}
message NetMessageDuelCancel {
required uint64 cancellingEntityId = 1;
optional string cancellingName = 2;
}
message NetMessageMetaGameUpdateNotification {
required uint64 metaGameEntityId = 1;
}
message NetMessageChat {
required ChatRoomTypes roomType = 1;
required ChatMessage theMessage = 2;
}
message NetMessageTell {
required string targetPlayerName = 1;
required ChatMessage theMessage = 2;
}
message NetMessageReportPlayer {
required string targetPlayerName = 1;
required string reason = 2;
}
message NetMessageGetCatalog {
optional int64 timestamp = 3 [default = 0];
optional uint64 itemPrototypeRuntimeId = 1 [default = 0];
optional string localeid = 4 [default = "en_us"];
}
message NetMessageGetCurrencyBalance {
}
message NetMessageBuyItemFromCatalog {
required int64 skuId = 1;
required int64 itemUnitPrice = 2;
optional int32 numUnits = 3 [default = 1];
}
message EntityPreviewerEnum {
enum Alliance {
Ally = 0;
Enemy = 1;
Total = 2;
}
}
message NetMessageEntityPreviewerNewTargets {
required EntityPreviewerEnum.Alliance alliance = 1;
optional uint32 numNewTargets = 2;
}
message NetMessageEntityPreviewerClearTargets {
}
message NetMessageEntityPreviewerSetTargetRef {
required uint64 targetRefId = 1;
}
message NetMessageEntityPreviewerActivatePower {
required uint64 casterId = 1;
required uint64 powerRefId = 2;
required bool createTarget = 3;
required bool randomTargetPos = 4;
}
message NetMessageEntityPreviewerAddTarget {
required uint64 targetId = 1;
}
message NetMessageEntityPreviewerSetEntityState {
required uint64 targetId = 1;
required uint64 stateRefId = 2;
}
message NetMessageEntityPreviewerApplyConditions {
required uint64 targetId = 1;
required uint64 powerRefId = 2;
}
message NetMessageCreateNewPlayerWithSelectedStartingAvatar {
required uint64 startingAvatarPrototypeId = 1;
}
message NetMessageOnKioskStartButtonPressed {
}
message NetMessageNotifyFullscreenMovieFinished {
required uint64 moviePrototypeId = 1;
required bool userCancelled = 2;
required uint32 cinematicsRemaining = 3;
}
message NetMessageBotSetLevel {
required int32 level = 1;
}
message NetMessageBotGodMode {
}
message NetMessageBotPickAvatar {
required uint64 avatarBotDataId = 1;
optional int32 level = 2;
optional uint64 lootPrototype = 3;
optional uint32 lootTableRoll = 4;
}
message NetMessageBotRegionChange {
required uint64 regionDataId = 1;
}
message NetMessageBotWarpAreaNext {
}
message NetMessageBotLootGive {
required uint64 lootPrototype = 1;
required uint32 lootTableRoll = 2;
}
message NetMessageBotSetPvPFaction {
required uint64 factionSetPrototype = 1;
}
message NetMessageBotPvPQueue {
required uint64 pvpQueueId = 1;
}
message NetMessageGetTrackerReport {
required uint32 messageSource = 1;
required uint32 messageDirection = 2;
}
message NetMessagePlayKismetSeqDone {
required uint64 kismetSeqPrototypeId = 1;
}
message NetMessageVerifyFailedForRepId {
required uint64 repid1 = 1;
required string file = 2;
required uint32 line = 3;
required string debugmsg = 4;
optional uint64 repid2 = 5;
}
message NetMessageGracefulDisconnect {
}
message NetMessageRequestStartNewGame {
}
message NetMessageSetDialogTarget {
required uint64 targetId = 1;
}
message NetMessageVendorRequestBuyItemFrom {
required uint64 itemId = 1;
required uint64 vendorId = 2;
required uint32 inventorySlot = 3;
}
message NetMessageVendorRequestSellItemTo {
required uint64 itemId = 1;
required uint64 vendorId = 2;
}
message NetMessageVendorRequestDonateItemTo {
required uint64 itemId = 1;
required uint64 vendorId = 2;
}
message NetMessageVendorRequestRefresh {
required uint64 vendorId = 1;
}
message NetMessageTryModifyCommunityMemberCircle {
required uint64 circleId = 1;
required ModifyCircleOperation operation = 2;
required string playerName = 3;
}
message NetMessageGuildMessageToPlayerManager {
required GuildMessageSetToPlayerManager messages = 1;
}
message NetMessageSetShowTips {
required bool showTips = 1;
}
message NetMessageSetTipSeen {
required uint64 tipDataRefId = 1;
}
message NetMessageResetSeenTips {
}
message NetMessageTryMoveInventoryContentsToGeneral {
required uint64 sourceInventoryPrototype = 1;
}
message NetMessageAutoPartyingSetEnabled {
required bool enabled = 1;
}
message NetMessageTeleportToPartyMember {
required string playerName = 1;
}

View file

@ -0,0 +1,8 @@
syntax = "proto2";
package Gazillion;
message ClientIgnoredInvite {
required uint64 decliningPlayerId = 1;
}

View file

@ -0,0 +1,162 @@
syntax = "proto2";
package Gazillion;
enum ModifyCircleOperation {
eMCO_Add = 1;
eMCO_Remove = 2;
}
enum GlobalTuningVar {
eGTV_VendorBuyPrice = 0;
eGTV_VendorSellPrice = 1;
eGTV_VendorXPGain = 2;
eGTV_PVPEnabled = 3;
eGTV_NumGlobalTuningVars = 4;
}
enum AreaTuningVar {
eATV_AreaMobSpawnHeat = 0;
eATV_AreaMobSpawnHeatReturn = 1;
eATV_NumAreaTuningVars = 2;
}
enum WorldEntityTuningVar {
eWETV_MobPowerDamage = 0;
eWETV_MobHealth = 1;
eWETV_MobXP = 2;
eWETV_MobDropRate = 3;
eWETV_MobSpecialDropRate = 4;
eWETV_ItemEnabled = 5;
eWETV_NumWorldEntityTuningVars = 6;
}
enum PopObjTuningVar {
ePOTV_PopulationObjectWeight = 0;
ePOTV_NumPopulationObjectTuningVars = 1;
}
enum PowerTuningVar {
ePTV_PowerCost = 0;
ePTV_PowerDamagePVE = 1;
ePTV_PowerDamagePVP = 2;
ePTV_NumPowerTuningVars = 3;
}
enum RegionTuningVar {
eRTV_PlayerLimit = 0;
eRTV_NumRegionTuningVars = 1;
}
message NetStructPoint3 {
optional float X = 1 [default = 0];
optional float Y = 2 [default = 0];
optional float Z = 3 [default = 0];
}
message NetStructIPoint3 {
optional uint32 X = 1 [default = 0];
optional uint32 Y = 2 [default = 0];
optional uint32 Z = 3 [default = 0];
}
message NetStructPoint2 {
optional float X = 1 [default = 0];
optional float Y = 2 [default = 0];
}
message NetStructIPoint2 {
optional uint32 X = 1 [default = 0];
optional uint32 Y = 2 [default = 0];
}
message NetStructProperty {
required uint64 id = 1;
required uint64 value = 2;
}
message NetStructPropertyList {
repeated NetStructProperty properties = 1;
}
message NetStructLocomotionPathNode {
required NetStructPoint3 vertex = 1;
required int32 vertexSideRadius = 2;
}
message NetStructLocomotionState {
optional uint32 locomotionflags = 1;
optional int32 method = 2;
optional float movespeed = 3;
optional uint32 height = 4;
optional uint64 followentityid = 5;
optional float followentityrange = 6;
required bool updatepathnodes = 7;
repeated NetStructLocomotionPathNode pathnodes = 8;
optional int32 pathgoalnodeindex = 9;
}
message NetStructUniqueTransition {
required uint64 regionId = 1;
required uint64 regionProtoId = 2;
required uint64 areaProtoId = 3;
required uint64 cellProtoId = 4;
optional uint64 entityProtoId = 5;
}
message NetStructCreateRegionParams {
required uint32 level = 1;
optional NetStructUniqueTransition originUniqueTransition = 2;
optional bool levelIsOverride = 3 [default = false];
optional uint64 difficultyProtoRef = 4;
optional uint64 matchNumber = 5 [default = 0];
optional bool cheat = 6 [default = false];
}
message NetStructModChangeObject {
required uint64 mod = 1;
required uint32 change = 2;
}
message NetStructPowerPointAllocation {
required uint64 powerProtoId = 1;
required uint32 delta = 2;
}
message NetStructWarpDest {
required uint64 DestRegionPrototypeId = 1;
optional uint64 DestRegionId = 2;
optional uint64 DestEntityDbId = 3;
optional NetStructPoint3 DestPosition = 4;
optional uint64 TransferId = 5;
optional uint64 DestAreaPrototypeId = 6;
optional uint64 DestRegionConnectionTargetPrototypeId = 7;
optional uint64 DestStoryWarpPrototypeId = 8;
}
message CommunityMemberBroadcast {
required uint64 memberPlayerDbId = 1;
optional uint64 currentRegionRefId = 2 [default = 123];
optional uint64 currentAvatarRefId = 3 [default = 123];
optional uint64 currentCharacterLevel = 4;
optional uint64 currentPvpFactionRefId = 5;
}
message CommunityNotify {
required uint64 targetPlayerDbId = 1;
required string sourcePlayerName = 2;
required uint64 circleId = 3;
required ModifyCircleOperation operation = 4;
}
message NetStructLiveTuningSettingEnumValue {
required int32 tuningVarEnum = 1;
required float tuningVarValue = 2;
}
message NetStructLiveTuningSettingProtoEnumValue {
required uint64 tuningVarProtoId = 1;
required int32 tuningVarEnum = 2;
required float tuningVarValue = 3;
}

View file

@ -0,0 +1,49 @@
syntax = "proto2";
package Gazillion;
import "PubSubProtocol.proto";
enum FrontendProtocolVersion {
CURRENT_VERSION = 1;
}
message LoginDataPB {
required string emailAddress = 1;
required string password = 2;
optional string version = 3;
optional string dbservername = 4;
optional string token = 5;
optional bool loginAsAnotherPlayer = 6;
optional bool noPersistenceThisSession = 7;
optional string loginAsPlayer = 8;
optional string clientDownloader = 9;
optional string machineId = 10;
}
message InitialClientHandshake {
required FrontendProtocolVersion protocolVersion = 1 [default = CURRENT_VERSION];
required PubSubServerTypes serverType = 2;
}
message ClientCredentials {
required uint64 sessionid = 1;
required bytes iv = 2;
required bytes encryptedToken = 3;
}
message LoginQueueStatus {
required uint64 placeInLine = 1;
required uint64 numberOfPlayersInLine = 2;
}
message SessionEncryptionChanged {
required uint32 randomNumberIndex = 1 [default = 1];
required bytes encryptedRandomNumber = 2;
}
message EncryptedTrafficHeader {
required uint32 randomNumberIndex = 1;
required bytes encryptedTraffic = 2;
}

View file

@ -0,0 +1,989 @@
syntax = "proto2";
package Gazillion;
import "GazillionCommon.proto";
import "CommonMessages.proto";
import "ChatCommon.proto";
import "MatchCommon.proto";
import "BillingCommon.proto";
import "Guild.proto";
enum ForceDisconnectReason {
eFDR_ErrorLoadingCharacter = 1;
eFDR_CheckpointFailed = 2;
eFDR_UnableToCreateRegion = 3;
eFDR_FulfillmentFailed = 4;
}
enum CommunityModifyFailureCode {
eCMFC_Timeout = 1;
eCMFC_NoOnlinePlayer = 2;
}
enum GuildLeaveReason {
eGLR_Left = 1;
eGLR_Kicked = 2;
}
enum GuildMessageCode {
eGMC_None = 1;
eGMC_GuildNameDirty = 2;
eGMC_ServicesDown = 3;
eGMC_GuildNameInvalidCharacters = 4;
eGMC_GuildNameTooShort = 5;
eGMC_GuildNameTooLong = 6;
eGMC_GuildNameIdentical = 7;
eGMC_GuildNotInGuild = 8;
eGMC_GuildsLocked = 9;
}
message NetMessageReadyAndLoggedIn {
}
message NetMessageReadyForTimeSync {
}
message NetMessageLocalPlayer {
required uint64 localPlayerEntityId = 1;
}
message NetMessageEntityCreate {
required uint64 prototypeId = 1;
required uint64 idEntity = 2;
required bytes archiveData = 3;
required uint32 interestPolicies = 4;
required uint64 dbId = 5;
optional NetStructPoint3 position = 6;
optional NetStructPoint3 orientation = 7;
optional NetStructLocomotionState locomotionState = 8;
optional uint64 invLocContainerEntityId = 9;
optional uint64 invLocInventoryPrototypeId = 10;
optional uint32 invLocSlot = 11;
optional bool isNewOnServer = 12;
optional uint64 sourceEntityId = 13;
optional NetStructPoint3 sourcePosition = 14;
optional uint32 cellId = 15;
optional uint32 areaId = 16;
optional bool initConditionComponent = 17;
optional bool overrideSnapToFloorOnSpawn = 18;
optional bool isClientEntityHidden = 19;
optional bool startFullInWorldHierarchyUpdate = 20;
}
message NetMessageEntityDestroy {
required uint64 idEntity = 1;
optional uint64 prototypeId = 2;
optional uint32 cellId = 3;
optional uint32 areaId = 4;
optional uint64 regionId = 5;
optional NetStructPoint3 position = 6;
optional uint64 ownerEntityId = 7;
optional uint64 ownerPrototypeId = 8;
optional string entityServerString = 9;
}
message NetMessageInventoryMove {
required uint64 entityId = 1;
required uint64 invLocContainerEntityId = 2;
required uint64 invLocInventoryPrototypeId = 3;
required uint32 invLocSlot = 4;
optional bool requiredNoOwnerOnClient = 5;
optional uint64 entityDataId = 6;
optional uint64 destOwnerDataId = 7;
}
message NetMessageInventoryExit {
required uint64 entityId = 1;
optional uint64 entityDataId = 2;
}
message NetMessageInventoryUnlock {
required uint64 invProtoId = 1;
}
message NetMessagePermaBuffUnlock {
required uint64 permaBuffProtoId = 1;
}
message NetMessageEntityKill {
required uint64 idEntity = 1;
required uint64 idKillerEntity = 2;
required uint32 killFlags = 3;
}
message NetMessageQueueFullscreenMovie {
optional uint64 moviePrototypeId = 1;
}
message NetMessageQueueLoadingScreen {
optional uint64 regionPrototypeId = 1;
}
message NetMessageDequeueLoadingScreen {
}
message NetMessageRegionChange {
required uint64 regionId = 1;
required uint64 serverGameId = 2;
required bool clearingAllInterest = 3;
repeated uint64 entitiestodestroy = 4;
optional uint64 regionPrototypeId = 5;
optional int32 regionRandomSeed = 6;
optional bytes archiveData = 7;
optional NetStructPoint3 regionMin = 8;
optional NetStructPoint3 regionMax = 9;
optional NetStructCreateRegionParams createRegionParams = 10;
}
message NetMessageEntityPosition {
required uint64 idEntity = 1;
required uint32 flags = 2;
optional NetStructPoint3 position = 3;
optional NetStructPoint3 orientation = 4;
optional uint32 cellId = 5;
optional uint32 areaId = 6;
optional uint64 entityPrototypeId = 7;
}
message NetMessageLocomotionStateUpdate {
required uint64 idEntity = 1;
required NetStructLocomotionState locomotionstate = 2;
required NetStructPoint3 position = 3;
required NetStructPoint3 orientation = 4;
optional uint64 entityPrototypeId = 5;
}
message NetMessageInterestPolicies {
required uint64 idEntity = 1;
required uint32 newPolicies = 2;
required uint32 prevPolicies = 3;
optional uint64 entityDataId = 4;
}
message NetMessageUnableToCreateRegion {
required uint64 regionProtoId = 1;
required uint64 requiredItemProtoId = 2;
required uint32 regionTransferFailure = 3;
}
message NetStructAreaConnection {
required uint32 areaId = 1;
required NetStructIPoint2 connectPoint = 2;
}
message NetMessageAddArea {
required uint32 areaId = 1;
required uint64 areaPrototypeId = 2;
required NetStructPoint3 areaOrigin = 3;
optional bool isStartArea = 4;
}
message NetMessageRemoveArea {
required uint32 areaId = 1;
}
message NetStructReservedSpawn {
required uint64 asset = 1;
required uint32 id = 2;
}
message NetMessageCellCreate {
required uint32 areaId = 1;
required uint32 cellId = 2;
required uint64 cellPrototypeId = 3;
required NetStructPoint3 positionInArea = 4;
required uint32 depth = 5;
required int32 cellRandomSeed = 6;
repeated NetStructReservedSpawn encounters = 7;
required int32 bufferwidth = 8;
required uint64 overrideLocationName = 9;
}
message NetMessageCellDestroy {
required uint32 areaId = 1;
required uint32 cellId = 2;
}
message NetMessageEnvironmentUpdate {
required uint32 flags = 1;
}
message NetMessageDebugSpawnMapVisualization {
required bool visualize = 1;
required uint32 areaid = 2;
required uint32 boundsx = 3;
required uint32 boundsy = 4;
optional bytes mapdata = 5;
}
message NetMessageChangeAOIPolicies {
required uint64 idEntity = 1;
required uint32 currentpolicies = 2;
optional bool exitGameWorld = 3;
optional uint64 entityPrototypeId = 4;
}
message NetMessageFullInWorldHierarchyUpdateEnd {
required uint64 idEntity = 1;
}
message NetMessageFullInWorldHierarchyUpdateBegin {
required uint64 idEntity = 1;
}
message NetMessageAdminCommandResponse {
required string response = 1;
}
message NetMessageActivatePowerFailed {
required uint32 reason = 1;
required uint64 powerPrototypeId = 2;
}
message NetMessageCancelPower {
required uint64 idAgent = 1;
required uint64 powerPrototypeId = 2;
required uint32 endPowerFlags = 3;
}
message NetMessageContinuousPowerUpdateToClient {
required uint64 idAvatar = 1;
required uint64 powerPrototypeId = 2;
optional uint64 idTargetEntity = 3;
optional NetStructPoint3 targetPosition = 4;
}
message NetMessageActivatePower {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
required uint64 parentPowerPrototypeId = 3;
required uint64 idTargetEntity = 4;
required NetStructPoint3 targetPosition = 5;
required NetStructPoint3 userPosition = 6;
optional float moveTimeSeconds = 7;
optional float variableActivationTime = 8;
optional uint32 missileRandomSeed = 9;
}
message NetMessagePreActivatePower {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
required uint64 idTargetEntity = 3;
required NetStructPoint3 targetPosition = 4;
}
message NetMessagePowerResult {
required uint64 idTargetEntity = 1;
required uint64 idPowerOwnerEntity = 2;
required uint64 idUltimateOwnerEntity = 3;
required uint64 powerPrototypeId = 4;
required uint64 deliveryDelayMS = 5;
required uint64 flags = 6;
required NetStructPropertyList properties = 7;
required NetStructPoint3 powerOwnerPosition = 8;
optional uint64 transferToEntityId = 9 [default = 0];
optional uint64 targetEntityPrototypeId = 10 [default = 0];
optional uint64 powerOwnerEntityPrototypeId = 11 [default = 0];
optional uint64 ultimateOwnerEntityPrototypeId = 12 [default = 0];
optional uint64 powerOwnerRegionPrototypeId = 13 [default = 0];
optional uint64 transferToEntityPrototypeId = 14 [default = 0];
optional string targetServerString = 15;
}
message NetMessagePowerBounce {
required uint64 idPowerUser = 1;
required uint64 idLastTarget = 2;
required NetStructPoint3 lastTargetPosition = 3;
required uint64 idNewTarget = 4;
required uint64 powerPrototypeId = 5;
required uint64 userOriginalAssetId = 6;
required uint64 userCurrentAssetId = 7;
required float projectileSpeed = 8;
}
message NetMessagePowerWeaponMissing {
required uint64 idOwner = 1;
required bool weaponMissing = 2;
}
message NetMessageOnPreInteractPowerEnd {
required uint64 idTargetEntity = 1;
}
message NetMessageRegionPrimitiveBox {
required NetStructPoint3 center = 1;
required NetStructPoint3 size = 2;
required NetStructIPoint3 color = 3;
required uint64 lifetimeInMilliseconds = 4;
required bool add = 5;
}
message NetMessageRegionPrimitiveTriangle {
required NetStructPoint3 point0 = 1;
required NetStructPoint3 point1 = 2;
required NetStructPoint3 point2 = 3;
required NetStructIPoint3 color = 4;
required uint64 lifetimeInMilliseconds = 5;
required bool add = 6;
}
message NetMessageRegionPrimitiveSphere {
required NetStructPoint3 center = 1;
required float radius = 2;
required NetStructIPoint3 color = 3;
required uint64 lifetimeInMilliseconds = 4;
required bool add = 5;
}
message NetMessageRegionPrimitiveLine {
required NetStructPoint3 start = 1;
required NetStructPoint3 end = 2;
required NetStructIPoint3 color = 3;
required uint64 lifetimeInMilliseconds = 4;
required bool add = 5;
}
message NetMessageMarkFirstGameFrame {
required uint64 currentservergametime = 1;
required uint64 currentservergameid = 2;
}
message NetMessageBeginExitGame {
}
message NetMessageSystemMessage {
required int32 messageId = 1;
}
message NetMessageAIDebugUIUpdate {
required uint64 idTargetNPC = 1;
required string currentActionName = 2;
required string previousActionName = 3;
repeated string sensoryInputs = 4;
required string propertyString = 5;
}
message NetMessagePropertiesDebugUIUpdate {
required uint64 idTargetEntity = 1;
required string propertyString = 2;
}
message NetMessageConditionsDebugUIUpdate {
required uint64 idTargetEntity = 1;
required string conditionsString = 2;
}
message NetMessagePowersDebugUIUpdate {
required uint64 debugEntityId = 1;
required uint64 activePowerId = 2;
required int32 pendingActionState = 3;
required uint64 pendingPowerId = 4;
required uint64 pendingTargetId = 5;
required NetStructPoint3 pendingTargetPosition = 6;
required uint64 continuousPowerId = 7;
required uint64 continuousTargetId = 8;
required NetStructPoint3 continuousTargetPosition = 9;
required uint64 activePowerLastActivationTime = 10;
}
message NetMessageMissionDebugUIUpdate {
repeated string missionStrings = 1;
}
message NetMessageDebugEntityPosition {
required uint64 entityId = 1;
required NetStructPoint3 position = 2;
}
message NetMessagePingResponse {
required bool displayOutput = 1;
required uint64 requestSentClientTime = 2;
optional uint64 requestSentGameTime = 3;
optional uint64 requestNetReceivedGameTime = 4;
optional uint64 responseSendTime = 5;
optional uint64 responseNetReceiveClientTime = 6;
optional uint64 responseNetReceiveGameTime = 7;
optional uint64 serverTimeSinceLastGameUpdate = 8;
optional uint64 responseLatencyBufferReceiveClientTime = 9;
}
message NetMessageEntityEnterGameWorld {
required uint64 entityId = 1;
required NetStructPoint3 position = 2;
optional NetStructPoint3 orientation = 3;
optional NetStructLocomotionState locomotionState = 4;
optional uint64 entityPrototypeId = 5;
optional bool isClientEntityHidden = 6;
}
message NetMessageTeleportAckRequest {
required uint32 ackseq = 1;
}
message NetMessageServerVersion {
required string version = 1;
}
message NetStructAffixSpec {
required uint64 affixProtoRef = 1;
required uint64 scopeProtoRef = 2;
required int32 seed = 3;
}
message NetStructItemSpec {
required uint64 itemProtoRef = 1;
required uint32 itemLevel = 2;
required uint64 rarityProtoRef = 3;
required uint32 seed = 4;
optional uint32 creditsAmount = 5;
repeated NetStructAffixSpec affixSpecs = 6;
}
message NetStructItemSpecEntry {
required uint64 key = 1;
required NetStructItemSpec itemSpec = 2;
}
message NetMessageMissionUpdate {
required uint64 missionPrototypeId = 1;
optional uint32 missionState = 2;
optional uint64 missionStateExpireTime = 3;
optional uint32 xpAwarded = 4;
optional uint32 creditsAwarded = 5;
optional uint32 powerPointsAwarded = 6;
optional uint32 healthBonusAwarded = 7;
optional uint32 enduranceBonusAwarded = 8;
repeated uint64 participants = 9;
repeated NetStructItemSpecEntry items = 10;
optional bool create = 11;
optional bool suppressNotification = 12;
}
message NetMessageMissionObjectiveUpdate {
required uint64 missionPrototypeId = 1;
required uint32 objectiveIndex = 2;
optional uint32 objectiveState = 3;
optional uint64 objectiveStateExpireTime = 4;
optional uint32 completedCount = 5;
optional uint32 totalCount = 6;
repeated uint64 interactedEntities = 7;
optional bool create = 8;
optional bool suppressNotification = 9;
}
message NetMessageCurrentAvatarChanged {
required uint64 lastCurrentEntityId = 1;
}
message NetMessageNewAvatarAcquired {
required uint64 prototypeId = 1;
}
message NetStructPrefetchEntityPower {
required uint64 entityAssetId = 1;
required uint64 powerPrototypeId = 2;
}
message NetStructPrefetchCell {
required uint32 cellId = 1;
required uint64 cellPrototypeId = 2;
}
message NetMessagePrefetchAssets {
required bool backgroundload = 1;
repeated uint64 assets = 2;
repeated uint64 prototypes = 3;
repeated NetStructPrefetchEntityPower powers = 4;
repeated NetStructPrefetchCell cells = 5;
optional uint64 regionId = 6;
}
message NetMessagePrefetchRegionsForDownload {
repeated uint64 prototypes = 1;
}
message NetMessageQueryIsRegionAvailable {
required uint64 regionPrototype = 1;
}
message NetMessageShowOverheadText {
required uint64 idAgent = 1;
required uint64 idText = 2;
required float duration = 3;
}
message NetMessageAIToggleState {
required bool state = 1;
}
message NetMessageDamageToggleState {
required bool state = 1;
}
message NetStructMatchQueueEntry {
required uint32 queueIndex = 1;
required uint64 queuePrototypeId = 2;
required bool canQueueParty = 3;
}
message NetMessageMatchQueueListResponse {
repeated NetStructMatchQueueEntry list = 1;
}
message NetMessageMatchQueueResponse {
required uint32 queueIndex = 1;
required uint64 queuePrototypeId = 2;
}
message NetMessageMatchInviteNotification {
required uint32 queueIndex = 1;
required uint64 queuePrototypeId = 2;
required uint64 matchNumber = 3;
}
message NetMessageMatchStatsResponse {
required uint32 statRequestNumber = 1;
required bool playerFound = 2;
repeated MatchPlayerStatisticsSummary summaries = 3;
}
message NetMessageMatchTeamRosterNotification {
required uint64 metaGameEntityId = 1;
required uint64 teamPrototypeId = 2;
repeated uint64 playerDbGuids = 3;
}
message NetMessageMatchTeamSizeNotification {
required uint64 metaGameEntityId = 1;
required uint32 teamSize = 2;
}
message NetMessageChatFromGameSystem {
required ChatRoomTypes type = 1;
required uint64 sourceStringId = 2;
required uint64 messageStringId = 3;
}
message NetMessageChatError {
required ChatErrorMessages errorMessage = 1;
}
message NetMessageCatalogItems {
optional int64 timestamp = 1;
repeated MarvelHeroesCatalogEntry entries = 2;
repeated MHLocalizedCatalogUrls urls = 3;
}
message NetMessageGetCurrencyBalanceResponse {
required int64 currencyBalance = 1;
}
message NetMessageBuyItemFromCatalogResponse {
required bool didSucceed = 1;
required int64 currentCurrencyBalance = 2;
optional string errormessage = 3;
required BuyItemResultErrorCodes errorcode = 4;
required int64 skuId = 5;
optional bool isWebPurchase = 6;
repeated uint64 protototypeIds = 7;
}
message NetMessageEntityPreviewerNewTarget {
required uint64 entityId = 1;
}
message NetMessageServerNotification {
required string serverMessage = 1;
}
message NetMessageRemoteMissionNotification {
required uint64 entityPrototypeId = 1;
required uint64 dialogTextStringId = 2;
required uint64 missionPrototypeId = 3;
required uint64 iconPathOverrideId = 4;
}
message NetMessageUINotificationMessage {
required uint64 uiNotificationRef = 1;
}
message NetMessageStartPvPTimer {
required uint32 startTime = 1;
required uint32 endTime = 2;
required uint32 lowTimeWarning = 3;
required uint32 criticalTimeWarning = 4;
required uint64 metaGameId = 5;
}
message NetMessageSetDifficultyThresholds {
required uint32 warningThreshold = 1;
required uint32 failureThreshold = 2;
}
message NetMessageSetTimerText {
required uint64 timerTextId = 1;
optional int64 arg1 = 3;
}
message NetMessageSetModeText {
required uint64 modeTextId = 1;
required uint64 modeRef = 2;
required uint64 metaGameId = 3;
}
message NetMessageSetExtraText {
required uint64 extraTextId = 1;
}
message NetMessageBannerMessage {
required uint64 bannerText = 1;
required uint64 fontColor = 2;
required uint32 fontSize = 3;
required uint32 timeToLiveMS = 4;
required uint32 messageStyle = 5;
required bool doNotQueue = 6;
}
message NetMessageAIAggroNotification {
required uint64 bannerMessageRef = 1;
required uint64 aiRef = 2;
required uint64 playerId = 3;
}
message NetMessageStoryNotification {
required uint64 displayTextStringId = 1;
required uint64 speakingEntityPrototypeId = 2;
required uint32 timeToLiveMS = 3;
}
message NetMessageSyncTimeReply {
required int64 gameTimeClientSent = 1;
required int64 gameTimeServerReceived = 2;
required int64 gameTimeServerSent = 3;
required int64 dateTimeClientSent = 4;
required int64 dateTimeServerReceived = 5;
required int64 dateTimeServerSent = 6;
required float dialation = 7;
required int64 gametimeDialationStarted = 8;
required int64 datetimeDialationStarted = 9;
}
message NetMessageSelectStartingAvatarForNewPlayer {
}
message NetMessageShowKioskStartScreen {
}
message NetMessageInventoryFull {
required uint64 playerID = 1;
required uint64 itemID = 2;
}
message NetMessageUnloadPackagesStart {
}
message NetMessageUnloadPackagesEnd {
}
message NetMessageForceDisconnect {
required ForceDisconnectReason reason = 1;
}
message NetMessageLevelUp {
required uint64 entityID = 1;
}
message NetMessageVendorLevelUp {
required uint64 vendorTypeProtoId = 1;
required uint64 vendorID = 2;
}
message NetMessageVendorRefresh {
required uint64 vendorTypeProtoId = 1;
}
message NetMessageCraftingFinished {
required uint64 recipeProtoId = 1;
}
message NetMessageCraftingFailed {
required uint64 recipeProtoId = 1;
}
message NetMessageWaypointUnlocked {
required uint64 waypointPrototypeID = 1;
}
message NetMessageReplicationArchive {
required uint64 replicationId = 1;
optional uint32 archiveDataType = 2 [default = 0];
required bytes archiveData = 3;
optional string debugstring = 4;
}
message NetMessagePvPScoreScoreUpdateEntry {
required uint32 category = 1;
required int32 value = 2;
}
message NetMessagePvPScorePlayerNewId {
required uint64 pvpEntityId = 1;
required uint64 playerDbGuid = 2;
required string playerName = 3;
required uint64 teamProtoId = 4;
}
message NetMessagePvPScorePlayerTeamChange {
required uint64 pvpEntityId = 1;
required uint64 playerDbGuid = 2;
required uint64 teamProtoId = 3;
}
message NetMessagePvPScorePlayerUpdate {
required uint64 pvpEntityId = 1;
required uint64 playerDbGuid = 2;
repeated NetMessagePvPScoreScoreUpdateEntry updates = 3;
}
message NetMessageTransitionUpdate {
required uint64 idEntity = 1;
}
message NetMessageAvatarNameChange {
required uint64 idEntity = 1;
}
message NetMessageMissionInteractRepeat {
required uint64 targetEntityId = 1;
required uint64 missionPrototypeId = 2;
}
message NetMessageMissionInteractRelease {
}
message NetMessageOnAddCondition {
required uint64 idEntity = 1;
required uint64 key = 2;
optional string entityServerString = 3;
optional string conditionServerString = 4;
}
message NetMessageOnRemoveCondition {
required uint64 idEntity = 1;
required uint64 key = 2;
}
message NetMessageHotkeyAssign {
required uint64 avatarId = 1;
required uint64 abilityProtoId = 2;
required int32 slot = 3;
required int32 destinationSlot = 4;
}
message NetMessageHotkeyUnassign {
required uint64 avatarId = 1;
required int32 slot = 2;
}
message NetMessageAbilityAssign {
required uint64 avatarId = 1;
required uint64 abilityProtoId = 2;
required int32 slot = 3;
}
message NetMessageAbilityUnassign {
required uint64 avatarId = 1;
required int32 slot = 2;
}
message NetMessageAbilitySwap {
required uint64 avatarId = 1;
required int32 slotA = 2;
required int32 slotB = 3;
}
message NetMessagePowerCollectionAssignPower {
required uint64 entityId = 1;
required uint64 powerProtoId = 2;
required uint64 targetentityid = 4;
required int32 powerRank = 5;
required int32 characterLevel = 6;
required int32 itemLevel = 7;
required bool powerCollectionIsduplicating = 8;
}
message NetMessageAssignPowerCollection {
repeated NetMessagePowerCollectionAssignPower power = 1;
}
message NetMessagePowerCollectionUnassignPower {
required uint64 entityId = 1;
required uint64 powerProtoId = 2;
required uint64 targetentityid = 3;
}
message NetMessageOnWaypointUpdated {
required uint64 idPlayer = 1;
}
message NetMessageInternalReportPlayerLoadError {
required string serverReport = 1;
}
message MessageReportEntry {
required string messageName = 1;
required uint64 totalCount = 2;
required uint64 totalBytes = 3;
}
message NetMessageMessageReport {
repeated MessageReportEntry reports = 1;
required uint32 reportSource = 2;
required uint32 reportDirection = 3;
}
message NetMessageUpdateMiniMap {
required bytes archiveData = 1;
}
message NetMessageMoveToAlternateLandingSpot {
required uint64 idEntity = 1;
required NetStructPoint3 landingPosition = 2;
required uint64 landingPowerprototypeId = 3;
}
message NetMessageConsoleMessage {
required string messageText = 1;
}
message NetMessageAvatarOnKilledInfoOverride {
required uint64 regionId = 1;
required uint64 avatarOnKilledInfoProtoId = 2;
}
message NetMessageOnResurrect {
required uint64 targetId = 1;
}
message NetMessageOnResurrectRequest {
required uint64 targetId = 1;
required uint64 resurrectorId = 2;
}
message NetMessageOnResurrectDecline {
required uint64 targetId = 1;
}
message NetMessageReloadPackagesStart {
}
message NetMessagePlayStoryBanter {
required uint64 banterAssetId = 1;
}
message NetMessagePlayKismetSeq {
required uint64 kismetSeqPrototypeId = 1;
}
message NetMessageGracefulDisconnectAck {
}
message NetMessageLiveTuningUpdate {
repeated NetStructLiveTuningSettingEnumValue globalTuningSettings = 1;
repeated NetStructLiveTuningSettingProtoEnumValue perPowerTuningSettings = 2;
}
message NetMessageUpdateSituationalTarget {
required uint64 powerOwnerId = 1;
required uint64 situationalPowerProtoId = 2;
required uint64 situationalTargetId = 3;
required bool addTarget = 4;
}
message NetMessageConfirmStartNewGame {
}
message NetMessageModifyCommunityMemberFailure {
required string memberToModifyName = 1;
required CommunityModifyFailureCode failureCode = 2;
required uint64 circleId = 3;
required ModifyCircleOperation operation = 4;
}
message NetMessageModifyCommunityMember {
required CommunityMemberBroadcast broadcast = 1;
optional string playerName = 2;
optional uint64 systemCirclesBitSet = 3;
}
message NetMessageReceiveCommunityNotify {
required CommunityNotify notify = 1;
}
message NetMessageItemBindingChanged {
required uint64 itemId = 1;
required bool accountBound = 2;
required uint64 avatarProtoId = 3;
}
message NetMessageItemsHeldForRecovery {
repeated uint64 itemIds = 1;
}
message NetMessageItemRecovered {
required uint64 itemId = 1;
}
message NetMessageSwitchToPendingNewAvatarFailed {
required uint64 targetId = 1;
required bool invalidLocation = 2;
}
message NetMessageGuildMessageToClient {
required GuildMessageSetToClient messages = 1;
}
message NetMessageEntityGuildInfo {
required uint64 entityId = 1;
required uint64 guildId = 2;
required string guildName = 3;
required GuildMembership guildMembership = 4;
optional string debugEntityServerString = 5;
}
message NetMessageLeaveGuild {
required uint64 guildId = 1;
required GuildLeaveReason reason = 2;
required string initiatingPlayerName = 3;
}
message NetMessageGuildSystemMessage {
required GuildMessageCode code = 1;
}
message NetMessageRegionDifficultyChange {
required uint64 difficultyIndex = 1;
}
message NetMessageMetaGameWaveUpdate {
required uint64 currentWaveCount = 1;
required uint64 maxWaveCount = 2;
required uint64 metaGameId = 3;
}
message NetMessagePvEInstanceCrystalUpdate {
required uint64 currentCrystalCount = 1;
required uint64 maxCrystalCount = 2;
required uint64 metaGameId = 3;
}
message NetMessagePvEInstanceDeathUpdate {
required uint64 currentDeathCount = 1;
required uint64 metaGameId = 2;
}
message NetMessageShowTutorialTip {
required uint64 tipDataRefId = 1;
}

View file

@ -0,0 +1,6 @@
syntax = "proto2";
package Gazillion;
import "google/protobuf/descriptor.proto";

View file

@ -0,0 +1,179 @@
syntax = "proto2";
package Gazillion;
import "ChatCommon.proto";
import "CommonMessages.proto";
enum GroupingOperationType {
eGOP_InvitePlayer = 1;
eGOP_AcceptInvite = 2;
eGOP_ServerNotification = 3;
}
enum GroupingOperationResult {
eGOPR_Success = 1;
eGOPR_SystemError = 2;
eGOPR_TargetPlayerNotFound = 3;
eGOPR_TargetedSelf = 4;
eGOPR_AlreadyHasInvite = 5;
eGOPR_PartyFull = 6;
eGOPR_NotLeader = 7;
eGOPR_PendingPartyDisbanded = 8;
}
enum GroupingStateOfPlayer {
eGSOP_Solo = 1;
eGSOP_PendingInvite = 2;
eGSOP_InGroup = 3;
}
message PerPlayerInfo {
required string playerName = 1;
required uint64 playerSessionId = 2;
required uint64 playerDbId = 3;
}
message ClientInvitedToGroup {
required string invitingPlayerName = 1;
required NetStructWarpDest warpDest = 2;
}
message ClientInviteAcceptFailed {
}
message ClientCreateGroup {
required uint64 groupId = 1;
required uint64 leaderSessionId = 2;
required string leaderName = 3;
}
message PlayerJoinedGroup {
required string joiningPlayerName = 1;
required uint64 playerSessionId = 2;
required uint64 groupId = 3;
}
message PlayerLeftGroup {
required string leaverName = 1;
required uint64 playerSessionId = 2;
optional uint64 newLeaderSessionId = 3;
required uint64 groupId = 4;
required GroupLeaveReason leaveReason = 5;
}
message PlayerChangedGroupLeader {
required string oldLeader = 1;
required uint64 oldLeaderSessionId = 2;
required string newLeader = 3;
required uint64 newLeaderSessionId = 4;
}
message ClientBootedFromGroup {
required uint64 groupId = 1;
required GroupLeaveReason leaveReason = 2;
}
message PlayerDeclinedInvite {
optional string declinerName = 1;
optional uint64 declinerSessionId = 2;
}
message CurrentPartyInfo {
required uint64 groupId = 1;
required PerPlayerInfo leader = 3;
repeated PerPlayerInfo members = 4;
}
message ChatResponseToExternalLogin {
optional bytes someresponse = 1;
}
message ChatNormalMessage {
required ChatRoomTypes roomType = 1;
required string fromPlayerName = 2;
required string toPlayerName = 3;
required ChatMessage theMessage = 4;
}
message ChatTellMessage {
required string fromPlayerName = 1;
required string toPlayerName = 2;
required ChatMessage theMessage = 3;
}
message ChatBroadcastMessage {
required ChatRoomTypes roomType = 1;
required string fromPlayerName = 2;
required ChatMessage theMessage = 3;
}
message ChatErrorMessage {
required ChatErrorMessages errorMessage = 1;
}
message GroupingReportInvitationDestinationForPortal {
required uint64 acceptingPlayerDbId = 1;
required uint64 invitingPlayerDbId = 2;
required uint64 requestingGameId = 3;
optional NetStructWarpDest warpToDest = 4;
}
message GroupingOperationResultMsg {
required uint64 requestingGameId = 1;
required uint64 requestingPlayerDbId = 2;
required GroupingOperationType opType = 3;
required GroupingOperationResult opResult = 4;
optional uint64 groupId = 5;
optional PerPlayerInfo leaderInfo = 6;
repeated PerPlayerInfo currentPartyInfo = 7;
}
message GroupingManagerRemovedPlayer {
required uint64 requestingGameId = 1;
required PerPlayerInfo removedPlayer = 2;
required uint64 groupId = 3;
optional PerPlayerInfo newLeader = 4;
optional uint64 previousLeaderDbId = 6;
required GroupLeaveReason leaveReason = 5;
}
message GroupingManagerAddedPlayer {
required uint64 requestingGameId = 1;
required PerPlayerInfo addedPlayer = 2;
required uint64 groupId = 3;
}
message GroupingManagerCreateGroup {
required uint64 requestingGameId = 1;
required uint64 groupId = 2;
required PerPlayerInfo leaderInfo = 3;
}
message GroupingManagerPlayerEnteredRegion {
required uint64 playerDbId = 1;
required uint64 requestingGameId = 2;
required uint64 groupId = 3;
optional PerPlayerInfo leaderInfo = 4;
repeated PerPlayerInfo members = 5;
}
message ChatCreateChatRoomResult {
required uint64 requestingGameId = 3;
optional bool success = 1 [default = false];
optional string reason = 2;
}
message ChatAddPlayerToRoomResult {
required uint64 requestingGameId = 3;
optional bool success = 1 [default = false];
optional string reason = 2;
}
message ChatScrubTextResult {
required uint64 requestingGameId = 1;
required string textOriginal = 2;
required string textScrubbed = 3;
required uint64 remoteJobId = 4;
}

198
proto/1.10.0.83/Guild.proto Normal file
View file

@ -0,0 +1,198 @@
syntax = "proto2";
package Gazillion;
enum GuildFormResultCode {
eGFCInternalError = 0;
eGFCGuildInErrorState = 1;
eGFCNotOnline = 2;
eGFCRestrictedName = 3;
eGFCDuplicateName = 4;
eGFCAlreadyInGuild = 5;
eGFCWaitingForDatabase = 6;
eGFCSuccess = 7;
}
enum GuildChangeNameResultCode {
eGCNRCInternalError = 0;
eGCNRCGuildInErrorState = 1;
eGCNRCNotOnline = 2;
eGCNRCInvalidGuild = 3;
eGCNRCNotInGuild = 4;
eGCNRCRestrictedName = 5;
eGCNRCDuplicateName = 6;
eGCNRCNoPermission = 7;
eGCNRCWaitingForDatabase = 8;
eGCNRCSuccess = 9;
}
enum GuildInviteResultCode {
eGIRCInternalError = 0;
eGIRCGuildInErrorState = 1;
eGIRCInviterNotOnline = 2;
eGIRCGuildFull = 3;
eGIRCInvitedInGuild = 4;
eGIRCInvitedInOtherGuild = 5;
eGIRCInvitedUnkownPlayer = 6;
eGIRCInviterNotInGuild = 7;
eGIRCInviterNoPermission = 8;
eGIRCSuccess = 9;
}
enum GuildRespondToInviteCode {
eGRICRejected = 0;
eGRICAccepted = 1;
eGRICAutoIgnored = 2;
}
enum GuildRespondToInviteResultCode {
eGRIRCInternalError = 0;
eGRIRCGuildInErrorState = 1;
eGRIRCNotOnline = 2;
eGRIRCInvalidGuild = 3;
eGRIRCAlreadyInGuild = 4;
eGRIRCGuildFull = 5;
eGRIRCNotInvited = 6;
eGRIRCJoined = 7;
eGRIRCRejected = 8;
}
enum GuildMembership {
eGMNone = 0;
eGMMember = 1;
eGMOfficer = 2;
eGMLeader = 3;
}
enum GuildChangeMemberResultCode {
eGCMRCInternalError = 0;
eGCMRCGuildInErrorState = 1;
eGCMRCNotOnline = 2;
eGCMRCInitiatorNotInGuild = 3;
eGCMRCInitiatorNoPermission = 4;
eGCMRCUnknownMember = 5;
eGCMRCNoChange = 6;
eGCMRCCantModifyLeader = 7;
eGCMRCRequiresStaff = 8;
eGCMRCRequiresLeader = 9;
eGCMRCNoTransferLeadership = 10;
eGCMRCSuccess = 11;
eGCMRCSuccessGuildDissolved = 12;
}
message GuildForm {
required uint64 playerId = 1;
required string guildName = 2;
}
message GuildFormResult {
required string guildName = 1;
required GuildFormResultCode resultCode = 2;
}
message GuildDisbanded {
required uint64 guildId = 1;
required string disbandingPlayerName = 2;
}
message GuildChangeName {
required uint64 playerId = 1;
required string guildName = 2;
}
message GuildChangeNameResult {
required string submittedName = 1;
required GuildChangeNameResultCode resultCode = 2;
}
message GuildNameChanged {
required uint64 guildId = 1;
required string newGuildName = 2;
optional string changedByPlayerName = 3;
}
message GuildInvite {
required string toInvitePlayerName = 1;
required uint64 invitedByPlayerId = 2;
}
message GuildInviteResult {
required GuildInvite invite = 1;
required GuildInviteResultCode resultCode = 2;
}
message GuildInvitedToJoin {
required uint64 guildId = 1;
required string guildName = 2;
required string invitedByPlayerName = 3;
}
message GuildRespondToInvite {
required uint64 playerId = 1;
required uint64 guildId = 2;
required GuildRespondToInviteCode respondCode = 3;
}
message GuildRespondToInviteResult {
required GuildRespondToInviteResultCode resultCode = 1;
required string guildName = 2;
}
message GuildMemberInfo {
required uint64 playerId = 1;
required string playerName = 2;
required GuildMembership membership = 3;
}
message GuildChangeMember {
required uint64 sourcePlayerId = 1;
required string targetPlayerName = 2;
required GuildMembership targetNewMembership = 3;
}
message GuildChangeMemberResult {
required string targetPlayerName = 1;
required GuildChangeMemberResultCode resultCode = 2;
}
message GuildMembersInfoChanged {
required uint64 guildId = 1;
repeated GuildMemberInfo members = 2;
required string initiatingMemberName = 3;
optional bool newMember = 4 [default = false];
}
message GuildCompleteInfo {
required uint64 guildId = 1;
required string guildName = 2;
repeated GuildMemberInfo members = 3;
}
message GuildMessageSetToServer {
optional GuildNameChanged guildNameChanged = 1;
optional GuildMembersInfoChanged guildMembersInfoChanged = 2;
optional GuildCompleteInfo guildCompleteInfo = 3;
optional GuildDisbanded guildDisbanded = 4;
}
message GuildMessageSetToClient {
optional GuildFormResult guildFormResult = 1;
optional GuildChangeNameResult guildChangeNameResult = 2;
optional GuildInviteResult guildInviteResult = 3;
optional GuildRespondToInviteResult guildRespondToInviteResult = 4;
optional GuildChangeMemberResult guildChangeMemberResult = 5;
optional GuildInvitedToJoin guildInvitedToJoin = 6;
optional GuildNameChanged guildNameChanged = 7;
optional GuildMembersInfoChanged guildMembersInfoChanged = 8;
optional GuildCompleteInfo guildCompleteInfo = 9;
optional GuildDisbanded guildDisbanded = 10;
}
message GuildMessageSetToPlayerManager {
optional GuildForm guildForm = 1;
optional GuildChangeName guildChangeName = 2;
optional GuildInvite guildInvite = 3;
optional GuildRespondToInvite guildRespondToInvite = 4;
optional GuildChangeMember guildChangeMember = 5;
}

View file

@ -0,0 +1,73 @@
syntax = "proto2";
package Gazillion;
enum MatchPhase {
MP_Created = 0;
MP_Initialized = 1;
MP_Started = 2;
MP_Finished = 3;
MP_Shutdown = 4;
}
enum MatchPlayerEventType {
MPET_Left = 0;
MPET_Joined = 1;
}
enum MatchBalanceMethod {
MBM_None = 0;
MBM_PlayerRating = 1;
MBM_FixedTeam = 2;
}
enum MatchCheatRequestType {
MCRT_None = 0;
MCRT_ForceMatchStart = 1;
MCRT_ForceMatchEnd = 2;
MCRT_SwitchTeams = 3;
}
enum MatchControlEventType {
MCET_None = 0;
MCET_ForceStart = 1;
MCET_ForceEnd = 2;
}
message MatchTeamDescription {
required uint64 teamPrototypeGuid = 1;
required uint32 minPlayers = 2;
required uint32 maxPlayers = 3;
}
message MatchGameDescription {
required uint64 queuePrototypeGuid = 1;
required uint64 gamePrototypeGuid = 2;
required uint64 regionPrototypeId = 3;
repeated MatchTeamDescription teams = 4;
}
message MatchQueueDescription {
required uint64 queuePrototypeGuid = 1;
required MatchBalanceMethod balanceMethod = 2;
required uint32 regionLevel = 3;
repeated MatchGameDescription games = 4;
}
message MatchTeamResultData {
required uint64 teamPrototypeGuid = 1;
required bool creditWithWin = 2;
}
message MatchResultData {
repeated MatchTeamResultData teams = 1;
}
message MatchPlayerStatisticsSummary {
required uint64 queuePrototypeGuid = 1;
required uint64 gamePrototypeGuid = 2;
required uint32 gamesPlayed = 3;
required uint32 gamesWon = 4;
required uint32 ratingSummary = 5;
}

View file

@ -0,0 +1,48 @@
syntax = "proto2";
package Gazillion;
enum PubSubServerTypes {
FRONTEND_SERVER = 0;
GAME_INSTANCE_SERVER_USER = 1;
GAME_INSTANCE_SERVER_PLAYERMGR = 2;
GAME_INSTANCE_SERVER_GROUPING = 3;
GAME_INSTANCE_SERVER_METRICS = 4;
GAME_INSTANCE_SERVER_BILLING = 10;
GAME_INSTANCE_SERVER_MATCH = 11;
PLAYERMGR_SERVER_FRONTEND = 5;
PLAYERMGR_SERVER_SITEMGR_CONTROL = 6;
PLAYERMGR_SERVER_SOCIAL_COMMON = 7;
PLAYERMGR_SERVER_MATCH = 12;
GROUPING_MANAGER_FRONTEND = 8;
FAKE_CHAT_LOAD_TESTER = 9;
NUM_SERVER_TYPES = 13;
}
message PubSubPublish {
optional PubSubServerTypes serverType = 1 [default = NUM_SERVER_TYPES];
optional string serviceIPAddress = 2;
optional string servicePort = 3;
optional string serviceVersion = 4;
}
message PubSubSubscribe {
optional PubSubServerTypes serverType = 1 [default = NUM_SERVER_TYPES];
optional int32 subscriptionId = 2;
optional string serviceVersion = 3;
}
message PubSubEventNotification {
optional PubSubServerTypes serverType = 1 [default = NUM_SERVER_TYPES];
optional int32 subscriptionId = 2;
optional string serviceIPAddress = 3;
optional string servicePort = 4;
optional string serviceVersion = 5;
optional bool requestResignation = 6;
}
message PubSubOrderlyShutdown {
optional string message = 1;
optional int32 minutesToShutdown = 2 [default = 15];
}

View file

@ -0,0 +1,184 @@
syntax = "proto2";
package google.protobuf;
message FileDescriptorSet {
repeated FileDescriptorProto file = 1;
}
message FileDescriptorProto {
optional string name = 1;
optional string package = 2;
repeated string dependency = 3;
repeated int32 public_dependency = 10;
repeated int32 weak_dependency = 11;
repeated DescriptorProto message_type = 4;
repeated EnumDescriptorProto enum_type = 5;
repeated ServiceDescriptorProto service = 6;
repeated FieldDescriptorProto extension = 7;
optional FileOptions options = 8;
optional SourceCodeInfo source_code_info = 9;
}
message DescriptorProto {
message ExtensionRange {
optional int32 start = 1;
optional int32 end = 2;
}
optional string name = 1;
repeated FieldDescriptorProto field = 2;
repeated FieldDescriptorProto extension = 6;
repeated DescriptorProto nested_type = 3;
repeated EnumDescriptorProto enum_type = 4;
repeated ExtensionRange extension_range = 5;
optional MessageOptions options = 7;
}
message FieldDescriptorProto {
enum Type {
TYPE_DOUBLE = 1;
TYPE_FLOAT = 2;
TYPE_INT64 = 3;
TYPE_UINT64 = 4;
TYPE_INT32 = 5;
TYPE_FIXED64 = 6;
TYPE_FIXED32 = 7;
TYPE_BOOL = 8;
TYPE_STRING = 9;
TYPE_GROUP = 10;
TYPE_MESSAGE = 11;
TYPE_BYTES = 12;
TYPE_UINT32 = 13;
TYPE_ENUM = 14;
TYPE_SFIXED32 = 15;
TYPE_SFIXED64 = 16;
TYPE_SINT32 = 17;
TYPE_SINT64 = 18;
}
enum Label {
LABEL_OPTIONAL = 1;
LABEL_REQUIRED = 2;
LABEL_REPEATED = 3;
}
optional string name = 1;
optional int32 number = 3;
optional Label label = 4;
optional Type type = 5;
optional string type_name = 6;
optional string extendee = 2;
optional string default_value = 7;
optional FieldOptions options = 8;
}
message EnumDescriptorProto {
optional string name = 1;
repeated EnumValueDescriptorProto value = 2;
optional EnumOptions options = 3;
}
message EnumValueDescriptorProto {
optional string name = 1;
optional int32 number = 2;
optional EnumValueOptions options = 3;
}
message ServiceDescriptorProto {
optional string name = 1;
repeated MethodDescriptorProto method = 2;
optional ServiceOptions options = 3;
}
message MethodDescriptorProto {
optional string name = 1;
optional string input_type = 2;
optional string output_type = 3;
optional MethodOptions options = 4;
}
message FileOptions {
enum OptimizeMode {
SPEED = 1;
CODE_SIZE = 2;
LITE_RUNTIME = 3;
}
optional string java_package = 1;
optional string java_outer_classname = 8;
optional bool java_multiple_files = 10 [default = false];
optional bool java_generate_equals_and_hash = 20 [default = false];
optional OptimizeMode optimize_for = 9 [default = SPEED];
optional string go_package = 11;
optional bool cc_generic_services = 16 [default = false];
optional bool java_generic_services = 17 [default = false];
optional bool py_generic_services = 18 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message MessageOptions {
optional bool message_set_wire_format = 1 [default = false];
optional bool no_standard_descriptor_accessor = 2 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message FieldOptions {
enum CType {
STRING = 0;
CORD = 1;
STRING_PIECE = 2;
}
optional CType ctype = 1 [default = STRING];
optional bool packed = 2;
optional bool lazy = 5 [default = false];
optional bool deprecated = 3 [default = false];
optional string experimental_map_key = 9;
optional bool weak = 10 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message EnumOptions {
optional bool allow_alias = 2 [default = true];
repeated UninterpretedOption uninterpreted_option = 999;
}
message EnumValueOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message ServiceOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message MethodOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message UninterpretedOption {
message NamePart {
required string name_part = 1;
required bool is_extension = 2;
}
repeated NamePart name = 2;
optional string identifier_value = 3;
optional uint64 positive_int_value = 4;
optional int64 negative_int_value = 5;
optional double double_value = 6;
optional bytes string_value = 7;
optional string aggregate_value = 8;
}
message SourceCodeInfo {
message Location {
repeated int32 path = 1;
repeated int32 span = 2;
optional string leading_comments = 3;
optional string trailing_comments = 4;
}
repeated Location location = 1;
}

View file

@ -0,0 +1,22 @@
syntax = "proto2";
package Gazillion;
message AuthTicket {
optional bytes sessionKey = 1;
optional bytes sessionToken = 2;
required uint64 sessionId = 3;
optional string errorMessage = 4;
optional string frontendServer = 5;
optional string frontendPort = 6;
optional string platformTicket = 7;
optional bool presalePurchase = 8;
optional string tosurl = 9;
optional bool success = 10;
optional uint64 accountId = 11;
optional bool hasnews = 12;
optional string newsurl = 13;
optional bool hasPendingGift = 14;
optional string pendingGiftUrl = 15;
}

View file

@ -0,0 +1,74 @@
syntax = "proto2";
package Gazillion;
enum BuyItemResultErrorCodes {
BUY_RESULT_ERROR_SUCCESS = 0;
BUY_RESULT_ERROR_ALREADY_HAVE_AVATAR = 1;
BUY_RESULT_ERROR_ALREADY_HAVE_STASH_INV = 2;
BUY_RESULT_ERROR_ALREADY_HAVE_PERMABUFF = 3;
BUY_RESULT_ERROR_INSUFFICIENT_BALANCE = 4;
BUY_RESULT_ERROR_IS_GIFT = 5;
BUY_RESULT_ERROR_UNKNOWN = 6;
}
enum RedeemCodeResultErrorCodes {
REDEEM_CODE_RESULT_ERROR_SUCCESS = 0;
REDEEM_CODE_RESULT_ERROR_ALREADY_REDEEMED = 1;
REDEEM_CODE_RESULT_ERROR_INVALID_KEY = 2;
REDEEM_CODE_RESULT_ERROR_UNKNOWN = 3;
}
message MHCatalogEntryType {
required string name = 1;
required int32 order = 2;
}
message MHCatalogEntryTypeModifier {
required string name = 1;
required int32 order = 2;
}
message MHBannerUrl {
required string type = 1;
required string url = 2;
}
message MHLocalizedCatalogUrls {
required string localeId = 1;
optional string storeHomePageUrl = 2;
repeated MHBannerUrl storeBannerPageUrls = 3;
optional string storeRealMoneyUrl = 4;
}
message MHLocalizedCatalogEntry {
required string language_id = 1;
optional string description = 2;
optional string title = 3;
optional string releaseDate = 5;
required int64 itemPrice = 6;
}
message MHLocalizedCatalogEntryUrlOrData {
required string language_id = 1;
optional string url = 2;
optional bytes imagedata = 3;
}
message MHCatalogGuidEntry {
optional uint64 prototypeGuid = 1;
optional uint64 itemPrototypeRuntimeIdForClient = 2;
optional int32 quantity = 3 [default = 1];
}
message MarvelHeroesCatalogEntry {
required int64 skuId = 1;
repeated MHCatalogGuidEntry guidItems = 9;
repeated MHCatalogGuidEntry additionalGuidItems = 10;
repeated MHLocalizedCatalogEntry localizedEntries = 5;
repeated MHLocalizedCatalogEntryUrlOrData infourls = 2;
repeated MHLocalizedCatalogEntryUrlOrData contentdata = 3;
optional MHCatalogEntryType type = 6;
repeated MHCatalogEntryTypeModifier typeModifier = 7;
}

View file

@ -0,0 +1,46 @@
syntax = "proto2";
package Gazillion;
import "CommonMessages.proto";
enum ChatRoomTypes {
CHAT_ROOM_TYPE_LOCAL = 0;
CHAT_ROOM_TYPE_SAY = 1;
CHAT_ROOM_TYPE_PARTY = 2;
CHAT_ROOM_TYPE_TELL = 3;
CHAT_ROOM_TYPE_BROADCAST_ALL_SERVERS = 4;
CHAT_ROOM_TYPE_SOCIAL = 5;
CHAT_ROOM_TYPE_TRADE = 6;
CHAT_ROOM_TYPE_LFG = 7;
CHAT_ROOM_TYPE_GUILD = 8;
CHAT_ROOM_TYPE_FACTION = 9;
CHAT_ROOM_TYPE_EMOTE = 10;
CHAT_ROOM_TYPE_ENDGAME = 11;
CHAT_ROOM_TYPE_METAGAME = 12;
CHAT_ROOM_TYPE_NUM_TYPES = 13;
}
enum GroupLeaveReason {
GROUP_LEAVE_REASON_LEFT = 1;
GROUP_LEAVE_REASON_BOOTED = 2;
GROUP_LEAVE_REASON_DISBANDED = 3;
}
enum ChatErrorMessages {
CHAT_ERROR_NO_SUCH_USER = 0;
CHAT_ERROR_COMMAND_NOT_RECOGNIZED = 1;
CHAT_ERROR_NUM_ERRORS = 2;
}
message ChatMessageAttachments {
repeated bytes attachmments = 1;
optional int64 emoteDataRef = 2;
repeated NetStructItemSpec itemSpecs = 3;
}
message ChatMessage {
optional string body = 1;
optional ChatMessageAttachments attachment = 2;
}

View file

@ -0,0 +1,678 @@
syntax = "proto2";
package Gazillion;
import "GazillionCommon.proto";
import "CommonMessages.proto";
import "ChatCommon.proto";
import "Guild.proto";
import "GlobalEventsCommon.proto";
message NetMessageReadyForGameJoin {
required string playerName = 1;
required int32 wipesDataIfMismatchedInDb = 3 [default = 0];
optional bool wipePlayerRecordsOnLogin = 2 [default = false];
optional string domainLoginName = 4;
optional bytes playerImportData = 5;
required string localeName = 6;
}
message NetMessagePlayerSystemMetrics {
required int32 compatLevelCpu = 1 [default = -1];
required int32 compatLevelGpu = 2 [default = -1];
required int32 compatLevelComposite = 3 [default = -1];
optional string osName = 4;
optional string cpuName = 5;
optional string ramName = 6;
optional string displayDeviceName = 7;
optional bool displayDeviceDualGPU = 8;
optional string displayDeviceDriverDate = 9;
}
message NetMessageSyncTimeRequest {
required int64 gameTimeClientSent = 1;
required int64 dateTimeClientSent = 2;
}
message NetMessageSetTimeDialation {
required int64 gameTimeDialationStarted = 1;
required int64 dateTimeDialationStarted = 2;
required float dialation = 3;
}
message NetMessageIsRegionAvailable {
required uint64 regionPrototype = 1;
required bool isAvailable = 2;
}
message NetMessageUpdateAvatarState {
required uint64 idAvatar = 1;
required NetStructPoint3 position = 2;
required NetStructPoint3 orientation = 3;
optional int32 avatarworldinstanceid = 4;
optional NetStructLocomotionState locomotionstate = 5;
}
message NetMessageCellLoaded {
required uint32 cellId = 1;
required uint64 regionId = 2;
}
message NetMessageTeleportAckResponse {
required uint32 ackseq = 1;
}
message NetMessageAdminCommand {
required string command = 1;
}
message NetMessageTryActivatePower {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
optional uint64 idTargetEntity = 3;
optional NetStructPoint3 targetPosition = 4;
optional float movementSpeed = 5;
optional uint64 movementTimeMS = 6;
optional uint32 missileRandomSeed = 7;
optional uint64 itemSourceId = 8;
required uint32 fxRandomSeed = 9;
}
message NetMessagePowerRelease {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
optional uint64 idTargetEntity = 3;
optional NetStructPoint3 targetPosition = 4;
}
message NetMessageTryCancelPower {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
required uint32 endPowerFlags = 3;
}
message NetMessageTryCancelActivePower {
required uint64 idUserEntity = 1;
}
message NetMessageContinuousPowerUpdateToServer {
required uint64 powerPrototypeId = 1;
optional uint64 idTargetEntity = 2;
optional NetStructPoint3 targetPosition = 3;
}
message NetMessageCancelPendingAction {
}
message NetMessageStartAIDebugUI {
required uint64 idTargetNPC = 1;
}
message NetMessageStopAIDebugUI {
required uint64 idTargetNPC = 1;
}
message NetMessageStartAIPerformanceUI {
}
message NetMessageStopAIPerformanceUI {
}
message NetMessageStartMissionDebugUI {
required uint64 idTargetAgent = 1;
required uint64 missionPrototypeRefId = 2;
required string missionListMatchPattern = 3;
}
message NetMessageStopMissionDebugUI {
required uint64 idTargetAgent = 1;
}
message NetMessageStartPropertiesDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopPropertiesDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStartConditionsDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopConditionsDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStartPowersDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopPowersDebugUI {
required uint64 idTargetEntity = 1;
}
message NetStructMessageStoreMetric {
required AvailableStoreActions storeActionEnum = 1;
required uint64 unixTimestamp = 2;
optional uint64 targetPrototypeId = 3;
}
message NetMessagePing {
required bool displayOutput = 1;
required uint64 sendClientTime = 2;
optional uint64 sendGameTime = 3;
optional uint64 requestNetReceivedGameTime = 4;
optional uint64 lastClientLatency = 5;
optional float lastFps = 6;
optional uint64 regionPrototype = 7;
optional uint32 cpulevel = 8;
optional uint32 gpulevel = 9;
optional uint32 compositelevel = 10;
optional float minFps = 11;
optional NetStructPoint3 minFpsPos = 12;
repeated NetStructMessageStoreMetric storeMetrics = 13;
required uint32 maskedclientip = 14;
}
message NetMessagePickupInteraction {
required uint64 idTarget = 1;
optional bool useInteractFallbackRange = 2;
}
message NetMessageTryInventoryMove {
required uint64 itemId = 1;
required uint64 toInventoryOwnerId = 2;
required uint64 toInventoryPrototype = 3;
required uint32 toSlot = 4;
optional bool isStackSplit = 5;
}
message NetMessageTryMoveCraftingResultsToGeneral {
}
message NetMessageInventoryTrashItem {
required uint64 itemId = 1;
}
message NetMessageThrowInteraction {
required uint64 idTarget = 1;
}
message NetMessagePerformPreInteractPower {
required uint64 idTarget = 1;
required bool hasDialog = 2;
}
message NetMessageUseInteractableObject {
required uint64 idTarget = 1;
optional uint64 missionPrototypeRef = 2;
}
message NetMessageTryCraft {
required uint64 idRecipe = 1;
required uint64 idVendor = 2;
repeated uint64 idIngredients = 3;
}
message NetMessageUseWaypoint {
required uint64 idTransitionEntity = 1;
required uint64 waypointDataRef = 2;
required uint64 regionProtoId = 3;
}
message NetMessageDebugAcquireAndSwitchToAvatar {
required uint64 avatarPrototypeId = 1;
}
message NetMessageSwitchAvatarAndDifficulty {
required uint64 avatarId = 1;
required uint64 difficultyPrototypeId = 2;
}
message NetMessageAssignHotkey {
required uint64 avatarId = 1;
required uint64 prototypeRefId = 2;
required uint32 slotNumber = 3;
required uint32 destinationSlotNumber = 4;
}
message NetMessageUnassignHotkey {
required uint64 avatarId = 1;
required uint32 slotNumber = 2;
}
message NetMessageSetAbilityKeyMappingIndex {
required uint64 avatarId = 1;
required uint32 abilityKeyMappingIndex = 2;
}
message NetMessageAbilitySlotToAbilityBar {
required uint64 avatarId = 1;
required uint64 prototypeRefId = 2;
required uint32 slotNumber = 3;
}
message NetMessageAbilityUnslotFromAbilityBar {
required uint64 avatarId = 1;
required uint32 slotNumber = 2;
}
message NetMessageAbilityUnslotFromAllSlots {
required uint64 avatarId = 1;
required uint64 abilityProtoId = 2;
}
message NetMessageAbilitySwapInAbilityBar {
required uint64 avatarId = 1;
required uint32 slotNumberA = 2;
required uint32 slotNumberB = 3;
}
message NetMessageModCommitTemporary {
required uint64 avatarRef = 1;
required uint64 modTypeRef = 2;
repeated NetStructModChangeObject changes = 3;
}
message NetMessageModReset {
required uint64 avatarId = 1;
required uint64 modTypeRef = 2;
}
message NetMessagePowerPointAllocationCommit {
required uint64 avatarRef = 1;
repeated NetStructPowerPointAllocation allocations = 2;
}
message NetMessageRequestDeathRelease {
required bool hitOk = 1;
required bool resurrectedFromOtherEntity = 2;
}
message NetMessageRequestResurrectDecline {
}
message NetMessageRequestResurrectAvatar {
optional uint64 targetId = 1;
}
message NetMessageReturnToHub {
}
message NetMessageRequestStoryWarp {
required uint64 storyWarpPrototypeId = 1;
required uint64 storyWarpNPC = 2;
}
message NetMessageRequestMissionRewards {
required uint64 missionPrototypeId = 1;
required uint32 conditionIndex = 2;
optional uint64 entityId = 3;
}
message NetMessageInvitePlayer {
optional uint64 inviteeEntityId = 1;
optional string inviteeName = 2;
}
message NetMessageRequestPartyJoinPortal {
}
message NetMessageDeclineGroupInvite {
}
message NetMessageLeaveGroup {
}
message NetMessageChangeGroupLeader {
required uint64 targetMemberId = 1;
}
message NetMessageBootPlayer {
required uint64 targetMemberId = 1;
}
message NetMessageDisbandGroup {
}
message NetMessageGroupChangeType {
required GroupType type = 1;
}
message NetMessageGroupChangeTypeConfirmResponse {
required uint64 playerId = 1;
required bool accept = 2;
}
message NetMessageMatchQueueListRequest {
}
message NetMessageMatchQueueRequest {
required uint32 queueIndex = 1;
required bool queueEntireGroup = 2;
}
message NetMessageMatchStatisticsRequest {
required uint32 statRequestNumber = 1;
required string playerName = 2;
}
message NetMessageMatchInviteResponse {
required uint64 matchNumber = 1;
required bool inviteAccepted = 2;
}
message NetMessageDuelInvite {
required uint64 challengerEntityId = 1;
optional string challengerName = 2;
optional uint64 opponentEntityId = 3;
required string opponentName = 4;
}
message NetMessageDuelAccept {
required uint64 challengedEntityId = 1;
optional string challengedName = 2;
}
message NetMessageDuelCancel {
required uint64 cancellingEntityId = 1;
optional string cancellingName = 2;
}
message NetMessageMetaGameUpdateNotification {
required uint64 metaGameEntityId = 1;
}
message NetMessageChat {
required ChatRoomTypes roomType = 1;
required ChatMessage theMessage = 2;
}
message NetMessageTell {
required string targetPlayerName = 1;
required ChatMessage theMessage = 2;
}
message NetMessageReportPlayer {
required string targetPlayerName = 1;
required string reason = 2;
}
message NetMessageGetCatalog {
optional uint64 itemPrototypeRuntimeId = 1 [default = 0];
optional int64 timestamp_seconds = 3 [default = 0];
optional int64 timestamp_microseconds = 5 [default = 0];
optional string localeid = 4 [default = "en_us"];
}
message NetMessageGetCurrencyBalance {
}
message NetMessageBuyItemFromCatalog {
required int64 skuId = 1;
required int64 itemUnitPrice = 2;
optional int32 numUnits = 3 [default = 1];
}
message EntityPreviewerEnum {
enum Alliance {
Ally = 0;
Enemy = 1;
Total = 2;
}
}
message NetMessageEntityPreviewerNewTargets {
required EntityPreviewerEnum.Alliance alliance = 1;
optional uint32 numNewTargets = 2;
}
message NetMessageEntityPreviewerClearTargets {
}
message NetMessageEntityPreviewerSetTargetRef {
required uint64 targetRefId = 1;
}
message NetMessageEntityPreviewerActivatePower {
required uint64 casterId = 1;
required uint64 powerRefId = 2;
required bool createTarget = 3;
required bool randomTargetPos = 4;
}
message NetMessageEntityPreviewerAddTarget {
required uint64 targetId = 1;
}
message NetMessageEntityPreviewerSetEntityState {
required uint64 targetId = 1;
required uint64 stateRefId = 2;
}
message NetMessageEntityPreviewerApplyConditions {
required uint64 targetId = 1;
required uint64 powerRefId = 2;
}
message NetMessageCreateNewPlayerWithSelectedStartingAvatar {
required uint64 startingAvatarPrototypeId = 1;
}
message NetMessageOnKioskStartButtonPressed {
}
message NetMessageNotifyFullscreenMovieFinished {
required uint64 moviePrototypeId = 1;
required bool userCancelled = 2;
required uint32 syncRequestId = 3;
}
message NetMessageBotSetLevel {
required int32 level = 1;
}
message NetMessageBotGodMode {
}
message NetMessageBotPickAvatar {
required uint64 avatarBotDataId = 1;
optional int32 level = 2;
optional uint64 lootPrototype = 3;
optional uint32 lootTableRoll = 4;
}
message NetMessageBotRegionChange {
required uint64 regionDataId = 1;
}
message NetMessageBotWarpAreaNext {
}
message NetMessageBotLootGive {
required uint64 lootPrototype = 1;
required uint32 lootTableRoll = 2;
}
message NetMessageBotSetPvPFaction {
required uint64 factionSetPrototype = 1;
}
message NetMessageBotPvPQueue {
required uint64 pvpQueueId = 1;
}
message NetMessageGetTrackerReport {
required uint32 messageSource = 1;
required uint32 messageDirection = 2;
}
message NetMessagePlayKismetSeqDone {
required uint64 kismetSeqPrototypeId = 1;
required uint32 syncRequestId = 2;
}
message NetMessageVerifyFailedForRepId {
required uint64 repid1 = 1;
required string file = 2;
required uint32 line = 3;
required string debugmsg = 4;
optional uint64 repid2 = 5;
}
message NetMessageGracefulDisconnect {
}
message NetMessageRequestStartNewGame {
}
message NetMessageSetDialogTarget {
required uint64 targetId = 1;
}
message NetMessageVendorRequestBuyItemFrom {
required uint64 itemId = 1;
required uint64 vendorId = 2;
required uint32 inventorySlot = 3;
}
message NetMessageVendorRequestSellItemTo {
required uint64 itemId = 1;
required uint64 vendorId = 2;
}
message NetMessageVendorRequestDonateItemTo {
required uint64 itemId = 1;
required uint64 vendorId = 2;
}
message NetMessageVendorRequestRefresh {
required uint64 vendorId = 1;
}
message NetMessageTryModifyCommunityMemberCircle {
required uint64 circleId = 1;
required ModifyCircleOperation operation = 2;
required string playerName = 3;
}
message NetMessagePullCommunityStatus {
}
message NetMessageGuildMessageToPlayerManager {
required GuildMessageSetToPlayerManager messages = 1;
}
message NetMessageAkEvent {
required uint32 akEventId = 1;
required bool isVO = 2;
required uint32 eventType = 3;
}
message NetMessageSetShowTips {
required bool showTips = 1;
}
message NetMessageSetTipSeen {
required uint64 tipDataRefId = 1;
required uint64 avatarEntityId = 2;
}
message NetMessageResetSeenTips {
}
message NetMessageTryMoveInventoryContentsToGeneral {
required uint64 sourceInventoryPrototype = 1;
}
message NetMessageSetPlayerGameplayOptions {
required NetStructGameplayOptions optionsData = 1;
}
message NetMessageTeleportToPartyMember {
required string playerName = 1;
}
message NetMessageRegionRequestQueueCommandClient {
required uint64 regionProtoId = 1;
optional uint64 regionRequestGroupId = 2;
required RegionRequestQueueCommandVar command = 3;
optional bool allowAutoParty = 4 [default = false];
}
message NetMessageSelectAvatarSynergies {
required uint64 avatarId = 1;
repeated uint64 avatarPrototypes = 2;
}
message NetMessageRequestLegendaryMissionReroll {
}
message NetMessageAttemptShareLegendaryMission {
required string playerName = 1;
}
message NetMessageAttemptShareLegendaryMissionResponse {
required bool missionAccepted = 1;
}
message NetMessageRequestPlayerOwnsItemStatus {
required uint64 itemProtoId = 1;
}
message NetMessageRequestInterestInInventory {
required uint64 inventoryProtoId = 1;
}
message NetMessageRequestInterestInAgentEquipment {
required uint64 agentId = 1;
}
message NetMessageTryTeamUpSelect {
required uint64 teamUpPrototypeId = 1;
}
message NetMessageTryTeamUpPowerSelect {
required uint64 powerPrototypeId = 1;
}
message NetMessageRequestTeamUpDismiss {
}
message NetMessageSelectOmegaBonus {
required uint64 omegaBonusProtoRefID = 1;
required int32 rank = 2;
}
message NetMessageOmegaBonusAllocationCommit {
required uint64 avatarId = 1;
repeated NetMessageSelectOmegaBonus allocations = 2;
}
message NetMessageRespecOmegaBonus {
required uint64 avatarId = 1;
}
message NetMessageRequestGlobalEventUpdate {
required uint64 eventId = 1;
required GlobalEventUpdateType updateType = 2;
}
message NetMessageHasPendingGift {
optional bool hasPendingGift = 1;
}
message NetMessagePlayerTradeStart {
required string partnerPlayerName = 1;
}
message NetMessagePlayerTradeCancel {
}
message NetMessagePlayerTradeSetConfirmFlag {
required bool confirmFlag = 1;
required uint32 sequenceNumber = 2;
}

View file

@ -0,0 +1,8 @@
syntax = "proto2";
package Gazillion;
message ClientIgnoredInvite {
required uint64 decliningPlayerId = 1;
}

View file

@ -0,0 +1,366 @@
syntax = "proto2";
package Gazillion;
enum ModifyCircleOperation {
eMCO_Add = 1;
eMCO_Remove = 2;
}
enum GlobalTuningVar {
eGTV_VendorBuyPrice = 0;
eGTV_VendorSellPrice = 1;
eGTV_VendorXPGain = 2;
eGTV_PVPEnabled = 3;
eGTV_XPGain = 4;
eGTV_LootDropRate = 5;
eGTV_LootSpecialDropRate = 6;
eGTV_LootRarity = 7;
eGTV_PartyXPBonusPct = 8;
eGTV_PlayerTradeEnabled = 9;
eGTV_NumGlobalTuningVars = 10;
}
enum AreaTuningVar {
eATV_AreaMobSpawnHeat = 0;
eATV_AreaMobSpawnHeatReturn = 1;
eATV_NumAreaTuningVars = 2;
}
enum WorldEntityTuningVar {
eWETV_MobPowerDamage = 0;
eWETV_MobHealth = 1;
eWETV_MobXP = 2;
eWETV_MobDropRate = 3;
eWETV_MobSpecialDropRate = 4;
eWETV_Enabled = 5;
eWETV_MobDropRarity = 6;
eWETV_NumWorldEntityTuningVars = 7;
}
enum PopObjTuningVar {
ePOTV_PopulationObjectWeight = 0;
ePOTV_NumPopulationObjectTuningVars = 1;
}
enum PowerTuningVar {
ePTV_PowerCost = 0;
ePTV_PowerDamagePVE = 1;
ePTV_PowerDamagePVP = 2;
ePTV_PowerEnabled = 3;
ePTV_NumPowerTuningVars = 4;
}
enum RegionTuningVar {
eRTV_PlayerLimit = 0;
eRTV_Enabled = 1;
eRTV_NumRegionTuningVars = 2;
}
enum LootTableTuningVar {
eLTTV_Enabled = 0;
eLTTV_Weight = 1;
eLTTV_Rolls = 2;
eLTTV_NumLootTableTuningVars = 3;
}
enum MissionTuningVar {
eMTV_Enabled = 0;
eMTV_NumMissionTuningVars = 1;
}
enum RegionRequestQueueUpdateVar {
eRRQ_Invalid = 1;
eRRQ_SelectQueueMethod = 2;
eRRQ_RemovedFromGroup = 3;
eRRQ_RaidNotAllowed = 4;
eRRQ_GroupInvitePending = 5;
eRRQ_GroupInviteAccepted = 6;
eRRQ_GroupInviteDeclined = 7;
eRRQ_GroupInviteExpired = 8;
eRRQ_WaitingInQueue = 9;
eRRQ_WaitingInWaitlist = 10;
eRRQ_WaitingInWaitlistLocked = 11;
eRRQ_MatchInvitePending = 12;
eRRQ_MatchInviteAccepted = 13;
eRRQ_MatchInviteDeclined = 14;
eRRQ_MatchInviteExpired = 15;
eRRQ_InMatch = 16;
}
enum RegionRequestQueueCommandVar {
eRRQC_AddToQueueSolo = 1;
eRRQC_AddToQueueParty = 2;
eRRQC_AddToQueueBypass = 3;
eRRQC_GroupInviteAccept = 4;
eRRQC_GroupInviteDecline = 5;
eRRQC_RemoveFromQueue = 6;
eRRQC_MatchInviteAccept = 7;
eRRQC_MatchInviteDecline = 8;
eRRQC_DebugForceStart = 9;
eRRQC_DebugInfo = 10;
eRRQC_RequestToJoinGroup = 11;
}
enum RegionPlayerAccessVar {
eRPA_Invalid = 0;
eRPA_Open = 1;
eRPA_InviteOnly = 2;
eRPA_Locked = 3;
eRPA_Closed = 4;
}
enum RegionTransferFailure {
eRTF_GenericError = 0;
eRTF_CreationProhibitedByGame = 1;
eRTF_Full = 2;
eRTF_PartiesNotAllowed = 3;
eRTF_RaidsNotAllowed = 4;
eRTF_TargetPlayerUnavailable = 5;
eRTF_BodyslideRegionUnavailable = 6;
eRTF_DestinationInaccessible = 7;
eRTF_PlayerNotInDifficulty = 8;
eRTF_MatchNoTeleportToPlayer = 9;
eRTF_MatchNoTeleportToParty = 10;
eRTF_PlayerBlacklistedFromRegion = 11;
}
enum AvailableStoreActions {
StoreAction_ViewHomeTab = 1;
StoreAction_ViewHeroesTab = 2;
StoreAction_ViewCostumesTab = 3;
StoreAction_ViewItemsTab = 4;
StoreAction_ViewCardsTab = 5;
StoreAction_ViewSpecialsTab = 6;
StoreAction_ViewCostumesForHero = 7;
StoreAction_UserPressedBuy = 8;
StoreAction_UserPressedAddGs = 9;
StoreAction_StoreOpened = 10;
StoreAction_NumberOfStoreActions = 11;
}
enum XDefenseWaveResults {
XDefenseWaveResults_Success = 1;
XDefenseWaveResults_FailQuit = 2;
XDefenseWaveResults_FailPlayerWipe = 3;
XDefenseWaveResults_FailStudentDeath = 4;
XDefenseWaveResults_FailDeathTimeout = 5;
XDefenseWaveResults_NumberOfXDefenseWaveResults = 6;
}
enum LegendaryMissionShareResultType {
LegendaryMissionShare_Sent = 1;
LegendaryMissionShare_Accepted = 2;
LegendaryMissionShare_Declined = 3;
LegendaryMissionShare_RequestAlreadyPending = 4;
LegendaryMissionShare_FailPlayerNotFound = 5;
LegendaryMissionShare_FailNotEligible = 6;
LegendaryMissionShare_FailAlreadyHave = 7;
LegendaryMissionShare_FailCannotShareWithSelf = 8;
LegendaryMissionShare_FailCannotReShare = 9;
LegendaryMissionShare_UnknownFailure = 10;
}
enum GroupType {
GroupType_Invalid = 0;
GroupType_Party = 1;
GroupType_Raid = 2;
}
enum CurrencyType {
Currency_EternitySplinter = 1;
Currency_CubeShard = 2;
Currency_OdinMarks = 3;
Currency_Credits = 4;
CurrencySpend_NumberOfCurrencySpendTypes = 5;
}
message NetStructPoint3 {
optional float X = 1 [default = 0];
optional float Y = 2 [default = 0];
optional float Z = 3 [default = 0];
}
message NetStructIPoint3 {
optional uint32 X = 1 [default = 0];
optional uint32 Y = 2 [default = 0];
optional uint32 Z = 3 [default = 0];
}
message NetStructPoint2 {
optional float X = 1 [default = 0];
optional float Y = 2 [default = 0];
}
message NetStructIPoint2 {
optional uint32 X = 1 [default = 0];
optional uint32 Y = 2 [default = 0];
}
message NetStructProperty {
required uint64 id = 1;
required uint64 value = 2;
}
message NetStructPropertyList {
repeated NetStructProperty properties = 1;
}
message NetStructLocomotionPathNode {
required NetStructPoint3 vertex = 1;
required int32 vertexSideRadius = 2;
}
message NetStructLocomotionState {
optional uint32 locomotionflags = 1;
optional int32 method = 2;
optional float movespeed = 3;
optional uint32 height = 4;
optional uint64 followentityid = 5;
optional float followentityrange = 6;
required bool updatepathnodes = 7;
repeated NetStructLocomotionPathNode pathnodes = 8;
optional int32 pathgoalnodeindex = 9;
}
message NetStructUniqueTransition {
required uint64 regionId = 1;
required uint64 regionProtoId = 2;
required uint64 areaProtoId = 3;
required uint64 cellProtoId = 4;
optional uint64 entityProtoId = 5;
}
message NetStructCreateRegionParams {
required uint32 level = 1;
required uint64 difficultyModeId = 2;
optional NetStructUniqueTransition originUniqueTransition = 3;
optional uint64 gameStateId = 4;
optional bool levelIsOverride = 5 [default = false];
optional uint64 matchNumber = 6 [default = 0];
optional bool cheat = 7 [default = false];
}
message NetStructModChangeObject {
required uint64 mod = 1;
required uint32 change = 2;
}
message NetStructPowerPointAllocation {
required uint64 powerProtoId = 1;
required uint32 delta = 2;
}
message NetStructPortalInstance {
required uint64 entityDbId = 1;
required NetStructRegionLocation location = 2;
optional uint64 ownerPlayerDbId = 3;
optional bool boundToOwner = 4;
}
message NetStructRegionLocation {
required uint64 regionId = 1;
required NetStructPoint3 position = 2;
optional uint64 regionPrototypeId = 3;
optional uint64 areaPrototypeId = 4;
optional uint64 cellPrototypeId = 5;
}
message NetStructWarpDest {
required uint64 DestRegionPrototypeId = 1;
optional uint64 DestRegionId = 2;
optional uint64 DestEntityDbId = 3;
optional NetStructPoint3 DestPosition = 4;
optional uint64 TransferId = 5;
optional uint64 DestAreaPrototypeId = 6;
optional uint64 DestRegionConnectionTargetPrototypeId = 7;
optional bool UseStartTarget = 8;
optional int32 TeamIndex = 9 [default = -1];
}
message NetStructAffixSpec {
required uint64 affixProtoRef = 1;
required uint64 scopeProtoRef = 2;
required int32 seed = 3;
}
message NetStructItemSpec {
required uint64 itemProtoRef = 1;
required uint32 itemLevel = 2;
required uint64 rarityProtoRef = 3;
required uint32 seed = 4;
optional uint32 creditsAmount = 5;
repeated NetStructAffixSpec affixSpecs = 6;
optional uint64 equippableBy = 7;
}
message CommunityMemberBroadcast {
required uint64 memberPlayerDbId = 1;
optional uint64 currentRegionRefId = 2 [default = 123];
optional uint64 currentAvatarRefId = 3 [default = 123];
optional uint64 currentCharacterLevel = 4;
optional uint64 currentPvpFactionRefId = 5 [default = 123];
optional uint64 currentDifficultyModeRefId = 6 [default = 123];
optional string currentPlayerName = 7;
repeated uint64 memberPlayerDbIdIgnoreList = 8;
optional uint64 currentPrestigeLevel = 9;
optional int32 isOnline = 10 [default = -1];
optional int64 lastLogoutTimeAsFileTimeUtc = 11;
}
message CommunityNotify {
required uint64 targetPlayerDbId = 1;
required string sourcePlayerName = 2;
required uint64 circleId = 3;
required ModifyCircleOperation operation = 4;
}
message NetStructLiveTuningSettingEnumValue {
required int32 tuningVarEnum = 1;
required float tuningVarValue = 2;
}
message NetStructLiveTuningSettingProtoEnumValue {
required uint64 tuningVarProtoId = 1;
required int32 tuningVarEnum = 2;
required float tuningVarValue = 3;
}
message ChangeRegionFailed {
required RegionTransferFailure reason = 1;
optional uint64 regionProtoId = 2;
optional uint64 requiredItemProtoId = 3;
}
message NetStructChatChannelFilterState {
required uint64 channelProtoId = 1;
required bool isSubscribed = 2;
}
message NetStructChatTabState {
required uint64 channelProtoId = 1;
}
message NetStructGameplayOptions {
required bool autoPartyEnabled = 1;
required bool preferLowPopulationRegions = 2;
repeated NetStructChatChannelFilterState chatChannelFiltersMap = 3;
required bool disableHeroSynergyBonusXP = 4;
repeated NetStructChatTabState chatTabChannelsArray = 5;
}
message NetStructInventoryLocation {
required uint64 invLocContainerEntityId = 1;
required uint64 invLocInventoryPrototypeId = 2;
required uint32 invLocSlot = 3;
}
message ShareLegendaryMissionRequest {
required uint64 missionDataRef = 1;
}
message ShareLegendaryMissionResult {
required uint64 missionDataRef = 1;
required LegendaryMissionShareResultType result = 2;
}

View file

@ -0,0 +1,61 @@
syntax = "proto2";
package Gazillion;
import "PubSubProtocol.proto";
enum FrontendProtocolVersion {
CURRENT_VERSION = 1;
}
enum ExtendedLoginErrors {
NO_LOGIN_ERROR = 0;
CLIENT_MANAGER_NOT_AVAILABLE = 1;
}
message LoginDataPB {
required string emailAddress = 1;
required string password = 2;
optional string version = 3;
optional string dbservername = 4;
optional string token = 5;
optional bool loginAsAnotherPlayer = 6;
optional bool noPersistenceThisSession = 7;
optional string loginAsPlayer = 8;
optional string clientDownloader = 9;
optional string machineId = 10;
optional int32 timezoneutcbias = 11;
optional int32 platform = 12;
optional string platformString = 13;
}
message InitialClientHandshake {
required FrontendProtocolVersion protocolVersion = 1 [default = CURRENT_VERSION];
required PubSubServerTypes serverType = 2;
}
message ClientCredentials {
required uint64 sessionid = 1;
required bytes iv = 2;
required bytes encryptedToken = 3;
}
message LoginQueueStatus {
required uint64 placeInLine = 1;
required uint64 numberOfPlayersInLine = 2;
}
message SessionEncryptionChanged {
required uint32 randomNumberIndex = 1 [default = 1];
required bytes encryptedRandomNumber = 2;
}
message ExtendedLoginError {
optional ExtendedLoginErrors error = 1;
}
message EncryptedTrafficHeader {
required uint32 randomNumberIndex = 1;
required bytes encryptedTraffic = 2;
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,6 @@
syntax = "proto2";
package Gazillion;
import "google/protobuf/descriptor.proto";

View file

@ -0,0 +1,10 @@
syntax = "proto2";
package Gazillion;
enum GlobalEventUpdateType {
eGlobalEventUpdate_EventData = 0;
eGlobalEventUpdate_Leaderboard = 1;
eGlobalEventUpdate_Count = 2;
}

View file

@ -0,0 +1,205 @@
syntax = "proto2";
package Gazillion;
import "ChatCommon.proto";
import "CommonMessages.proto";
enum GroupingOperationType {
eGOP_InvitePlayer = 1;
eGOP_AcceptInvite = 2;
eGOP_ServerNotification = 3;
eGOP_KickPlayer = 4;
}
enum GroupingOperationResult {
eGOPR_Success = 1;
eGOPR_SystemError = 2;
eGOPR_TargetPlayerNotFound = 3;
eGOPR_TargetedSelf = 4;
eGOPR_AlreadyHasInvite = 5;
eGOPR_PartyFull = 6;
eGOPR_NotLeader = 7;
eGOPR_PendingPartyDisbanded = 8;
eGOPR_AutoParyPreventsKick = 9;
eGOPR_DifficultyModeMismatch = 10;
eGOPR_PartyPortalLeadsToMatch = 11;
eGOPR_AlreadyInParty = 12;
}
enum GroupingStateOfPlayer {
eGSOP_Solo = 1;
eGSOP_PendingInvite = 2;
eGSOP_InGroup = 3;
}
message PerPlayerInfo {
required string playerName = 1;
required uint64 playerSessionId = 2;
required uint64 playerDbId = 3;
}
message ClientInvitedToGroup {
required string invitingPlayerName = 1;
required bool usePortal = 2;
}
message ClientInviteAcceptFailed {
}
message ClientCreateGroup {
required uint64 groupId = 1;
required uint64 leaderSessionId = 2;
required string leaderName = 3;
}
message PlayerJoinedGroup {
required string joiningPlayerName = 1;
required uint64 playerSessionId = 2;
required uint64 groupId = 3;
}
message GroupChangeType {
required uint64 groupId = 1;
required GroupType type = 2;
required bool confirm = 3;
}
message PlayerLeftGroup {
required string leaverName = 1;
required uint64 playerSessionId = 2;
optional uint64 newLeaderSessionId = 3;
required uint64 groupId = 4;
required GroupLeaveReason leaveReason = 5;
}
message PlayerChangedGroupLeader {
required uint64 requestingGameId = 1;
required uint64 groupId = 2;
required PerPlayerInfo newLeader = 3;
required PerPlayerInfo oldLeader = 4;
}
message ClientBootedFromGroup {
required uint64 groupId = 1;
required GroupLeaveReason leaveReason = 2;
}
message KickGroupMemberAttemptFailed {
required GroupingOperationResult reason = 1;
}
message PlayerDeclinedInvite {
optional string declinerName = 1;
optional uint64 declinerSessionId = 2;
}
message CurrentPartyInfo {
required uint64 groupId = 1;
required PerPlayerInfo leader = 3;
repeated PerPlayerInfo members = 4;
}
message ChatResponseToExternalLogin {
optional bytes someresponse = 1;
}
message ChatNormalMessage {
required ChatRoomTypes roomType = 1;
required string fromPlayerName = 2;
required ChatMessage theMessage = 4;
optional int32 prestigeLevel = 5;
}
message ChatTellMessage {
required string fromPlayerName = 1;
required ChatMessage theMessage = 3;
optional int32 prestigeLevel = 4;
}
message ChatBroadcastMessage {
required ChatRoomTypes roomType = 1;
required string fromPlayerName = 2;
required ChatMessage theMessage = 3;
optional int32 prestigeLevel = 4;
}
message ChatErrorMessage {
required ChatErrorMessages errorMessage = 1;
}
message GroupingReportInvitationDestinationForPortal {
required uint64 acceptingPlayerDbId = 1;
required uint64 invitingPlayerDbId = 2;
required uint64 requestingGameId = 3;
required bool usePortal = 4;
}
message GroupingOperationResultMsg {
required uint64 requestingGameId = 1;
required uint64 requestingPlayerDbId = 2;
required GroupingOperationType opType = 3;
required GroupingOperationResult opResult = 4;
optional uint64 groupId = 5;
optional PerPlayerInfo leaderInfo = 6;
repeated PerPlayerInfo currentPartyInfo = 7;
}
message GroupingManagerRemovedPlayer {
required uint64 requestingGameId = 1;
required PerPlayerInfo removedPlayer = 2;
required uint64 groupId = 3;
optional PerPlayerInfo newLeader = 4;
optional uint64 previousLeaderDbId = 6;
required GroupLeaveReason leaveReason = 5;
}
message GroupingManagerAddedPlayer {
required uint64 requestingGameId = 1;
required PerPlayerInfo addedPlayer = 2;
required uint64 groupId = 3;
}
message GroupingManagerCreateGroup {
required uint64 requestingGameId = 1;
required uint64 groupId = 2;
required PerPlayerInfo leaderInfo = 3;
}
message GroupingManagerGroupChangeType {
required uint64 requestingGameId = 1;
required uint64 groupId = 2;
required GroupType type = 3;
}
message GroupingManagerPlayerEnteredRegion {
required uint64 playerDbId = 1;
required uint64 requestingGameId = 2;
required uint64 groupId = 3;
optional PerPlayerInfo leaderInfo = 4;
repeated PerPlayerInfo members = 5;
}
message ChatCreateChatRoomResult {
required uint64 requestingGameId = 3;
optional bool success = 1 [default = false];
optional string reason = 2;
}
message ChatAddPlayerToRoomResult {
required uint64 requestingGameId = 3;
optional bool success = 1 [default = false];
optional string reason = 2;
}
message ChatScrubTextResult {
required uint64 requestingGameId = 1;
required string textOriginal = 2;
required string textScrubbed = 3;
required uint64 remoteJobId = 4;
}
message ChatServerNotification {
required string theMessage = 1;
}

232
proto/1.23.0.23/Guild.proto Normal file
View file

@ -0,0 +1,232 @@
syntax = "proto2";
package Gazillion;
enum GuildFormResultCode {
eGFCInternalError = 0;
eGFCGuildInErrorState = 1;
eGFCNotOnline = 2;
eGFCRestrictedName = 3;
eGFCDuplicateName = 4;
eGFCAlreadyInGuild = 5;
eGFCWaitingForDatabase = 6;
eGFCSuccess = 7;
}
enum GuildChangeNameResultCode {
eGCNRCInternalError = 0;
eGCNRCGuildInErrorState = 1;
eGCNRCNotOnline = 2;
eGCNRCInvalidGuild = 3;
eGCNRCNotInGuild = 4;
eGCNRCRestrictedName = 5;
eGCNRCDuplicateName = 6;
eGCNRCNoPermission = 7;
eGCNRCWaitingForDatabase = 8;
eGCNRCSuccess = 9;
}
enum GuildChangeMotdResultCode {
eGCMotdRCInternalError = 0;
eGCMotdRCGuildInErrorState = 1;
eGCMotdRCNotOnline = 2;
eGCMotdRCInvalidGuild = 3;
eGCMotdRCNotInGuild = 4;
eGCMotdRCNoPermission = 5;
eGCMotdRCWaitingForDatabase = 6;
eGCMotdRCSuccess = 7;
}
enum GuildInviteResultCode {
eGIRCInternalError = 0;
eGIRCGuildInErrorState = 1;
eGIRCGuildFull = 3;
eGIRCInvitedInGuild = 4;
eGIRCInvitedInOtherGuild = 5;
eGIRCInvitedUnkownPlayer = 6;
eGIRCInviterNotInGuild = 7;
eGIRCInviterNoPermission = 8;
eGIRCSuccess = 10;
}
enum GuildRespondToInviteCode {
eGRICRejected = 0;
eGRICAccepted = 1;
eGRICAutoIgnored = 2;
}
enum GuildRespondToInviteResultCode {
eGRIRCInternalError = 0;
eGRIRCGuildInErrorState = 1;
eGRIRCNotOnline = 2;
eGRIRCInvalidGuild = 3;
eGRIRCAlreadyInGuild = 4;
eGRIRCGuildFull = 5;
eGRIRCNotInvited = 6;
eGRIRCJoined = 7;
eGRIRCRejected = 8;
eGRIRAlreadyInOtherGuild = 9;
}
enum GuildMembership {
eGMNone = 0;
eGMMember = 1;
eGMOfficer = 2;
eGMLeader = 3;
}
enum GuildChangeMemberResultCode {
eGCMRCInternalError = 0;
eGCMRCGuildInErrorState = 1;
eGCMRCNotOnline = 2;
eGCMRCInitiatorNotInGuild = 3;
eGCMRCInitiatorNoPermission = 4;
eGCMRCUnknownMember = 5;
eGCMRCNoChange = 6;
eGCMRCCantModifyLeader = 7;
eGCMRCRequiresStaff = 8;
eGCMRCRequiresLeader = 9;
eGCMRCNoTransferLeadership = 10;
eGCMRCSuccess = 11;
eGCMRCSuccessGuildDissolved = 12;
}
message GuildForm {
required uint64 playerId = 1;
required string guildName = 2;
}
message GuildFormResult {
required string guildName = 1;
required GuildFormResultCode resultCode = 2;
required uint64 playerId = 3;
}
message GuildDisbanded {
required uint64 guildId = 1;
required string disbandingPlayerName = 2;
}
message GuildChangeName {
required uint64 playerId = 1;
required string guildName = 2;
}
message GuildChangeNameResult {
required string submittedName = 1;
required GuildChangeNameResultCode resultCode = 2;
}
message GuildNameChanged {
required uint64 guildId = 1;
required string newGuildName = 2;
optional string changedByPlayerName = 3;
}
message GuildChangeMotd {
required uint64 playerId = 1;
required string guildMotd = 2;
}
message GuildChangeMotdResult {
required string submittedMotd = 1;
required GuildChangeMotdResultCode resultCode = 2;
}
message GuildMotdChanged {
required uint64 guildId = 1;
required string newGuildMotd = 2;
optional string changedByPlayerName = 3;
}
message GuildInvite {
required string toInvitePlayerName = 1;
required uint64 invitedByPlayerId = 2;
}
message GuildInviteResult {
required GuildInvite invite = 1;
required GuildInviteResultCode resultCode = 2;
}
message GuildInvitedToJoin {
required uint64 guildId = 1;
required string guildName = 2;
required string invitedByPlayerName = 3;
}
message GuildRespondToInvite {
required uint64 playerId = 1;
required uint64 guildId = 2;
required GuildRespondToInviteCode respondCode = 3;
}
message GuildRespondToInviteResult {
required GuildRespondToInviteResultCode resultCode = 1;
required string guildName = 2;
}
message GuildMemberInfo {
required uint64 playerId = 1;
required string playerName = 2;
required GuildMembership membership = 3;
}
message GuildChangeMember {
required uint64 sourcePlayerId = 1;
required string targetPlayerName = 2;
required GuildMembership targetNewMembership = 3;
}
message GuildChangeMemberResult {
required string targetPlayerName = 1;
required GuildChangeMemberResultCode resultCode = 2;
}
message GuildMembersInfoChanged {
required uint64 guildId = 1;
repeated GuildMemberInfo members = 2;
required string initiatingMemberName = 3;
optional bool newMember = 4 [default = false];
}
message GuildCompleteInfo {
required uint64 guildId = 1;
required string guildName = 2;
repeated GuildMemberInfo members = 3;
optional string guildMotd = 4;
}
message GuildMessageSetToServer {
optional GuildNameChanged guildNameChanged = 1;
optional GuildMembersInfoChanged guildMembersInfoChanged = 2;
optional GuildCompleteInfo guildCompleteInfo = 3;
optional GuildDisbanded guildDisbanded = 4;
optional GuildFormResult guildFormResult = 5;
optional GuildMotdChanged guildMotdChanged = 6;
}
message GuildMessageSetToClient {
optional GuildChangeNameResult guildChangeNameResult = 2;
optional GuildInviteResult guildInviteResult = 3;
optional GuildRespondToInviteResult guildRespondToInviteResult = 4;
optional GuildChangeMemberResult guildChangeMemberResult = 5;
optional GuildInvitedToJoin guildInvitedToJoin = 6;
optional GuildChangeMotdResult guildChangeMotdResult = 11;
optional GuildNameChanged guildNameChanged = 7;
optional GuildMembersInfoChanged guildMembersInfoChanged = 8;
optional GuildCompleteInfo guildCompleteInfo = 9;
optional GuildDisbanded guildDisbanded = 10;
optional GuildFormResult guildFormResult = 1;
optional GuildMotdChanged guildMotdChanged = 12;
}
message GuildMessageSetToPlayerManager {
optional GuildForm guildForm = 1;
optional GuildChangeName guildChangeName = 2;
optional GuildInvite guildInvite = 3;
optional GuildRespondToInvite guildRespondToInvite = 4;
optional GuildChangeMember guildChangeMember = 5;
optional GuildChangeMotd guildChangeMotd = 6;
}

View file

@ -0,0 +1,73 @@
syntax = "proto2";
package Gazillion;
enum MatchPhase {
MP_Created = 0;
MP_Initialized = 1;
MP_Started = 2;
MP_Finished = 3;
MP_Shutdown = 4;
}
enum MatchPlayerEventType {
MPET_Left = 0;
MPET_Joined = 1;
}
enum MatchBalanceMethod {
MBM_None = 0;
MBM_PlayerRating = 1;
MBM_FixedTeam = 2;
}
enum MatchCheatRequestType {
MCRT_None = 0;
MCRT_ForceMatchStart = 1;
MCRT_ForceMatchEnd = 2;
MCRT_SwitchTeams = 3;
}
enum MatchControlEventType {
MCET_None = 0;
MCET_ForceStart = 1;
MCET_ForceEnd = 2;
}
message MatchTeamDescription {
required uint64 teamPrototypeGuid = 1;
required uint32 minPlayers = 2;
required uint32 maxPlayers = 3;
}
message MatchGameDescription {
required uint64 queuePrototypeGuid = 1;
required uint64 gamePrototypeGuid = 2;
required uint64 regionPrototypeId = 3;
repeated MatchTeamDescription teams = 4;
}
message MatchQueueDescription {
required uint64 queuePrototypeGuid = 1;
required MatchBalanceMethod balanceMethod = 2;
required uint32 regionLevel = 3;
repeated MatchGameDescription games = 4;
}
message MatchTeamResultData {
required uint64 teamPrototypeGuid = 1;
required bool creditWithWin = 2;
}
message MatchResultData {
repeated MatchTeamResultData teams = 1;
}
message MatchPlayerStatisticsSummary {
required uint64 queuePrototypeGuid = 1;
required uint64 gamePrototypeGuid = 2;
required uint32 gamesPlayed = 3;
required uint32 gamesWon = 4;
required uint32 ratingSummary = 5;
}

View file

@ -0,0 +1,50 @@
syntax = "proto2";
package Gazillion;
enum PubSubServerTypes {
FRONTEND_SERVER = 0;
GAME_INSTANCE_SERVER_USER = 1;
GAME_INSTANCE_SERVER_PLAYERMGR = 2;
GAME_INSTANCE_SERVER_GROUPING = 3;
GAME_INSTANCE_SERVER_METRICS = 4;
PLAYERMGR_SERVER_FRONTEND = 5;
PLAYERMGR_SERVER_SITEMGR_CONTROL = 6;
PLAYERMGR_SERVER_SOCIAL_COMMON = 7;
GROUPING_MANAGER_FRONTEND = 8;
FAKE_CHAT_LOAD_TESTER = 9;
GAME_INSTANCE_SERVER_BILLING = 10;
GAME_INSTANCE_SERVER_GLOBAL_GAME_EVENT = 12;
NUM_SERVER_TYPES = 13;
}
message PubSubPublish {
optional PubSubServerTypes serverType = 1 [default = NUM_SERVER_TYPES];
optional string serviceIPAddress = 2;
optional string servicePort = 3;
optional string serviceVersion = 4;
}
message PubSubSubscribe {
optional PubSubServerTypes serverType = 1 [default = NUM_SERVER_TYPES];
optional int32 subscriptionId = 2;
optional string serviceVersion = 3;
}
message PubSubEventNotification {
optional PubSubServerTypes serverType = 1 [default = NUM_SERVER_TYPES];
optional int32 subscriptionId = 2;
optional string serviceIPAddress = 3;
optional string servicePort = 4;
optional string serviceVersion = 5;
optional bool requestResignation = 6;
}
message PubSubOrderlyShutdown {
optional string message = 1;
optional int32 minutesToShutdown = 2 [default = 15];
}
message PubSubForceLogRollover {
}

View file

@ -0,0 +1,184 @@
syntax = "proto2";
package google.protobuf;
message FileDescriptorSet {
repeated FileDescriptorProto file = 1;
}
message FileDescriptorProto {
optional string name = 1;
optional string package = 2;
repeated string dependency = 3;
repeated int32 public_dependency = 10;
repeated int32 weak_dependency = 11;
repeated DescriptorProto message_type = 4;
repeated EnumDescriptorProto enum_type = 5;
repeated ServiceDescriptorProto service = 6;
repeated FieldDescriptorProto extension = 7;
optional FileOptions options = 8;
optional SourceCodeInfo source_code_info = 9;
}
message DescriptorProto {
message ExtensionRange {
optional int32 start = 1;
optional int32 end = 2;
}
optional string name = 1;
repeated FieldDescriptorProto field = 2;
repeated FieldDescriptorProto extension = 6;
repeated DescriptorProto nested_type = 3;
repeated EnumDescriptorProto enum_type = 4;
repeated ExtensionRange extension_range = 5;
optional MessageOptions options = 7;
}
message FieldDescriptorProto {
enum Type {
TYPE_DOUBLE = 1;
TYPE_FLOAT = 2;
TYPE_INT64 = 3;
TYPE_UINT64 = 4;
TYPE_INT32 = 5;
TYPE_FIXED64 = 6;
TYPE_FIXED32 = 7;
TYPE_BOOL = 8;
TYPE_STRING = 9;
TYPE_GROUP = 10;
TYPE_MESSAGE = 11;
TYPE_BYTES = 12;
TYPE_UINT32 = 13;
TYPE_ENUM = 14;
TYPE_SFIXED32 = 15;
TYPE_SFIXED64 = 16;
TYPE_SINT32 = 17;
TYPE_SINT64 = 18;
}
enum Label {
LABEL_OPTIONAL = 1;
LABEL_REQUIRED = 2;
LABEL_REPEATED = 3;
}
optional string name = 1;
optional int32 number = 3;
optional Label label = 4;
optional Type type = 5;
optional string type_name = 6;
optional string extendee = 2;
optional string default_value = 7;
optional FieldOptions options = 8;
}
message EnumDescriptorProto {
optional string name = 1;
repeated EnumValueDescriptorProto value = 2;
optional EnumOptions options = 3;
}
message EnumValueDescriptorProto {
optional string name = 1;
optional int32 number = 2;
optional EnumValueOptions options = 3;
}
message ServiceDescriptorProto {
optional string name = 1;
repeated MethodDescriptorProto method = 2;
optional ServiceOptions options = 3;
}
message MethodDescriptorProto {
optional string name = 1;
optional string input_type = 2;
optional string output_type = 3;
optional MethodOptions options = 4;
}
message FileOptions {
enum OptimizeMode {
SPEED = 1;
CODE_SIZE = 2;
LITE_RUNTIME = 3;
}
optional string java_package = 1;
optional string java_outer_classname = 8;
optional bool java_multiple_files = 10 [default = false];
optional bool java_generate_equals_and_hash = 20 [default = false];
optional OptimizeMode optimize_for = 9 [default = SPEED];
optional string go_package = 11;
optional bool cc_generic_services = 16 [default = false];
optional bool java_generic_services = 17 [default = false];
optional bool py_generic_services = 18 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message MessageOptions {
optional bool message_set_wire_format = 1 [default = false];
optional bool no_standard_descriptor_accessor = 2 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message FieldOptions {
enum CType {
STRING = 0;
CORD = 1;
STRING_PIECE = 2;
}
optional CType ctype = 1 [default = STRING];
optional bool packed = 2;
optional bool lazy = 5 [default = false];
optional bool deprecated = 3 [default = false];
optional string experimental_map_key = 9;
optional bool weak = 10 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message EnumOptions {
optional bool allow_alias = 2 [default = true];
repeated UninterpretedOption uninterpreted_option = 999;
}
message EnumValueOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message ServiceOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message MethodOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message UninterpretedOption {
message NamePart {
required string name_part = 1;
required bool is_extension = 2;
}
repeated NamePart name = 2;
optional string identifier_value = 3;
optional uint64 positive_int_value = 4;
optional int64 negative_int_value = 5;
optional double double_value = 6;
optional bytes string_value = 7;
optional string aggregate_value = 8;
}
message SourceCodeInfo {
message Location {
repeated int32 path = 1;
repeated int32 span = 2;
optional string leading_comments = 3;
optional string trailing_comments = 4;
}
repeated Location location = 1;
}

View file

@ -0,0 +1,23 @@
syntax = "proto2";
package Gazillion;
message AuthTicket {
optional bytes sessionKey = 1;
optional bytes sessionToken = 2;
required uint64 sessionId = 3;
optional string errorMessage = 4;
optional string frontendServer = 5;
optional string frontendPort = 6;
optional string platformTicket = 7;
optional bool presalePurchase = 8;
optional string tosurl = 9;
optional bool success = 10;
optional bool hasnews = 12;
optional string newsurl = 13;
optional bool hasPendingGift = 14;
optional string pendingGiftUrl = 15;
optional bool hasVerifiedEmail = 16;
optional bool isAllowedToChat = 17 [default = true];
}

View file

@ -0,0 +1,94 @@
syntax = "proto2";
package Gazillion;
enum BuyItemResultErrorCodes {
BUY_RESULT_ERROR_SUCCESS = 0;
BUY_RESULT_ERROR_ALREADY_HAVE_AVATAR = 1;
BUY_RESULT_ERROR_ALREADY_HAVE_STASH_INV = 2;
BUY_RESULT_ERROR_ALREADY_HAVE_PERMABUFF = 3;
BUY_RESULT_ERROR_INSUFFICIENT_BALANCE = 4;
BUY_RESULT_ERROR_IS_GIFT = 5;
BUY_RESULT_ERROR_UNKNOWN_RECIPIENT = 6;
BUY_RESULT_ERROR_PRICE_MISMATCH = 7;
BUY_RESULT_ERROR_GIFTING_UNAVAILABLE = 8;
BUY_RESULT_ERROR_UNKNOWN = 9;
BUY_RESULT_ERROR_GIFT_MESSAGE_TOO_LONG = 10;
BUY_RESULT_ERROR_SOLD_OUT = 11;
BUY_RESULT_ERROR_TEMPORARILY_UNAVAILABLE_RETRY_POSSIBLE = 12;
BUY_RESULT_ERROR_PREPURCHASE_ALREADY_OWNED = 13;
}
enum RedeemCodeResultErrorCodes {
REDEEM_CODE_RESULT_ERROR_SUCCESS = 0;
REDEEM_CODE_RESULT_ERROR_ALREADY_REDEEMED = 1;
REDEEM_CODE_RESULT_ERROR_INVALID_KEY = 2;
REDEEM_CODE_RESULT_ERROR_UNKNOWN = 3;
}
message MHCatalogEntryType {
required string name = 1;
required int32 order = 2;
}
message MHCatalogEntryTypeModifier {
required string name = 1;
required int32 order = 2;
}
message MHBannerUrl {
required string type = 1;
required string url = 2;
}
message MHLocalizedCatalogUrls {
required string localeId = 1;
optional string storeHomePageUrl = 2;
repeated MHBannerUrl storeBannerPageUrls = 3;
optional string storeRealMoneyUrl = 4;
}
message MHLocalizedCatalogEntry {
required string language_id = 1;
optional string description = 2;
optional string title = 3;
optional string releaseDate = 5;
required int64 itemPrice = 6;
}
message MHLocalizedCatalogEntryUrlOrData {
required string language_id = 1;
optional string url = 2;
optional bytes imagedata = 3;
}
message MHCatalogGuidEntry {
optional uint64 prototypeGuid = 1;
optional uint64 itemPrototypeRuntimeIdForClient = 2;
optional int32 quantity = 3 [default = 1];
}
message MarvelHeroesCatalogEntry {
required int64 skuId = 1;
repeated MHCatalogGuidEntry guidItems = 9;
repeated MHCatalogGuidEntry additionalGuidItems = 10;
repeated MHLocalizedCatalogEntry localizedEntries = 5;
repeated MHLocalizedCatalogEntryUrlOrData infourls = 2;
repeated MHLocalizedCatalogEntryUrlOrData contentdata = 3;
optional MHCatalogEntryType type = 6;
repeated MHCatalogEntryTypeModifier typeModifier = 7;
}
message GiftHistoryEntry {
optional int64 transactionId = 1;
required int64 skuId = 2;
required int64 timestamp = 3;
optional string message = 4;
}
message GiftHistoryForPlayerEntry {
optional int64 platformAccountId = 1;
required string name = 2;
repeated GiftHistoryEntry historyEntries = 3;
}

View file

@ -0,0 +1,49 @@
syntax = "proto2";
package Gazillion;
import "CommonMessages.proto";
enum ChatRoomTypes {
CHAT_ROOM_TYPE_LOCAL = 0;
CHAT_ROOM_TYPE_SAY = 1;
CHAT_ROOM_TYPE_PARTY = 2;
CHAT_ROOM_TYPE_TELL = 3;
CHAT_ROOM_TYPE_BROADCAST_ALL_SERVERS = 4;
CHAT_ROOM_TYPE_SOCIAL_EN = 5;
CHAT_ROOM_TYPE_SOCIAL_FR = 6;
CHAT_ROOM_TYPE_SOCIAL_DE = 7;
CHAT_ROOM_TYPE_SOCIAL_EL = 8;
CHAT_ROOM_TYPE_SOCIAL_KO = 9;
CHAT_ROOM_TYPE_SOCIAL_PT = 10;
CHAT_ROOM_TYPE_SOCIAL_RU = 11;
CHAT_ROOM_TYPE_SOCIAL_ES = 12;
CHAT_ROOM_TYPE_TRADE = 13;
CHAT_ROOM_TYPE_LFG = 14;
CHAT_ROOM_TYPE_GUILD = 15;
CHAT_ROOM_TYPE_FACTION = 16;
CHAT_ROOM_TYPE_EMOTE = 17;
CHAT_ROOM_TYPE_ENDGAME = 18;
CHAT_ROOM_TYPE_METAGAME = 19;
CHAT_ROOM_TYPE_GUILD_OFFICER = 20;
CHAT_ROOM_TYPE_NUM_TYPES = 21;
}
enum ChatErrorMessages {
CHAT_ERROR_NO_SUCH_USER = 0;
CHAT_ERROR_COMMAND_NOT_RECOGNIZED = 1;
CHAT_ERROR_NUM_ERRORS = 2;
}
message ChatMessageAttachments {
repeated bytes attachmments = 1;
optional int64 emoteDataRef = 2;
repeated NetStructItemSpec itemSpecs = 3;
}
message ChatMessage {
optional string body = 1;
optional int64 bodyId = 2;
optional ChatMessageAttachments attachment = 3;
}

View file

@ -0,0 +1,813 @@
syntax = "proto2";
package Gazillion;
import "GazillionCommon.proto";
import "CommonMessages.proto";
import "ChatCommon.proto";
import "Guild.proto";
import "GlobalEventsCommon.proto";
message NetMessageReadyForGameJoin {
required string playerName = 1;
required int32 wipesDataIfMismatchedInDb = 3 [default = 0];
optional bool wipePlayerRecordsOnLogin = 2 [default = false];
optional string domainLoginName = 4;
optional bytes playerImportData = 5;
required string localeName = 6;
optional int32 clientOperatingSystem = 7;
}
message NetMessagePlayerSystemMetrics {
required int32 compatLevelCpu = 1 [default = -1];
required int32 compatLevelGpu = 2 [default = -1];
required int32 compatLevelComposite = 3 [default = -1];
optional string osName = 4;
optional string cpuName = 5;
optional string ramName = 6;
optional string displayDeviceName = 7;
optional bool displayDeviceDualGPU = 8;
optional string displayDeviceDriverDate = 9;
optional string userLanguage = 10;
}
message NetMessagePlayerSteamInfo {
required uint64 steamUserId = 1;
}
message NetMessageSyncTimeRequest {
required int64 gameTimeClientSent = 1;
required int64 dateTimeClientSent = 2;
}
message NetMessageSetTimeDialation {
required int64 gameTimeDialationStarted = 1;
required int64 dateTimeDialationStarted = 2;
required float dialation = 3;
}
message NetMessageIsRegionAvailable {
required uint64 regionPrototype = 1;
required bool isAvailable = 2;
}
message NetMessageUpdateAvatarState {
required bytes archiveData = 1;
}
message NetMessageCellLoaded {
required uint32 cellId = 1;
required uint64 regionId = 2;
}
message NetMessageTeleportAckResponse {
required uint32 ackseq = 1;
}
message NetMessageAdminCommand {
required string command = 1;
}
message NetMessageTryActivatePower {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
optional uint64 idTargetEntity = 3;
optional NetStructPoint3 targetPosition = 4;
optional float movementSpeed = 5;
optional uint64 movementTimeMS = 6;
optional uint32 powerRandomSeed = 7;
optional uint64 itemSourceId = 8;
required uint32 fxRandomSeed = 9;
optional uint64 triggeringPowerPrototypeId = 10;
}
message NetMessagePowerRelease {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
optional uint64 idTargetEntity = 3;
optional NetStructPoint3 targetPosition = 4;
}
message NetMessageTryCancelPower {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
required uint32 endPowerFlags = 3;
}
message NetMessageTryCancelActivePower {
required uint64 idUserEntity = 1;
}
message NetMessageContinuousPowerUpdateToServer {
required uint64 powerPrototypeId = 1;
optional uint64 idTargetEntity = 2;
optional NetStructPoint3 targetPosition = 3;
optional uint32 randomSeed = 4;
}
message NetMessageCancelPendingAction {
}
message NetMessageStartAIDebugUI {
required uint64 idTargetNPC = 1;
}
message NetMessageStopAIDebugUI {
required uint64 idTargetNPC = 1;
}
message NetMessageStartAIPerformanceUI {
}
message NetMessageStopAIPerformanceUI {
}
message NetMessageStartMissionDebugUI {
required uint64 idTargetAgent = 1;
required uint64 missionPrototypeRefId = 2;
required string missionListMatchPattern = 3;
}
message NetMessageStopMissionDebugUI {
required uint64 idTargetAgent = 1;
}
message NetMessageStartPropertiesDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopPropertiesDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStartConditionsDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopConditionsDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStartPowersDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopPowersDebugUI {
required uint64 idTargetEntity = 1;
}
message NetStructMessageStoreMetric {
required AvailableStoreActions storeActionEnum = 1;
required uint64 unixTimestamp = 2;
optional uint64 targetPrototypeId = 3;
}
message NetMessagePing {
required bool displayOutput = 1;
required uint64 sendClientTime = 2;
optional uint64 sendGameTime = 3;
optional uint64 requestNetReceivedGameTime = 4;
optional uint64 lastClientLatency = 5;
optional float lastFps = 6;
optional uint64 regionPrototype = 7;
optional uint32 cpulevel = 8;
optional uint32 gpulevel = 9;
optional uint32 compositelevel = 10;
optional float minFps = 11;
optional NetStructPoint3 minFpsPos = 12;
repeated NetStructMessageStoreMetric storeMetrics = 13;
required uint32 maskedclientip = 14;
}
message NetMessageFPS {
required float avgFps = 1;
required float minFps = 2;
required uint32 numHitches = 3;
required uint64 regionPrototype = 4;
required uint32 cpulevel = 5;
required uint32 gpulevel = 6;
required uint32 compositelevel = 7;
}
message NetMessagePickupInteraction {
required uint64 idTarget = 1;
optional bool useInteractFallbackRange = 2;
}
message NetMessageTryInventoryMove {
required uint64 itemId = 1;
required uint64 toInventoryOwnerId = 2;
required uint64 toInventoryPrototype = 3;
required uint32 toSlot = 4;
optional bool isStackSplit = 5;
}
message NetMessageTryMoveCraftingResultsToGeneral {
}
message NetMessageInventoryTrashItem {
required uint64 itemId = 1;
}
message NetMessageThrowInteraction {
required uint64 idTarget = 1;
}
message NetMessagePerformPreInteractPower {
required uint64 idTarget = 1;
required bool hasDialog = 2;
}
message NetMessageUseInteractableObject {
required uint64 idTarget = 1;
optional uint64 missionPrototypeRef = 2;
}
message NetMessageTryCraft {
required uint64 idRecipe = 1;
required uint64 idVendor = 2;
repeated uint64 idIngredients = 3;
}
message NetMessageUseWaypoint {
required uint64 idTransitionEntity = 1;
required uint64 waypointDataRef = 2;
required uint64 regionProtoId = 3;
}
message NetMessageDebugAcquireAndSwitchToAvatar {
required uint64 avatarPrototypeId = 1;
}
message NetMessageSwitchAvatar {
required uint64 avatarPrototypeId = 1;
required uint32 avatarModeEnum = 2;
}
message NetMessageAssignHotkey {
required uint64 avatarId = 1;
required uint64 prototypeRefId = 2;
required uint32 keyMappingIndex = 3;
required uint32 slotNumber = 4;
required uint32 destinationSlotNumber = 5;
}
message NetMessageUnassignHotkey {
required uint64 avatarId = 1;
required uint32 keyMappingIndex = 2;
required uint32 slotNumber = 3;
}
message NetMessageSelectAbilityKeyMapping {
required uint64 avatarId = 1;
required uint32 keyMappingIndex = 2;
}
message NetMessageAbilitySlotToAbilityBar {
required uint64 avatarId = 1;
required uint64 prototypeRefId = 2;
required uint32 keyMappingIndex = 3;
required uint32 slotNumber = 4;
}
message NetMessageAbilityUnslotFromAbilityBar {
required uint64 avatarId = 1;
required uint32 keyMappingIndex = 2;
required uint32 slotNumber = 3;
}
message NetMessageAbilitySwapInAbilityBar {
required uint64 avatarId = 1;
required uint32 slotNumberA = 2;
required uint32 slotNumberB = 3;
}
message NetMessageModCommitTemporary {
required uint64 avatarRef = 1;
required uint64 modTypeRef = 2;
repeated NetStructModChangeObject changes = 3;
}
message NetMessageModReset {
required uint64 avatarId = 1;
required uint64 modTypeRef = 2;
}
message NetMessagePowerPointAllocationCommit {
required uint64 agentRef = 1;
repeated NetStructPowerPointAllocation allocations = 2;
required uint32 powerSpecIndex = 3;
}
message NetMessageRequestDeathRelease {
required bool hitOk = 1;
required bool resurrectedFromOtherEntity = 2;
}
message NetMessageRequestResurrectDecline {
}
message NetMessageRequestResurrectAvatar {
optional uint64 targetId = 1;
}
message NetMessageReturnToHub {
}
message NetMessageRequestStoryWarp {
required uint64 storyWarpPrototypeId = 1;
required uint64 storyWarpNPC = 2;
}
message NetMessageRequestMissionRewards {
required uint64 missionPrototypeId = 1;
optional uint32 conditionIndex = 2;
optional uint64 entityId = 3;
}
message NetMessageRequestRemoveAndKillControlledAgent {
required uint64 avatarId = 1;
}
message NetMessageDamageMeter {
required uint64 encounterguid = 1;
required uint64 avatarguid = 2;
required float dps = 3;
required float damagescore = 4;
required int32 numdeaths = 5;
}
message NetMessageInvitePlayer {
optional uint64 inviteeEntityId = 1;
optional string inviteeName = 2;
}
message NetMessageRequestPartyJoinPortal {
}
message NetMessageDeclineGroupInvite {
}
message NetMessageLeaveGroup {
}
message NetMessageChangeGroupLeader {
required uint64 targetMemberId = 1;
}
message NetMessageBootPlayer {
required uint64 targetMemberId = 1;
}
message NetMessageDisbandGroup {
}
message NetMessageGroupChangeType {
required GroupType type = 1;
}
message NetMessageGroupChangeTypeConfirmResponse {
required uint64 playerId = 1;
required bool accept = 2;
}
message NetMessageDuelInvite {
required uint64 challengerEntityId = 1;
optional string challengerName = 2;
optional uint64 opponentEntityId = 3;
required string opponentName = 4;
}
message NetMessageDuelAccept {
required uint64 challengedEntityId = 1;
optional string challengedName = 2;
}
message NetMessageDuelCancel {
required uint64 cancellingEntityId = 1;
optional string cancellingName = 2;
}
message NetMessageMetaGameUpdateNotification {
required uint64 metaGameEntityId = 1;
}
message NetMessageChat {
required ChatRoomTypes roomType = 1;
required ChatMessage theMessage = 2;
}
message NetMessageTell {
required string targetPlayerName = 1;
required ChatMessage theMessage = 2;
}
message NetMessageReportPlayer {
required string targetPlayerName = 1;
required string reason = 2;
}
message NetMessageGetCatalog {
optional uint64 itemPrototypeRuntimeId = 1 [default = 0];
optional int64 timestamp_seconds = 3 [default = 0];
optional int64 timestamp_microseconds = 5 [default = 0];
optional string localeid = 4 [default = "en_us"];
}
message NetMessageGetCurrencyBalance {
}
message NetMessageBuyItemFromCatalog {
required int64 skuId = 1;
required int64 itemUnitPrice = 2;
optional int32 numUnits = 3 [default = 1];
}
message NetMessageBuyGiftForOtherPlayer {
required int64 skuId = 1;
required int64 itemUnitPrice = 2;
required string recipientName = 3;
optional int32 numUnits = 4 [default = 1];
optional string giftMessage = 5;
}
message NetMessagePurchaseUnlock {
required int64 agentPrototypeId = 1;
}
message NetMessageGetGiftHistory {
}
message EntityPreviewerEnum {
enum Alliance {
Ally = 0;
Enemy = 1;
Total = 2;
}
}
message NetMessageEntityPreviewerNewTargets {
required EntityPreviewerEnum.Alliance alliance = 1;
optional uint32 numNewTargets = 2;
}
message NetMessageEntityPreviewerClearTargets {
}
message NetMessageEntityPreviewerSetTargetRef {
required uint64 targetRefId = 1;
}
message NetMessageEntityPreviewerActivatePower {
required uint64 casterId = 1;
required uint64 powerRefId = 2;
required bool createTarget = 3;
required bool randomTargetPos = 4;
}
message NetMessageEntityPreviewerAddTarget {
required uint64 targetId = 1;
}
message NetMessageEntityPreviewerSetEntityState {
required uint64 targetId = 1;
required uint64 stateRefId = 2;
}
message NetMessageEntityPreviewerApplyConditions {
required uint64 targetId = 1;
required uint64 powerRefId = 2;
}
message NetMessageCreateNewPlayerWithSelectedStartingAvatar {
required uint64 startingAvatarPrototypeId = 1;
required uint32 totalTime = 2;
}
message NetMessageOnKioskStartButtonPressed {
}
message NetMessageNotifyFullscreenMovieStarted {
required uint64 moviePrototypeId = 1;
}
message NetMessageNotifyFullscreenMovieFinished {
required uint64 moviePrototypeId = 1;
required bool userCancelled = 2;
required uint32 syncRequestId = 3;
}
message NetMessageNotifyLoadingScreenFinished {
}
message NetMessageBotSetLevel {
required int32 level = 1;
}
message NetMessageBotGodMode {
}
message NetMessageBotPickAvatar {
required uint64 avatarBotDataId = 1;
optional int32 level = 2;
optional uint64 lootPrototype = 3;
optional uint32 lootTableRoll = 4;
}
message NetMessageBotRegionChange {
required uint64 regionDataId = 1;
}
message NetMessageBotWarpAreaNext {
}
message NetMessageBotLootGive {
required uint64 lootPrototype = 1;
required uint32 lootTableRoll = 2;
}
message NetMessageBotSetPvPFaction {
required uint64 factionSetPrototype = 1;
}
message NetMessageBotPvPQueue {
required uint64 pvpQueueId = 1;
}
message NetMessageGetTrackerReport {
required uint32 messageSource = 1;
required uint32 messageDirection = 2;
}
message NetMessagePlayKismetSeqDone {
required uint64 kismetSeqPrototypeId = 1;
required uint32 syncRequestId = 2;
}
message NetMessageVerifyFailedForRepId {
required uint64 repid1 = 1;
required string file = 2;
required uint32 line = 3;
required string debugmsg = 4;
optional uint64 repid2 = 5;
}
message NetMessageGracefulDisconnect {
}
message NetMessageRequestStartNewGame {
}
message NetMessageSetDialogTarget {
required uint64 targetId = 1;
}
message NetMessageDialogResult {
required uint64 serverId = 1;
required uint64 playerGuid = 2;
required GameDialogResultEnum buttonIndex = 3;
required bool checkboxClicked = 4;
}
message NetMessageVendorRequestBuyItemFrom {
required uint64 itemId = 1;
required uint64 vendorId = 2;
required uint32 inventorySlot = 3;
}
message NetMessageVendorRequestSellItemTo {
required uint64 itemId = 1;
required uint64 vendorId = 2;
}
message NetMessageVendorRequestDonateItemTo {
required uint64 itemId = 1;
required uint64 vendorId = 2;
}
message NetMessageVendorRequestRefresh {
required uint64 vendorId = 1;
}
message NetMessageTryModifyCommunityMemberCircle {
required uint64 circleId = 1;
required ModifyCircleOperation operation = 2;
required string playerName = 3;
}
message NetMessagePullCommunityStatus {
}
message NetMessageGuildMessageToPlayerManager {
required GuildMessageSetToPlayerManager messages = 1;
}
message NetMessageAkEvent {
required uint32 akEventId = 1;
required bool isVO = 2;
required uint32 eventType = 3;
}
message NetMessageSetShowTips {
required bool showTips = 1;
}
message NetMessageSetTipSeen {
required uint64 tipDataRefId = 1;
required uint64 avatarEntityId = 2;
}
message NetMessageResetSeenTips {
}
message NetMessageTryMoveInventoryContentsToGeneral {
required uint64 sourceInventoryPrototype = 1;
}
message NetMessageSetPlayerGameplayOptions {
required NetStructGameplayOptions optionsData = 1;
}
message NetMessageTeleportToPartyMember {
required string playerName = 1;
}
message NetMessageRegionRequestQueueCommandClient {
required uint64 regionProtoId = 1;
optional uint64 regionRequestGroupId = 2;
required RegionRequestQueueCommandVar command = 3;
optional bool allowAutoParty = 4 [default = false];
}
message NetMessageSelectAvatarSynergies {
required uint64 avatarId = 1;
repeated uint64 avatarPrototypes = 2;
}
message NetMessageRequestLegendaryMissionReroll {
}
message NetMessageAttemptShareLegendaryMission {
required string playerName = 1;
}
message NetMessageAttemptShareLegendaryMissionResponse {
required bool missionAccepted = 1;
}
message NetMessageRequestPlayerOwnsItemStatus {
required uint64 itemProtoId = 1;
}
message NetMessageRequestInterestInInventory {
required uint64 inventoryProtoId = 1;
}
message NetMessageRequestInterestInAvatarEquipment {
required uint64 avatarProtoId = 1;
required uint32 avatarModeEnum = 2;
}
message NetMessageRequestInterestInTeamUpEquipment {
required uint64 teamUpProtoId = 1;
}
message NetMessageTryTeamUpSelect {
required uint64 teamUpPrototypeId = 1;
}
message NetMessageRequestTeamUpDismiss {
}
message NetMessageTryTeamUpStyleSelect {
required uint32 styleIndex = 1;
}
message NetMessageSelectOmegaBonus {
required uint64 omegaBonusProtoRefID = 1;
required int32 rank = 2;
}
message NetMessageOmegaBonusAllocationCommit {
required uint64 avatarId = 1;
repeated NetMessageSelectOmegaBonus allocations = 2;
}
message NetMessageRespecOmegaBonus {
required uint64 avatarId = 1;
}
message NetMessageRespecPowerSpec {
required uint64 characterId = 1;
required int32 powerSpecIndex = 2;
}
message NetMessageNewItemGlintPlayed {
required uint64 playerId = 1;
repeated uint64 itemIds = 2;
}
message NetMessageNewItemHighlightCleared {
required uint64 playerId = 1;
required uint64 itemId = 2;
}
message NetMessageUnassignMappedPower {
required uint64 avatarId = 1;
required uint64 mappedPowerProtoId = 2;
}
message NetMessageVanityTitleSelect {
required uint64 vanityTitlePrototypeId = 1;
}
message NetMessageRequestGlobalEventUpdate {
required uint64 eventId = 1;
required GlobalEventUpdateType updateType = 2;
}
message NetMessageHasPendingGift {
optional bool hasPendingGift = 1;
}
message NetMessagePlayerTradeStart {
required string partnerPlayerName = 1;
}
message NetMessagePlayerTradeCancel {
}
message NetMessagePlayerTradeSetConfirmFlag {
required bool confirmFlag = 1;
required uint32 sequenceNumber = 2;
}
message NetMessageRequestPetTechDonate {
required uint64 itemId = 1;
required uint64 avatarId = 2;
}
message NetMessageSetActivePowerSpec {
required uint64 avatarId = 1;
required uint32 activeSpec = 2;
}
message NetMessageChangeCameraSettings {
required uint64 cameraSettings = 1;
}
message NetMessageRequestSocketAffix {
required uint64 destItemId = 1;
required uint64 gemAffixItemId = 2;
}
message NetMessageUISystemLockState {
required uint64 prototypeId = 1;
required uint32 state = 2;
}
message NetMessageEnableSpecializationPower {
required uint64 avatarId = 1;
required uint64 prototypeId = 2;
required bool enable = 3;
required uint32 spec = 4;
}
message NetMessageStashInventoryViewed {
required uint64 prototypeId = 1;
}
message NetMessageStashCurrentlyOpen {
required uint64 prototypeId = 1;
}
message NetMessageWidgetButtonResult {
required uint64 widgetRefId = 1;
required uint64 widgetContextRefId = 2;
required uint64 playerGuid = 3;
required bool result = 4;
}
message NetMessageStashTabInsert {
required uint64 invId = 1;
required uint64 insertIndex = 2;
}
message NetMessageStashTabOptions {
required uint64 inventoryRefId = 1;
optional string displayName = 2;
optional uint64 iconPathAssetId = 3;
optional uint32 color = 4;
}
message NetMessageLeaderboardRequest {
optional LeaderboardPlayerScoreQuery playerScoreQuery = 1;
optional LeaderboardGuildScoreQuery guildScoreQuery = 2;
optional LeaderboardDataQuery dataQuery = 3;
}
message NetMessageLeaderboardArchivedInstanceListRequest {
repeated uint64 leaderboardIds = 1;
}

View file

@ -0,0 +1,8 @@
syntax = "proto2";
package Gazillion;
message ClientIgnoredInvite {
required uint64 decliningPlayerId = 1;
}

View file

@ -0,0 +1,547 @@
syntax = "proto2";
package Gazillion;
enum GameDialogResultEnum {
eGDR_TimeoutOnServer = -2;
eGDR_TimeoutOnClient = -1;
eGDR_Closed = 0;
eGDR_Option1 = 1;
eGDR_Option2 = 2;
eGDR_Option3 = 3;
eGDR_Checkbox = 4;
}
enum TeleportContextEnum {
TeleportContext_Invalid = 0;
TeleportContext_Bodyslide = 1;
TeleportContext_Bot = 2;
TeleportContext_Debug = 3;
TeleportContext_MetaGame = 4;
TeleportContext_Mission = 5;
TeleportContext_Party = 6;
TeleportContext_Portal = 7;
TeleportContext_Power = 8;
TeleportContext_Resurrect = 9;
TeleportContext_Transition = 10;
TeleportContext_Waypoint = 11;
TeleportContext_StoryWarp = 12;
}
enum ModifyCircleOperation {
eMCO_Add = 1;
eMCO_Remove = 2;
}
enum GlobalTuningVar {
eGTV_VendorBuyPrice = 0;
eGTV_VendorSellPrice = 1;
eGTV_VendorXPGain = 2;
eGTV_PVPEnabled = 3;
eGTV_XPGain = 4;
eGTV_LootDropRate = 5;
eGTV_LootSpecialDropRate = 6;
eGTV_LootRarity = 7;
eGTV_PartyXPBonusPct = 8;
eGTV_PlayerTradeEnabled = 9;
eGTV_CosmicPrestigeXPPct = 10;
eGTV_LootVaporizationEnabled = 11;
eGTV_XPBuffDisplay = 12;
eGTV_SIFBuffDisplay = 13;
eGTV_RIFBuffDisplay = 14;
eGTV_OmegaXPPct = 15;
eGTV_RespectLevelForGlobalXP = 16;
eGTV_RespectLevelForGlobalRIF = 17;
eGTV_RespectLevelForGlobalSIF = 18;
eGTV_RespectLevelForOmegaXP = 19;
eGTV_RespectLevelForAvatarXP = 20;
eGTV_RespectLevelForRegionXP = 21;
eGTV_ServerBonusUnlockLevelOverride = 22;
eGTV_BoostTimersRunning = 23;
eGTV_NumGlobalTuningVars = 24;
}
enum AreaTuningVar {
eATV_AreaMobSpawnHeat = 0;
eATV_AreaMobSpawnHeatReturn = 1;
eATV_NumAreaTuningVars = 2;
}
enum WorldEntityTuningVar {
eWETV_MobPowerDamage = 0;
eWETV_MobHealth = 1;
eWETV_MobXP = 2;
eWETV_MobDropRate = 3;
eWETV_MobSpecialDropRate = 4;
eWETV_Enabled = 5;
eWETV_MobDropRarity = 6;
eWETV_VendorEnabled = 7;
eWETV_Unused1 = 8;
eWETV_EternitySplinterPrice = 9;
eWETV_LootGroupNum = 10;
eWETV_LootNoDropPercent = 11;
eWETV_Visible = 12;
eWETV_NumWorldEntityTuningVars = 13;
}
enum AvatarEntityTuningVar {
eAETV_BonusXPPct = 0;
eAETV_XPBuffDisplay = 1;
eAETV_EternitySplinterPrice = 2;
eAETV_Enabled = 3;
eAETV_NumAvatarEntityTuningVars = 4;
}
enum PopObjTuningVar {
ePOTV_PopulationObjectWeight = 0;
ePOTV_NumPopulationObjectTuningVars = 1;
}
enum PowerTuningVar {
ePTV_PowerCost = 0;
ePTV_PowerDamagePVE = 1;
ePTV_PowerDamagePVP = 2;
ePTV_PowerEnabled = 3;
ePTV_NumPowerTuningVars = 4;
}
enum RegionTuningVar {
eRTV_PlayerLimit = 0;
eRTV_Enabled = 1;
eRT_BonusXPPct = 2;
eRT_XPBuffDisplay = 3;
eRTV_NumRegionTuningVars = 4;
}
enum LootTableTuningVar {
eLTTV_Enabled = 0;
eLTTV_Weight = 1;
eLTTV_Rolls = 2;
eLTTV_NoDropPercent = 3;
eLTTV_GroupNum = 4;
eLTTV_NumLootTableTuningVars = 5;
}
enum MissionTuningVar {
eMTV_Enabled = 0;
eMTV_NumMissionTuningVars = 1;
}
enum ConditionTuningVar {
eCTV_Enabled = 0;
eCTV_NumConditionTuningVars = 1;
}
enum RegionRequestQueueUpdateVar {
eRRQ_Invalid = 1;
eRRQ_SelectQueueMethod = 2;
eRRQ_RemovedFromGroup = 3;
eRRQ_RemovedGracePeriod = 4;
eRRQ_RemovedGracePeriodExpired = 5;
eRRQ_RaidNotAllowed = 6;
eRRQ_GroupInvitePending = 7;
eRRQ_GroupInviteAccepted = 8;
eRRQ_GroupInviteDeclined = 9;
eRRQ_GroupInviteExpired = 10;
eRRQ_WaitingInQueue = 11;
eRRQ_WaitingInWaitlist = 12;
eRRQ_WaitingInWaitlistLocked = 13;
eRRQ_MatchInvitePending = 14;
eRRQ_MatchInviteAccepted = 15;
eRRQ_MatchInviteDeclined = 16;
eRRQ_MatchInviteExpired = 17;
eRRQ_InMatch = 18;
}
enum RegionRequestQueueCommandVar {
eRRQC_AddToQueueSolo = 1;
eRRQC_AddToQueueParty = 2;
eRRQC_AddToQueueBypass = 3;
eRRQC_GroupInviteAccept = 4;
eRRQC_GroupInviteDecline = 5;
eRRQC_RemoveFromQueue = 6;
eRRQC_MatchInviteAccept = 7;
eRRQC_MatchInviteDecline = 8;
eRRQC_DebugForceStart = 9;
eRRQC_DebugInfo = 10;
eRRQC_RequestToJoinGroup = 11;
}
enum RegionPlayerAccessVar {
eRPA_Invalid = 0;
eRPA_Open = 1;
eRPA_InviteOnly = 2;
eRPA_BodyslideOnly = 3;
eRPA_Locked = 4;
eRPA_Closed = 5;
}
enum RegionTransferFailure {
eRTF_NoError = 0;
eRTF_GenericError = 1;
eRTF_CreationProhibitedByGame = 2;
eRTF_Full = 3;
eRTF_PartiesNotAllowed = 4;
eRTF_RaidsNotAllowed = 5;
eRTF_TargetPlayerUnavailable = 6;
eRTF_BodyslideRegionUnavailable = 7;
eRTF_DestinationInaccessible = 8;
eRTF_MatchNoTeleportToPlayer = 9;
eRTF_MatchNoTeleportToParty = 10;
eRTF_PlayerBlacklistedFromRegion = 11;
eRTF_EndlessProgressedTooFar = 12;
}
enum AvailableStoreActions {
StoreAction_ViewHomeTab = 1;
StoreAction_ViewHeroesTab = 2;
StoreAction_ViewCostumesTab = 3;
StoreAction_ViewItemsTab = 4;
StoreAction_ViewCardsTab = 5;
StoreAction_ViewSpecialsTab = 6;
StoreAction_ViewCostumesForHero = 7;
StoreAction_UserPressedBuy = 8;
StoreAction_UserPressedAddGs = 9;
StoreAction_StoreOpened = 10;
StoreAction_NumberOfStoreActions = 11;
}
enum MetricWaveResults {
MetricWaveResults_Success = 1;
MetricWaveResults_FailQuit = 2;
MetricWaveResults_FailPlayerWipe = 3;
MetricWaveResults_FailStudentDeath = 4;
MetricWaveResults_FailDeathTimeout = 5;
MetricWaveResults_NumberOfMetricWaveResults = 6;
}
enum LegendaryMissionShareResultType {
LegendaryMissionShare_Sent = 1;
LegendaryMissionShare_Accepted = 2;
LegendaryMissionShare_Declined = 3;
LegendaryMissionShare_RequestAlreadyPending = 4;
LegendaryMissionShare_FailPlayerNotFound = 5;
LegendaryMissionShare_FailNotEligible = 6;
LegendaryMissionShare_FailAlreadyHave = 7;
LegendaryMissionShare_FailCannotShareWithSelf = 8;
LegendaryMissionShare_FailCannotReShare = 9;
LegendaryMissionShare_UnknownFailure = 10;
}
enum GroupType {
GroupType_Invalid = 0;
GroupType_Party = 1;
GroupType_Raid = 2;
}
enum CurrencyType {
Currency_EternitySplinter = 1;
Currency_CubeShard = 2;
Currency_OdinMarks = 3;
Currency_Credits = 4;
Currency_ResearchDrives = 5;
Currency_Worldstones = 6;
Currency_EyeOfDemonfire = 7;
Currency_HeartOfDemonfire = 8;
Currency_CrownOfValor = 9;
Currency_OmegaFiles = 10;
Currency_GenoshaRaid = 11;
CurrencySpend_NumberOfCurrencySpendTypes = 12;
}
enum GroupLeaveReason {
GROUP_LEAVE_REASON_LEFT = 1;
GROUP_LEAVE_REASON_BOOTED = 2;
GROUP_LEAVE_REASON_DISBANDED = 3;
}
enum LeaderboardState {
eLBS_Created = 0;
eLBS_Active = 1;
eLBS_Expired = 2;
eLBS_Reward = 3;
eLBS_RewardsPending = 4;
eLBS_Rewarded = 5;
}
message NetStructPoint3 {
optional float X = 1 [default = 0];
optional float Y = 2 [default = 0];
optional float Z = 3 [default = 0];
}
message NetStructIPoint3 {
optional uint32 X = 1 [default = 0];
optional uint32 Y = 2 [default = 0];
optional uint32 Z = 3 [default = 0];
}
message NetStructPoint2 {
optional float X = 1 [default = 0];
optional float Y = 2 [default = 0];
}
message NetStructIPoint2 {
optional uint32 X = 1 [default = 0];
optional uint32 Y = 2 [default = 0];
}
message NetStructProperty {
required uint64 id = 1;
required uint64 value = 2;
}
message NetStructPropertyList {
repeated NetStructProperty properties = 1;
}
message NetStructFormatStringArg {
optional uint64 localeStringId = 1;
optional string stringValue = 2;
optional string playerName = 3;
optional int64 intValue = 4;
optional float floatValue = 5;
}
message NetStructFormatString {
required uint64 formatStringId = 1;
repeated NetStructFormatStringArg args = 2;
}
message NetStructDialogButton {
required GameDialogResultEnum type = 1;
required NetStructFormatString formatString = 2;
required uint32 style = 3;
optional bool enabled = 4 [default = true];
}
message NetStructDialog {
required NetStructFormatString messageString = 1;
repeated NetStructDialogButton buttonStrings = 2;
optional NetStructFormatString checkboxString = 3;
optional uint64 targetId = 4 [default = 0];
required uint32 options = 5;
}
message NetStructRegionLocation {
required uint64 regionId = 1;
required NetStructPoint3 position = 2;
}
message NetStructRegionTarget {
required uint64 regionProtoId = 1;
required uint64 areaProtoId = 2;
required uint64 cellProtoId = 3;
required uint64 entityProtoId = 4;
}
message NetStructTransferParams {
required uint64 TransferId = 1;
required uint64 DestRegionId = 2;
required uint64 DestRegionProtoId = 3;
optional NetStructRegionTarget DestTarget = 4;
optional NetStructRegionLocation DestLocation = 5;
optional uint64 DestEntityDbId = 6 [default = 0];
optional int32 DestTeamIndex = 7 [default = -1];
optional bool HasInvite = 8 [default = false];
optional NetStructRegionOrigin Origin = 9;
}
message NetStructRegionOrigin {
optional NetStructRegionLocation location = 1;
optional NetStructRegionTarget target = 2;
optional uint64 transitionDbId = 3;
}
message NetStructPortalInstance {
required uint64 entityDbId = 1;
required NetStructRegionLocation location = 2;
optional uint64 ownerPlayerDbId = 3;
optional bool boundToOwner = 4;
}
message ChangeRegionRequestHeader {
required uint64 requestingGameId = 1;
required uint64 requestingPlayerGuid = 2;
required NetStructRegionOrigin origin = 3;
required TeleportContextEnum type = 4;
}
message NetStructCreateRegionParams {
required uint32 level = 1;
optional NetStructRegionOrigin origin = 2;
optional bool cheat = 3;
optional uint32 endlessLevel = 4 [default = 0];
optional uint64 gameStateId = 5;
optional uint64 matchNumber = 6 [default = 0];
optional uint32 seed = 7;
optional uint64 parentRegionId = 8;
optional uint64 requiredItemProtoId = 9;
optional uint64 requiredItemEntityId = 10;
optional NetStructPortalInstance accessPortal = 11;
repeated uint64 affixes = 12;
optional uint32 playerDeaths = 13 [default = 0];
optional uint64 dangerRoomScenarioItemDbGuid = 14 [default = 0];
optional uint64 itemRarity = 15 [default = 0];
optional bytes propertyBuffer = 16;
}
message NetStructModChangeObject {
required uint64 mod = 1;
required uint32 change = 2;
}
message NetStructPowerPointAllocation {
required uint64 powerProtoId = 1;
required uint32 delta = 2;
}
message NetStructAffixSpec {
required uint64 affixProtoRef = 1;
required uint64 scopeProtoRef = 2;
required int32 seed = 3;
}
message NetStructItemSpec {
required uint64 itemProtoRef = 1;
required uint32 itemLevel = 2;
required uint64 rarityProtoRef = 3;
required uint32 seed = 4;
optional uint32 creditsAmount = 5;
repeated NetStructAffixSpec affixSpecs = 6;
optional uint64 equippableBy = 7;
}
message CommunityMemberBroadcast {
required uint64 memberPlayerDbId = 1;
optional uint64 currentRegionRefId = 2 [default = 123];
optional uint64 currentAvatarRefId = 3 [default = 123];
optional uint64 currentCharacterLevel = 4;
optional uint64 currentPvpFactionRefId = 5 [default = 123];
optional string currentPlayerName = 6;
repeated uint64 memberPlayerDbIdIgnoreList = 7;
optional uint64 currentPrestigeLevel = 8;
optional int32 isOnline = 9 [default = -1];
optional int64 lastLogoutTimeAsFileTimeUtc = 10;
optional uint64 currentCostumeRefId = 11 [default = 123];
}
message CommunityNotify {
required uint64 targetPlayerDbId = 1;
required string sourcePlayerName = 2;
required uint64 circleId = 3;
required ModifyCircleOperation operation = 4;
}
message NetStructLiveTuningSettingEnumValue {
required int32 tuningVarEnum = 1;
required float tuningVarValue = 2;
}
message NetStructLiveTuningSettingProtoEnumValue {
required uint64 tuningVarProtoId = 1;
required int32 tuningVarEnum = 2;
required float tuningVarValue = 3;
}
message ChangeRegionFailed {
required RegionTransferFailure reason = 1;
optional uint64 regionProtoId = 2;
optional uint64 requiredItemProtoId = 3;
}
message NetStructChatChannelFilterState {
required uint64 channelProtoId = 1;
required bool isSubscribed = 2;
}
message NetStructChatTabState {
required uint64 channelProtoId = 1;
}
message NetStructGameplayOptions {
repeated bool optionSettings = 1;
repeated NetStructChatChannelFilterState chatChannelFiltersMap = 2;
repeated NetStructChatTabState chatTabChannelsArray = 3;
repeated uint64 armorRarityVaporizeThresholdProtoId = 4;
}
message ShareLegendaryMissionRequest {
required uint64 missionDataRef = 1;
}
message ShareLegendaryMissionResult {
required uint64 missionDataRef = 1;
required LegendaryMissionShareResultType result = 2;
}
message BillingP2PGiftResult {
required uint64 transactionId = 1;
required bool didSucceed = 2;
optional int64 currentBalance = 3;
required uint64 skuId = 4;
optional int32 errorCode = 5;
required int32 numUnits = 6 [default = 1];
required string giftMessage = 7;
required uint64 senderId = 8;
}
message LeaderboardPlayerScoreQuery {
required uint64 leaderboardId = 1;
optional uint64 instanceId = 2 [default = 0];
required uint64 playerId = 3;
optional uint64 avatarId = 4 [default = 0];
}
message LeaderboardGuildScoreQuery {
required uint64 leaderboardId = 1;
optional uint64 instanceId = 2 [default = 0];
required uint64 guildId = 3;
}
message LeaderboardDataQuery {
required uint64 leaderboardId = 1;
optional uint64 instanceId = 2 [default = 0];
}
message LeaderboardMetadata {
required uint64 leaderboardId = 1;
required uint64 instanceId = 2;
required LeaderboardState state = 3;
}
message LeaderboardEntry {
required string name = 1;
required uint64 gameId = 2;
required uint64 score = 3;
optional uint64 avatarId = 4;
}
message LeaderboardTableData {
required LeaderboardMetadata info = 1;
repeated LeaderboardEntry entries = 2;
}
message LeaderboardScoreData {
required uint64 leaderboardId = 1;
optional uint64 instanceId = 2 [default = 0];
optional uint64 playerId = 3;
optional uint64 guildId = 4;
required uint64 score = 5;
required uint32 percentileBucket = 6;
optional uint64 avatarId = 7 [default = 0];
}
message LeaderboardReport {
required uint64 leaderboardId = 1;
optional uint64 instanceId = 2 [default = 0];
optional LeaderboardScoreData scoreData = 3;
optional LeaderboardTableData tableData = 4;
optional uint64 nextUpdateTime = 5;
}
message WorldViewEntry {
required uint64 regionId = 1;
required uint64 regionProtoRefId = 2;
}

View file

@ -0,0 +1,66 @@
syntax = "proto2";
package Gazillion;
import "PubSubProtocol.proto";
enum FrontendProtocolVersion {
CURRENT_VERSION = 1;
}
enum ExtendedLoginErrors {
NO_LOGIN_ERROR = 0;
CLIENT_MANAGER_NOT_AVAILABLE = 1;
}
message LoginDataPB {
required string emailAddress = 1;
required string password = 2;
optional string version = 3;
optional string dbservername = 4;
optional string token = 5;
optional bool loginAsAnotherPlayer = 6;
optional bool noPersistenceThisSession = 7;
optional string loginAsPlayer = 8;
optional string clientDownloader = 9;
optional string machineId = 10;
optional string machineIdDebugInfo = 18;
optional int32 timezoneutcbias = 11;
optional int32 platform = 12;
optional string platformString = 13;
optional string locale = 14;
optional string twofactorcode = 15;
optional string twofactorname = 16;
optional string twofactortrustmachine = 17;
}
message InitialClientHandshake {
required FrontendProtocolVersion protocolVersion = 1 [default = CURRENT_VERSION];
required PubSubServerTypes serverType = 2;
}
message ClientCredentials {
required uint64 sessionid = 1;
required bytes iv = 2;
required bytes encryptedToken = 3;
}
message LoginQueueStatus {
required uint64 placeInLine = 1;
required uint64 numberOfPlayersInLine = 2;
}
message SessionEncryptionChanged {
required uint32 randomNumberIndex = 1 [default = 1];
required bytes encryptedRandomNumber = 2;
}
message ExtendedLoginError {
optional ExtendedLoginErrors error = 1;
}
message EncryptedTrafficHeader {
required uint32 randomNumberIndex = 1;
required bytes encryptedTraffic = 2;
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,6 @@
syntax = "proto2";
package Gazillion;
import "google/protobuf/descriptor.proto";

View file

@ -0,0 +1,10 @@
syntax = "proto2";
package Gazillion;
enum GlobalEventUpdateType {
eGlobalEventUpdate_EventData = 0;
eGlobalEventUpdate_Leaderboard = 1;
eGlobalEventUpdate_Count = 2;
}

View file

@ -0,0 +1,225 @@
syntax = "proto2";
package Gazillion;
import "ChatCommon.proto";
import "CommonMessages.proto";
enum GroupingOperationType {
eGOP_InvitePlayer = 1;
eGOP_AcceptInvite = 2;
eGOP_ServerNotification = 3;
eGOP_KickPlayer = 4;
}
enum GroupingOperationResult {
eGOPR_Success = 1;
eGOPR_SystemError = 2;
eGOPR_TargetPlayerNotFound = 3;
eGOPR_TargetedSelf = 4;
eGOPR_AlreadyHasInvite = 5;
eGOPR_PartyFull = 6;
eGOPR_NotLeader = 7;
eGOPR_PendingPartyDisbanded = 8;
eGOPR_AutoParyPreventsKick = 9;
eGOPR_PartyPortalLeadsToMatch = 10;
eGOPR_AlreadyInParty = 11;
}
enum GroupingStateOfPlayer {
eGSOP_Solo = 1;
eGSOP_PendingInvite = 2;
eGSOP_InGroup = 3;
}
message PerPlayerInfo {
required string playerName = 1;
required uint64 playerSessionId = 2;
required uint64 playerDbId = 3;
}
message ClientInvitedToGroup {
required string invitingPlayerName = 1;
required uint64 groupId = 2;
required bool usePortal = 3;
required bool hasTemporaryRegions = 4;
}
message ClientInviteAcceptFailed {
}
message ClientCreateGroup {
required uint64 groupId = 1;
required GroupType groupType = 2;
required uint64 leaderSessionId = 3;
required string leaderName = 4;
}
message PlayerJoinedGroup {
required string joiningPlayerName = 1;
required uint64 playerSessionId = 2;
required uint64 groupId = 3;
}
message GroupChangeType {
required uint64 groupId = 1;
required GroupType type = 2;
required bool confirm = 3;
}
message PlayerLeftGroup {
required string leaverName = 1;
required uint64 playerSessionId = 2;
optional uint64 newLeaderSessionId = 3;
required uint64 groupId = 4;
required GroupLeaveReason leaveReason = 5;
}
message PlayerChangedGroupLeader {
required uint64 requestingGameId = 1;
required uint64 groupId = 2;
required PerPlayerInfo newLeader = 3;
required PerPlayerInfo oldLeader = 4;
}
message ClientBootedFromGroup {
required uint64 groupId = 1;
required GroupLeaveReason leaveReason = 2;
}
message KickGroupMemberAttemptFailed {
required GroupingOperationResult reason = 1;
}
message PlayerDeclinedInvite {
optional string declinerName = 1;
optional uint64 declinerSessionId = 2;
}
message CurrentPartyInfo {
required uint64 groupId = 1;
required GroupType groupType = 2;
required PerPlayerInfo leader = 3;
repeated PerPlayerInfo members = 4;
}
message ChatResponseToExternalLogin {
optional bytes someresponse = 1;
}
message ChatNormalMessage {
required ChatRoomTypes roomType = 1;
required string fromPlayerName = 2;
required ChatMessage theMessage = 4;
optional int32 prestigeLevel = 5;
}
message ChatTellMessage {
required string fromPlayerName = 1;
required ChatMessage theMessage = 3;
optional int32 prestigeLevel = 4;
}
message ChatBroadcastMessage {
required ChatRoomTypes roomType = 1;
required string fromPlayerName = 2;
required ChatMessage theMessage = 3;
optional int32 prestigeLevel = 4;
}
message ChatErrorMessage {
required ChatErrorMessages errorMessage = 1;
}
message GroupingReportInvitationDestinationForPortal {
required uint64 acceptingPlayerDbId = 1;
required uint64 invitingPlayerDbId = 2;
required uint64 requestingGameId = 3;
required bool usePortal = 4;
}
message GroupingOperationResultMsg {
required uint64 requestingGameId = 1;
required uint64 requestingPlayerDbId = 2;
required GroupingOperationType opType = 3;
required GroupingOperationResult opResult = 4;
optional bool hasTemporaryRegions = 5;
optional uint64 groupId = 6;
optional GroupType groupType = 7 [default = GroupType_Invalid];
optional PerPlayerInfo leaderInfo = 8;
repeated PerPlayerInfo currentPartyInfo = 9;
}
message GroupingManagerRemovedPlayer {
required uint64 requestingGameId = 1;
required PerPlayerInfo removedPlayer = 2;
required uint64 groupId = 3;
optional PerPlayerInfo newLeader = 4;
optional uint64 previousLeaderDbId = 6;
required GroupLeaveReason leaveReason = 5;
}
message GroupingManagerAddedPlayer {
required uint64 requestingGameId = 1;
required PerPlayerInfo addedPlayer = 2;
required uint64 groupId = 3;
}
message GroupingManagerCreateGroup {
required uint64 requestingGameId = 1;
required uint64 groupId = 2;
required GroupType groupType = 3;
required PerPlayerInfo leaderInfo = 4;
}
message GroupingManagerGroupChangeType {
required uint64 requestingGameId = 1;
required uint64 groupId = 2;
required GroupType type = 3;
}
message GroupingManagerPlayerEnteredRegion {
required uint64 playerDbId = 1;
required uint64 requestingGameId = 2;
required uint64 groupId = 3;
required GroupType groupType = 4;
optional PerPlayerInfo leaderInfo = 5;
repeated PerPlayerInfo members = 6;
}
message GroupingManagerUpdatedPartyBoostCount {
required uint64 requestingGameId = 1;
required uint64 partyBoostCondition = 2;
required uint64 groupId = 3;
required uint32 count = 4;
optional uint64 requestingPlayer = 5;
}
message ChatCreateChatRoomResult {
required uint64 requestingGameId = 3;
optional bool success = 1 [default = false];
optional string reason = 2;
}
message ChatAddPlayerToRoomResult {
required uint64 requestingGameId = 3;
optional bool success = 1 [default = false];
optional string reason = 2;
}
message ChatScrubTextResult {
required uint64 requestingGameId = 1;
required string textOriginal = 2;
required string textScrubbed = 3;
required uint64 remoteJobId = 4;
}
message ChatServerNotification {
required string theMessage = 1;
}
message ChatClientIsLoggedIn {
required uint64 requestingGameId = 1;
required uint64 playerDbId = 2;
}

View file

@ -0,0 +1,242 @@
syntax = "proto2";
package Gazillion;
enum GuildFormResultCode {
eGFCInternalError = 0;
eGFCGuildInErrorState = 1;
eGFCNotOnline = 2;
eGFCRestrictedName = 3;
eGFCDuplicateName = 4;
eGFCAlreadyInGuild = 5;
eGFCWaitingForDatabase = 6;
eGFCSuccess = 7;
}
enum GuildChangeNameResultCode {
eGCNRCInternalError = 0;
eGCNRCGuildInErrorState = 1;
eGCNRCNotOnline = 2;
eGCNRCInvalidGuild = 3;
eGCNRCNotInGuild = 4;
eGCNRCRestrictedName = 5;
eGCNRCDuplicateName = 6;
eGCNRCNoPermission = 7;
eGCNRCWaitingForDatabase = 8;
eGCNRCSuccess = 9;
}
enum GuildChangeMotdResultCode {
eGCMotdRCInternalError = 0;
eGCMotdRCGuildInErrorState = 1;
eGCMotdRCNotOnline = 2;
eGCMotdRCInvalidGuild = 3;
eGCMotdRCNotInGuild = 4;
eGCMotdRCNoPermission = 5;
eGCMotdRCWaitingForDatabase = 6;
eGCMotdRCSuccess = 7;
}
enum GuildInviteResultCode {
eGIRCInternalError = 0;
eGIRCGuildInErrorState = 1;
eGIRCGuildFull = 3;
eGIRCInvitedInGuild = 4;
eGIRCInvitedInOtherGuild = 5;
eGIRCInvitedUnkownPlayer = 6;
eGIRCInviterNotInGuild = 7;
eGIRCInviterNoPermission = 8;
eGIRCSuccess = 10;
}
enum GuildRespondToInviteCode {
eGRICRejected = 0;
eGRICAccepted = 1;
eGRICAutoIgnored = 2;
}
enum GuildRespondToInviteResultCode {
eGRIRCInternalError = 0;
eGRIRCGuildInErrorState = 1;
eGRIRCNotOnline = 2;
eGRIRCInvalidGuild = 3;
eGRIRCAlreadyInGuild = 4;
eGRIRCGuildFull = 5;
eGRIRCNotInvited = 6;
eGRIRCJoined = 7;
eGRIRCRejected = 8;
eGRIRAlreadyInOtherGuild = 9;
}
enum GuildMembership {
eGMNone = 0;
eGMMember = 1;
eGMOfficer = 2;
eGMLeader = 3;
}
enum GuildChangeMemberResultCode {
eGCMRCInternalError = 0;
eGCMRCGuildInErrorState = 1;
eGCMRCNotOnline = 2;
eGCMRCInitiatorNotInGuild = 3;
eGCMRCInitiatorNoPermission = 4;
eGCMRCUnknownMember = 5;
eGCMRCNoChange = 6;
eGCMRCCantModifyLeader = 7;
eGCMRCRequiresStaff = 8;
eGCMRCRequiresLeader = 9;
eGCMRCNoTransferLeadership = 10;
eGCMRCSuccess = 11;
eGCMRCSuccessGuildDissolved = 12;
}
message GuildForm {
required uint64 playerId = 1;
required string guildName = 2;
required uint64 itemId = 3 [default = 0];
}
message GuildFormResult {
required string guildName = 1;
required GuildFormResultCode resultCode = 2;
required uint64 playerId = 3;
optional uint64 itemId = 4;
}
message GuildDisbanded {
required uint64 guildId = 1;
required string disbandingPlayerName = 2;
}
message GuildChangeName {
required uint64 playerId = 1;
required string guildName = 2;
}
message GuildChangeNameResult {
required string submittedName = 1;
required GuildChangeNameResultCode resultCode = 2;
}
message GuildNameChanged {
required uint64 guildId = 1;
required string newGuildName = 2;
optional string changedByPlayerName = 3;
}
message GuildChangeMotd {
required uint64 playerId = 1;
required string guildMotd = 2;
}
message GuildChangeMotdResult {
required string submittedMotd = 1;
required GuildChangeMotdResultCode resultCode = 2;
}
message GuildMotdChanged {
required uint64 guildId = 1;
required string newGuildMotd = 2;
optional string changedByPlayerName = 3;
}
message GuildMemberNameChanged {
required uint64 guildId = 1;
required uint64 playerId = 2;
required string newMemberName = 3;
}
message GuildInvite {
required string toInvitePlayerName = 1;
required uint64 invitedByPlayerId = 2;
}
message GuildInviteResult {
required GuildInvite invite = 1;
required GuildInviteResultCode resultCode = 2;
}
message GuildInvitedToJoin {
required uint64 guildId = 1;
required string guildName = 2;
required string invitedByPlayerName = 3;
}
message GuildRespondToInvite {
required uint64 playerId = 1;
required uint64 guildId = 2;
required GuildRespondToInviteCode respondCode = 3;
}
message GuildRespondToInviteResult {
required GuildRespondToInviteResultCode resultCode = 1;
required string guildName = 2;
}
message GuildMemberInfo {
required uint64 playerId = 1;
required string playerName = 2;
required GuildMembership membership = 3;
}
message GuildChangeMember {
required uint64 sourcePlayerId = 1;
required string targetPlayerName = 2;
required GuildMembership targetNewMembership = 3;
}
message GuildChangeMemberResult {
required string targetPlayerName = 1;
required GuildChangeMemberResultCode resultCode = 2;
}
message GuildMembersInfoChanged {
required uint64 guildId = 1;
repeated GuildMemberInfo members = 2;
required string initiatingMemberName = 3;
optional bool newMember = 4 [default = false];
}
message GuildCompleteInfo {
required uint64 guildId = 1;
required string guildName = 2;
repeated GuildMemberInfo members = 3;
optional string guildMotd = 4;
}
message GuildMessageSetToServer {
optional GuildNameChanged guildNameChanged = 1;
optional GuildMembersInfoChanged guildMembersInfoChanged = 2;
optional GuildCompleteInfo guildCompleteInfo = 3;
optional GuildDisbanded guildDisbanded = 4;
optional GuildFormResult guildFormResult = 5;
optional GuildMotdChanged guildMotdChanged = 6;
optional GuildMemberNameChanged guildMemberNameChanged = 7;
}
message GuildMessageSetToClient {
optional GuildChangeNameResult guildChangeNameResult = 2;
optional GuildInviteResult guildInviteResult = 3;
optional GuildRespondToInviteResult guildRespondToInviteResult = 4;
optional GuildChangeMemberResult guildChangeMemberResult = 5;
optional GuildInvitedToJoin guildInvitedToJoin = 6;
optional GuildChangeMotdResult guildChangeMotdResult = 11;
optional GuildNameChanged guildNameChanged = 7;
optional GuildMembersInfoChanged guildMembersInfoChanged = 8;
optional GuildCompleteInfo guildCompleteInfo = 9;
optional GuildDisbanded guildDisbanded = 10;
optional GuildFormResult guildFormResult = 1;
optional GuildMotdChanged guildMotdChanged = 12;
optional GuildMemberNameChanged guildMemberNameChanged = 13;
}
message GuildMessageSetToPlayerManager {
optional GuildForm guildForm = 1;
optional GuildChangeName guildChangeName = 2;
optional GuildInvite guildInvite = 3;
optional GuildRespondToInvite guildRespondToInvite = 4;
optional GuildChangeMember guildChangeMember = 5;
optional GuildChangeMotd guildChangeMotd = 6;
}

View file

@ -0,0 +1,73 @@
syntax = "proto2";
package Gazillion;
enum MatchPhase {
MP_Created = 0;
MP_Initialized = 1;
MP_Started = 2;
MP_Finished = 3;
MP_Shutdown = 4;
}
enum MatchPlayerEventType {
MPET_Left = 0;
MPET_Joined = 1;
}
enum MatchBalanceMethod {
MBM_None = 0;
MBM_PlayerRating = 1;
MBM_FixedTeam = 2;
}
enum MatchCheatRequestType {
MCRT_None = 0;
MCRT_ForceMatchStart = 1;
MCRT_ForceMatchEnd = 2;
MCRT_SwitchTeams = 3;
}
enum MatchControlEventType {
MCET_None = 0;
MCET_ForceStart = 1;
MCET_ForceEnd = 2;
}
message MatchTeamDescription {
required uint64 teamPrototypeGuid = 1;
required uint32 minPlayers = 2;
required uint32 maxPlayers = 3;
}
message MatchGameDescription {
required uint64 queuePrototypeGuid = 1;
required uint64 gamePrototypeGuid = 2;
required uint64 regionPrototypeId = 3;
repeated MatchTeamDescription teams = 4;
}
message MatchQueueDescription {
required uint64 queuePrototypeGuid = 1;
required MatchBalanceMethod balanceMethod = 2;
required uint32 regionLevel = 3;
repeated MatchGameDescription games = 4;
}
message MatchTeamResultData {
required uint64 teamPrototypeGuid = 1;
required bool creditWithWin = 2;
}
message MatchResultData {
repeated MatchTeamResultData teams = 1;
}
message MatchPlayerStatisticsSummary {
required uint64 queuePrototypeGuid = 1;
required uint64 gamePrototypeGuid = 2;
required uint32 gamesPlayed = 3;
required uint32 gamesWon = 4;
required uint32 ratingSummary = 5;
}

View file

@ -0,0 +1,82 @@
syntax = "proto2";
package Gazillion;
enum PubSubServerTypes {
FRONTEND_SERVER = 0;
GAME_INSTANCE_SERVER_USER = 1;
GAME_INSTANCE_SERVER_PLAYERMGR = 2;
GAME_INSTANCE_SERVER_GROUPING = 3;
GAME_INSTANCE_SERVER_METRICS = 4;
PLAYERMGR_SERVER_FRONTEND = 5;
PLAYERMGR_SERVER_SITEMGR_CONTROL = 6;
PLAYERMGR_SERVER_SOCIAL_COMMON = 7;
GROUPING_MANAGER_FRONTEND = 8;
FAKE_CHAT_LOAD_TESTER = 9;
GAME_INSTANCE_SERVER_BILLING = 10;
GAME_INSTANCE_SERVER_GLOBAL_GAME_EVENT = 12;
PLAYERMGR_METRICS = 13;
GAME_INSTANCE_SERVER_MOBILE_FRONTEND = 14;
GAME_INSTANCE_SERVER_LEADERBOARD = 15;
LEADERBOARD_SERVER_GLOBAL_GAME_EVENT = 16;
NUM_SERVER_TYPES = 18;
}
message PubSubPublish {
optional PubSubServerTypes serverType = 1 [default = NUM_SERVER_TYPES];
optional string serviceIPAddress = 2;
optional string servicePort = 3;
optional string serviceVersion = 4;
}
message PubSubSubscribe {
optional PubSubServerTypes serverType = 1 [default = NUM_SERVER_TYPES];
optional int32 subscriptionId = 2;
optional string serviceVersion = 3;
}
message PubSubEventNotification {
optional PubSubServerTypes serverType = 1 [default = NUM_SERVER_TYPES];
optional int32 subscriptionId = 2;
optional string serviceIPAddress = 3;
optional string servicePort = 4;
optional string serviceVersion = 5;
optional bool requestResignation = 6;
}
message PubSubOrderlyShutdown {
optional string message = 1;
optional int32 minutesToShutdown = 2 [default = 15];
}
message PubSubForceLogRollover {
}
message PubSubServerStatusUpdate {
enum ServerStatusServiceState {
SSSS_SERVICE_STOPPED = 1;
SSSS_SERVICE_START_PENDING = 2;
SSSS_SERVICE_STOP_PENDING = 3;
SSSS_SERVICE_RUNNING = 4;
SSSS_SERVICE_CONTINUE_PENDING = 5;
SSSS_SERVICE_PAUSE_PENDING = 6;
SSSS_SERVICE_PAUSED = 7;
}
optional float processCpuPercentage = 1;
optional float processRamPercentage = 2;
optional int64 processRamUsageBytes = 3;
optional float totalCpuUsagePercentage = 4;
optional float totalRamUsagePercentage = 5;
optional ServerStatusServiceState state = 6 [default = SSSS_SERVICE_STOPPED];
optional string hostname = 7;
optional string serviceName = 8;
repeated string connectedHosts = 9;
repeated string connectedServices = 10;
optional bool gisIsDraining = 11;
optional int32 gisPlayerCount = 12;
}
message PubSubServerStatusRequest {
}

View file

@ -0,0 +1,184 @@
syntax = "proto2";
package google.protobuf;
message FileDescriptorSet {
repeated FileDescriptorProto file = 1;
}
message FileDescriptorProto {
optional string name = 1;
optional string package = 2;
repeated string dependency = 3;
repeated int32 public_dependency = 10;
repeated int32 weak_dependency = 11;
repeated DescriptorProto message_type = 4;
repeated EnumDescriptorProto enum_type = 5;
repeated ServiceDescriptorProto service = 6;
repeated FieldDescriptorProto extension = 7;
optional FileOptions options = 8;
optional SourceCodeInfo source_code_info = 9;
}
message DescriptorProto {
message ExtensionRange {
optional int32 start = 1;
optional int32 end = 2;
}
optional string name = 1;
repeated FieldDescriptorProto field = 2;
repeated FieldDescriptorProto extension = 6;
repeated DescriptorProto nested_type = 3;
repeated EnumDescriptorProto enum_type = 4;
repeated ExtensionRange extension_range = 5;
optional MessageOptions options = 7;
}
message FieldDescriptorProto {
enum Type {
TYPE_DOUBLE = 1;
TYPE_FLOAT = 2;
TYPE_INT64 = 3;
TYPE_UINT64 = 4;
TYPE_INT32 = 5;
TYPE_FIXED64 = 6;
TYPE_FIXED32 = 7;
TYPE_BOOL = 8;
TYPE_STRING = 9;
TYPE_GROUP = 10;
TYPE_MESSAGE = 11;
TYPE_BYTES = 12;
TYPE_UINT32 = 13;
TYPE_ENUM = 14;
TYPE_SFIXED32 = 15;
TYPE_SFIXED64 = 16;
TYPE_SINT32 = 17;
TYPE_SINT64 = 18;
}
enum Label {
LABEL_OPTIONAL = 1;
LABEL_REQUIRED = 2;
LABEL_REPEATED = 3;
}
optional string name = 1;
optional int32 number = 3;
optional Label label = 4;
optional Type type = 5;
optional string type_name = 6;
optional string extendee = 2;
optional string default_value = 7;
optional FieldOptions options = 8;
}
message EnumDescriptorProto {
optional string name = 1;
repeated EnumValueDescriptorProto value = 2;
optional EnumOptions options = 3;
}
message EnumValueDescriptorProto {
optional string name = 1;
optional int32 number = 2;
optional EnumValueOptions options = 3;
}
message ServiceDescriptorProto {
optional string name = 1;
repeated MethodDescriptorProto method = 2;
optional ServiceOptions options = 3;
}
message MethodDescriptorProto {
optional string name = 1;
optional string input_type = 2;
optional string output_type = 3;
optional MethodOptions options = 4;
}
message FileOptions {
enum OptimizeMode {
SPEED = 1;
CODE_SIZE = 2;
LITE_RUNTIME = 3;
}
optional string java_package = 1;
optional string java_outer_classname = 8;
optional bool java_multiple_files = 10 [default = false];
optional bool java_generate_equals_and_hash = 20 [default = false];
optional OptimizeMode optimize_for = 9 [default = SPEED];
optional string go_package = 11;
optional bool cc_generic_services = 16 [default = false];
optional bool java_generic_services = 17 [default = false];
optional bool py_generic_services = 18 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message MessageOptions {
optional bool message_set_wire_format = 1 [default = false];
optional bool no_standard_descriptor_accessor = 2 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message FieldOptions {
enum CType {
STRING = 0;
CORD = 1;
STRING_PIECE = 2;
}
optional CType ctype = 1 [default = STRING];
optional bool packed = 2;
optional bool lazy = 5 [default = false];
optional bool deprecated = 3 [default = false];
optional string experimental_map_key = 9;
optional bool weak = 10 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message EnumOptions {
optional bool allow_alias = 2 [default = true];
repeated UninterpretedOption uninterpreted_option = 999;
}
message EnumValueOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message ServiceOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message MethodOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message UninterpretedOption {
message NamePart {
required string name_part = 1;
required bool is_extension = 2;
}
repeated NamePart name = 2;
optional string identifier_value = 3;
optional uint64 positive_int_value = 4;
optional int64 negative_int_value = 5;
optional double double_value = 6;
optional bytes string_value = 7;
optional string aggregate_value = 8;
}
message SourceCodeInfo {
message Location {
repeated int32 path = 1;
repeated int32 span = 2;
optional string leading_comments = 3;
optional string trailing_comments = 4;
}
repeated Location location = 1;
}

View file

@ -0,0 +1,47 @@
syntax = "proto2";
package Gazillion;
enum AuthServerErrorCode {
AUTH_ERROR_SUCCESS = 0;
AUTH_ERROR_ACCOUNT_EXISTS = 1;
AUTH_ERROR_PLAYERNAME_INUSE = 2;
}
message AuthTicket {
optional bytes sessionKey = 1;
optional bytes sessionToken = 2;
required uint64 sessionId = 3;
optional string errorMessage = 4;
optional string frontendServer = 5;
optional string frontendPort = 6;
optional string platformTicket = 7;
optional bool presalePurchase = 8;
optional string tosurl = 9;
optional bool success = 10;
optional bool hasnews = 12;
optional string newsurl = 13;
optional bool hasPendingGift = 14;
optional string pendingGiftUrl = 15;
optional bool hasVerifiedEmail = 16;
optional bool isAllowedToChat = 17 [default = true];
optional bool isAgeRestrictionEnabled = 18 [default = false];
optional int64 ageRestrictionEndTimeUtc = 19;
optional int64 ageRestrictionWarningTimeUtc1 = 20;
optional string ageRestrictionType = 21;
optional int64 ageRestrictionWarningTimeUtc2 = 22;
optional int64 ageRestrictionWarningTimeUtc3 = 23;
optional string countryCode = 24;
optional string continentCode = 25;
optional bool preReqCreateAccount = 26;
optional bool preReqRenamePlayer = 27;
repeated string preReqAcceptDocs = 28;
}
message ConsoleCreateAccountMessageResponse {
optional AuthServerErrorCode errorCode = 1;
optional string errorMsg = 2;
repeated string nameSuggestions = 3;
repeated string preReqAcceptDocs = 4;
}

View file

@ -0,0 +1,136 @@
syntax = "proto2";
package Gazillion;
enum BuyItemResultErrorCodes {
BUY_RESULT_ERROR_SUCCESS = 0;
BUY_RESULT_ERROR_ALREADY_HAVE_AVATAR = 1;
BUY_RESULT_ERROR_ALREADY_HAVE_STASH_INV = 2;
BUY_RESULT_ERROR_ALREADY_HAVE_PERMABUFF = 3;
BUY_RESULT_ERROR_INSUFFICIENT_BALANCE = 4;
BUY_RESULT_ERROR_IS_GIFT = 5;
BUY_RESULT_ERROR_UNKNOWN_RECIPIENT = 6;
BUY_RESULT_ERROR_PRICE_MISMATCH = 7;
BUY_RESULT_ERROR_GIFTING_UNAVAILABLE = 8;
BUY_RESULT_ERROR_UNKNOWN = 9;
BUY_RESULT_ERROR_GIFT_MESSAGE_TOO_LONG = 10;
BUY_RESULT_ERROR_SOLD_OUT = 11;
BUY_RESULT_ERROR_TEMPORARILY_UNAVAILABLE_RETRY_POSSIBLE = 12;
BUY_RESULT_ERROR_PREPURCHASE_ALREADY_OWNED = 13;
}
enum RedeemCodeResultErrorCodes {
REDEEM_CODE_RESULT_ERROR_SUCCESS = 0;
REDEEM_CODE_RESULT_ERROR_ALREADY_REDEEMED = 1;
REDEEM_CODE_RESULT_ERROR_INVALID_KEY = 2;
REDEEM_CODE_RESULT_ERROR_UNKNOWN = 3;
}
message MHCatalogEntryType {
required string name = 1;
required int32 order = 2;
}
message MHCatalogEntryTypeModifier {
required string name = 1;
required int32 order = 2;
}
message MHBannerUrl {
required string type = 1;
required string url = 2;
}
message MHLocalizedCatalogUrls {
required string localeId = 1;
optional string storeHomePageUrl = 2;
repeated MHBannerUrl storeBannerPageUrls = 3;
optional string storeRealMoneyUrl = 4;
}
message MHLocalizedCatalogEntry {
required string language_id = 1;
optional string description = 2;
optional string title = 3;
optional string releaseDate = 5;
required int64 itemPrice = 6;
}
message MHLocalizedCatalogEntryUrlOrData {
required string language_id = 1;
optional string url = 2;
optional bytes imagedata = 3;
}
message MHCatalogGuidEntry {
optional uint64 prototypeGuid = 1;
optional uint64 itemPrototypeRuntimeIdForClient = 2;
optional int32 quantity = 3 [default = 1];
}
message MarvelHeroesCatalogEntry {
required int64 skuId = 1;
repeated MHCatalogGuidEntry guidItems = 9;
repeated MHCatalogGuidEntry additionalGuidItems = 10;
repeated MHLocalizedCatalogEntry localizedEntries = 5;
repeated MHLocalizedCatalogEntryUrlOrData infourls = 2;
repeated MHLocalizedCatalogEntryUrlOrData contentdata = 3;
optional MHCatalogEntryType type = 6;
repeated MHCatalogEntryTypeModifier typeModifier = 7;
}
message GiftHistoryEntry {
optional int64 transactionId = 1;
required int64 skuId = 2;
required int64 timestamp = 3;
optional string message = 4;
}
message GiftHistoryForPlayerEntry {
optional int64 platformAccountId = 1;
required string name = 2;
repeated GiftHistoryEntry historyEntries = 3;
}
message AwardItem {
required string awardId = 1;
required int64 skuId = 2;
required int64 quantity = 3;
}
message AwardCouponDescription {
required string localeId = 1;
required string description = 2;
}
message AwardCoupon {
required string couponId = 1;
required float discount = 2;
required string couponState = 3;
required int64 expirationDateUtc = 4;
repeated AwardCouponDescription descriptions = 5;
required int64 wsec = 6;
}
message AwardEntry {
required string awardType = 1;
optional AwardItem item = 2;
optional AwardCoupon coupon = 3;
}
message BillingPlayStationUpdateEntitlementStatus {
required string EntitlementId = 1;
required int32 UseCount = 2;
required int32 UseLimit = 3;
}
message BillingPlayStationUpdateEntitlementStatusResponse {
required string EntitlementId = 1;
required int32 UseCount = 2;
required int32 UseLimit = 3;
required bool Consumed = 4;
}
message BillingPlayStationProcessPendingEntitlementTransactions {
}

View file

@ -0,0 +1,51 @@
syntax = "proto2";
package Gazillion;
import "CommonMessages.proto";
enum ChatRoomTypes {
CHAT_ROOM_TYPE_LOCAL = 0;
CHAT_ROOM_TYPE_SAY = 1;
CHAT_ROOM_TYPE_PARTY = 2;
CHAT_ROOM_TYPE_TELL = 3;
CHAT_ROOM_TYPE_BROADCAST_ALL_SERVERS = 4;
CHAT_ROOM_TYPE_SOCIAL_ZH = 22;
CHAT_ROOM_TYPE_SOCIAL_EN = 5;
CHAT_ROOM_TYPE_SOCIAL_FR = 6;
CHAT_ROOM_TYPE_SOCIAL_DE = 7;
CHAT_ROOM_TYPE_SOCIAL_EL = 8;
CHAT_ROOM_TYPE_SOCIAL_JP = 21;
CHAT_ROOM_TYPE_SOCIAL_KO = 9;
CHAT_ROOM_TYPE_SOCIAL_PT = 10;
CHAT_ROOM_TYPE_SOCIAL_RU = 11;
CHAT_ROOM_TYPE_SOCIAL_ES = 12;
CHAT_ROOM_TYPE_TRADE = 13;
CHAT_ROOM_TYPE_LFG = 14;
CHAT_ROOM_TYPE_GUILD = 15;
CHAT_ROOM_TYPE_FACTION = 16;
CHAT_ROOM_TYPE_EMOTE = 17;
CHAT_ROOM_TYPE_ENDGAME = 18;
CHAT_ROOM_TYPE_METAGAME = 19;
CHAT_ROOM_TYPE_GUILD_OFFICER = 20;
CHAT_ROOM_TYPE_NUM_TYPES = 23;
}
enum ChatErrorMessages {
CHAT_ERROR_NO_SUCH_USER = 0;
CHAT_ERROR_COMMAND_NOT_RECOGNIZED = 1;
CHAT_ERROR_NUM_ERRORS = 2;
}
message ChatMessageAttachments {
repeated bytes attachmments = 1;
optional int64 emoteDataRef = 2;
repeated NetStructItemSpec itemSpecs = 3;
}
message ChatMessage {
optional string body = 1;
optional int64 bodyId = 2;
optional ChatMessageAttachments attachment = 3;
}

View file

@ -0,0 +1,859 @@
syntax = "proto2";
package Gazillion;
import "GazillionCommon.proto";
import "CommonMessages.proto";
import "ChatCommon.proto";
import "Guild.proto";
import "GlobalEventsCommon.proto";
message NetMessageReadyForGameJoin {
required int32 wipesDataIfMismatchedInDb = 1 [default = 0];
optional bool wipePlayerRecordsOnLogin = 2 [default = false];
optional string domainLoginName = 3;
optional bytes playerImportData = 4;
required string localeName = 5;
optional int32 clientOperatingSystem = 6;
required bool streamingSession = 7 [default = false];
}
message NetMessagePlayerSystemMetrics {
required int32 compatLevelCpu = 1 [default = -1];
required int32 compatLevelGpu = 2 [default = -1];
required int32 compatLevelComposite = 3 [default = -1];
optional string osName = 4;
optional string cpuName = 5;
optional string ramName = 6;
optional string displayDeviceName = 7;
optional bool displayDeviceDualGPU = 8;
optional string displayDeviceDriverDate = 9;
optional string userLanguage = 10;
}
message NetMessagePlayerSteamInfo {
required uint64 steamUserId = 1;
optional int32 updateSteamSeqNum = 2;
}
message NetMessageSyncTimeRequest {
required int64 gameTimeClientSent = 1;
required int64 dateTimeClientSent = 2;
}
message NetMessageSetTimeDialation {
required int64 gameTimeDialationStarted = 1;
required int64 dateTimeDialationStarted = 2;
required float dialation = 3;
}
message NetMessageIsRegionAvailable {
required uint64 regionPrototype = 1;
required bool isAvailable = 2;
}
message NetMessageUpdateAvatarState {
required bytes archiveData = 1;
}
message NetMessageCellLoaded {
required uint32 cellId = 1;
required uint64 regionId = 2;
}
message NetMessageTeleportAckResponse {
required uint32 ackseq = 1;
}
message NetMessageAdminCommand {
required string command = 1;
}
message NetMessageTryActivatePower {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
optional uint64 idTargetEntity = 3;
optional NetStructPoint3 targetPosition = 4;
optional float movementSpeed = 5;
optional uint64 movementTimeMS = 6;
optional uint32 powerRandomSeed = 7;
optional uint64 itemSourceId = 8;
required uint32 fxRandomSeed = 9;
optional uint64 triggeringPowerPrototypeId = 10;
}
message NetMessagePowerRelease {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
optional uint64 idTargetEntity = 3;
optional NetStructPoint3 targetPosition = 4;
}
message NetMessageTryCancelPower {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
required uint32 endPowerFlags = 3;
}
message NetMessageTryCancelActivePower {
required uint64 idUserEntity = 1;
}
message NetMessageContinuousPowerUpdateToServer {
required uint64 powerPrototypeId = 1;
required int32 avatarIndex = 2;
optional uint64 idTargetEntity = 3;
optional NetStructPoint3 targetPosition = 4;
optional uint32 randomSeed = 5;
}
message NetMessageCancelPendingAction {
required int32 avatarIndex = 1;
}
message NetMessageStartAIDebugUI {
required uint64 idTargetNPC = 1;
}
message NetMessageStopAIDebugUI {
required uint64 idTargetNPC = 1;
}
message NetMessageStartAIPerformanceUI {
}
message NetMessageStopAIPerformanceUI {
}
message NetMessageStartMissionDebugUI {
required uint64 idTargetAgent = 1;
required uint64 missionPrototypeRefId = 2;
required string missionListMatchPattern = 3;
}
message NetMessageStopMissionDebugUI {
required uint64 idTargetAgent = 1;
}
message NetMessageStartPropertiesDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopPropertiesDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStartConditionsDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopConditionsDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStartPowersDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopPowersDebugUI {
required uint64 idTargetEntity = 1;
}
message NetStructMessageStoreMetric {
required AvailableStoreActions storeActionEnum = 1;
required uint64 unixTimestamp = 2;
optional uint64 targetPrototypeId = 3;
}
message NetMessagePing {
required bool displayOutput = 1;
required uint64 sendClientTime = 2;
optional uint64 sendGameTime = 3;
optional uint64 requestNetReceivedGameTime = 4;
optional uint64 lastClientLatency = 5;
optional float lastFps = 6;
optional uint64 regionPrototype = 7;
optional uint32 cpulevel = 8;
optional uint32 gpulevel = 9;
optional uint32 compositelevel = 10;
optional string countrycode = 11;
optional float minFps = 12;
optional NetStructPoint3 minFpsPos = 13;
repeated NetStructMessageStoreMetric storeMetrics = 14;
optional bool streamingclient = 15 [default = false];
}
message NetMessageFPS {
required float avgFps = 1;
required float minFps = 2;
required uint32 numHitches = 3;
required uint64 regionPrototype = 4;
required uint32 cpulevel = 5;
required uint32 gpulevel = 6;
required uint32 compositelevel = 7;
optional bool streamingclient = 8 [default = false];
}
message NetMessagePickupInteraction {
required uint64 idTarget = 1;
required int32 avatarIndex = 2;
optional bool useInteractFallbackRange = 3;
}
message NetMessageTryInventoryMove {
required uint64 itemId = 1;
required uint64 toInventoryOwnerId = 2;
required uint64 toInventoryPrototype = 3;
required uint32 toSlot = 4;
optional bool isStackSplit = 5;
}
message NetMessageTryMoveCraftingResultsToGeneral {
}
message NetMessageInventoryTrashItem {
required uint64 itemId = 1;
}
message NetMessageThrowInteraction {
required uint64 idTarget = 1;
required int32 avatarIndex = 2;
}
message NetMessagePerformPreInteractPower {
required uint64 idTarget = 1;
required int32 avatarIndex = 2;
required bool hasDialog = 3;
}
message NetMessageUseInteractableObject {
required uint64 idTarget = 1;
required int32 avatarIndex = 2;
optional uint64 missionPrototypeRef = 3;
}
message NetMessageTryCraft {
required uint64 idRecipe = 1;
required uint64 idVendor = 2;
repeated uint64 idIngredients = 3;
required bool isRecraft = 4;
}
message NetMessageUseWaypoint {
required int32 avatarIndex = 1;
required uint64 idTransitionEntity = 2;
required uint64 waypointDataRef = 3;
required uint64 regionProtoId = 4;
}
message NetMessageDebugAcquireAndSwitchToAvatar {
required uint64 avatarPrototypeId = 1;
}
message NetMessageSwitchAvatar {
required uint64 avatarPrototypeId = 1;
required uint32 avatarModeEnum = 2;
}
message NetMessageSelectPublicEventTeam {
required uint64 teamPrototypeId = 1;
}
message NetMessageAssignHotkey {
required uint64 avatarId = 1;
required uint64 prototypeRefId = 2;
required uint32 keyMappingIndex = 3;
required uint32 slotNumber = 4;
required uint32 destinationSlotNumber = 5;
}
message NetMessageUnassignHotkey {
required uint64 avatarId = 1;
required uint32 keyMappingIndex = 2;
required uint32 slotNumber = 3;
}
message NetMessageSelectAbilityKeyMapping {
required uint64 avatarId = 1;
required uint32 keyMappingIndex = 2;
}
message NetMessageAbilitySlotToAbilityBar {
required uint64 avatarId = 1;
required uint64 prototypeRefId = 2;
required uint32 keyMappingIndex = 3;
required uint32 slotNumber = 4;
}
message NetMessageAbilityUnslotFromAbilityBar {
required uint64 avatarId = 1;
required uint32 keyMappingIndex = 2;
required uint32 slotNumber = 3;
}
message NetMessageAbilitySwapInAbilityBar {
required uint64 avatarId = 1;
required uint32 slotNumberA = 2;
required uint32 slotNumberB = 3;
}
message NetMessageModCommitTemporary {
required uint64 avatarRef = 1;
required uint64 modTypeRef = 2;
repeated NetStructModChangeObject changes = 3;
}
message NetMessageModReset {
required uint64 avatarId = 1;
required uint64 modTypeRef = 2;
}
message NetMessagePowerPointAllocationCommit {
required uint64 agentRef = 1;
repeated NetStructPowerPointAllocation allocations = 2;
required uint32 powerSpecIndex = 3;
}
message NetMessageRequestDeathRelease {
required bool hitOk = 1;
required bool resurrectedFromOtherEntity = 2;
}
message NetMessageRequestResurrectDecline {
}
message NetMessageRequestResurrectAvatar {
optional uint64 targetId = 1;
}
message NetMessageReturnToHub {
}
message NetMessageRequestStoryWarp {
required uint64 storyWarpPrototypeId = 1;
required uint64 storyWarpNPC = 2;
}
message NetMessageRequestMissionRewards {
required uint64 missionPrototypeId = 1;
optional uint32 conditionIndex = 2;
optional uint64 entityId = 3;
}
message NetMessageRequestRemoveAndKillControlledAgent {
required uint64 avatarId = 1;
}
message NetMessageDamageMeter {
required uint64 encounterguid = 1;
required uint64 avatarguid = 2;
required float dps = 3;
required float damagescore = 4;
required int32 numdeaths = 5;
}
message NetMessageInvitePlayer {
optional uint64 inviteeEntityId = 1;
optional string inviteeName = 2;
optional string invitingPlayerPSNSessionId = 3;
}
message NetMessageRequestPartyJoinPortal {
}
message NetMessageDeclineGroupInvite {
}
message NetMessageLeaveGroup {
}
message NetMessageChangeGroupLeader {
required uint64 targetMemberId = 1;
}
message NetMessageBootPlayer {
required uint64 targetMemberId = 1;
}
message NetMessageDisbandGroup {
}
message NetMessageGroupChangeType {
required GroupType type = 1;
}
message NetMessageGroupChangeTypeConfirmResponse {
required uint64 playerId = 1;
required bool accept = 2;
}
message NetMessageDuelInvite {
required uint64 challengerEntityId = 1;
optional string challengerName = 2;
optional uint64 opponentEntityId = 3;
required string opponentName = 4;
}
message NetMessageDuelAccept {
required uint64 challengedEntityId = 1;
optional string challengedName = 2;
}
message NetMessageDuelCancel {
required uint64 cancellingEntityId = 1;
optional string cancellingName = 2;
}
message NetMessageMetaGameUpdateNotification {
required uint64 metaGameEntityId = 1;
}
message NetMessageChat {
required ChatRoomTypes roomType = 1;
required ChatMessage theMessage = 2;
}
message NetMessageTell {
required string targetPlayerName = 1;
required ChatMessage theMessage = 2;
}
message NetMessageReportPlayer {
required string targetPlayerName = 1;
required string reason = 2;
}
message NetMessageChatBanVote {
required string targetPlayerName = 1;
optional string reason = 2;
}
message NetMessageGetCatalog {
optional uint64 itemPrototypeRuntimeId = 1 [default = 0];
optional int64 timestamp_seconds = 3 [default = 0];
optional int64 timestamp_microseconds = 5 [default = 0];
optional string localeid = 4 [default = "en_us"];
}
message NetMessageGetCurrencyBalance {
}
message NetMessageBuyItemFromCatalog {
required int64 skuId = 1;
required int64 itemUnitPrice = 2;
optional int32 numUnits = 3 [default = 1];
}
message NetMessageBuyGiftForOtherPlayer {
required int64 skuId = 1;
required int64 itemUnitPrice = 2;
required string recipientName = 3;
optional int32 numUnits = 4 [default = 1];
optional string giftMessage = 5;
}
message NetMessagePurchaseUnlock {
required int64 agentPrototypeId = 1;
}
message NetMessageGetGiftHistory {
}
message EntityPreviewerEnum {
enum Alliance {
Ally = 0;
Enemy = 1;
Total = 2;
}
}
message NetMessageEntityPreviewerNewTargets {
required EntityPreviewerEnum.Alliance alliance = 1;
optional uint32 numNewTargets = 2;
}
message NetMessageEntityPreviewerClearTargets {
}
message NetMessageEntityPreviewerSetTargetRef {
required uint64 targetRefId = 1;
}
message NetMessageEntityPreviewerActivatePower {
required uint64 casterId = 1;
required uint64 powerRefId = 2;
required bool createTarget = 3;
required bool randomTargetPos = 4;
}
message NetMessageEntityPreviewerAddTarget {
required uint64 targetId = 1;
}
message NetMessageEntityPreviewerSetEntityState {
required uint64 targetId = 1;
required uint64 stateRefId = 2;
}
message NetMessageEntityPreviewerApplyConditions {
required uint64 targetId = 1;
required uint64 powerRefId = 2;
}
message NetMessageCreateNewPlayerWithSelectedStartingAvatar {
required uint64 startingAvatarPrototypeId = 1;
required uint32 totalTime = 2;
}
message NetMessageOnKioskStartButtonPressed {
}
message NetMessageNotifyFullscreenMovieStarted {
required uint64 moviePrototypeId = 1;
}
message NetMessageNotifyFullscreenMovieFinished {
required uint64 moviePrototypeId = 1;
required bool userCancelled = 2;
required uint32 syncRequestId = 3;
}
message NetMessageNotifyLoadingScreenFinished {
}
message NetMessageBotSetLevel {
required int32 level = 1;
}
message NetMessageBotGodMode {
}
message NetMessageBotPickAvatar {
required uint64 avatarBotDataId = 1;
optional int32 level = 2;
optional uint64 lootPrototype = 3;
optional uint32 lootTableRoll = 4;
}
message NetMessageBotRegionChange {
required uint64 regionDataId = 1;
}
message NetMessageBotWarpAreaNext {
}
message NetMessageBotLootGive {
required uint64 lootPrototype = 1;
required uint32 lootTableRoll = 2;
}
message NetMessageBotSetPvPFaction {
required uint64 factionSetPrototype = 1;
}
message NetMessageBotPvPQueue {
required uint64 pvpQueueId = 1;
}
message NetMessageGetTrackerReport {
required uint32 messageSource = 1;
required uint32 messageDirection = 2;
}
message NetMessagePlayKismetSeqDone {
required uint64 kismetSeqPrototypeId = 1;
required uint32 syncRequestId = 2;
}
message NetMessageVerifyFailedForRepId {
required uint64 repid1 = 1;
required string file = 2;
required uint32 line = 3;
required string debugmsg = 4;
optional uint64 repid2 = 5;
}
message NetMessageGracefulDisconnect {
}
message NetMessageRequestStartNewGame {
}
message NetMessageSetDialogTarget {
required uint64 targetId = 1;
required uint64 interactorId = 2;
}
message NetMessageDialogResult {
required uint64 serverId = 1;
required uint64 playerGuid = 2;
required GameDialogResultEnum buttonIndex = 3;
required bool checkboxClicked = 4;
}
message NetMessageVendorRequestBuyItemFrom {
required uint64 itemId = 1;
required uint64 vendorId = 2;
required uint32 inventorySlot = 3;
}
message NetMessageVendorRequestSellItemTo {
required uint64 itemId = 1;
required uint64 vendorId = 2;
}
message NetMessageVendorRequestDonateItemTo {
required uint64 itemId = 1;
required uint64 vendorId = 2;
}
message NetMessageVendorRequestRefresh {
required uint64 vendorId = 1;
}
message NetMessageTryModifyCommunityMemberCircle {
required uint64 circleId = 1;
required ModifyCircleOperation operation = 2;
required string playerName = 3;
}
message NetMessagePullCommunityStatus {
}
message NetMessageGuildMessageToPlayerManager {
required GuildMessageSetToPlayerManager messages = 1;
}
message NetMessageAkEvent {
required uint32 akEventId = 1;
required bool isVO = 2;
required uint32 eventType = 3;
optional uint32 cooldownMS = 4 [default = 0];
}
message NetMessageSetShowTips {
required bool showTips = 1;
}
message NetMessageSetTipSeen {
required uint64 tipDataRefId = 1;
required uint64 avatarEntityId = 2;
}
message NetMessageResetSeenTips {
}
message NetMessageHUDTutorialDismissed {
required uint64 hudTutorialProtoId = 1;
}
message NetMessageTryMoveInventoryContentsToGeneral {
required uint64 sourceInventoryPrototype = 1;
}
message NetMessageSetPlayerGameplayOptions {
required NetStructGameplayOptions optionsData = 1;
}
message NetMessageTeleportToPartyMember {
required string playerName = 1;
}
message NetMessageRegionRequestQueueCommandClient {
required uint64 regionProtoId = 1;
optional uint64 regionRequestGroupId = 2;
required RegionRequestQueueCommandVar command = 3;
optional bool allowAutoParty = 4 [default = false];
}
message NetMessageSelectAvatarSynergies {
required uint64 avatarId = 1;
repeated uint64 avatarPrototypes = 2;
}
message NetMessageRequestLegendaryMissionReroll {
}
message NetMessageAttemptShareLegendaryMission {
required string playerName = 1;
}
message NetMessageAttemptShareLegendaryMissionResponse {
required bool missionAccepted = 1;
}
message NetMessageRequestPlayerOwnsItemStatus {
required uint64 itemProtoId = 1;
}
message NetMessageRequestInterestInInventory {
required uint64 inventoryProtoId = 1;
}
message NetMessageRequestInterestInAvatarEquipment {
required uint64 avatarProtoId = 1;
required uint32 avatarModeEnum = 2;
}
message NetMessageRequestInterestInTeamUpEquipment {
required uint64 teamUpProtoId = 1;
}
message NetMessageTryTeamUpSelect {
required uint64 teamUpPrototypeId = 1;
}
message NetMessageRequestTeamUpDismiss {
}
message NetMessageTryTeamUpStyleSelect {
required uint32 styleIndex = 1;
}
message NetMessageSelectOmegaBonus {
required uint64 omegaBonusProtoRefID = 1;
required int32 points = 2;
}
message NetMessageOmegaBonusAllocationCommit {
required uint64 avatarId = 1;
repeated NetMessageSelectOmegaBonus allocations = 2;
}
message NetMessageRespecOmegaBonus {
required uint64 avatarId = 1;
}
message NetMessageRespecPowerSpec {
required uint64 characterId = 1;
required int32 powerSpecIndex = 2;
}
message NetMessageNewItemGlintPlayed {
required uint64 playerId = 1;
repeated uint64 itemIds = 2;
}
message NetMessageNewItemHighlightCleared {
required uint64 playerId = 1;
required uint64 itemId = 2;
}
message NetMessageUnassignMappedPower {
required uint64 avatarId = 1;
required uint64 mappedPowerProtoId = 2;
}
message NetMessageVanityTitleSelect {
required uint64 vanityTitlePrototypeId = 1;
}
message NetMessageRequestGlobalEventUpdate {
required uint64 eventId = 1;
required GlobalEventUpdateType updateType = 2;
}
message NetMessageHasPendingGift {
optional bool hasPendingGift = 1;
}
message NetMessagePlayerTradeStart {
required string partnerPlayerName = 1;
}
message NetMessagePlayerTradeCancel {
}
message NetMessagePlayerTradeSetConfirmFlag {
required bool confirmFlag = 1;
required uint32 sequenceNumber = 2;
}
message NetMessageRequestPetTechDonate {
required uint64 itemId = 1;
required uint64 avatarId = 2;
}
message NetMessageSetActivePowerSpec {
required uint64 avatarId = 1;
required uint32 activeSpec = 2;
}
message NetMessageChangeCameraSettings {
required uint64 cameraSettings = 1;
}
message NetMessageRequestSocketAffix {
required uint64 destItemId = 1;
required uint64 gemAffixItemId = 2;
}
message NetMessageUISystemLockState {
required uint64 prototypeId = 1;
required uint32 state = 2;
}
message NetMessageEnableSpecializationPower {
required uint64 avatarId = 1;
required uint64 prototypeId = 2;
required bool enable = 3;
required uint32 spec = 4;
}
message NetMessageStashInventoryViewed {
required uint64 prototypeId = 1;
}
message NetMessageStashCurrentlyOpen {
required uint64 prototypeId = 1;
}
message NetMessageWidgetButtonResult {
required uint64 widgetRefId = 1;
required uint64 widgetContextRefId = 2;
required uint64 playerGuid = 3;
required bool result = 4;
}
message NetMessageStashTabInsert {
required uint64 invId = 1;
required uint64 insertIndex = 2;
}
message NetMessageStashTabOptions {
required uint64 inventoryRefId = 1;
optional string displayName = 2;
optional uint64 iconPathAssetId = 3;
optional uint32 color = 4;
}
message NetMessageLeaderboardRequest {
optional LeaderboardPlayerScoreQuery playerScoreQuery = 1;
optional LeaderboardGuildScoreQuery guildScoreQuery = 2;
optional LeaderboardMetaScoreQuery metaScoreQuery = 3;
optional LeaderboardDataQuery dataQuery = 4;
}
message NetMessageLeaderboardArchivedInstanceListRequest {
repeated uint64 leaderboardIds = 1;
}
message NetMessageLeaderboardInitializeRequest {
repeated uint64 leaderboardIds = 1;
}
message NetMessageRequestLocalCoopStart {
required uint64 avatarPrototypeId = 1;
}
message NetMessageRequestLocalCoopEnd {
}
message NetMessageCouponAwardPresented {
}
message NetMessageBillingRoutedClientMessage {
required bytes payload = 1;
}

View file

@ -0,0 +1,575 @@
syntax = "proto2";
package Gazillion;
enum GameDialogResultEnum {
eGDR_TimeoutOnServer = -2;
eGDR_TimeoutOnClient = -1;
eGDR_Closed = 0;
eGDR_Option1 = 1;
eGDR_Option2 = 2;
eGDR_Option3 = 3;
eGDR_Checkbox = 4;
}
enum TeleportContextEnum {
TeleportContext_Invalid = 0;
TeleportContext_Bodyslide = 1;
TeleportContext_Bot = 2;
TeleportContext_Debug = 3;
TeleportContext_MetaGame = 4;
TeleportContext_Mission = 5;
TeleportContext_Party = 6;
TeleportContext_Portal = 7;
TeleportContext_Power = 8;
TeleportContext_Resurrect = 9;
TeleportContext_Transition = 10;
TeleportContext_Waypoint = 11;
TeleportContext_StoryWarp = 12;
}
enum ModifyCircleOperation {
eMCO_Add = 1;
eMCO_Remove = 2;
}
enum GlobalTuningVar {
eGTV_VendorBuyPrice = 0;
eGTV_VendorSellPrice = 1;
eGTV_VendorXPGain = 2;
eGTV_PVPEnabled = 3;
eGTV_XPGain = 4;
eGTV_LootDropRate = 5;
eGTV_LootSpecialDropRate = 6;
eGTV_LootRarity = 7;
eGTV_PartyXPBonusPct = 8;
eGTV_PlayerTradeEnabled = 9;
eGTV_CosmicPrestigeXPPct = 10;
eGTV_LootVaporizationEnabled = 11;
eGTV_XPBuffDisplay = 12;
eGTV_SIFBuffDisplay = 13;
eGTV_RIFBuffDisplay = 14;
eGTV_OmegaXPPct = 15;
eGTV_RespectLevelForGlobalXP = 16;
eGTV_RespectLevelForGlobalRIF = 17;
eGTV_RespectLevelForGlobalSIF = 18;
eGTV_RespectLevelForOmegaXP = 19;
eGTV_RespectLevelForAvatarXP = 20;
eGTV_RespectLevelForRegionXP = 21;
eGTV_ServerBonusUnlockLevelOverride = 22;
eGTV_BoostTimersRunning = 23;
eGTV_NumGlobalTuningVars = 24;
}
enum AreaTuningVar {
eATV_AreaMobSpawnHeat = 0;
eATV_AreaMobSpawnHeatReturn = 1;
eATV_NumAreaTuningVars = 2;
}
enum WorldEntityTuningVar {
eWETV_MobPowerDamage = 0;
eWETV_MobHealth = 1;
eWETV_MobXP = 2;
eWETV_MobDropRate = 3;
eWETV_MobSpecialDropRate = 4;
eWETV_Enabled = 5;
eWETV_MobDropRarity = 6;
eWETV_VendorEnabled = 7;
eWETV_Unused1 = 8;
eWETV_EternitySplinterPrice = 9;
eWETV_LootGroupNum = 10;
eWETV_LootNoDropPercent = 11;
eWETV_Visible = 12;
eWETV_NumWorldEntityTuningVars = 13;
}
enum AvatarEntityTuningVar {
eAETV_BonusXPPct = 0;
eAETV_XPBuffDisplay = 1;
eAETV_EternitySplinterPrice = 2;
eAETV_Enabled = 3;
eAETV_NumAvatarEntityTuningVars = 4;
}
enum PopObjTuningVar {
ePOTV_PopulationObjectWeight = 0;
ePOTV_NumPopulationObjectTuningVars = 1;
}
enum PowerTuningVar {
ePTV_PowerCost = 0;
ePTV_PowerDamagePVE = 1;
ePTV_PowerDamagePVP = 2;
ePTV_PowerEnabled = 3;
ePTV_NumPowerTuningVars = 4;
}
enum RegionTuningVar {
eRTV_PlayerLimit = 0;
eRTV_Enabled = 1;
eRT_BonusXPPct = 2;
eRT_XPBuffDisplay = 3;
eRTV_NumRegionTuningVars = 4;
}
enum LootTableTuningVar {
eLTTV_Enabled = 0;
eLTTV_Weight = 1;
eLTTV_Rolls = 2;
eLTTV_NoDropPercent = 3;
eLTTV_GroupNum = 4;
eLTTV_NumLootTableTuningVars = 5;
}
enum MissionTuningVar {
eMTV_Enabled = 0;
eMTV_EventInstance = 1;
eMTV_NumMissionTuningVars = 2;
}
enum ConditionTuningVar {
eCTV_Enabled = 0;
eCTV_NumConditionTuningVars = 1;
}
enum PublicEventTuningVar {
ePETV_Enabled = 0;
ePETV_EventInstance = 1;
ePETV_NumPublicEventTuningVars = 2;
}
enum RegionRequestQueueUpdateVar {
eRRQ_Invalid = 1;
eRRQ_SelectQueueMethod = 2;
eRRQ_RemovedFromGroup = 3;
eRRQ_RemovedGracePeriod = 4;
eRRQ_RemovedGracePeriodExpired = 5;
eRRQ_RaidNotAllowed = 6;
eRRQ_GroupInvitePending = 7;
eRRQ_GroupInviteAccepted = 8;
eRRQ_GroupInviteDeclined = 9;
eRRQ_GroupInviteExpired = 10;
eRRQ_WaitingInQueue = 11;
eRRQ_WaitingInWaitlist = 12;
eRRQ_WaitingInWaitlistLocked = 13;
eRRQ_MatchInvitePending = 14;
eRRQ_MatchInviteAccepted = 15;
eRRQ_MatchInviteDeclined = 16;
eRRQ_MatchInviteExpired = 17;
eRRQ_InMatch = 18;
}
enum RegionRequestQueueCommandVar {
eRRQC_AddToQueueSolo = 1;
eRRQC_AddToQueueParty = 2;
eRRQC_AddToQueueBypass = 3;
eRRQC_GroupInviteAccept = 4;
eRRQC_GroupInviteDecline = 5;
eRRQC_RemoveFromQueue = 6;
eRRQC_MatchInviteAccept = 7;
eRRQC_MatchInviteDecline = 8;
eRRQC_DebugForceStart = 9;
eRRQC_DebugInfo = 10;
eRRQC_RequestToJoinGroup = 11;
}
enum RegionPlayerAccessVar {
eRPA_Invalid = 0;
eRPA_Open = 1;
eRPA_InviteOnly = 2;
eRPA_BodyslideOnly = 3;
eRPA_Locked = 4;
eRPA_Closed = 5;
}
enum RegionTransferFailure {
eRTF_NoError = 0;
eRTF_GenericError = 1;
eRTF_CreationProhibitedByGame = 2;
eRTF_Full = 3;
eRTF_PartiesNotAllowed = 4;
eRTF_RaidsNotAllowed = 5;
eRTF_TargetPlayerUnavailable = 6;
eRTF_BodyslideRegionUnavailable = 7;
eRTF_DestinationInaccessible = 8;
eRTF_MatchNoTeleportToPlayer = 9;
eRTF_MatchNoTeleportToParty = 10;
eRTF_PlayerBlacklistedFromRegion = 11;
eRTF_EndlessProgressedTooFar = 12;
}
enum AvailableStoreActions {
StoreAction_ViewHomeTab = 1;
StoreAction_ViewHeroesTab = 2;
StoreAction_ViewCostumesTab = 3;
StoreAction_ViewItemsTab = 4;
StoreAction_ViewCardsTab = 5;
StoreAction_ViewSpecialsTab = 6;
StoreAction_ViewCostumesForHero = 7;
StoreAction_UserPressedBuy = 8;
StoreAction_UserPressedAddGs = 9;
StoreAction_StoreOpened = 10;
StoreAction_NumberOfStoreActions = 11;
}
enum MetricWaveResults {
MetricWaveResults_Success = 1;
MetricWaveResults_FailQuit = 2;
MetricWaveResults_FailPlayerWipe = 3;
MetricWaveResults_FailStudentDeath = 4;
MetricWaveResults_FailDeathTimeout = 5;
MetricWaveResults_NumberOfMetricWaveResults = 6;
}
enum LegendaryMissionShareResultType {
LegendaryMissionShare_Sent = 1;
LegendaryMissionShare_Accepted = 2;
LegendaryMissionShare_Declined = 3;
LegendaryMissionShare_RequestAlreadyPending = 4;
LegendaryMissionShare_FailPlayerNotFound = 5;
LegendaryMissionShare_FailNotEligible = 6;
LegendaryMissionShare_FailAlreadyHave = 7;
LegendaryMissionShare_FailCannotShareWithSelf = 8;
LegendaryMissionShare_FailCannotReShare = 9;
LegendaryMissionShare_UnknownFailure = 10;
}
enum GroupType {
GroupType_Invalid = 0;
GroupType_Party = 1;
GroupType_Raid = 2;
}
enum CurrencyType {
Currency_EternitySplinter = 1;
Currency_CubeShard = 2;
Currency_OdinMarks = 3;
Currency_Credits = 4;
Currency_ResearchDrives = 5;
Currency_Worldstones = 6;
Currency_EyeOfDemonfire = 7;
Currency_HeartOfDemonfire = 8;
Currency_CrownOfValor = 9;
Currency_OmegaFiles = 10;
Currency_GenoshaRaid = 11;
CurrencySpend_NumberOfCurrencySpendTypes = 12;
}
enum GroupLeaveReason {
GROUP_LEAVE_REASON_LEFT = 1;
GROUP_LEAVE_REASON_BOOTED = 2;
GROUP_LEAVE_REASON_DISBANDED = 3;
}
enum LeaderboardState {
eLBS_Created = 0;
eLBS_Active = 1;
eLBS_Expired = 2;
eLBS_Reward = 3;
eLBS_RewardsPending = 4;
eLBS_Rewarded = 5;
}
message NetStructPoint3 {
optional float X = 1 [default = 0];
optional float Y = 2 [default = 0];
optional float Z = 3 [default = 0];
}
message NetStructIPoint3 {
optional uint32 X = 1 [default = 0];
optional uint32 Y = 2 [default = 0];
optional uint32 Z = 3 [default = 0];
}
message NetStructPoint2 {
optional float X = 1 [default = 0];
optional float Y = 2 [default = 0];
}
message NetStructIPoint2 {
optional uint32 X = 1 [default = 0];
optional uint32 Y = 2 [default = 0];
}
message NetStructProperty {
required uint64 id = 1;
required uint64 value = 2;
}
message NetStructPropertyList {
repeated NetStructProperty properties = 1;
}
message NetStructFormatStringArg {
optional uint64 localeStringId = 1;
optional string stringValue = 2;
optional string playerName = 3;
optional int64 intValue = 4;
optional float floatValue = 5;
}
message NetStructFormatString {
required uint64 formatStringId = 1;
repeated NetStructFormatStringArg args = 2;
}
message NetStructDialogButton {
required GameDialogResultEnum type = 1;
required NetStructFormatString formatString = 2;
required uint32 style = 3;
optional bool enabled = 4 [default = true];
}
message NetStructDialog {
required NetStructFormatString messageString = 1;
repeated NetStructDialogButton buttonStrings = 2;
optional NetStructFormatString checkboxString = 3;
optional uint64 targetId = 4 [default = 0];
optional uint64 interactorId = 5 [default = 0];
required uint32 options = 6;
}
message NetStructRegionLocation {
required uint64 regionId = 1;
required NetStructPoint3 position = 2;
}
message NetStructRegionTarget {
required uint64 regionProtoId = 1;
required uint64 areaProtoId = 2;
required uint64 cellProtoId = 3;
required uint64 entityProtoId = 4;
}
message NetStructTransferParams {
required uint64 TransferId = 1;
required uint64 DestRegionId = 2;
required uint64 DestRegionProtoId = 3;
optional NetStructRegionTarget DestTarget = 4;
optional NetStructRegionLocation DestLocation = 5;
optional uint64 DestEntityDbId = 6 [default = 0];
optional int32 DestTeamIndex = 7 [default = -1];
optional bool HasInvite = 8 [default = false];
optional NetStructRegionOrigin Origin = 9;
}
message NetStructRegionOrigin {
optional NetStructRegionLocation location = 1;
optional NetStructRegionTarget target = 2;
optional uint64 transitionDbId = 3;
}
message NetStructPortalInstance {
required uint64 entityDbId = 1;
required NetStructRegionLocation location = 2;
optional uint64 ownerPlayerDbId = 3;
optional bool boundToOwner = 4;
}
message ChangeRegionRequestHeader {
required uint64 requestingGameId = 1;
required uint64 requestingPlayerGuid = 2;
required NetStructRegionOrigin origin = 3;
required TeleportContextEnum type = 4;
}
message NetStructCreateRegionParams {
required uint32 level = 1;
optional NetStructRegionOrigin origin = 2;
optional bool cheat = 3;
optional uint32 endlessLevel = 4 [default = 0];
optional uint64 gameStateId = 5;
optional uint64 matchNumber = 6 [default = 0];
optional uint32 seed = 7;
optional uint64 parentRegionId = 8;
optional uint64 requiredItemProtoId = 9;
optional uint64 requiredItemEntityId = 10;
optional NetStructPortalInstance accessPortal = 11;
repeated uint64 affixes = 12;
optional uint32 playerDeaths = 13 [default = 0];
optional uint64 dangerRoomScenarioItemDbGuid = 14 [default = 0];
optional uint64 itemRarity = 15 [default = 0];
optional bytes propertyBuffer = 16;
optional uint64 dangerRoomScenarioR = 17;
}
message NetStructModChangeObject {
required uint64 mod = 1;
required uint32 change = 2;
}
message NetStructPowerPointAllocation {
required uint64 powerProtoId = 1;
required uint32 delta = 2;
}
message NetStructAffixSpec {
required uint64 affixProtoRef = 1;
required uint64 scopeProtoRef = 2;
required int32 seed = 3;
}
message NetStructItemSpec {
required uint64 itemProtoRef = 1;
required uint32 itemLevel = 2;
required uint64 rarityProtoRef = 3;
required uint32 seed = 4;
optional uint32 creditsAmount = 5;
repeated NetStructAffixSpec affixSpecs = 6;
optional uint64 equippableBy = 7;
}
message CommunityMemberBroadcast {
required uint64 memberPlayerDbId = 1;
optional uint64 currentRegionRefId = 2 [default = 123];
optional uint64 currentAvatarRefId = 3 [default = 123];
optional uint64 currentCharacterLevel = 4;
optional uint64 currentPvpFactionRefId = 5 [default = 123];
optional string currentPlayerName = 6;
repeated uint64 memberPlayerDbIdIgnoreList = 7;
optional uint64 currentPrestigeLevel = 8;
optional int32 isOnline = 9 [default = -1];
optional int64 lastLogoutTimeAsFileTimeUtc = 10;
optional uint64 currentCostumeRefId = 11 [default = 123];
}
message CommunityNotify {
required uint64 targetPlayerDbId = 1;
required string sourcePlayerName = 2;
required uint64 circleId = 3;
required ModifyCircleOperation operation = 4;
}
message NetStructLiveTuningSettingEnumValue {
required int32 tuningVarEnum = 1;
required float tuningVarValue = 2;
}
message NetStructLiveTuningSettingProtoEnumValue {
required uint64 tuningVarProtoId = 1;
required int32 tuningVarEnum = 2;
required float tuningVarValue = 3;
}
message ChangeRegionFailed {
required RegionTransferFailure reason = 1;
optional uint64 regionProtoId = 2;
optional uint64 requiredItemProtoId = 3;
}
message NetStructChatChannelFilterState {
required uint64 channelProtoId = 1;
required bool isSubscribed = 2;
}
message NetStructChatTabState {
required uint64 channelProtoId = 1;
}
message NetStructGameplayOptions {
repeated bool optionSettings = 1;
repeated NetStructChatChannelFilterState chatChannelFiltersMap = 2;
repeated NetStructChatTabState chatTabChannelsArray = 3;
repeated uint64 armorRarityVaporizeThresholdProtoId = 4;
}
message ShareLegendaryMissionRequest {
required uint64 missionDataRef = 1;
}
message ShareLegendaryMissionResult {
required uint64 missionDataRef = 1;
required LegendaryMissionShareResultType result = 2;
}
message BillingP2PGiftResult {
required uint64 transactionId = 1;
required bool didSucceed = 2;
optional int64 currentBalance = 3;
required uint64 skuId = 4;
optional int32 errorCode = 5;
required int32 numUnits = 6 [default = 1];
required string giftMessage = 7;
required uint64 senderId = 8;
}
message LeaderboardPlayerScoreQuery {
required uint64 leaderboardId = 1;
optional uint64 instanceId = 2 [default = 0];
required uint64 playerId = 3;
optional uint64 avatarId = 4 [default = 0];
}
message LeaderboardGuildScoreQuery {
required uint64 leaderboardId = 1;
optional uint64 instanceId = 2 [default = 0];
required uint64 guildId = 3;
}
message LeaderboardMetaScoreQuery {
required uint64 leaderboardId = 1;
optional uint64 instanceId = 2 [default = 0];
required uint64 playerId = 3;
}
message LeaderboardDataQuery {
required uint64 leaderboardId = 1;
optional uint64 instanceId = 2 [default = 0];
}
message LeaderboardMetadata {
required uint64 leaderboardId = 1;
required uint64 instanceId = 2;
required LeaderboardState state = 3;
required int64 activationTimestampUtc = 4;
required int64 expirationTimestampUtc = 5;
required bool visible = 6;
}
message LeaderboardEntry {
required string name = 1;
optional uint64 nameId = 2;
required uint64 gameId = 3;
required uint64 score = 4;
optional uint64 avatarId = 5;
}
message LeaderboardTableData {
required LeaderboardMetadata info = 1;
repeated LeaderboardEntry entries = 2;
}
message LeaderboardScoreData {
required uint64 leaderboardId = 1;
optional uint64 instanceId = 2 [default = 0];
optional uint64 playerId = 3;
optional uint64 guildId = 4;
optional uint64 subLeaderboardId = 5;
required uint64 score = 6;
required uint32 percentileBucket = 7;
optional uint64 avatarId = 8 [default = 0];
}
message LeaderboardReport {
required uint64 leaderboardId = 1;
optional uint64 instanceId = 2 [default = 0];
optional LeaderboardScoreData scoreData = 3;
optional LeaderboardTableData tableData = 4;
optional uint64 nextUpdateTimeIntervalMS = 5;
}
message LeaderboardInstanceData {
required uint64 instanceId = 1;
required LeaderboardState state = 2;
required int64 activationTimestamp = 3;
required int64 expirationTimestamp = 4;
required bool visible = 5;
}
message WorldViewEntry {
required uint64 regionId = 1;
required uint64 regionProtoRefId = 2;
}

View file

@ -0,0 +1,91 @@
syntax = "proto2";
package Gazillion;
import "PubSubProtocol.proto";
enum FrontendProtocolVersion {
CURRENT_VERSION = 1;
}
enum ExtendedLoginErrors {
NO_LOGIN_ERROR = 0;
CLIENT_MANAGER_NOT_AVAILABLE = 1;
}
message LoginDataPB {
required string emailAddress = 1;
required string password = 2;
optional string version = 3;
optional string dbservername = 4;
optional string token = 5;
optional bool loginAsAnotherPlayer = 6;
optional bool noPersistenceThisSession = 7;
optional string loginAsPlayer = 8;
optional string clientDownloader = 9;
optional string machineId = 10;
optional string machineIdDebugInfo = 18;
optional int32 timezoneutcbias = 11;
optional int32 platform = 12;
optional string platformString = 13;
optional string locale = 14;
optional string twofactorcode = 15;
optional string twofactorname = 16;
optional string twofactortrustmachine = 17;
optional bool streamingclient = 19;
}
message LoginDataConsole {
required string token = 1;
optional string version = 2;
optional bool noPersistenceThisSession = 3;
}
message CreateAccountConsole {
required string token = 1;
optional string version = 2;
required string playername = 3;
}
message AcceptDocuments {
required string token = 1;
optional string version = 2;
repeated string documents = 3;
}
message SelectPlayerName {
required string token = 1;
optional string version = 2;
required string playername = 3;
}
message InitialClientHandshake {
required FrontendProtocolVersion protocolVersion = 1 [default = CURRENT_VERSION];
required PubSubServerTypes serverType = 2;
}
message ClientCredentials {
required uint64 sessionid = 1;
required bytes iv = 2;
required bytes encryptedToken = 3;
}
message LoginQueueStatus {
required uint64 placeInLine = 1;
required uint64 numberOfPlayersInLine = 2;
}
message SessionEncryptionChanged {
required uint32 randomNumberIndex = 1 [default = 1];
required bytes encryptedRandomNumber = 2;
}
message ExtendedLoginError {
optional ExtendedLoginErrors error = 1;
}
message EncryptedTrafficHeader {
required uint32 randomNumberIndex = 1;
required bytes encryptedTraffic = 2;
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,6 @@
syntax = "proto2";
package Gazillion;
import "google/protobuf/descriptor.proto";

View file

@ -0,0 +1,10 @@
syntax = "proto2";
package Gazillion;
enum GlobalEventUpdateType {
eGlobalEventUpdate_EventData = 0;
eGlobalEventUpdate_Leaderboard = 1;
eGlobalEventUpdate_Count = 2;
}

View file

@ -0,0 +1,247 @@
syntax = "proto2";
package Gazillion;
import "ChatCommon.proto";
import "CommonMessages.proto";
enum GroupingOperationType {
eGOP_InvitePlayer = 1;
eGOP_AcceptInvite = 2;
eGOP_ServerNotification = 3;
eGOP_KickPlayer = 4;
}
enum GroupingOperationResult {
eGOPR_Success = 1;
eGOPR_SystemError = 2;
eGOPR_TargetPlayerNotFound = 3;
eGOPR_TargetedSelf = 4;
eGOPR_AlreadyHasInvite = 5;
eGOPR_PartyFull = 6;
eGOPR_NotLeader = 7;
eGOPR_PendingPartyDisbanded = 8;
eGOPR_AutoParyPreventsKick = 9;
eGOPR_PartyPortalLeadsToMatch = 10;
eGOPR_AlreadyInParty = 11;
}
enum ChatBanVoteResponseCode {
CHAT_BAN_VOTE_SUCCESS = 0;
CHAT_BAN_VOTE_ERROR = 1;
CHAT_BAN_VOTE_ALREADY_BANNED = 2;
CHAT_BAN_VOTE_ALREADY_VOTED = 3;
CHAT_BAN_VOTE_NOT_ALLOWED = 4;
CHAT_BAN_VOTE_BANNED = 5;
CHAT_BAN_VOTE_INVALID_TARGET = 6;
CHAT_BAN_VOTE_NUM_CODES = 7;
}
enum GroupingStateOfPlayer {
eGSOP_Solo = 1;
eGSOP_PendingInvite = 2;
eGSOP_InGroup = 3;
}
message PerPlayerInfo {
required string playerName = 1;
required uint64 playerSessionId = 2;
required uint64 playerDbId = 3;
}
message ClientInvitedToGroup {
required string invitingPlayerName = 1;
required uint64 groupId = 2;
optional string groupPSNSessionId = 3;
required bool usePortal = 4;
required bool hasTemporaryRegions = 5;
}
message ClientInviteAcceptFailed {
}
message ClientCreateGroup {
required uint64 groupId = 1;
required GroupType groupType = 2;
optional string groupPSNSessionId = 3;
required uint64 leaderSessionId = 4;
required string leaderName = 5;
}
message PlayerJoinedGroup {
required string joiningPlayerName = 1;
required uint64 playerSessionId = 2;
required uint64 groupId = 3;
}
message GroupChangeType {
required uint64 groupId = 1;
required GroupType type = 2;
required bool confirm = 3;
}
message PlayerLeftGroup {
required string leaverName = 1;
required uint64 playerSessionId = 2;
optional uint64 newLeaderSessionId = 3;
required uint64 groupId = 4;
required GroupLeaveReason leaveReason = 5;
}
message PlayerChangedGroupLeader {
required uint64 requestingGameId = 1;
required uint64 groupId = 2;
required PerPlayerInfo newLeader = 3;
required PerPlayerInfo oldLeader = 4;
}
message ClientBootedFromGroup {
required uint64 groupId = 1;
required GroupLeaveReason leaveReason = 2;
}
message KickGroupMemberAttemptFailed {
required GroupingOperationResult reason = 1;
}
message PlayerDeclinedInvite {
optional string declinerName = 1;
optional uint64 declinerSessionId = 2;
}
message CurrentPartyInfo {
required uint64 groupId = 1;
required GroupType groupType = 2;
optional string groupPSNSessionId = 3;
required PerPlayerInfo leader = 4;
repeated PerPlayerInfo members = 5;
}
message ChatResponseToExternalLogin {
optional bytes someresponse = 1;
}
message ChatNormalMessage {
required ChatRoomTypes roomType = 1;
required string fromPlayerName = 2;
required ChatMessage theMessage = 4;
optional int32 prestigeLevel = 5;
}
message ChatTellMessage {
required string fromPlayerName = 1;
required ChatMessage theMessage = 3;
optional int32 prestigeLevel = 4;
}
message ChatBroadcastMessage {
required ChatRoomTypes roomType = 1;
required string fromPlayerName = 2;
required ChatMessage theMessage = 3;
optional int32 prestigeLevel = 4;
}
message ChatErrorMessage {
required ChatErrorMessages errorMessage = 1;
}
message ChatBanVoteResponse {
required string targetPlayerName = 1;
required ChatBanVoteResponseCode responseCode = 2;
}
message GroupingReportInvitationDestinationForPortal {
required uint64 acceptingPlayerDbId = 1;
required uint64 invitingPlayerDbId = 2;
required uint64 requestingGameId = 3;
required bool usePortal = 4;
}
message GroupingOperationResultMsg {
required uint64 requestingGameId = 1;
required uint64 requestingPlayerDbId = 2;
required GroupingOperationType opType = 3;
required GroupingOperationResult opResult = 4;
optional bool hasTemporaryRegions = 5;
optional uint64 groupId = 6;
optional GroupType groupType = 7 [default = GroupType_Invalid];
optional PerPlayerInfo leaderInfo = 8;
repeated PerPlayerInfo currentPartyInfo = 9;
optional string groupPSNSessionId = 10;
}
message GroupingManagerRemovedPlayer {
required uint64 requestingGameId = 1;
required PerPlayerInfo removedPlayer = 2;
required uint64 groupId = 3;
optional PerPlayerInfo newLeader = 4;
optional uint64 previousLeaderDbId = 6;
required GroupLeaveReason leaveReason = 5;
}
message GroupingManagerAddedPlayer {
required uint64 requestingGameId = 1;
required PerPlayerInfo addedPlayer = 2;
required uint64 groupId = 3;
}
message GroupingManagerCreateGroup {
required uint64 requestingGameId = 1;
required uint64 groupId = 2;
optional string groupPSNSessionId = 3;
required GroupType groupType = 4;
required PerPlayerInfo leaderInfo = 5;
}
message GroupingManagerGroupChangeType {
required uint64 requestingGameId = 1;
required uint64 groupId = 2;
required GroupType type = 3;
}
message GroupingManagerPlayerEnteredRegion {
required uint64 playerDbId = 1;
required uint64 requestingGameId = 2;
required uint64 groupId = 3;
optional string groupPSNSessionId = 4;
required GroupType groupType = 5;
optional PerPlayerInfo leaderInfo = 6;
repeated PerPlayerInfo members = 7;
}
message GroupingManagerUpdatedPartyBoostCount {
required uint64 requestingGameId = 1;
required uint64 partyBoostCondition = 2;
required uint64 groupId = 3;
required uint32 count = 4;
optional uint64 requestingPlayer = 5;
}
message ChatCreateChatRoomResult {
required uint64 requestingGameId = 3;
optional bool success = 1 [default = false];
optional string reason = 2;
}
message ChatAddPlayerToRoomResult {
required uint64 requestingGameId = 3;
optional bool success = 1 [default = false];
optional string reason = 2;
}
message ChatScrubTextResult {
required uint64 requestingGameId = 1;
required string textOriginal = 2;
required string textScrubbed = 3;
required uint64 remoteJobId = 4;
}
message ChatServerNotification {
required string theMessage = 1;
}
message ChatClientIsLoggedIn {
required uint64 requestingGameId = 1;
required uint64 playerDbId = 2;
}

View file

@ -0,0 +1,242 @@
syntax = "proto2";
package Gazillion;
enum GuildFormResultCode {
eGFCInternalError = 0;
eGFCGuildInErrorState = 1;
eGFCNotOnline = 2;
eGFCRestrictedName = 3;
eGFCDuplicateName = 4;
eGFCAlreadyInGuild = 5;
eGFCWaitingForDatabase = 6;
eGFCSuccess = 7;
}
enum GuildChangeNameResultCode {
eGCNRCInternalError = 0;
eGCNRCGuildInErrorState = 1;
eGCNRCNotOnline = 2;
eGCNRCInvalidGuild = 3;
eGCNRCNotInGuild = 4;
eGCNRCRestrictedName = 5;
eGCNRCDuplicateName = 6;
eGCNRCNoPermission = 7;
eGCNRCWaitingForDatabase = 8;
eGCNRCSuccess = 9;
}
enum GuildChangeMotdResultCode {
eGCMotdRCInternalError = 0;
eGCMotdRCGuildInErrorState = 1;
eGCMotdRCNotOnline = 2;
eGCMotdRCInvalidGuild = 3;
eGCMotdRCNotInGuild = 4;
eGCMotdRCNoPermission = 5;
eGCMotdRCWaitingForDatabase = 6;
eGCMotdRCSuccess = 7;
}
enum GuildInviteResultCode {
eGIRCInternalError = 0;
eGIRCGuildInErrorState = 1;
eGIRCGuildFull = 3;
eGIRCInvitedInGuild = 4;
eGIRCInvitedInOtherGuild = 5;
eGIRCInvitedUnkownPlayer = 6;
eGIRCInviterNotInGuild = 7;
eGIRCInviterNoPermission = 8;
eGIRCSuccess = 10;
}
enum GuildRespondToInviteCode {
eGRICRejected = 0;
eGRICAccepted = 1;
eGRICAutoIgnored = 2;
}
enum GuildRespondToInviteResultCode {
eGRIRCInternalError = 0;
eGRIRCGuildInErrorState = 1;
eGRIRCNotOnline = 2;
eGRIRCInvalidGuild = 3;
eGRIRCAlreadyInGuild = 4;
eGRIRCGuildFull = 5;
eGRIRCNotInvited = 6;
eGRIRCJoined = 7;
eGRIRCRejected = 8;
eGRIRAlreadyInOtherGuild = 9;
}
enum GuildMembership {
eGMNone = 0;
eGMMember = 1;
eGMOfficer = 2;
eGMLeader = 3;
}
enum GuildChangeMemberResultCode {
eGCMRCInternalError = 0;
eGCMRCGuildInErrorState = 1;
eGCMRCNotOnline = 2;
eGCMRCInitiatorNotInGuild = 3;
eGCMRCInitiatorNoPermission = 4;
eGCMRCUnknownMember = 5;
eGCMRCNoChange = 6;
eGCMRCCantModifyLeader = 7;
eGCMRCRequiresStaff = 8;
eGCMRCRequiresLeader = 9;
eGCMRCNoTransferLeadership = 10;
eGCMRCSuccess = 11;
eGCMRCSuccessGuildDissolved = 12;
}
message GuildForm {
required uint64 playerId = 1;
required string guildName = 2;
required uint64 itemId = 3 [default = 0];
}
message GuildFormResult {
required string guildName = 1;
required GuildFormResultCode resultCode = 2;
required uint64 playerId = 3;
optional uint64 itemId = 4;
}
message GuildDisbanded {
required uint64 guildId = 1;
required string disbandingPlayerName = 2;
}
message GuildChangeName {
required uint64 playerId = 1;
required string guildName = 2;
}
message GuildChangeNameResult {
required string submittedName = 1;
required GuildChangeNameResultCode resultCode = 2;
}
message GuildNameChanged {
required uint64 guildId = 1;
required string newGuildName = 2;
optional string changedByPlayerName = 3;
}
message GuildChangeMotd {
required uint64 playerId = 1;
required string guildMotd = 2;
}
message GuildChangeMotdResult {
required string submittedMotd = 1;
required GuildChangeMotdResultCode resultCode = 2;
}
message GuildMotdChanged {
required uint64 guildId = 1;
required string newGuildMotd = 2;
optional string changedByPlayerName = 3;
}
message GuildMemberNameChanged {
required uint64 guildId = 1;
required uint64 playerId = 2;
required string newMemberName = 3;
}
message GuildInvite {
required string toInvitePlayerName = 1;
required uint64 invitedByPlayerId = 2;
}
message GuildInviteResult {
required GuildInvite invite = 1;
required GuildInviteResultCode resultCode = 2;
}
message GuildInvitedToJoin {
required uint64 guildId = 1;
required string guildName = 2;
required string invitedByPlayerName = 3;
}
message GuildRespondToInvite {
required uint64 playerId = 1;
required uint64 guildId = 2;
required GuildRespondToInviteCode respondCode = 3;
}
message GuildRespondToInviteResult {
required GuildRespondToInviteResultCode resultCode = 1;
required string guildName = 2;
}
message GuildMemberInfo {
required uint64 playerId = 1;
required string playerName = 2;
required GuildMembership membership = 3;
}
message GuildChangeMember {
required uint64 sourcePlayerId = 1;
required string targetPlayerName = 2;
required GuildMembership targetNewMembership = 3;
}
message GuildChangeMemberResult {
required string targetPlayerName = 1;
required GuildChangeMemberResultCode resultCode = 2;
}
message GuildMembersInfoChanged {
required uint64 guildId = 1;
repeated GuildMemberInfo members = 2;
required string initiatingMemberName = 3;
optional bool newMember = 4 [default = false];
}
message GuildCompleteInfo {
required uint64 guildId = 1;
required string guildName = 2;
repeated GuildMemberInfo members = 3;
optional string guildMotd = 4;
}
message GuildMessageSetToServer {
optional GuildNameChanged guildNameChanged = 1;
optional GuildMembersInfoChanged guildMembersInfoChanged = 2;
optional GuildCompleteInfo guildCompleteInfo = 3;
optional GuildDisbanded guildDisbanded = 4;
optional GuildFormResult guildFormResult = 5;
optional GuildMotdChanged guildMotdChanged = 6;
optional GuildMemberNameChanged guildMemberNameChanged = 7;
}
message GuildMessageSetToClient {
optional GuildChangeNameResult guildChangeNameResult = 2;
optional GuildInviteResult guildInviteResult = 3;
optional GuildRespondToInviteResult guildRespondToInviteResult = 4;
optional GuildChangeMemberResult guildChangeMemberResult = 5;
optional GuildInvitedToJoin guildInvitedToJoin = 6;
optional GuildChangeMotdResult guildChangeMotdResult = 11;
optional GuildNameChanged guildNameChanged = 7;
optional GuildMembersInfoChanged guildMembersInfoChanged = 8;
optional GuildCompleteInfo guildCompleteInfo = 9;
optional GuildDisbanded guildDisbanded = 10;
optional GuildFormResult guildFormResult = 1;
optional GuildMotdChanged guildMotdChanged = 12;
optional GuildMemberNameChanged guildMemberNameChanged = 13;
}
message GuildMessageSetToPlayerManager {
optional GuildForm guildForm = 1;
optional GuildChangeName guildChangeName = 2;
optional GuildInvite guildInvite = 3;
optional GuildRespondToInvite guildRespondToInvite = 4;
optional GuildChangeMember guildChangeMember = 5;
optional GuildChangeMotd guildChangeMotd = 6;
}

View file

@ -0,0 +1,73 @@
syntax = "proto2";
package Gazillion;
enum MatchPhase {
MP_Created = 0;
MP_Initialized = 1;
MP_Started = 2;
MP_Finished = 3;
MP_Shutdown = 4;
}
enum MatchPlayerEventType {
MPET_Left = 0;
MPET_Joined = 1;
}
enum MatchBalanceMethod {
MBM_None = 0;
MBM_PlayerRating = 1;
MBM_FixedTeam = 2;
}
enum MatchCheatRequestType {
MCRT_None = 0;
MCRT_ForceMatchStart = 1;
MCRT_ForceMatchEnd = 2;
MCRT_SwitchTeams = 3;
}
enum MatchControlEventType {
MCET_None = 0;
MCET_ForceStart = 1;
MCET_ForceEnd = 2;
}
message MatchTeamDescription {
required uint64 teamPrototypeGuid = 1;
required uint32 minPlayers = 2;
required uint32 maxPlayers = 3;
}
message MatchGameDescription {
required uint64 queuePrototypeGuid = 1;
required uint64 gamePrototypeGuid = 2;
required uint64 regionPrototypeId = 3;
repeated MatchTeamDescription teams = 4;
}
message MatchQueueDescription {
required uint64 queuePrototypeGuid = 1;
required MatchBalanceMethod balanceMethod = 2;
required uint32 regionLevel = 3;
repeated MatchGameDescription games = 4;
}
message MatchTeamResultData {
required uint64 teamPrototypeGuid = 1;
required bool creditWithWin = 2;
}
message MatchResultData {
repeated MatchTeamResultData teams = 1;
}
message MatchPlayerStatisticsSummary {
required uint64 queuePrototypeGuid = 1;
required uint64 gamePrototypeGuid = 2;
required uint32 gamesPlayed = 3;
required uint32 gamesWon = 4;
required uint32 ratingSummary = 5;
}

View file

@ -0,0 +1,184 @@
syntax = "proto2";
package google.protobuf;
message FileDescriptorSet {
repeated FileDescriptorProto file = 1;
}
message FileDescriptorProto {
optional string name = 1;
optional string package = 2;
repeated string dependency = 3;
repeated int32 public_dependency = 10;
repeated int32 weak_dependency = 11;
repeated DescriptorProto message_type = 4;
repeated EnumDescriptorProto enum_type = 5;
repeated ServiceDescriptorProto service = 6;
repeated FieldDescriptorProto extension = 7;
optional FileOptions options = 8;
optional SourceCodeInfo source_code_info = 9;
}
message DescriptorProto {
message ExtensionRange {
optional int32 start = 1;
optional int32 end = 2;
}
optional string name = 1;
repeated FieldDescriptorProto field = 2;
repeated FieldDescriptorProto extension = 6;
repeated DescriptorProto nested_type = 3;
repeated EnumDescriptorProto enum_type = 4;
repeated ExtensionRange extension_range = 5;
optional MessageOptions options = 7;
}
message FieldDescriptorProto {
enum Type {
TYPE_DOUBLE = 1;
TYPE_FLOAT = 2;
TYPE_INT64 = 3;
TYPE_UINT64 = 4;
TYPE_INT32 = 5;
TYPE_FIXED64 = 6;
TYPE_FIXED32 = 7;
TYPE_BOOL = 8;
TYPE_STRING = 9;
TYPE_GROUP = 10;
TYPE_MESSAGE = 11;
TYPE_BYTES = 12;
TYPE_UINT32 = 13;
TYPE_ENUM = 14;
TYPE_SFIXED32 = 15;
TYPE_SFIXED64 = 16;
TYPE_SINT32 = 17;
TYPE_SINT64 = 18;
}
enum Label {
LABEL_OPTIONAL = 1;
LABEL_REQUIRED = 2;
LABEL_REPEATED = 3;
}
optional string name = 1;
optional int32 number = 3;
optional Label label = 4;
optional Type type = 5;
optional string type_name = 6;
optional string extendee = 2;
optional string default_value = 7;
optional FieldOptions options = 8;
}
message EnumDescriptorProto {
optional string name = 1;
repeated EnumValueDescriptorProto value = 2;
optional EnumOptions options = 3;
}
message EnumValueDescriptorProto {
optional string name = 1;
optional int32 number = 2;
optional EnumValueOptions options = 3;
}
message ServiceDescriptorProto {
optional string name = 1;
repeated MethodDescriptorProto method = 2;
optional ServiceOptions options = 3;
}
message MethodDescriptorProto {
optional string name = 1;
optional string input_type = 2;
optional string output_type = 3;
optional MethodOptions options = 4;
}
message FileOptions {
enum OptimizeMode {
SPEED = 1;
CODE_SIZE = 2;
LITE_RUNTIME = 3;
}
optional string java_package = 1;
optional string java_outer_classname = 8;
optional bool java_multiple_files = 10 [default = false];
optional bool java_generate_equals_and_hash = 20 [default = false];
optional OptimizeMode optimize_for = 9 [default = SPEED];
optional string go_package = 11;
optional bool cc_generic_services = 16 [default = false];
optional bool java_generic_services = 17 [default = false];
optional bool py_generic_services = 18 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message MessageOptions {
optional bool message_set_wire_format = 1 [default = false];
optional bool no_standard_descriptor_accessor = 2 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message FieldOptions {
enum CType {
STRING = 0;
CORD = 1;
STRING_PIECE = 2;
}
optional CType ctype = 1 [default = STRING];
optional bool packed = 2;
optional bool lazy = 5 [default = false];
optional bool deprecated = 3 [default = false];
optional string experimental_map_key = 9;
optional bool weak = 10 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message EnumOptions {
optional bool allow_alias = 2 [default = true];
repeated UninterpretedOption uninterpreted_option = 999;
}
message EnumValueOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message ServiceOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message MethodOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message UninterpretedOption {
message NamePart {
required string name_part = 1;
required bool is_extension = 2;
}
repeated NamePart name = 2;
optional string identifier_value = 3;
optional uint64 positive_int_value = 4;
optional int64 negative_int_value = 5;
optional double double_value = 6;
optional bytes string_value = 7;
optional string aggregate_value = 8;
}
message SourceCodeInfo {
message Location {
repeated int32 path = 1;
repeated int32 span = 2;
optional string leading_comments = 3;
optional string trailing_comments = 4;
}
repeated Location location = 1;
}

View file

@ -0,0 +1,78 @@
syntax = "proto2";
package Gazillion;
enum AuthServerErrorCode {
AUTH_ERROR_UNKNOWN = 0;
AUTH_ERROR_SUCCESS = 1;
AUTH_ERROR_ACCOUNT_EXISTS = 2;
AUTH_ERROR_PLAYERNAME_INUSE = 3;
}
message AuthRequiredDoc {
optional string key = 1;
optional string title = 2;
optional string body = 3;
}
message AuthTicket {
optional bytes sessionKey = 1;
optional bytes sessionToken = 2;
required uint64 sessionId = 3;
optional string errorMessage = 4;
optional string frontendServer = 5;
optional string frontendPort = 6;
optional string platformTicket = 7;
optional bool presalePurchase = 8;
optional string tosurl = 9;
optional bool success = 10;
optional bool hasnews = 12;
optional string newsurl = 13;
optional bool hasPendingGift = 14;
optional string pendingGiftUrl = 15;
optional bool hasVerifiedEmail = 16;
optional bool isAllowedToChat = 17 [default = true];
optional bool isAgeRestrictionEnabled = 18 [default = false];
optional int64 ageRestrictionEndTimeUtc = 19;
optional int64 ageRestrictionWarningTimeUtc1 = 20;
optional string ageRestrictionType = 21;
optional int64 ageRestrictionWarningTimeUtc2 = 22;
optional int64 ageRestrictionWarningTimeUtc3 = 23;
optional string countryCode = 24;
optional string continentCode = 25;
optional bool preReqCreateAccount = 26;
optional bool preReqRenamePlayer = 27;
repeated AuthRequiredDoc preReqAcceptDocs = 28;
}
message ConsoleCreateAccountMessageResponse {
optional AuthServerErrorCode errorCode = 1;
optional string errorMsg = 2;
repeated string nameSuggestions = 3;
repeated AuthRequiredDoc preReqAcceptDocs = 4;
}
message PrecacheHeadersMessageResponse {
repeated string precacheUrl = 1;
}
message NewsMessageResponse {
required MHLocalizedNewsLayout newsLayout = 1;
repeated MHLocalizedNewsEntry newsEntries = 2;
}
message MHLocalizedNewsLayout {
required int32 layoutHeight = 1;
required int32 layoutWidth = 2;
}
message MHLocalizedNewsEntry {
optional string itemDisplayUrl = 1;
required int32 itemOrder = 2;
optional string actionLinkSaleableObjectSku = 3;
optional string actionLinkCategory = 4;
optional int32 itemHeight = 5;
optional int32 itemWidth = 6;
optional string actionLinkUrl = 7;
}

View file

@ -0,0 +1,240 @@
syntax = "proto2";
package Gazillion;
enum BuyItemResultErrorCodes {
BUY_RESULT_ERROR_SUCCESS = 0;
BUY_RESULT_ERROR_ALREADY_HAVE_AVATAR = 1;
BUY_RESULT_ERROR_ALREADY_HAVE_STASH_INV = 2;
BUY_RESULT_ERROR_ALREADY_HAVE_PERMABUFF = 3;
BUY_RESULT_ERROR_INSUFFICIENT_BALANCE = 4;
BUY_RESULT_ERROR_IS_GIFT = 5;
BUY_RESULT_ERROR_UNKNOWN_RECIPIENT = 6;
BUY_RESULT_ERROR_PRICE_MISMATCH = 7;
BUY_RESULT_ERROR_GIFTING_UNAVAILABLE = 8;
BUY_RESULT_ERROR_UNKNOWN = 9;
BUY_RESULT_ERROR_GIFT_MESSAGE_TOO_LONG = 10;
BUY_RESULT_ERROR_SOLD_OUT = 11;
BUY_RESULT_ERROR_TEMPORARILY_UNAVAILABLE_RETRY_POSSIBLE = 12;
BUY_RESULT_ERROR_PREPURCHASE_ALREADY_OWNED = 13;
BUY_RESULT_ERROR_INSUFFICIENT_ES_BALANCE = 14;
}
enum RedeemCodeResultErrorCodes {
REDEEM_CODE_RESULT_ERROR_SUCCESS = 0;
REDEEM_CODE_RESULT_ERROR_ALREADY_REDEEMED = 1;
REDEEM_CODE_RESULT_ERROR_INVALID_KEY = 2;
REDEEM_CODE_RESULT_ERROR_UNKNOWN = 3;
}
enum RampageCatalogVersion {
RampageCatalogVersion_Desktop = 0;
RampageCatalogVersion_Console = 1;
RampageCatalogVersion_Num = 2;
}
message MHCatalogEntryType {
required string name = 1;
required int32 order = 2;
}
message MHCatalogEntryTypeModifier {
required string name = 1;
required int32 order = 2;
}
message MHBannerUrl {
required string type = 1;
required string url = 2;
}
message MHLocalizedCatalogUrls {
required string localeId = 1;
optional string storeHomePageUrl = 2;
repeated MHBannerUrl storeBannerPageUrls = 3;
optional string storeRealMoneyUrl = 4;
}
message MHLocalizedCatalogEntry {
required string language_id = 1;
optional string description = 2;
optional string title = 3;
optional string releaseDate = 5;
optional int64 itemPrice = 6;
}
message MHLocalizedCatalogEntryUrlOrData {
required string language_id = 1;
optional string url = 2;
optional bytes imagedata = 3;
}
message MHCatalogGuidEntry {
optional uint64 prototypeGuid = 1;
optional uint64 itemPrototypeRuntimeIdForClient = 2;
optional int32 quantity = 3 [default = 1];
}
message MarvelHeroesCatalogEntry {
required int64 skuId = 1;
repeated MHCatalogGuidEntry guidItems = 9;
repeated MHCatalogGuidEntry additionalGuidItems = 10;
repeated MHLocalizedCatalogEntry localizedEntries = 5;
repeated MHLocalizedCatalogEntryUrlOrData infourls = 2;
repeated MHLocalizedCatalogEntryUrlOrData contentdata = 3;
optional MHCatalogEntryType type = 6;
repeated MHCatalogEntryTypeModifier typeModifier = 7;
}
message MHLocalizedStringCollection {
required string language_id = 1;
repeated MHStringValue translations = 2;
}
message MHStringValue {
optional string key = 1;
optional string text = 2;
}
message MHConsolePresentationEntry {
required string type = 1;
required int64 typeOrder = 2;
repeated MHLocalizedStringCollection localizedEntries = 3;
repeated MHStringValue defaults = 4;
}
message MHConsoleItemPrice {
required int64 price_G = 1;
optional int64 price_ES = 2 [default = -1];
}
message MHConsoleDiscount {
optional float discountPercent_G = 1;
optional float discountPercent_ES = 2;
}
message MHConsoleUpsell {
required string so = 1;
repeated MHLocalizedStringCollection localizedEntries = 2;
repeated MHStringValue defaults = 3;
}
message MarvelHeroesConsoleCatalogEntry {
required string deliverableObject = 1;
repeated MHCatalogGuidEntry guidItems = 2;
required MHConsoleItemPrice itemPrice = 3;
optional MHConsoleItemPrice originalPrice = 4;
optional MHConsoleDiscount discount = 5;
repeated string tags = 6;
repeated MHConsolePresentationEntry presentations = 7;
required string sellableObject = 8;
repeated string categories = 9;
repeated MHConsoleUpsell upsellItems = 10;
optional string filterSO = 11;
optional int64 modelGuid = 12;
}
message MHConsoleCatalogCategoryEntry {
required string id = 1;
required bool visible = 2;
repeated MHLocalizedStringCollection localizedEntries = 3;
required string tid = 4;
repeated string tags = 5;
}
message MHConsoleCatalogTagEntry {
required string id = 1;
required bool sortKey = 2;
required string displayName = 3;
repeated MHLocalizedStringCollection localizedEntries = 4;
}
message MHConsoleCatalogFeaturedEntry {
required string type = 1;
required int32 position = 2;
optional int32 width = 3;
optional int32 height = 4;
repeated MHLocalizedStringCollection localizedEntries = 5;
repeated MHStringValue defaults = 6;
optional string actionLinkSaleableObjectSku = 7;
optional string actionLinkCategory = 8;
}
message MHConsoleCatalogFeatureLayout {
required int32 h = 1;
required int32 w = 2;
}
message MHConsoleCatalogFeatured {
repeated MHConsoleCatalogFeaturedEntry featuredEntries = 1;
required bool deleted = 2;
optional string id = 3;
optional string layoutName = 4;
required MHConsoleCatalogFeatureLayout layout = 5;
}
message GiftHistoryEntry {
optional int64 transactionId = 1;
required int64 skuId = 2;
required int64 timestamp = 3;
optional string message = 4;
}
message GiftHistoryForPlayerEntry {
optional int64 platformAccountId = 1;
required string name = 2;
repeated GiftHistoryEntry historyEntries = 3;
}
message AwardItem {
required string awardId = 1;
required int64 skuId = 2;
required int64 quantity = 3;
}
message AwardCouponDescription {
required string localeId = 1;
required string description = 2;
}
message AwardCoupon {
required string couponId = 1;
required float discount = 2;
required string couponState = 3;
required int64 expirationDateUtc = 4;
repeated AwardCouponDescription descriptions = 5;
required int64 wsec = 6;
}
message AwardEntry {
required string awardType = 1;
optional AwardItem item = 2;
optional AwardCoupon coupon = 3;
}
message MessageEntitlementStatus {
required string EntitlementId = 1;
required int32 UseCount = 2;
required int32 UseLimit = 3;
required bool IsActive = 4;
}
message BillingPlayStationUpdateEntitlementStatus {
repeated MessageEntitlementStatus ConsumableStatus = 1;
repeated string UnlimitedStatus = 2;
}
message MessageEntitlementStatusResponse {
required string EntitlementId = 1;
required int32 UseCount = 2;
required int32 UseLimit = 3;
required bool Consumed = 4;
}
message BillingPlayStationUpdateEntitlementStatusResponse {
repeated MessageEntitlementStatusResponse responses = 1;
}
message BillingAcquireUnfulfilledOrders {
}

View file

@ -0,0 +1,51 @@
syntax = "proto2";
package Gazillion;
import "CommonMessages.proto";
enum ChatRoomTypes {
CHAT_ROOM_TYPE_LOCAL = 0;
CHAT_ROOM_TYPE_SAY = 1;
CHAT_ROOM_TYPE_PARTY = 2;
CHAT_ROOM_TYPE_TELL = 3;
CHAT_ROOM_TYPE_BROADCAST_ALL_SERVERS = 4;
CHAT_ROOM_TYPE_SOCIAL_ZH = 22;
CHAT_ROOM_TYPE_SOCIAL_EN = 5;
CHAT_ROOM_TYPE_SOCIAL_FR = 6;
CHAT_ROOM_TYPE_SOCIAL_DE = 7;
CHAT_ROOM_TYPE_SOCIAL_EL = 8;
CHAT_ROOM_TYPE_SOCIAL_JP = 21;
CHAT_ROOM_TYPE_SOCIAL_KO = 9;
CHAT_ROOM_TYPE_SOCIAL_PT = 10;
CHAT_ROOM_TYPE_SOCIAL_RU = 11;
CHAT_ROOM_TYPE_SOCIAL_ES = 12;
CHAT_ROOM_TYPE_TRADE = 13;
CHAT_ROOM_TYPE_LFG = 14;
CHAT_ROOM_TYPE_GUILD = 15;
CHAT_ROOM_TYPE_FACTION = 16;
CHAT_ROOM_TYPE_EMOTE = 17;
CHAT_ROOM_TYPE_ENDGAME = 18;
CHAT_ROOM_TYPE_METAGAME = 19;
CHAT_ROOM_TYPE_GUILD_OFFICER = 20;
CHAT_ROOM_TYPE_NUM_TYPES = 23;
}
enum ChatErrorMessages {
CHAT_ERROR_NO_SUCH_USER = 0;
CHAT_ERROR_COMMAND_NOT_RECOGNIZED = 1;
CHAT_ERROR_NUM_ERRORS = 2;
}
message ChatMessageAttachments {
repeated bytes attachmments = 1;
optional int64 emoteDataRef = 2;
repeated NetStructItemSpec itemSpecs = 3;
}
message ChatMessage {
optional string body = 1;
optional int64 bodyId = 2;
optional ChatMessageAttachments attachment = 3;
}

View file

@ -0,0 +1,901 @@
syntax = "proto2";
package Gazillion;
import "GazillionCommon.proto";
import "CommonMessages.proto";
import "ChatCommon.proto";
import "Guild.proto";
import "GlobalEventsCommon.proto";
message NetMessageReadyForGameJoin {
required int32 wipesDataIfMismatchedInDb = 1 [default = 0];
optional bool wipePlayerRecordsOnLogin = 2 [default = false];
optional string domainLoginName = 3;
optional bytes playerImportData = 4;
required string localeName = 5;
optional int32 clientOperatingSystem = 6;
required bool streamingSession = 7 [default = false];
required bool consolePlayer = 8;
optional string psnSessionId = 9;
optional bool consoleUI = 10;
required int32 platformType = 11;
}
message NetMessagePlayerSystemMetrics {
required int32 compatLevelCpu = 1 [default = -1];
required int32 compatLevelGpu = 2 [default = -1];
required int32 compatLevelComposite = 3 [default = -1];
optional string osName = 4;
optional string cpuName = 5;
optional string ramName = 6;
optional string displayDeviceName = 7;
optional bool displayDeviceDualGPU = 8;
optional string displayDeviceDriverDate = 9;
optional string userLanguage = 10;
}
message NetMessagePlayerSteamInfo {
required uint64 steamUserId = 1;
optional int32 updateSteamSeqNum = 2;
}
message NetMessageSyncTimeRequest {
required int64 gameTimeClientSent = 1;
required int64 dateTimeClientSent = 2;
}
message NetMessageSetTimeDialation {
required int64 gameTimeDialationStarted = 1;
required int64 dateTimeDialationStarted = 2;
required float dialation = 3;
}
message NetMessageIsRegionAvailable {
required uint64 regionPrototype = 1;
required bool isAvailable = 2;
}
message NetMessageUpdateAvatarState {
required bytes archiveData = 1;
}
message NetMessageCellLoaded {
required uint32 cellId = 1;
required uint64 regionId = 2;
}
message NetMessageTeleportAckResponse {
required uint32 ackseq = 1;
}
message NetMessageAdminCommand {
required string command = 1;
}
message NetMessageTryActivatePower {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
optional uint64 idTargetEntity = 3;
optional NetStructPoint3 targetPosition = 4;
optional float movementSpeed = 5;
optional uint64 movementTimeMS = 6;
optional uint32 powerRandomSeed = 7;
optional uint64 itemSourceId = 8;
required uint32 fxRandomSeed = 9;
optional uint64 triggeringPowerPrototypeId = 10;
}
message NetMessagePowerRelease {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
optional uint64 idTargetEntity = 3;
optional NetStructPoint3 targetPosition = 4;
}
message NetMessageTryCancelPower {
required uint64 idUserEntity = 1;
required uint64 powerPrototypeId = 2;
required uint32 endPowerFlags = 3;
}
message NetMessageTryCancelActivePower {
required uint64 idUserEntity = 1;
}
message NetMessageContinuousPowerUpdateToServer {
required uint64 powerPrototypeId = 1;
required int32 avatarIndex = 2;
optional uint64 idTargetEntity = 3;
optional NetStructPoint3 targetPosition = 4;
optional uint32 randomSeed = 5;
}
message NetMessageCancelPendingAction {
required int32 avatarIndex = 1;
}
message NetMessageStartAIDebugUI {
required uint64 idTargetNPC = 1;
}
message NetMessageStopAIDebugUI {
required uint64 idTargetNPC = 1;
}
message NetMessageStartAIPerformanceUI {
}
message NetMessageStopAIPerformanceUI {
}
message NetMessageStartMissionDebugUI {
required uint64 idTargetAgent = 1;
required uint64 missionPrototypeRefId = 2;
required string missionListMatchPattern = 3;
}
message NetMessageStopMissionDebugUI {
required uint64 idTargetAgent = 1;
}
message NetMessageStartPropertiesDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopPropertiesDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStartConditionsDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopConditionsDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStartPowersDebugUI {
required uint64 idTargetEntity = 1;
}
message NetMessageStopPowersDebugUI {
required uint64 idTargetEntity = 1;
}
message NetStructMessageStoreMetric {
required AvailableStoreActions storeActionEnum = 1;
required uint64 unixTimestamp = 2;
optional uint64 targetPrototypeId = 3;
}
message NetMessagePing {
required bool displayOutput = 1;
required uint64 sendClientTime = 2;
optional uint64 sendGameTime = 3;
optional uint64 requestNetReceivedGameTime = 4;
optional uint64 lastClientLatency = 5;
optional float lastFps = 6;
optional uint64 regionPrototype = 7;
optional uint32 cpulevel = 8;
optional uint32 gpulevel = 9;
optional uint32 compositelevel = 10;
optional string countrycode = 11;
optional float minFps = 12;
optional NetStructPoint3 minFpsPos = 13;
repeated NetStructMessageStoreMetric storeMetrics = 14;
optional bool streamingclient = 15 [default = false];
}
message NetMessageFPS {
required float avgFps = 1;
required float minFps = 2;
required uint32 numHitches = 3;
required uint64 regionPrototype = 4;
required uint32 cpulevel = 5;
required uint32 gpulevel = 6;
required uint32 compositelevel = 7;
optional bool streamingclient = 8 [default = false];
}
message NetMessageGamepadMetric {
required bool IsDualShock = 1;
required int32 PlayerSlotNumber = 2;
required bool IsDefaultBinding = 3;
}
message NetMessagePickupInteraction {
required uint64 idTarget = 1;
required int32 avatarIndex = 2;
optional bool useInteractFallbackRange = 3;
}
message NetMessageTryInventoryMove {
required uint64 itemId = 1;
required uint64 toInventoryOwnerId = 2;
required uint64 toInventoryPrototype = 3;
required uint32 toSlot = 4;
optional bool isStackSplit = 5;
}
message NetMessageTryMoveCraftingResultsToGeneral {
}
message NetMessageInventoryTrashItem {
required uint64 itemId = 1;
}
message NetMessageThrowInteraction {
required uint64 idTarget = 1;
required int32 avatarIndex = 2;
}
message NetMessagePerformPreInteractPower {
required uint64 idTarget = 1;
required int32 avatarIndex = 2;
required bool hasDialog = 3;
}
message NetMessageUseInteractableObject {
required uint64 idTarget = 1;
required int32 avatarIndex = 2;
optional uint64 missionPrototypeRef = 3;
}
message NetMessageTryCraft {
required uint64 idRecipe = 1;
required uint64 idVendor = 2;
repeated uint64 idIngredients = 3;
required bool isRecraft = 4;
}
message NetMessageUseWaypoint {
required int32 avatarIndex = 1;
required uint64 idTransitionEntity = 2;
required uint64 waypointDataRef = 3;
required uint64 regionProtoId = 4;
required uint64 difficultyProtoId = 5;
}
message NetMessageDebugAcquireAndSwitchToAvatar {
required uint64 avatarPrototypeId = 1;
}
message NetMessageSwitchAvatar {
required uint64 avatarPrototypeId = 1;
required uint32 avatarModeEnum = 2;
required uint32 avatarIndex = 3;
}
message NetMessageChangeDifficulty {
required uint64 difficultyTierProtoId = 1;
}
message NetMessageSelectPublicEventTeam {
required uint64 teamPrototypeId = 1;
}
message NetMessageRefreshAbilityKeyMapping {
required uint64 avatarId = 1;
}
message NetMessageAbilitySlotToAbilityBar {
required uint64 avatarId = 1;
required uint64 prototypeRefId = 2;
required uint32 slotNumber = 3;
}
message NetMessageAbilityUnslotFromAbilityBar {
required uint64 avatarId = 1;
required uint32 slotNumber = 2;
}
message NetMessageAbilitySwapInAbilityBar {
required uint64 avatarId = 1;
required uint32 slotNumberA = 2;
required uint32 slotNumberB = 3;
}
message NetMessageModCommitTemporary {
required uint64 avatarRef = 1;
required uint64 modTypeRef = 2;
repeated NetStructModChangeObject changes = 3;
}
message NetMessageModReset {
required uint64 avatarId = 1;
required uint64 modTypeRef = 2;
}
message NetMessagePowerRecentlyUnlocked {
required uint64 powerPrototypeId = 1;
required uint64 avatarEntityId = 2;
required bool isRecentlyUnlocked = 3;
}
message NetMessageRequestDeathRelease {
required uint32 avatarIndex = 1;
required uint32 requestType = 2;
}
message NetMessageRequestResurrectDecline {
required uint32 avatarIndex = 1;
}
message NetMessageRequestResurrectAvatar {
required uint32 avatarIndex = 1;
required uint64 targetId = 2;
}
message NetMessageReturnToHub {
}
message NetMessageRequestStoryWarp {
required uint64 storyWarpPrototypeId = 1;
required uint64 storyWarpNPC = 2;
}
message NetMessageRequestMissionRewards {
required uint64 missionPrototypeId = 1;
optional uint32 conditionIndex = 2;
optional uint64 entityId = 3;
}
message NetMessageRequestRemoveAndKillControlledAgent {
required uint64 avatarId = 1;
}
message NetMessageDamageMeter {
required uint64 encounterguid = 1;
required uint64 avatarguid = 2;
required float dps = 3;
required float damagescore = 4;
required int32 numdeaths = 5;
}
message NetMessageDuelInvite {
required uint64 challengerEntityId = 1;
optional string challengerName = 2;
optional uint64 opponentEntityId = 3;
required string opponentName = 4;
}
message NetMessageDuelAccept {
required uint64 challengedEntityId = 1;
optional string challengedName = 2;
}
message NetMessageDuelCancel {
required uint64 cancellingEntityId = 1;
optional string cancellingName = 2;
}
message NetMessageMetaGameUpdateNotification {
required uint64 metaGameEntityId = 1;
}
message NetMessageChat {
required ChatRoomTypes roomType = 1;
required ChatMessage theMessage = 2;
}
message NetMessageTell {
required string targetPlayerName = 1;
required ChatMessage theMessage = 2;
}
message NetMessageReportPlayer {
required string targetPlayerName = 1;
required string reason = 2;
}
message NetMessageChatBanVote {
required string targetPlayerName = 1;
optional string reason = 2;
}
message NetMessageGetCatalog {
optional uint64 itemPrototypeRuntimeId = 1 [default = 0];
optional int64 timestamp_seconds = 3 [default = 0];
optional int64 timestamp_microseconds = 5 [default = 0];
optional string localeid = 4 [default = "en_us"];
optional string catalog_version_string = 6;
}
message NetMessageGetCurrencyBalance {
}
message NetMessageBuyItemFromCatalog {
optional int64 skuId = 1;
required int64 itemUnitPrice = 2;
optional int32 numUnits = 3 [default = 1];
optional StoreCurrencyType currencyType = 4 [default = StoreCurrency_G];
optional string so = 5;
}
message NetMessageBuyGiftForOtherPlayer {
optional int64 skuId = 1;
required int64 itemUnitPrice = 2;
required string recipientName = 3;
optional int32 numUnits = 4 [default = 1];
optional string giftMessage = 5;
optional StoreCurrencyType currencyType = 6 [default = StoreCurrency_G];
optional string so = 7;
}
message NetMessagePurchaseUnlock {
required int64 agentPrototypeId = 1;
}
message NetMessageGetGiftHistory {
}
message EntityPreviewerEnum {
enum Alliance {
Ally = 0;
Enemy = 1;
Total = 2;
}
}
message NetMessageEntityPreviewerNewTargets {
required EntityPreviewerEnum.Alliance alliance = 1;
optional uint32 numNewTargets = 2;
}
message NetMessageEntityPreviewerClearTargets {
}
message NetMessageEntityPreviewerSetTargetRef {
required uint64 targetRefId = 1;
}
message NetMessageEntityPreviewerActivatePower {
required uint64 casterId = 1;
required uint64 powerRefId = 2;
required bool createTarget = 3;
required bool randomTargetPos = 4;
}
message NetMessageEntityPreviewerAddTarget {
required uint64 targetId = 1;
}
message NetMessageEntityPreviewerSetEntityState {
required uint64 targetId = 1;
required uint64 stateRefId = 2;
}
message NetMessageEntityPreviewerApplyConditions {
required uint64 targetId = 1;
required uint64 powerRefId = 2;
}
message NetMessageCreateNewPlayerWithSelectedStartingAvatar {
required uint64 startingAvatarPrototypeId = 1;
required uint32 totalTime = 2;
}
message NetMessageOnKioskStartButtonPressed {
}
message NetMessageNotifyFullscreenMovieStarted {
required uint64 moviePrototypeId = 1;
}
message NetMessageNotifyFullscreenMovieFinished {
required uint64 moviePrototypeId = 1;
required bool userCancelled = 2;
required uint32 syncRequestId = 3;
}
message NetMessageNotifyLoadingScreenFinished {
}
message NetMessageBotSetLevel {
required int32 level = 1;
}
message NetMessageBotGodMode {
}
message NetMessageBotPickAvatar {
required uint64 avatarBotDataId = 1;
optional int32 level = 2;
optional uint64 lootPrototype = 3;
optional uint32 lootTableRoll = 4;
}
message NetMessageBotRegionChange {
required uint64 regionDataId = 1;
}
message NetMessageBotWarpAreaNext {
}
message NetMessageBotLootGive {
required uint64 lootPrototype = 1;
required uint32 lootTableRoll = 2;
}
message NetMessageBotSetPvPFaction {
required uint64 factionSetPrototype = 1;
}
message NetMessageBotPvPQueue {
required uint64 pvpQueueId = 1;
}
message NetMessageGetTrackerReport {
required uint32 messageSource = 1;
required uint32 messageDirection = 2;
}
message NetMessagePlayKismetSeqDone {
required uint64 kismetSeqPrototypeId = 1;
required uint32 syncRequestId = 2;
}
message NetMessageVerifyFailedForRepId {
required uint64 repid1 = 1;
required string file = 2;
required uint32 line = 3;
required string debugmsg = 4;
optional uint64 repid2 = 5;
}
message NetMessageGracefulDisconnect {
}
message NetMessageRequestStartNewGame {
}
message NetMessageSetDialogTarget {
required uint64 targetId = 1;
required uint64 interactorId = 2;
}
message NetMessageDialogResult {
required uint64 serverId = 1;
required uint64 playerGuid = 2;
required GameDialogResultEnum buttonIndex = 3;
required bool checkboxClicked = 4;
}
message NetMessageVendorRequestBuyItemFrom {
required int32 avatarIndex = 1;
required uint64 itemId = 2;
required uint64 vendorId = 3;
required uint32 inventorySlot = 4;
}
message NetMessageVendorRequestSellItemTo {
required int32 avatarIndex = 1;
required uint64 itemId = 2;
required uint64 vendorId = 3;
}
message NetMessageVendorRequestDonateItemTo {
required int32 avatarIndex = 1;
required uint64 itemId = 2;
required uint64 vendorId = 3;
}
message NetMessageVendorRequestRefresh {
required int32 avatarIndex = 1;
required uint64 vendorId = 2;
}
message NetMessageTryModifyCommunityMemberCircle {
required uint64 circleId = 1;
required ModifyCircleOperation operation = 2;
required string playerName = 3;
}
message NetMessagePullCommunityStatus {
}
message NetMessageGuildMessageToPlayerManager {
required GuildMessageSetToPlayerManager messages = 1;
}
message NetMessageAkEvent {
required uint32 akEventId = 1;
required bool isVO = 2;
required uint32 eventType = 3;
optional uint32 cooldownMS = 4 [default = 0];
}
message NetMessageSetTipSeen {
required uint64 tipDataRefId = 1;
}
message NetMessageHUDTutorialDismissed {
required uint64 hudTutorialProtoId = 1;
}
message NetMessageTryMoveInventoryContentsToGeneral {
required uint64 sourceInventoryPrototype = 1;
}
message NetMessageSetPlayerGameplayOptions {
required NetStructGameplayOptions optionsData = 1;
}
message NetMessageTeleportToPartyMember {
required string playerName = 1;
}
message NetMessageRegionRequestQueueCommandClient {
required uint64 regionProtoId = 1;
required uint64 difficultyTierProtoId = 2;
optional uint64 regionRequestGroupId = 3;
required RegionRequestQueueCommandVar command = 4;
}
message NetMessageSelectAvatarSynergies {
required uint64 avatarId = 1;
repeated uint64 avatarPrototypes = 2;
}
message NetMessageRequestLegendaryMissionReroll {
}
message NetMessageAttemptShareLegendaryMission {
required uint64 playerDbId = 1;
optional string playerDisplayName = 2;
}
message NetMessageAttemptShareLegendaryMissionResponse {
required bool missionAccepted = 1;
}
message NetMessageRequestPlayerOwnsItemStatus {
required uint64 itemProtoId = 1;
}
message NetMessageRequestInterestInInventory {
required uint64 inventoryProtoId = 1;
required InventoryLoadStateEnum loadState = 2;
}
message NetMessageRequestLoadInventorySlots {
required uint64 inventoryOwnerId = 1;
required uint64 inventoryProtoId = 2;
repeated uint32 slots = 3;
}
message NetMessageRequestInterestInAvatarEquipment {
required uint64 avatarProtoId = 1;
required uint32 avatarModeEnum = 2;
}
message NetMessageRequestInterestInTeamUpEquipment {
required uint64 teamUpProtoId = 1;
}
message NetMessageTryTeamUpSelect {
required uint64 teamUpPrototypeId = 1;
}
message NetMessageRequestTeamUpDismiss {
}
message NetMessageTryTeamUpStyleSelect {
required uint32 styleIndex = 1;
}
message NetMessageSelectInfinityGemBonus {
required uint64 gemBonusProtoRefID = 1;
required int64 points = 2;
}
message NetMessageInfinityPointAllocationCommit {
required uint64 avatarId = 1;
repeated NetMessageSelectInfinityGemBonus allocations = 2;
}
message NetMessageRespecInfinity {
required uint64 avatarId = 1;
optional int32 gem = 2;
}
message NetMessageSelectOmegaBonus {
required uint64 omegaBonusProtoRefID = 1;
required int32 points = 2;
}
message NetMessageOmegaBonusAllocationCommit {
required uint64 avatarId = 1;
repeated NetMessageSelectOmegaBonus allocations = 2;
}
message NetMessageRespecOmegaBonus {
required uint64 avatarId = 1;
}
message NetMessageRespecPowerSpec {
required uint64 characterId = 1;
required int32 powerSpecIndex = 2;
}
message NetMessageNewItemGlintPlayed {
required uint64 playerId = 1;
repeated uint64 itemIds = 2;
}
message NetMessageNewItemHighlightCleared {
required uint64 playerId = 1;
required uint64 itemId = 2;
}
message NetMessageNewSynergyCleared {
required uint64 playerId = 1;
required uint64 avatarPrototypeId = 2;
}
message NetMessageUnassignMappedPower {
required uint64 avatarId = 1;
required uint64 mappedPowerProtoId = 2;
}
message NetMessageAssignStolenPower {
required uint64 avatarId = 1;
required uint64 stealingPowerProtoId = 2;
required uint64 stolenPowerProtoId = 3;
}
message NetMessageVanityTitleSelect {
required int32 avatarIndex = 1;
required uint64 vanityTitlePrototypeId = 2;
}
message NetMessageRequestGlobalEventUpdate {
required uint64 eventId = 1;
required GlobalEventUpdateType updateType = 2;
}
message NetMessageHasPendingGift {
optional bool hasPendingGift = 1;
}
message NetMessagePlayerTradeStart {
required string partnerPlayerName = 1;
}
message NetMessagePlayerTradeCancel {
}
message NetMessagePlayerTradeSetConfirmFlag {
required bool confirmFlag = 1;
required uint32 sequenceNumber = 2;
}
message NetMessageRequestPetTechDonate {
required uint64 itemId = 1;
required uint64 avatarId = 2;
}
message NetMessageSetActivePowerSpec {
required uint64 avatarId = 1;
required uint32 activeSpec = 2;
}
message NetMessageChangeCameraSettings {
required uint64 cameraSettings = 1;
}
message NetMessageRequestSocketAffix {
required uint64 destItemId = 1;
required uint64 gemAffixItemId = 2;
}
message NetMessageUISystemLockState {
required uint64 prototypeId = 1;
required uint32 state = 2;
}
message NetMessageEnableTalentPower {
required uint64 avatarId = 1;
required uint64 prototypeId = 2;
required bool enable = 3;
required uint32 spec = 4;
}
message NetMessageStashInventoryViewed {
required uint64 prototypeId = 1;
}
message NetMessageStashCurrentlyOpen {
required uint64 prototypeId = 1;
}
message NetMessageWidgetButtonResult {
required uint64 widgetRefId = 1;
required uint64 widgetContextRefId = 2;
required uint64 playerGuid = 3;
required bool result = 4;
}
message NetMessageStashTabInsert {
required uint64 invId = 1;
required uint64 insertIndex = 2;
}
message NetMessageStashTabOptions {
required uint64 inventoryRefId = 1;
optional string displayName = 2;
optional uint64 iconPathAssetId = 3;
optional uint32 color = 4;
}
message NetMessageLeaderboardRequest {
optional LeaderboardPlayerScoreQuery playerScoreQuery = 1;
optional LeaderboardGuildScoreQuery guildScoreQuery = 2;
optional LeaderboardMetaScoreQuery metaScoreQuery = 3;
optional LeaderboardDataQuery dataQuery = 4;
}
message NetMessageLeaderboardArchivedInstanceListRequest {
repeated uint64 leaderboardIds = 1;
}
message NetMessageLeaderboardInitializeRequest {
repeated uint64 leaderboardIds = 1;
}
message NetMessageCoopOpRequest {
required uint32 slot = 1;
required CoopOp operation = 2;
optional uint64 avatarPrototypeId = 3;
optional uint64 consoleAccountId = 4;
optional string consoleOnlineId = 5;
}
message NetMessageCouponAwardPresented {
}
message NetMessagePartyOperationRequest {
required PartyOperationPayload payload = 1;
}
message NetMessagePSNNotification {
required PSNNotification payload = 1;
}
message NetMessageSuggestPlayerToPartyLeader {
required uint64 suggestedPlayerConsoleAccountId = 1;
}
message NetMessageMissionTrackerFilterChange {
required uint64 filterPrototypeId = 1;
required bool isFiltered = 2;
}
message NetMessageMissionTrackerFiltersUpdate {
repeated NetMessageMissionTrackerFilterChange missionTrackerFilterChanges = 1;
}
message NetMessageAchievementMissionTrackerFilterChange {
required uint32 achievementId = 1;
required bool isFiltered = 2;
}
message NetMessageBillingRoutedClientMessage {
required bytes payload = 1;
}
message NetMessagePlayerLookupByNameClientRequest {
required string playerName = 1;
}
message NetMessageCostumeChange {
required uint64 avatarId = 1;
required uint64 costumePrototypeId = 2;
}
message NetMessageLookForParty {
required uint32 lookForPartyType = 1;
}

View file

@ -0,0 +1,8 @@
syntax = "proto2";
package Gazillion;
message GetPlayerInfoByName {
required string playerName = 1;
}

View file

@ -0,0 +1,712 @@
syntax = "proto2";
package Gazillion;
enum InventoryLoadStateEnum {
eILS_Unloaded = 0;
eILS_Archived = 1;
eILS_Loaded = 2;
}
enum GameDialogResultEnum {
eGDR_TimeoutOnServer = -2;
eGDR_TimeoutOnClient = -1;
eGDR_Closed = 0;
eGDR_Option1 = 1;
eGDR_Option2 = 2;
eGDR_Option3 = 3;
eGDR_Checkbox = 4;
}
enum TeleportContextEnum {
TeleportContext_Invalid = 0;
TeleportContext_Bodyslide = 1;
TeleportContext_Bot = 2;
TeleportContext_Debug = 3;
TeleportContext_MetaGame = 4;
TeleportContext_Mission = 5;
TeleportContext_Party = 6;
TeleportContext_Portal = 7;
TeleportContext_Power = 8;
TeleportContext_Resurrect = 9;
TeleportContext_Transition = 10;
TeleportContext_Waypoint = 11;
TeleportContext_StoryWarp = 12;
}
enum ModifyCircleOperation {
eMCO_Add = 1;
eMCO_Remove = 2;
}
enum GlobalTuningVar {
eGTV_VendorBuyPrice = 0;
eGTV_VendorSellPrice = 1;
eGTV_VendorXPGain = 2;
eGTV_PVPEnabled = 3;
eGTV_XPGain = 4;
eGTV_LootDropRate = 5;
eGTV_LootSpecialDropRate = 6;
eGTV_LootRarity = 7;
eGTV_PartyXPBonusPct = 8;
eGTV_PlayerTradeEnabled = 9;
eGTV_CosmicPrestigeXPPct = 10;
eGTV_LootVaporizationEnabled = 11;
eGTV_XPBuffDisplay = 12;
eGTV_SIFBuffDisplay = 13;
eGTV_RIFBuffDisplay = 14;
eGTV_OmegaXPPct = 15;
eGTV_RespectLevelForGlobalXP = 16;
eGTV_RespectLevelForGlobalRIF = 17;
eGTV_RespectLevelForGlobalSIF = 18;
eGTV_RespectLevelForOmegaXP = 19;
eGTV_RespectLevelForAvatarXP = 20;
eGTV_RespectLevelForRegionXP = 21;
eGTV_ServerBonusUnlockLevelOverride = 22;
eGTV_BoostTimersRunning = 23;
eGTV_InfinityXPPct = 24;
eGTV_RespectLevelForInfinityXP = 25;
eGTV_SuperVerboseMetricsEnabled = 26;
eGTV_HighVolumeMetricsEnabled = 27;
eGTV_MediumVolumeMetricsEnabled = 28;
eGTV_LowVolumeMetricsEnabled = 29;
eGTV_NumGlobalTuningVars = 30;
}
enum AreaTuningVar {
eATV_AreaMobSpawnHeat = 0;
eATV_AreaMobSpawnHeatReturn = 1;
eATV_NumAreaTuningVars = 2;
}
enum WorldEntityTuningVar {
eWETV_MobPowerDamage = 0;
eWETV_MobHealth = 1;
eWETV_MobXP = 2;
eWETV_MobDropRate = 3;
eWETV_MobSpecialDropRate = 4;
eWETV_Enabled = 5;
eWETV_MobDropRarity = 6;
eWETV_VendorEnabled = 7;
eWETV_Unused1 = 8;
eWETV_EternitySplinterPrice = 9;
eWETV_LootGroupNum = 10;
eWETV_LootNoDropPercent = 11;
eWETV_Visible = 12;
eWETV_NumWorldEntityTuningVars = 13;
}
enum AvatarEntityTuningVar {
eAETV_BonusXPPct = 0;
eAETV_XPBuffDisplay = 1;
eAETV_EternitySplinterPrice = 2;
eAETV_Enabled = 3;
eAETV_NumAvatarEntityTuningVars = 4;
}
enum PopObjTuningVar {
ePOTV_PopulationObjectWeight = 0;
ePOTV_NumPopulationObjectTuningVars = 1;
}
enum PowerTuningVar {
ePTV_PowerCost = 0;
ePTV_PowerDamagePVE = 1;
ePTV_PowerDamagePVP = 2;
ePTV_PowerEnabled = 3;
ePTV_NumPowerTuningVars = 4;
}
enum RegionTuningVar {
eRTV_PlayerLimit = 0;
eRTV_Enabled = 1;
eRT_BonusXPPct = 2;
eRT_XPBuffDisplay = 3;
eRT_BonusItemFindMultiplier = 4;
eRTV_NumRegionTuningVars = 5;
}
enum LootTableTuningVar {
eLTTV_Enabled = 0;
eLTTV_Weight = 1;
eLTTV_Rolls = 2;
eLTTV_NoDropPercent = 3;
eLTTV_GroupNum = 4;
eLTTV_NumLootTableTuningVars = 5;
}
enum MissionTuningVar {
eMTV_Enabled = 0;
eMTV_EventInstance = 1;
eMTV_NumMissionTuningVars = 2;
}
enum ConditionTuningVar {
eCTV_Enabled = 0;
eCTV_NumConditionTuningVars = 1;
}
enum PublicEventTuningVar {
ePETV_Enabled = 0;
ePETV_EventInstance = 1;
ePETV_NumPublicEventTuningVars = 2;
}
enum MetricsFrequencyTuningVar {
eMFTV_SampleRate = 0;
eMFTV_NumMetricsFrequencyTuningVars = 1;
}
enum RegionRequestQueueUpdateVar {
eRRQ_Invalid = 1;
eRRQ_SelectQueueMethod = 2;
eRRQ_RemovedFromGroup = 3;
eRRQ_RemovedGracePeriod = 4;
eRRQ_RemovedGracePeriodExpired = 5;
eRRQ_RaidNotAllowed = 6;
eRRQ_PartyTooLarge = 7;
eRRQ_GroupInvitePending = 8;
eRRQ_GroupInviteAccepted = 9;
eRRQ_GroupInviteDeclined = 10;
eRRQ_GroupInviteExpired = 11;
eRRQ_WaitingInQueue = 12;
eRRQ_WaitingInWaitlist = 13;
eRRQ_WaitingInWaitlistLocked = 14;
eRRQ_MatchInvitePending = 15;
eRRQ_MatchInviteAccepted = 16;
eRRQ_MatchInviteDeclined = 17;
eRRQ_MatchInviteExpired = 18;
eRRQ_InMatch = 19;
}
enum RegionRequestQueueCommandVar {
eRRQC_AddToQueueSolo = 1;
eRRQC_AddToQueueParty = 2;
eRRQC_AddToQueueBypass = 3;
eRRQC_GroupInviteAccept = 4;
eRRQC_GroupInviteDecline = 5;
eRRQC_RemoveFromQueue = 6;
eRRQC_MatchInviteAccept = 7;
eRRQC_MatchInviteDecline = 8;
eRRQC_DebugForceStart = 9;
eRRQC_DebugInfo = 10;
eRRQC_RequestToJoinGroup = 11;
}
enum RegionPlayerAccessVar {
eRPA_Invalid = 0;
eRPA_Open = 1;
eRPA_InviteOnly = 2;
eRPA_BodyslideOnly = 3;
eRPA_Locked = 4;
eRPA_Closed = 5;
}
enum RegionTransferFailure {
eRTF_NoError = 0;
eRTF_GenericError = 1;
eRTF_CreationProhibitedByGame = 2;
eRTF_Full = 3;
eRTF_PartiesNotAllowed = 4;
eRTF_RaidsNotAllowed = 5;
eRTF_TargetPlayerUnavailable = 6;
eRTF_BodyslideRegionUnavailable = 7;
eRTF_DestinationInaccessible = 8;
eRTF_MatchNoTeleportToPlayer = 9;
eRTF_MatchNoTeleportToParty = 10;
eRTF_PlayerBlacklistedFromRegion = 11;
eRTF_EndlessProgressedTooFar = 12;
}
enum AvailableStoreActions {
StoreAction_ViewHomeTab = 1;
StoreAction_ViewHeroesTab = 2;
StoreAction_ViewCostumesTab = 3;
StoreAction_ViewItemsTab = 4;
StoreAction_ViewCardsTab = 5;
StoreAction_ViewSpecialsTab = 6;
StoreAction_ViewCostumesForHero = 7;
StoreAction_UserPressedBuy = 8;
StoreAction_UserPressedAddGs = 9;
StoreAction_StoreOpened = 10;
StoreAction_NumberOfStoreActions = 11;
}
enum MetricWaveResults {
MetricWaveResults_Success = 1;
MetricWaveResults_FailQuit = 2;
MetricWaveResults_FailPlayerWipe = 3;
MetricWaveResults_FailStudentDeath = 4;
MetricWaveResults_FailDeathTimeout = 5;
MetricWaveResults_NumberOfMetricWaveResults = 6;
}
enum LegendaryMissionShareResultType {
LegendaryMissionShare_Sent = 1;
LegendaryMissionShare_Accepted = 2;
LegendaryMissionShare_Declined = 3;
LegendaryMissionShare_RequestAlreadyPending = 4;
LegendaryMissionShare_FailPlayerNotFound = 5;
LegendaryMissionShare_FailNotEligible = 6;
LegendaryMissionShare_FailAlreadyHave = 7;
LegendaryMissionShare_FailCannotShareWithSelf = 8;
LegendaryMissionShare_FailCannotReShare = 9;
LegendaryMissionShare_UnknownFailure = 10;
}
enum GroupType {
GroupType_Invalid = 0;
GroupType_Party = 1;
GroupType_Raid = 2;
}
enum CurrencyType {
Currency_EternitySplinter = 1;
Currency_CubeShard = 2;
Currency_OdinMarks = 3;
Currency_Credits = 4;
Currency_ResearchDrives = 5;
Currency_Worldstones = 6;
Currency_EyeOfDemonfire = 7;
Currency_HeartOfDemonfire = 8;
Currency_CrownOfValor = 9;
Currency_OmegaFiles = 10;
Currency_GenoshaRaid = 11;
Currency_DangerRoomMerits = 12;
CurrencySpend_NumberOfCurrencySpendTypes = 13;
}
enum StoreCurrencyType {
StoreCurrency_G = 0;
StoreCurrency_ES = 1;
}
enum GroupLeaveReason {
GROUP_LEAVE_REASON_LEFT = 1;
GROUP_LEAVE_REASON_BOOTED = 2;
GROUP_LEAVE_REASON_DISBANDED = 3;
GROUP_LEAVE_REASON_DISCONNECTED = 4;
}
enum LeaderboardState {
eLBS_Created = 0;
eLBS_Active = 1;
eLBS_Expired = 2;
eLBS_Reward = 3;
eLBS_RewardsPending = 4;
eLBS_Rewarded = 5;
}
enum GroupingStateOfPlayer {
eGSOP_Solo = 1;
eGSOP_PendingInvite = 2;
eGSOP_InGroup = 3;
}
enum GroupingOperationType {
eGOP_InvitePlayer = 1;
eGOP_AcceptInvite = 2;
eGOP_DeclineInvite = 3;
eGOP_JoinPartyWithPSNSessionId = 4;
eGOP_LeaveParty = 5;
eGOP_DisbandParty = 6;
eGOP_ServerNotification = 7;
eGOP_KickPlayer = 8;
eGOP_ChangeLeader = 9;
eGOP_ConvertToRaid = 10;
eGOP_ConvertToRaidAccept = 11;
eGOP_ConvertToRaidDecline = 12;
eGOP_ConvertToParty = 13;
eGOP_ChangeDifficulty = 14;
}
enum GroupingOperationResult {
eGOPR_Success = 1;
eGOPR_NoChange = 2;
eGOPR_SystemError = 3;
eGOPR_TargetPlayerNotFound = 4;
eGOPR_TargetedSelf = 5;
eGOPR_AlreadyHasInvite = 6;
eGOPR_NoPendingInvite = 7;
eGOPR_PartyFull = 8;
eGOPR_NotLeader = 9;
eGOPR_NotInParty = 10;
eGOPR_NotInSameParty = 11;
eGOPR_PendingPartyDisbanded = 12;
eGOPR_AlreadyInParty = 14;
eGOPR_HasNoCheckpoint = 15;
}
enum PartyMemberEvent {
ePME_Remove = 1;
ePME_Add = 2;
ePME_Update = 3;
}
enum CoopOp {
CoopOp_StartForSlot = 0;
CoopOp_EndForSlot = 1;
}
enum CoopOpResult {
CoopOpResult_Success = 0;
CoopOpResult_GenericError = 1;
CoopOpResult_PartyFull = 2;
CoopOpResult_RegionFull = 3;
CoopOpResult_QueueGroupFull = 4;
CoopOpResult_SpawnFailed = 5;
CoopOpResult_SlotActive = 6;
CoopOpResult_AvatarInUse = 7;
CoopOpResult_AvatarLocked = 8;
}
enum PSNNotifyType {
PSNNotify_PSNSessionStart = 0;
PSNNotify_PSNSessionEnd = 1;
}
message NetStructPoint3 {
optional float X = 1 [default = 0];
optional float Y = 2 [default = 0];
optional float Z = 3 [default = 0];
}
message NetStructIPoint3 {
optional uint32 X = 1 [default = 0];
optional uint32 Y = 2 [default = 0];
optional uint32 Z = 3 [default = 0];
}
message NetStructPoint2 {
optional float X = 1 [default = 0];
optional float Y = 2 [default = 0];
}
message NetStructIPoint2 {
optional uint32 X = 1 [default = 0];
optional uint32 Y = 2 [default = 0];
}
message NetStructProperty {
required uint64 id = 1;
required uint64 value = 2;
}
message NetStructPropertyList {
repeated NetStructProperty properties = 1;
}
message NetStructFormatStringArg {
optional uint64 localeStringId = 1;
optional string stringValue = 2;
optional string playerName = 3;
optional int64 intValue = 4;
optional float floatValue = 5;
}
message NetStructFormatString {
required uint64 formatStringId = 1;
repeated NetStructFormatStringArg args = 2;
}
message NetStructDialogButton {
required GameDialogResultEnum type = 1;
required NetStructFormatString formatString = 2;
required uint32 style = 3;
optional bool enabled = 4 [default = true];
}
message NetStructDialog {
required NetStructFormatString messageString = 1;
repeated NetStructDialogButton buttonStrings = 2;
optional NetStructFormatString checkboxString = 3;
optional uint64 targetId = 4 [default = 0];
optional uint64 interactorId = 5 [default = 0];
required uint32 options = 6;
}
message NetStructRegionLocation {
required uint64 regionId = 1;
required NetStructPoint3 position = 2;
}
message NetStructRegionTarget {
required uint64 regionProtoId = 1;
required uint64 areaProtoId = 2;
required uint64 cellProtoId = 3;
required uint64 entityProtoId = 4;
}
message NetStructTransferParams {
required uint64 TransferId = 1;
required uint64 DestRegionId = 2;
required uint64 DestRegionProtoId = 3;
optional NetStructRegionTarget DestTarget = 4;
optional NetStructRegionLocation DestLocation = 5;
optional uint64 DestEntityDbId = 6 [default = 0];
optional int32 DestTeamIndex = 7 [default = -1];
optional bool HasInvite = 8 [default = false];
optional NetStructRegionOrigin Origin = 9;
}
message NetStructRegionOrigin {
optional NetStructRegionLocation location = 1;
optional NetStructRegionTarget target = 2;
optional uint64 transitionDbId = 3;
}
message NetStructPortalInstance {
required uint64 entityDbId = 1;
required NetStructRegionLocation location = 2;
optional uint64 ownerPlayerDbId = 3;
optional bool boundToOwner = 4;
}
message ChangeRegionRequestHeader {
required uint64 requestingGameId = 1;
required uint64 requestingPlayerGuid = 2;
required NetStructRegionOrigin origin = 3;
required TeleportContextEnum type = 4;
}
message NetStructCreateRegionParams {
required uint32 level = 1;
optional NetStructRegionOrigin origin = 2;
optional bool cheat = 3;
optional uint64 difficultyTierProtoId = 4;
optional uint32 endlessLevel = 5 [default = 0];
optional uint64 gameStateId = 6;
optional uint64 matchNumber = 7 [default = 0];
optional uint32 seed = 8;
optional uint64 parentRegionId = 9;
optional uint64 requiredItemProtoId = 10;
optional uint64 requiredItemEntityId = 11;
optional NetStructPortalInstance accessPortal = 12;
repeated uint64 affixes = 13;
optional uint32 playerDeaths = 14 [default = 0];
optional uint64 dangerRoomScenarioItemDbGuid = 15 [default = 0];
optional uint64 itemRarity = 16 [default = 0];
optional bytes propertyBuffer = 17;
optional uint64 dangerRoomScenarioR = 18;
}
message NetStructModChangeObject {
required uint64 mod = 1;
required uint32 change = 2;
}
message NetStructAffixSpec {
required uint64 affixProtoRef = 1;
required uint64 scopeProtoRef = 2;
required int32 seed = 3;
}
message NetStructItemSpec {
required uint64 itemProtoRef = 1;
required uint32 itemLevel = 2;
required uint64 rarityProtoRef = 3;
required uint32 seed = 4;
optional uint32 creditsAmount = 5;
repeated NetStructAffixSpec affixSpecs = 6;
optional uint64 equippableBy = 7;
}
message CommunityMemberAvatarSlot {
optional uint64 avatarRefId = 1;
optional uint64 costumeRefId = 2;
optional uint32 level = 3;
optional uint32 prestigeLevel = 4;
optional string onlineId = 5;
}
message CommunityMemberBroadcast {
required uint64 memberPlayerDbId = 1;
optional uint64 currentRegionRefId = 2 [default = 123];
optional uint64 currentDifficultyRefId = 3;
repeated CommunityMemberAvatarSlot slots = 4;
optional string currentPlayerName = 5;
repeated uint64 memberPlayerDbIdIgnoreList = 6;
optional int32 isOnline = 7 [default = -1];
optional int64 lastLogoutTimeAsFileTimeUtc = 8;
optional uint64 currentCostumeRefId = 9 [default = 123];
optional uint64 consoleAccountId = 10;
optional uint64 secondaryConsoleAccountId = 11;
optional string secondaryPlayerName = 12;
}
message CommunityNotify {
required uint64 targetPlayerDbId = 1;
required string sourcePlayerName = 2;
required uint64 circleId = 3;
required ModifyCircleOperation operation = 4;
}
message NetStructLiveTuningSettingEnumValue {
required int32 tuningVarEnum = 1;
required float tuningVarValue = 2;
}
message NetStructLiveTuningSettingProtoEnumValue {
required uint64 tuningVarProtoId = 1;
required int32 tuningVarEnum = 2;
required float tuningVarValue = 3;
}
message ChangeRegionFailed {
required RegionTransferFailure reason = 1;
optional uint64 regionProtoId = 2;
optional uint64 requiredItemProtoId = 3;
}
message NetStructChatChannelFilterState {
required uint64 channelProtoId = 1;
required bool isSubscribed = 2;
}
message NetStructChatTabState {
required uint64 channelProtoId = 1;
}
message NetStructGameplayOptions {
repeated uint64 optionSettings = 1;
repeated NetStructChatChannelFilterState chatChannelFiltersMap = 2;
repeated NetStructChatTabState chatTabChannelsArray = 3;
repeated uint64 armorRarityVaporizeThresholdProtoId = 4;
}
message ShareLegendaryMissionRequest {
required uint64 missionDataRef = 1;
}
message ShareLegendaryMissionResult {
required uint64 missionDataRef = 1;
required LegendaryMissionShareResultType result = 2;
}
message BillingP2PGiftResult {
required uint64 transactionId = 1;
required bool didSucceed = 2;
optional int64 currentBalance = 3;
required uint64 skuId = 4;
optional int32 errorCode = 5;
required int32 numUnits = 6 [default = 1];
required string giftMessage = 7;
required uint64 senderId = 8;
optional string sellableObjectId = 9;
}
message LeaderboardPlayerScoreQuery {
required uint64 leaderboardId = 1;
optional uint64 instanceId = 2 [default = 0];
required uint64 playerId = 3;
optional uint64 avatarId = 4 [default = 0];
}
message LeaderboardGuildScoreQuery {
required uint64 leaderboardId = 1;
optional uint64 instanceId = 2 [default = 0];
required uint64 guildId = 3;
}
message LeaderboardMetaScoreQuery {
required uint64 leaderboardId = 1;
optional uint64 instanceId = 2 [default = 0];
required uint64 playerId = 3;
}
message LeaderboardDataQuery {
required uint64 leaderboardId = 1;
optional uint64 instanceId = 2 [default = 0];
}
message LeaderboardMetadata {
required uint64 leaderboardId = 1;
required uint64 instanceId = 2;
required LeaderboardState state = 3;
required int64 activationTimestampUtc = 4;
required int64 expirationTimestampUtc = 5;
required bool visible = 6;
}
message LeaderboardEntry {
required string name = 1;
optional uint64 nameId = 2;
required uint64 gameId = 3;
required uint64 score = 4;
optional uint64 avatarId = 5;
}
message LeaderboardTableData {
required LeaderboardMetadata info = 1;
repeated LeaderboardEntry entries = 2;
}
message LeaderboardScoreData {
required uint64 leaderboardId = 1;
optional uint64 instanceId = 2 [default = 0];
optional uint64 playerId = 3;
optional uint64 guildId = 4;
optional uint64 subLeaderboardId = 5;
required uint64 score = 6;
required uint32 percentileBucket = 7;
optional uint64 avatarId = 8 [default = 0];
}
message LeaderboardReport {
required uint64 leaderboardId = 1;
optional uint64 instanceId = 2 [default = 0];
optional LeaderboardScoreData scoreData = 3;
optional LeaderboardTableData tableData = 4;
optional uint64 nextUpdateTimeIntervalMS = 5;
}
message LeaderboardInstanceData {
required uint64 instanceId = 1;
required LeaderboardState state = 2;
required int64 activationTimestamp = 3;
required int64 expirationTimestamp = 4;
required bool visible = 5;
}
message WorldViewEntry {
required uint64 regionId = 1;
required uint64 regionProtoRefId = 2;
}
message PartyOperationPayload {
required uint64 requestingPlayerDbId = 1;
required string requestingPlayerName = 2;
optional uint64 requestingPlayerPsnAccountId = 3;
optional uint64 targetPlayerDbId = 4;
optional string targetPlayerName = 5;
required GroupingOperationType operation = 6;
optional string psnSessionId = 7;
optional uint64 difficultyTierProtoId = 8;
}
message PartyMemberInfo {
required uint64 playerDbId = 1;
required string playerName = 2;
repeated uint64 boosts = 3;
optional uint64 consoleAccountId = 4;
optional uint64 secondaryConsoleAccountId = 5;
optional string secondaryPlayerName = 6;
}
message PartyInfo {
required uint64 groupId = 1;
required GroupType type = 2;
required uint64 leaderDbId = 3;
required uint64 difficultyTierProtoId = 4;
optional string groupPSNSessionId = 5;
repeated PartyMemberInfo members = 6;
optional string voiceChatFrontendIPAddr = 7;
optional string voiceChatFrontendPort = 8;
}
message PSNNotification {
required uint64 requestingPlayerDbId = 1;
required PSNNotifyType type = 2;
optional string psnSessionId = 3;
}

View file

@ -0,0 +1,108 @@
syntax = "proto2";
package Gazillion;
import "PubSubProtocol.proto";
enum FrontendProtocolVersion {
CURRENT_VERSION = 1;
}
enum ExtendedLoginErrors {
NO_LOGIN_ERROR = 0;
CLIENT_MANAGER_NOT_AVAILABLE = 1;
}
message LoginDataPB {
required string emailAddress = 1;
required string password = 2;
optional string version = 3;
optional string dbservername = 4;
optional string token = 5;
optional bool loginAsAnotherPlayer = 6;
optional bool noPersistenceThisSession = 7;
optional string loginAsPlayer = 8;
optional string clientDownloader = 9;
optional string machineId = 10;
optional string machineIdDebugInfo = 18;
optional int32 timezoneutcbias = 11;
optional int32 platform = 12;
optional string platformString = 13;
optional string locale = 14;
optional string twofactorcode = 15;
optional string twofactorname = 16;
optional string twofactortrustmachine = 17;
optional bool streamingclient = 19;
}
message ConsoleServiceEntitlement {
required string EntitlementId = 1;
required int32 UseCount = 2;
required int32 UseLimit = 3;
required bool IsConsumable = 4;
}
message LoginDataConsole {
required string token = 1;
optional string version = 2;
optional bool noPersistenceThisSession = 3;
repeated ConsoleServiceEntitlement serviceEntitlements = 4;
optional string titleid = 5;
}
message CreateAccountConsole {
required string token = 1;
optional string version = 2;
required string playername = 3;
}
message AcceptDocuments {
required string token = 1;
optional string version = 2;
repeated string documents = 3;
}
message SelectPlayerName {
required string token = 1;
optional string version = 2;
required string playername = 3;
}
message InitialClientHandshake {
required FrontendProtocolVersion protocolVersion = 1 [default = CURRENT_VERSION];
required PubSubServerTypes serverType = 2;
}
message ClientCredentials {
required uint64 sessionid = 1;
required bytes iv = 2;
required bytes encryptedToken = 3;
}
message LoginQueueStatus {
required uint64 placeInLine = 1;
required uint64 numberOfPlayersInLine = 2;
}
message SessionEncryptionChanged {
required uint32 randomNumberIndex = 1 [default = 1];
required bytes encryptedRandomNumber = 2;
}
message ExtendedLoginError {
optional ExtendedLoginErrors error = 1;
}
message EncryptedTrafficHeader {
required uint32 randomNumberIndex = 1;
required bytes encryptedTraffic = 2;
}
message PrecacheHeaders {
required string locale = 1;
}
message NewsRequest {
required string locale = 1;
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,6 @@
syntax = "proto2";
package Gazillion;
import "google/protobuf/descriptor.proto";

View file

@ -0,0 +1,10 @@
syntax = "proto2";
package Gazillion;
enum GlobalEventUpdateType {
eGlobalEventUpdate_EventData = 0;
eGlobalEventUpdate_Leaderboard = 1;
eGlobalEventUpdate_Count = 2;
}

View file

@ -0,0 +1,82 @@
syntax = "proto2";
package Gazillion;
import "ChatCommon.proto";
import "CommonMessages.proto";
enum ChatBanVoteResponseCode {
CHAT_BAN_VOTE_SUCCESS = 0;
CHAT_BAN_VOTE_ERROR = 1;
CHAT_BAN_VOTE_ALREADY_BANNED = 2;
CHAT_BAN_VOTE_ALREADY_VOTED = 3;
CHAT_BAN_VOTE_NOT_ALLOWED = 4;
CHAT_BAN_VOTE_BANNED = 5;
CHAT_BAN_VOTE_INVALID_TARGET = 6;
CHAT_BAN_VOTE_NUM_CODES = 7;
}
message ChatResponseToExternalLogin {
optional bytes someresponse = 1;
}
message ChatNormalMessage {
required ChatRoomTypes roomType = 1;
required string fromPlayerName = 2;
required ChatMessage theMessage = 3;
optional int32 prestigeLevel = 4;
optional uint64 consoleAccountId = 5;
}
message ChatTellMessage {
required string fromPlayerName = 1;
required ChatMessage theMessage = 2;
optional int32 prestigeLevel = 3;
optional uint64 consoleAccountId = 4;
}
message ChatBroadcastMessage {
required ChatRoomTypes roomType = 1;
required string fromPlayerName = 2;
required ChatMessage theMessage = 3;
optional int32 prestigeLevel = 4;
optional uint64 consoleAccountId = 5;
}
message ChatErrorMessage {
required ChatErrorMessages errorMessage = 1;
}
message ChatBanVoteResponse {
required string targetPlayerName = 1;
required ChatBanVoteResponseCode responseCode = 2;
}
message ChatCreateChatRoomResult {
required uint64 requestingGameId = 3;
optional bool success = 1 [default = false];
optional string reason = 2;
}
message ChatAddPlayerToRoomResult {
required uint64 requestingGameId = 3;
optional bool success = 1 [default = false];
optional string reason = 2;
}
message ChatScrubTextResult {
required uint64 requestingGameId = 1;
required string textOriginal = 2;
required string textScrubbed = 3;
required uint64 remoteJobId = 4;
}
message ChatServerNotification {
required string theMessage = 1;
}
message ChatClientIsLoggedIn {
required uint64 requestingGameId = 1;
required uint64 playerDbId = 2;
}

View file

@ -0,0 +1,73 @@
syntax = "proto2";
package Gazillion;
enum MatchPhase {
MP_Created = 0;
MP_Initialized = 1;
MP_Started = 2;
MP_Finished = 3;
MP_Shutdown = 4;
}
enum MatchPlayerEventType {
MPET_Left = 0;
MPET_Joined = 1;
}
enum MatchBalanceMethod {
MBM_None = 0;
MBM_PlayerRating = 1;
MBM_FixedTeam = 2;
}
enum MatchCheatRequestType {
MCRT_None = 0;
MCRT_ForceMatchStart = 1;
MCRT_ForceMatchEnd = 2;
MCRT_SwitchTeams = 3;
}
enum MatchControlEventType {
MCET_None = 0;
MCET_ForceStart = 1;
MCET_ForceEnd = 2;
}
message MatchTeamDescription {
required uint64 teamPrototypeGuid = 1;
required uint32 minPlayers = 2;
required uint32 maxPlayers = 3;
}
message MatchGameDescription {
required uint64 queuePrototypeGuid = 1;
required uint64 gamePrototypeGuid = 2;
required uint64 regionPrototypeId = 3;
repeated MatchTeamDescription teams = 4;
}
message MatchQueueDescription {
required uint64 queuePrototypeGuid = 1;
required MatchBalanceMethod balanceMethod = 2;
required uint32 regionLevel = 3;
repeated MatchGameDescription games = 4;
}
message MatchTeamResultData {
required uint64 teamPrototypeGuid = 1;
required bool creditWithWin = 2;
}
message MatchResultData {
repeated MatchTeamResultData teams = 1;
}
message MatchPlayerStatisticsSummary {
required uint64 queuePrototypeGuid = 1;
required uint64 gamePrototypeGuid = 2;
required uint32 gamesPlayed = 3;
required uint32 gamesWon = 4;
required uint32 ratingSummary = 5;
}

View file

@ -0,0 +1,82 @@
syntax = "proto2";
package Gazillion;
enum PubSubServerTypes {
FRONTEND_SERVER = 0;
GAME_INSTANCE_SERVER_USER = 1;
GAME_INSTANCE_SERVER_PLAYERMGR = 2;
GAME_INSTANCE_SERVER_GROUPING = 3;
GAME_INSTANCE_SERVER_METRICS = 4;
PLAYERMGR_SERVER_FRONTEND = 5;
PLAYERMGR_SERVER_SITEMGR_CONTROL = 6;
PLAYERMGR_SERVER_SOCIAL_COMMON = 7;
GROUPING_MANAGER_FRONTEND = 8;
FAKE_CHAT_LOAD_TESTER = 9;
GAME_INSTANCE_SERVER_BILLING = 10;
GAME_INSTANCE_SERVER_GLOBAL_GAME_EVENT = 12;
PLAYERMGR_METRICS = 13;
GAME_INSTANCE_SERVER_MOBILE_FRONTEND = 14;
GAME_INSTANCE_SERVER_LEADERBOARD = 15;
LEADERBOARD_SERVER_GLOBAL_GAME_EVENT = 16;
NUM_SERVER_TYPES = 18;
}
message PubSubPublish {
optional PubSubServerTypes serverType = 1 [default = NUM_SERVER_TYPES];
optional string serviceIPAddress = 2;
optional string servicePort = 3;
optional string serviceVersion = 4;
}
message PubSubSubscribe {
optional PubSubServerTypes serverType = 1 [default = NUM_SERVER_TYPES];
optional int32 subscriptionId = 2;
optional string serviceVersion = 3;
}
message PubSubEventNotification {
optional PubSubServerTypes serverType = 1 [default = NUM_SERVER_TYPES];
optional int32 subscriptionId = 2;
optional string serviceIPAddress = 3;
optional string servicePort = 4;
optional string serviceVersion = 5;
optional bool requestResignation = 6;
}
message PubSubOrderlyShutdown {
optional string message = 1;
optional int32 minutesToShutdown = 2 [default = 15];
}
message PubSubForceLogRollover {
}
message PubSubServerStatusUpdate {
enum ServerStatusServiceState {
SSSS_SERVICE_STOPPED = 1;
SSSS_SERVICE_START_PENDING = 2;
SSSS_SERVICE_STOP_PENDING = 3;
SSSS_SERVICE_RUNNING = 4;
SSSS_SERVICE_CONTINUE_PENDING = 5;
SSSS_SERVICE_PAUSE_PENDING = 6;
SSSS_SERVICE_PAUSED = 7;
}
optional float processCpuPercentage = 1;
optional float processRamPercentage = 2;
optional int64 processRamUsageBytes = 3;
optional float totalCpuUsagePercentage = 4;
optional float totalRamUsagePercentage = 5;
optional ServerStatusServiceState state = 6 [default = SSSS_SERVICE_STOPPED];
optional string hostname = 7;
optional string serviceName = 8;
repeated string connectedHosts = 9;
repeated string connectedServices = 10;
optional bool gisIsDraining = 11;
optional int32 gisPlayerCount = 12;
}
message PubSubServerStatusRequest {
}

View file

@ -0,0 +1,184 @@
syntax = "proto2";
package google.protobuf;
message FileDescriptorSet {
repeated FileDescriptorProto file = 1;
}
message FileDescriptorProto {
optional string name = 1;
optional string package = 2;
repeated string dependency = 3;
repeated int32 public_dependency = 10;
repeated int32 weak_dependency = 11;
repeated DescriptorProto message_type = 4;
repeated EnumDescriptorProto enum_type = 5;
repeated ServiceDescriptorProto service = 6;
repeated FieldDescriptorProto extension = 7;
optional FileOptions options = 8;
optional SourceCodeInfo source_code_info = 9;
}
message DescriptorProto {
message ExtensionRange {
optional int32 start = 1;
optional int32 end = 2;
}
optional string name = 1;
repeated FieldDescriptorProto field = 2;
repeated FieldDescriptorProto extension = 6;
repeated DescriptorProto nested_type = 3;
repeated EnumDescriptorProto enum_type = 4;
repeated ExtensionRange extension_range = 5;
optional MessageOptions options = 7;
}
message FieldDescriptorProto {
enum Type {
TYPE_DOUBLE = 1;
TYPE_FLOAT = 2;
TYPE_INT64 = 3;
TYPE_UINT64 = 4;
TYPE_INT32 = 5;
TYPE_FIXED64 = 6;
TYPE_FIXED32 = 7;
TYPE_BOOL = 8;
TYPE_STRING = 9;
TYPE_GROUP = 10;
TYPE_MESSAGE = 11;
TYPE_BYTES = 12;
TYPE_UINT32 = 13;
TYPE_ENUM = 14;
TYPE_SFIXED32 = 15;
TYPE_SFIXED64 = 16;
TYPE_SINT32 = 17;
TYPE_SINT64 = 18;
}
enum Label {
LABEL_OPTIONAL = 1;
LABEL_REQUIRED = 2;
LABEL_REPEATED = 3;
}
optional string name = 1;
optional int32 number = 3;
optional Label label = 4;
optional Type type = 5;
optional string type_name = 6;
optional string extendee = 2;
optional string default_value = 7;
optional FieldOptions options = 8;
}
message EnumDescriptorProto {
optional string name = 1;
repeated EnumValueDescriptorProto value = 2;
optional EnumOptions options = 3;
}
message EnumValueDescriptorProto {
optional string name = 1;
optional int32 number = 2;
optional EnumValueOptions options = 3;
}
message ServiceDescriptorProto {
optional string name = 1;
repeated MethodDescriptorProto method = 2;
optional ServiceOptions options = 3;
}
message MethodDescriptorProto {
optional string name = 1;
optional string input_type = 2;
optional string output_type = 3;
optional MethodOptions options = 4;
}
message FileOptions {
enum OptimizeMode {
SPEED = 1;
CODE_SIZE = 2;
LITE_RUNTIME = 3;
}
optional string java_package = 1;
optional string java_outer_classname = 8;
optional bool java_multiple_files = 10 [default = false];
optional bool java_generate_equals_and_hash = 20 [default = false];
optional OptimizeMode optimize_for = 9 [default = SPEED];
optional string go_package = 11;
optional bool cc_generic_services = 16 [default = false];
optional bool java_generic_services = 17 [default = false];
optional bool py_generic_services = 18 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message MessageOptions {
optional bool message_set_wire_format = 1 [default = false];
optional bool no_standard_descriptor_accessor = 2 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message FieldOptions {
enum CType {
STRING = 0;
CORD = 1;
STRING_PIECE = 2;
}
optional CType ctype = 1 [default = STRING];
optional bool packed = 2;
optional bool lazy = 5 [default = false];
optional bool deprecated = 3 [default = false];
optional string experimental_map_key = 9;
optional bool weak = 10 [default = false];
repeated UninterpretedOption uninterpreted_option = 999;
}
message EnumOptions {
optional bool allow_alias = 2 [default = true];
repeated UninterpretedOption uninterpreted_option = 999;
}
message EnumValueOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message ServiceOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message MethodOptions {
repeated UninterpretedOption uninterpreted_option = 999;
}
message UninterpretedOption {
message NamePart {
required string name_part = 1;
required bool is_extension = 2;
}
repeated NamePart name = 2;
optional string identifier_value = 3;
optional uint64 positive_int_value = 4;
optional int64 negative_int_value = 5;
optional double double_value = 6;
optional bytes string_value = 7;
optional string aggregate_value = 8;
}
message SourceCodeInfo {
message Location {
repeated int32 path = 1;
repeated int32 span = 2;
optional string leading_comments = 3;
optional string trailing_comments = 4;
}
repeated Location location = 1;
}

Some files were not shown because too many files have changed in this diff Show more