Compare commits

..

43 Commits

Author SHA1 Message Date
9095839006 Update version to v1.2.0
Add Quest Tab Page
2022-05-14 21:30:54 +08:00
d3fe3d7c76 Updated En translation and En resource files (#20) 2022-05-14 17:46:01 +08:00
6ccd828044 Add Tp to SceneTab
Update version to 1.1.0
2022-05-14 09:21:18 +08:00
52b93619da Add LICENSE to all code file head
Update version to 1.0.2
2022-05-14 00:07:28 +08:00
cb69bf8502 Merge pull request #26 from renkin-atorie/i18n
[en] Update Animal.txt
2022-05-13 23:05:53 +08:00
arub3do
4a7d19af00 Update readme.md 2022-05-13 22:58:41 +08:00
f46e63b189 Fix drop command bug (#25)
Update coop command
Add /killall to CustomCommands
2022-05-13 22:55:23 +08:00
arub3do
d9e420b226 [en] Update Animal.txt
sort by `Id`
2022-05-13 22:53:03 +08:00
92f1dc81d9 Not compatible with high DPI screens 2022-05-13 20:35:16 +08:00
a189d26105 Merge branch 'main' of https://github.com/jie65535/GrasscutterCommandGenerator 2022-05-13 20:16:35 +08:00
38e88d6ea5 Update version to 1.0.1
Try compatible high DPI screens
Fix Host setting not saved
2022-05-13 20:16:20 +08:00
f7f1452b5c Change LICENSE 2022-05-13 16:04:19 +08:00
ba25cd6e7c Separate server status checking logic 2022-05-13 13:20:26 +08:00
2f2c8e24b0 Update README 2022-05-13 12:51:08 +08:00
8eca0a728b Add global exception handling 2022-05-13 11:41:09 +08:00
2a3ba29b1d Clean up all files 2022-05-13 11:39:07 +08:00
3defcbbdc1 Small optimization 2022-05-13 11:33:52 +08:00
e471253b12 Update the English translation in the code 2022-05-13 11:24:53 +08:00
0a0d33ae4a Update English translation 2022-05-13 10:54:22 +08:00
fb17ebe60b Fix F5 not working 2022-05-13 10:50:21 +08:00
2f161a5586 Update package
Fix 404 error
Add debug mode title
2022-05-13 10:29:12 +08:00
d82b5b590e Update README_en-US.md 2022-05-13 09:49:35 +08:00
a36c376fc0 Update README.md 2022-05-13 09:48:01 +08:00
c4c543b0d4 Update README_en-US.md 2022-05-13 09:30:26 +08:00
182f71d4ca Update README.md 2022-05-13 09:29:57 +08:00
0b7347e118 Support Open Command Plugin
Support Remove Command
Update version to 1.0.0
2022-05-13 08:52:35 +08:00
e30a2f79cf Fix UID upper limit issue (#18) 2022-05-11 22:22:05 +08:00
94a8a490b3 Fix English UI dislocation problem 2022-05-11 22:19:06 +08:00
68c42b16dd Implement prefab options #17 2022-05-11 22:15:19 +08:00
c089b7ac07 Fixed custom commands not reloading when switching languages 2022-05-11 21:48:24 +08:00
da7033395b Merge pull request #19 from renkin-atorie/i18n
[en] translate CustomCommands.txt
2022-05-11 21:30:56 +08:00
arub3do
3264ed8de6 [en] translate CustomCommands.txt 2022-05-11 21:03:35 +08:00
3e98e551de Update README 2022-05-10 22:54:41 +08:00
5ba7cd74fb Add Text Map Browser
Update Avatar Tab Image
2022-05-10 22:47:09 +08:00
9c7e4864b0 Update README.md 2022-05-08 18:50:34 +08:00
ca6441e780 Update Readme.md
Add Readme_en-US.md
Update Screenshots
Add Screenshots-en
Update Languages
2022-05-08 18:49:31 +08:00
65393c4d7b Update package
Update Language files
2022-05-07 22:10:03 +08:00
c83804ce92 Update Version to v0.10.0 2022-05-07 21:50:47 +08:00
de9d1798dd Create LICENSE 2022-05-07 21:48:59 +08:00
ddb69f0e7d Update Version Show 2022-05-07 21:36:49 +08:00
c6c6cab1b3 Open Sources 2022-05-07 21:24:57 +08:00
8470654472 Update README.md 2022-05-05 22:35:01 +08:00
e796625980 Add Screenshots 2022-05-05 22:33:39 +08:00
106 changed files with 44718 additions and 23 deletions

63
.gitattributes vendored Normal file
View File

@@ -0,0 +1,63 @@
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary
###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain

363
.gitignore vendored Normal file
View File

@@ -0,0 +1,363 @@
## 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/master/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/
[Oo]ut/
[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
*.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 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/
# 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
Doc/Screenshots/0-Home.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 821 KiB

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/>.

View File

@@ -1,39 +1,45 @@
# Grasscutter Tools
中文 | [EN](README_en-US.md)
## Commands Generator
请从 [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases) 中获取最新版本
## v0.8.0 更新
## 远程执行
圣遗物套装下拉框可键入提示
服务端需要 [gc-opencommand-plugin](https://github.com/jie65535/gc-opencommand-plugin) 插件支持
`状态` 标签改为 `数据`设置角色数据模块重构支持最新版指令。_部分属性旧版本可能不支持_
![OpenCommand](Doc/Screenshots/OpenCommand.gif)
![Custom Stats Screenshort](Doc/Screenshots/8-CustomStats.png)
---
`其它` 页面改为 `管理` ,新增帐号创建和删除。
## TODO List
- [ ] 多语言支持进度UI已经支持英语但还有许多ID映射文件缺失欢迎补充
- [x] Animal.txt
- [x] Artifact.txt
- [ ] ArtifactCat.txt
- [ ] ArtifactMainAttribution.txt
- [ ] ArtifactSubAttribution.txt
- [x] Avatar.txt
- [x] CustomCommands.txt
- [x] Item.txt
- [x] Monster.txt
- [x] NPC.txt
- [ ] Ornament.txt
- [x] Scene.txt
- [x] Weapon.txt
- [ ] Quest.txt
- [x] 远程执行命令
- [ ] 邮件编辑器(无进度)
- [ ] 商店编辑器(无进度)
![Management](Doc/Screenshots/9-Manage.png)
## 软件截图
## v0.7.0 更新
物品生成记录本
![Give Item Screenshort](Doc/Screenshots/4-GiveItem.png)
实体生成记录本
![Spawn Entity Screenshort](Doc/Screenshots/6-SpawnEntity.png)
## v0.6.0 更新
新增奖池编辑器
![GachaBannerEditor](Doc/Screenshots/10-GachaBannerEditor.png)
## Screenshots
![Logo](Doc/Screenshots/GrasscutterLogo.png)
![Home](Doc/Screenshots/0-Home.png)
![Custom Commands Screenshot](Doc/Screenshots/1-CustomCommands.png)
![Custom Artifact Screenshot](Doc/Screenshots/2-CustomArtifact.png)
@@ -51,3 +57,7 @@
![Custom Stats Screenshort](Doc/Screenshots/8-CustomStats.png)
![Management](Doc/Screenshots/9-Manage.png)
![GachaBannerEditor](Doc/Screenshots/10-GachaBannerEditor.png)
![Text Map Browser](Doc/Screenshots/11-TextMapBrowser.png)

63
README_en-US.md Normal file
View File

@@ -0,0 +1,63 @@
# Grasscutter Tools
[中文](README.md) | EN
## Commands Generator
Please download the latest version from [Releases](https://github.com/jie65535/GrasscutterCommandGenerator/releases)
## Remote command
The server require [gc-opencommand-plugin](https://github.com/jie65535/gc-opencommand-plugin) support
![OpenCommand](Doc/Screenshots/OpenCommand.gif)
---
## TODO List
- [ ] Multi-language support (progress: UI already supports English, but there are still many ID mapping files missing, welcome to add)
- [x] Animal.txt
- [x] Artifact.txt
- [ ] ArtifactCat.txt
- [ ] ArtifactMainAttribution.txt
- [ ] ArtifactSubAttribution.txt
- [x] Avatar.txt
- [x] CustomCommands.txt
- [x] Item.txt
- [x] Monster.txt
- [x] NPC.txt
- [ ] Ornament.txt
- [x] Scene.txt
- [x] Weapon.txt
- [ ] Quest.txt
- [x] Execute command remotely
- [ ] Mail Editor (no progress)
- [ ] Shop Editor (no progress)
## Screenshots
![Logo](Doc/Screenshots/GrasscutterLogo.png)
![Home](Doc/Screenshots-en/0-Home.png)
![Custom Commands Screenshot](Doc/Screenshots-en/1-CustomCommands.png)
![Custom Artifact Screenshot](Doc/Screenshots-en/2-CustomArtifact.png)
![Custom Weapon Screenshort](Doc/Screenshots-en/3-CustomWeapon.png)
![Give Item Screenshort](Doc/Screenshots-en/4-GiveItem.png)
![Give Avatar Screenshort](Doc/Screenshots-en/5-GiveAvatar.png)
![Spawn Entity Screenshort](Doc/Screenshots-en/6-SpawnEntity.png)
![Change Scene Screenshort](Doc/Screenshots-en/7-ChangeScene.png)
![Custom Stats Screenshort](Doc/Screenshots-en/8-CustomStats.png)
![Management](Doc/Screenshots-en/9-Manage.png)
![GachaBannerEditor](Doc/Screenshots-en/10-GachaBannerEditor.png)
![Text Map Browser](Doc/Screenshots-en/11-TextMapBrowser.png)

View File

@@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.32106.194
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GrasscutterTools", "GrasscutterTools\GrasscutterTools.csproj", "{B26333FF-5560-4CBA-AF3C-4B80DB6F8025}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B26333FF-5560-4CBA-AF3C-4B80DB6F8025}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B26333FF-5560-4CBA-AF3C-4B80DB6F8025}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B26333FF-5560-4CBA-AF3C-4B80DB6F8025}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B26333FF-5560-4CBA-AF3C-4B80DB6F8025}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {3598765A-1F30-4326-91C4-846D87572162}
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="GrasscutterTools.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<userSettings>
<GrasscutterTools.Properties.Settings>
<setting name="AutoCopy" serializeAs="String">
<value>False</value>
</setting>
<setting name="Uid" serializeAs="String">
<value>10001</value>
</setting>
<setting name="DefaultLanguage" serializeAs="String">
<value>zh-CN</value>
</setting>
<setting name="ResourcesDirPath" serializeAs="String">
<value />
</setting>
<setting name="TextMapFileName" serializeAs="String">
<value>TextMapCHS</value>
</setting>
<setting name="RemoteUid" serializeAs="String">
<value>10001</value>
</setting>
<setting name="Host" serializeAs="String">
<value>https://127.0.0.1</value>
</setting>
</GrasscutterTools.Properties.Settings>
</userSettings>
</configuration>

View File

@@ -0,0 +1,34 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public 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/>.
*
**/
using System.Threading.Tasks;
using GrasscutterTools.DispatchServer.Model;
using GrasscutterTools.Utils;
namespace GrasscutterTools.DispatchServer
{
public static class DispatchServerAPI
{
public static async Task<ServerStatus> QueryServerStatus(string host)
{
var response = await HttpHelper.GetAsync<ServerStatusResponse>(host + "/status/server");
return response?.Status;
}
}
}

View File

@@ -0,0 +1,40 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public 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/>.
*
**/
using Newtonsoft.Json;
namespace GrasscutterTools.DispatchServer.Model
{
public class ServerStatus
{
[JsonProperty("playerCount")]
public int PlayerCount { get; set; }
[JsonProperty("version")]
public string Version { get; set; }
}
public class ServerStatusResponse
{
[JsonProperty("retcode")]
public int RetCode { get; set; }
[JsonProperty("status")]
public ServerStatus Status { get; set; }
}
}

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<Weavers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="FodyWeavers.xsd">
<Costura />
</Weavers>

View File

@@ -0,0 +1,579 @@

namespace GrasscutterTools
{
partial class FormGachaBannerEditor
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormGachaBannerEditor));
this.GrpBannerValues = new System.Windows.Forms.GroupBox();
this.CmbPrefab = new System.Windows.Forms.ComboBox();
this.LblEventChanceTip = new System.Windows.Forms.Label();
this.NUDEventChance = new System.Windows.Forms.NumericUpDown();
this.LblGachaType = new System.Windows.Forms.Label();
this.LblEventChance = new System.Windows.Forms.Label();
this.NUDBaseYellowWeight = new System.Windows.Forms.NumericUpDown();
this.LblSortId = new System.Windows.Forms.Label();
this.TxtRateUpItems2 = new System.Windows.Forms.TextBox();
this.LblBaseYellowWeight = new System.Windows.Forms.Label();
this.NUDGachaType = new System.Windows.Forms.NumericUpDown();
this.NUDSortId = new System.Windows.Forms.NumericUpDown();
this.LblRateUpItems2 = new System.Windows.Forms.Label();
this.LblSoftPity = new System.Windows.Forms.Label();
this.LblGachaTypeTip = new System.Windows.Forms.Label();
this.LblEndTime = new System.Windows.Forms.Label();
this.LblRateUpItems1 = new System.Windows.Forms.Label();
this.NUDSoftPity = new System.Windows.Forms.NumericUpDown();
this.LblScheduleId = new System.Windows.Forms.Label();
this.LblBeginTime = new System.Windows.Forms.Label();
this.TxtRateUpItems1 = new System.Windows.Forms.TextBox();
this.LblHardPity = new System.Windows.Forms.Label();
this.NUDScheduleId = new System.Windows.Forms.NumericUpDown();
this.NUDEndTime = new System.Windows.Forms.NumericUpDown();
this.LblHardPityTip = new System.Windows.Forms.Label();
this.NUDHardPity = new System.Windows.Forms.NumericUpDown();
this.LblScheduleIdTip = new System.Windows.Forms.Label();
this.NUDBeginTime = new System.Windows.Forms.NumericUpDown();
this.LblSoftPityTip = new System.Windows.Forms.Label();
this.LblBasePurpleWeight = new System.Windows.Forms.Label();
this.CmbBannerType = new System.Windows.Forms.ComboBox();
this.LblSortIdTip = new System.Windows.Forms.Label();
this.NUDBasePurpleWeight = new System.Windows.Forms.NumericUpDown();
this.LblBannerType = new System.Windows.Forms.Label();
this.LblBasePurpleWeightTip = new System.Windows.Forms.Label();
this.RbCostItem224 = new System.Windows.Forms.RadioButton();
this.LblBaseYellowWeightTip = new System.Windows.Forms.Label();
this.LblCostItem = new System.Windows.Forms.Label();
this.LblPrefabPath = new System.Windows.Forms.Label();
this.RbCostItem223 = new System.Windows.Forms.RadioButton();
this.GrpPurplePool = new System.Windows.Forms.GroupBox();
this.ListPurplePool = new System.Windows.Forms.CheckedListBox();
this.GrpYellowPool = new System.Windows.Forms.GroupBox();
this.ListYellowPool = new System.Windows.Forms.CheckedListBox();
this.GrpJson = new System.Windows.Forms.GroupBox();
this.BtnGen = new System.Windows.Forms.Button();
this.TxtJson = new System.Windows.Forms.TextBox();
this.BtnParse = new System.Windows.Forms.Button();
this.GrpBannerValues.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDEventChance)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDBaseYellowWeight)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDGachaType)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDSortId)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDSoftPity)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDScheduleId)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDEndTime)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDHardPity)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDBeginTime)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDBasePurpleWeight)).BeginInit();
this.GrpPurplePool.SuspendLayout();
this.GrpYellowPool.SuspendLayout();
this.GrpJson.SuspendLayout();
this.SuspendLayout();
//
// GrpBannerValues
//
resources.ApplyResources(this.GrpBannerValues, "GrpBannerValues");
this.GrpBannerValues.Controls.Add(this.CmbPrefab);
this.GrpBannerValues.Controls.Add(this.LblEventChanceTip);
this.GrpBannerValues.Controls.Add(this.NUDEventChance);
this.GrpBannerValues.Controls.Add(this.LblGachaType);
this.GrpBannerValues.Controls.Add(this.LblEventChance);
this.GrpBannerValues.Controls.Add(this.NUDBaseYellowWeight);
this.GrpBannerValues.Controls.Add(this.LblSortId);
this.GrpBannerValues.Controls.Add(this.TxtRateUpItems2);
this.GrpBannerValues.Controls.Add(this.LblBaseYellowWeight);
this.GrpBannerValues.Controls.Add(this.NUDGachaType);
this.GrpBannerValues.Controls.Add(this.NUDSortId);
this.GrpBannerValues.Controls.Add(this.LblRateUpItems2);
this.GrpBannerValues.Controls.Add(this.LblSoftPity);
this.GrpBannerValues.Controls.Add(this.LblGachaTypeTip);
this.GrpBannerValues.Controls.Add(this.LblEndTime);
this.GrpBannerValues.Controls.Add(this.LblRateUpItems1);
this.GrpBannerValues.Controls.Add(this.NUDSoftPity);
this.GrpBannerValues.Controls.Add(this.LblScheduleId);
this.GrpBannerValues.Controls.Add(this.LblBeginTime);
this.GrpBannerValues.Controls.Add(this.TxtRateUpItems1);
this.GrpBannerValues.Controls.Add(this.LblHardPity);
this.GrpBannerValues.Controls.Add(this.NUDScheduleId);
this.GrpBannerValues.Controls.Add(this.NUDEndTime);
this.GrpBannerValues.Controls.Add(this.LblHardPityTip);
this.GrpBannerValues.Controls.Add(this.NUDHardPity);
this.GrpBannerValues.Controls.Add(this.LblScheduleIdTip);
this.GrpBannerValues.Controls.Add(this.NUDBeginTime);
this.GrpBannerValues.Controls.Add(this.LblSoftPityTip);
this.GrpBannerValues.Controls.Add(this.LblBasePurpleWeight);
this.GrpBannerValues.Controls.Add(this.CmbBannerType);
this.GrpBannerValues.Controls.Add(this.LblSortIdTip);
this.GrpBannerValues.Controls.Add(this.NUDBasePurpleWeight);
this.GrpBannerValues.Controls.Add(this.LblBannerType);
this.GrpBannerValues.Controls.Add(this.LblBasePurpleWeightTip);
this.GrpBannerValues.Controls.Add(this.RbCostItem224);
this.GrpBannerValues.Controls.Add(this.LblBaseYellowWeightTip);
this.GrpBannerValues.Controls.Add(this.LblCostItem);
this.GrpBannerValues.Controls.Add(this.LblPrefabPath);
this.GrpBannerValues.Controls.Add(this.RbCostItem223);
this.GrpBannerValues.Name = "GrpBannerValues";
this.GrpBannerValues.TabStop = false;
//
// CmbPrefab
//
resources.ApplyResources(this.CmbPrefab, "CmbPrefab");
this.CmbPrefab.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CmbPrefab.FormattingEnabled = true;
this.CmbPrefab.Name = "CmbPrefab";
//
// LblEventChanceTip
//
resources.ApplyResources(this.LblEventChanceTip, "LblEventChanceTip");
this.LblEventChanceTip.Name = "LblEventChanceTip";
//
// NUDEventChance
//
resources.ApplyResources(this.NUDEventChance, "NUDEventChance");
this.NUDEventChance.Name = "NUDEventChance";
this.NUDEventChance.Value = new decimal(new int[] {
50,
0,
0,
0});
//
// LblGachaType
//
resources.ApplyResources(this.LblGachaType, "LblGachaType");
this.LblGachaType.Name = "LblGachaType";
//
// LblEventChance
//
resources.ApplyResources(this.LblEventChance, "LblEventChance");
this.LblEventChance.Name = "LblEventChance";
//
// NUDBaseYellowWeight
//
resources.ApplyResources(this.NUDBaseYellowWeight, "NUDBaseYellowWeight");
this.NUDBaseYellowWeight.DecimalPlaces = 2;
this.NUDBaseYellowWeight.Name = "NUDBaseYellowWeight";
this.NUDBaseYellowWeight.Value = new decimal(new int[] {
6,
0,
0,
65536});
//
// LblSortId
//
resources.ApplyResources(this.LblSortId, "LblSortId");
this.LblSortId.Name = "LblSortId";
//
// TxtRateUpItems2
//
resources.ApplyResources(this.TxtRateUpItems2, "TxtRateUpItems2");
this.TxtRateUpItems2.BackColor = System.Drawing.Color.White;
this.TxtRateUpItems2.Name = "TxtRateUpItems2";
this.TxtRateUpItems2.ReadOnly = true;
//
// LblBaseYellowWeight
//
resources.ApplyResources(this.LblBaseYellowWeight, "LblBaseYellowWeight");
this.LblBaseYellowWeight.Name = "LblBaseYellowWeight";
//
// NUDGachaType
//
resources.ApplyResources(this.NUDGachaType, "NUDGachaType");
this.NUDGachaType.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.NUDGachaType.Name = "NUDGachaType";
this.NUDGachaType.Value = new decimal(new int[] {
400,
0,
0,
0});
//
// NUDSortId
//
resources.ApplyResources(this.NUDSortId, "NUDSortId");
this.NUDSortId.Maximum = new decimal(new int[] {
9999,
0,
0,
0});
this.NUDSortId.Minimum = new decimal(new int[] {
1000,
0,
0,
0});
this.NUDSortId.Name = "NUDSortId";
this.NUDSortId.Value = new decimal(new int[] {
1000,
0,
0,
0});
//
// LblRateUpItems2
//
resources.ApplyResources(this.LblRateUpItems2, "LblRateUpItems2");
this.LblRateUpItems2.Name = "LblRateUpItems2";
//
// LblSoftPity
//
resources.ApplyResources(this.LblSoftPity, "LblSoftPity");
this.LblSoftPity.Name = "LblSoftPity";
//
// LblGachaTypeTip
//
resources.ApplyResources(this.LblGachaTypeTip, "LblGachaTypeTip");
this.LblGachaTypeTip.Name = "LblGachaTypeTip";
//
// LblEndTime
//
resources.ApplyResources(this.LblEndTime, "LblEndTime");
this.LblEndTime.Name = "LblEndTime";
//
// LblRateUpItems1
//
resources.ApplyResources(this.LblRateUpItems1, "LblRateUpItems1");
this.LblRateUpItems1.Name = "LblRateUpItems1";
//
// NUDSoftPity
//
resources.ApplyResources(this.NUDSoftPity, "NUDSoftPity");
this.NUDSoftPity.Maximum = new decimal(new int[] {
100000,
0,
0,
0});
this.NUDSoftPity.Name = "NUDSoftPity";
this.NUDSoftPity.Value = new decimal(new int[] {
75,
0,
0,
0});
//
// LblScheduleId
//
resources.ApplyResources(this.LblScheduleId, "LblScheduleId");
this.LblScheduleId.Name = "LblScheduleId";
//
// LblBeginTime
//
resources.ApplyResources(this.LblBeginTime, "LblBeginTime");
this.LblBeginTime.Name = "LblBeginTime";
//
// TxtRateUpItems1
//
resources.ApplyResources(this.TxtRateUpItems1, "TxtRateUpItems1");
this.TxtRateUpItems1.BackColor = System.Drawing.Color.White;
this.TxtRateUpItems1.Name = "TxtRateUpItems1";
this.TxtRateUpItems1.ReadOnly = true;
//
// LblHardPity
//
resources.ApplyResources(this.LblHardPity, "LblHardPity");
this.LblHardPity.Name = "LblHardPity";
//
// NUDScheduleId
//
resources.ApplyResources(this.NUDScheduleId, "NUDScheduleId");
this.NUDScheduleId.Maximum = new decimal(new int[] {
10000,
0,
0,
0});
this.NUDScheduleId.Name = "NUDScheduleId";
this.NUDScheduleId.Value = new decimal(new int[] {
800,
0,
0,
0});
//
// NUDEndTime
//
resources.ApplyResources(this.NUDEndTime, "NUDEndTime");
this.NUDEndTime.Maximum = new decimal(new int[] {
1924992000,
0,
0,
0});
this.NUDEndTime.Name = "NUDEndTime";
this.NUDEndTime.Value = new decimal(new int[] {
1924992000,
0,
0,
0});
//
// LblHardPityTip
//
resources.ApplyResources(this.LblHardPityTip, "LblHardPityTip");
this.LblHardPityTip.Name = "LblHardPityTip";
//
// NUDHardPity
//
resources.ApplyResources(this.NUDHardPity, "NUDHardPity");
this.NUDHardPity.Maximum = new decimal(new int[] {
100000,
0,
0,
0});
this.NUDHardPity.Name = "NUDHardPity";
this.NUDHardPity.Value = new decimal(new int[] {
90,
0,
0,
0});
//
// LblScheduleIdTip
//
resources.ApplyResources(this.LblScheduleIdTip, "LblScheduleIdTip");
this.LblScheduleIdTip.Name = "LblScheduleIdTip";
//
// NUDBeginTime
//
resources.ApplyResources(this.NUDBeginTime, "NUDBeginTime");
this.NUDBeginTime.Maximum = new decimal(new int[] {
1924992000,
0,
0,
0});
this.NUDBeginTime.Name = "NUDBeginTime";
//
// LblSoftPityTip
//
resources.ApplyResources(this.LblSoftPityTip, "LblSoftPityTip");
this.LblSoftPityTip.Name = "LblSoftPityTip";
//
// LblBasePurpleWeight
//
resources.ApplyResources(this.LblBasePurpleWeight, "LblBasePurpleWeight");
this.LblBasePurpleWeight.Name = "LblBasePurpleWeight";
//
// CmbBannerType
//
resources.ApplyResources(this.CmbBannerType, "CmbBannerType");
this.CmbBannerType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CmbBannerType.FormattingEnabled = true;
this.CmbBannerType.Items.AddRange(new object[] {
resources.GetString("CmbBannerType.Items"),
resources.GetString("CmbBannerType.Items1"),
resources.GetString("CmbBannerType.Items2")});
this.CmbBannerType.Name = "CmbBannerType";
//
// LblSortIdTip
//
resources.ApplyResources(this.LblSortIdTip, "LblSortIdTip");
this.LblSortIdTip.Name = "LblSortIdTip";
//
// NUDBasePurpleWeight
//
resources.ApplyResources(this.NUDBasePurpleWeight, "NUDBasePurpleWeight");
this.NUDBasePurpleWeight.DecimalPlaces = 2;
this.NUDBasePurpleWeight.Name = "NUDBasePurpleWeight";
this.NUDBasePurpleWeight.Value = new decimal(new int[] {
51,
0,
0,
65536});
//
// LblBannerType
//
resources.ApplyResources(this.LblBannerType, "LblBannerType");
this.LblBannerType.Name = "LblBannerType";
//
// LblBasePurpleWeightTip
//
resources.ApplyResources(this.LblBasePurpleWeightTip, "LblBasePurpleWeightTip");
this.LblBasePurpleWeightTip.Name = "LblBasePurpleWeightTip";
//
// RbCostItem224
//
resources.ApplyResources(this.RbCostItem224, "RbCostItem224");
this.RbCostItem224.Checked = true;
this.RbCostItem224.Name = "RbCostItem224";
this.RbCostItem224.TabStop = true;
this.RbCostItem224.UseVisualStyleBackColor = true;
//
// LblBaseYellowWeightTip
//
resources.ApplyResources(this.LblBaseYellowWeightTip, "LblBaseYellowWeightTip");
this.LblBaseYellowWeightTip.Name = "LblBaseYellowWeightTip";
//
// LblCostItem
//
resources.ApplyResources(this.LblCostItem, "LblCostItem");
this.LblCostItem.Name = "LblCostItem";
//
// LblPrefabPath
//
resources.ApplyResources(this.LblPrefabPath, "LblPrefabPath");
this.LblPrefabPath.Name = "LblPrefabPath";
//
// RbCostItem223
//
resources.ApplyResources(this.RbCostItem223, "RbCostItem223");
this.RbCostItem223.Name = "RbCostItem223";
this.RbCostItem223.TabStop = true;
this.RbCostItem223.UseVisualStyleBackColor = true;
//
// GrpPurplePool
//
resources.ApplyResources(this.GrpPurplePool, "GrpPurplePool");
this.GrpPurplePool.Controls.Add(this.ListPurplePool);
this.GrpPurplePool.Name = "GrpPurplePool";
this.GrpPurplePool.TabStop = false;
//
// ListPurplePool
//
resources.ApplyResources(this.ListPurplePool, "ListPurplePool");
this.ListPurplePool.CheckOnClick = true;
this.ListPurplePool.FormattingEnabled = true;
this.ListPurplePool.Name = "ListPurplePool";
this.ListPurplePool.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.ListPurplePool_ItemCheck);
//
// GrpYellowPool
//
resources.ApplyResources(this.GrpYellowPool, "GrpYellowPool");
this.GrpYellowPool.Controls.Add(this.ListYellowPool);
this.GrpYellowPool.Name = "GrpYellowPool";
this.GrpYellowPool.TabStop = false;
//
// ListYellowPool
//
resources.ApplyResources(this.ListYellowPool, "ListYellowPool");
this.ListYellowPool.CheckOnClick = true;
this.ListYellowPool.FormattingEnabled = true;
this.ListYellowPool.Name = "ListYellowPool";
this.ListYellowPool.ItemCheck += new System.Windows.Forms.ItemCheckEventHandler(this.ListYellowPool_ItemCheck);
//
// GrpJson
//
resources.ApplyResources(this.GrpJson, "GrpJson");
this.GrpJson.Controls.Add(this.BtnGen);
this.GrpJson.Controls.Add(this.TxtJson);
this.GrpJson.Controls.Add(this.BtnParse);
this.GrpJson.Name = "GrpJson";
this.GrpJson.TabStop = false;
//
// BtnGen
//
resources.ApplyResources(this.BtnGen, "BtnGen");
this.BtnGen.Name = "BtnGen";
this.BtnGen.UseVisualStyleBackColor = true;
this.BtnGen.Click += new System.EventHandler(this.BtnGen_Click);
//
// TxtJson
//
resources.ApplyResources(this.TxtJson, "TxtJson");
this.TxtJson.Name = "TxtJson";
//
// BtnParse
//
resources.ApplyResources(this.BtnParse, "BtnParse");
this.BtnParse.Name = "BtnParse";
this.BtnParse.UseVisualStyleBackColor = true;
this.BtnParse.Click += new System.EventHandler(this.BtnParse_Click);
//
// FormGachaBannerEditor
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.GrpJson);
this.Controls.Add(this.GrpPurplePool);
this.Controls.Add(this.GrpYellowPool);
this.Controls.Add(this.GrpBannerValues);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
this.Name = "FormGachaBannerEditor";
this.GrpBannerValues.ResumeLayout(false);
this.GrpBannerValues.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.NUDEventChance)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDBaseYellowWeight)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDGachaType)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDSortId)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDSoftPity)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDScheduleId)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDEndTime)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDHardPity)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDBeginTime)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDBasePurpleWeight)).EndInit();
this.GrpPurplePool.ResumeLayout(false);
this.GrpYellowPool.ResumeLayout(false);
this.GrpJson.ResumeLayout(false);
this.GrpJson.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.GroupBox GrpBannerValues;
private System.Windows.Forms.Label LblEventChanceTip;
private System.Windows.Forms.NumericUpDown NUDEventChance;
private System.Windows.Forms.Label LblGachaType;
private System.Windows.Forms.Label LblEventChance;
private System.Windows.Forms.NumericUpDown NUDBaseYellowWeight;
private System.Windows.Forms.Label LblSortId;
private System.Windows.Forms.TextBox TxtRateUpItems2;
private System.Windows.Forms.Label LblBaseYellowWeight;
private System.Windows.Forms.NumericUpDown NUDGachaType;
private System.Windows.Forms.NumericUpDown NUDSortId;
private System.Windows.Forms.Label LblRateUpItems2;
private System.Windows.Forms.Label LblSoftPity;
private System.Windows.Forms.Label LblGachaTypeTip;
private System.Windows.Forms.Label LblEndTime;
private System.Windows.Forms.Label LblRateUpItems1;
private System.Windows.Forms.NumericUpDown NUDSoftPity;
private System.Windows.Forms.Label LblScheduleId;
private System.Windows.Forms.Label LblBeginTime;
private System.Windows.Forms.TextBox TxtRateUpItems1;
private System.Windows.Forms.Label LblHardPity;
private System.Windows.Forms.NumericUpDown NUDScheduleId;
private System.Windows.Forms.NumericUpDown NUDEndTime;
private System.Windows.Forms.Label LblHardPityTip;
private System.Windows.Forms.NumericUpDown NUDHardPity;
private System.Windows.Forms.Label LblScheduleIdTip;
private System.Windows.Forms.NumericUpDown NUDBeginTime;
private System.Windows.Forms.Label LblSoftPityTip;
private System.Windows.Forms.Label LblBasePurpleWeight;
private System.Windows.Forms.ComboBox CmbBannerType;
private System.Windows.Forms.Label LblSortIdTip;
private System.Windows.Forms.NumericUpDown NUDBasePurpleWeight;
private System.Windows.Forms.Label LblBannerType;
private System.Windows.Forms.Label LblBasePurpleWeightTip;
private System.Windows.Forms.RadioButton RbCostItem224;
private System.Windows.Forms.Label LblBaseYellowWeightTip;
private System.Windows.Forms.Label LblCostItem;
private System.Windows.Forms.Label LblPrefabPath;
private System.Windows.Forms.RadioButton RbCostItem223;
private System.Windows.Forms.GroupBox GrpPurplePool;
private System.Windows.Forms.CheckedListBox ListPurplePool;
private System.Windows.Forms.GroupBox GrpYellowPool;
private System.Windows.Forms.CheckedListBox ListYellowPool;
private System.Windows.Forms.GroupBox GrpJson;
private System.Windows.Forms.TextBox TxtJson;
private System.Windows.Forms.Button BtnGen;
private System.Windows.Forms.Button BtnParse;
private System.Windows.Forms.ComboBox CmbPrefab;
}
}

View File

@@ -0,0 +1,250 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public 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/>.
*
**/
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GrasscutterTools.Game;
using GrasscutterTools.Game.Gacha;
using GrasscutterTools.Properties;
using Newtonsoft.Json;
namespace GrasscutterTools
{
/// <summary>
/// 卡池编辑器
/// </summary>
public partial class FormGachaBannerEditor : Form
{
#region - -
public FormGachaBannerEditor()
{
InitializeComponent();
Icon = Resources.IconGrasscutter;
CmbBannerType.SelectedIndex = 0;
InitBannerPrefab();
InitCheckedListBoxs();
}
private void InitBannerPrefab()
{
CmbPrefab.Items.Clear();
CmbPrefab.Items.AddRange(GameData.GachaBannerPrefabs.Names);
}
private void InitCheckedListBoxs()
{
InitCheckedListBox(ListYellowPool, "yellow");
InitCheckedListBox(ListPurplePool, "purple");
}
private void InitCheckedListBox(CheckedListBox list, string color)
{
var kvs = new List<string>();
for (int i = 0; i < GameData.AvatarColors.Count; i++)
{
if (GameData.AvatarColors.Names[i] == color)
{
var id = GameData.AvatarColors.Ids[i];
var index = Array.IndexOf(GameData.Avatars.Ids, id % 1000 + 10000000);
if (index >= 0)
kvs.Add($"{id}:{GameData.Avatars.Names[index]}");
}
}
for (int i = 0; i < GameData.WeaponColors.Count; i++)
{
if (GameData.WeaponColors.Names[i] == color)
{
var id = GameData.WeaponColors.Ids[i];
var index = Array.IndexOf(GameData.Weapons.Ids, id);
if (index >= 0)
kvs.Add($"{id}:{GameData.Weapons.Names[index]}");
}
}
list.Items.AddRange(kvs.ToArray());
}
private void InitRateUpItems(GachaBanner banner)
{
UpdateCheckedListBox(ListYellowPool, banner.RateUpItems1);
UpdateCheckedListBox(ListPurplePool, banner.RateUpItems2);
}
#endregion - -
#region - UI -
private void ShowBanner(GachaBanner banner)
{
try
{
NUDGachaType.Value = banner.GachaType;
NUDScheduleId.Value = banner.ScheduleId;
CmbBannerType.SelectedIndex = (int)banner.BannerType;
if (string.IsNullOrEmpty(banner.TitlePath) || !int.TryParse(banner.TitlePath.Substring("UI_GACHA_SHOW_PANEL_A".Length, 3), out int prefabId))
CmbPrefab.SelectedIndex = -1;
else
CmbPrefab.SelectedIndex = Array.IndexOf(GameData.GachaBannerPrefabs.Ids, prefabId);
RbCostItem224.Checked = banner.CostItem == 224;
RbCostItem223.Checked = banner.CostItem == 223;
NUDBeginTime.Value = banner.BeginTime;
NUDEndTime.Value = banner.EndTime;
NUDSortId.Value = banner.SortId;
TxtRateUpItems1.Text = string.Join(", ", banner.RateUpItems1);
TxtRateUpItems2.Text = string.Join(", ", banner.RateUpItems2);
NUDBaseYellowWeight.Value = banner.BaseYellowWeight * 0.01M;
NUDBasePurpleWeight.Value = banner.BasePurpleWeight * 0.01M;
NUDEventChance.Value = banner.EventChance;
NUDSoftPity.Value = banner.SoftPity;
NUDHardPity.Value = banner.HardPity;
InitRateUpItems(banner);
}
catch (Exception ex)
{
MessageBox.Show("UI更新失败" + ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private GachaBanner ParseBanner()
{
if (CmbBannerType.SelectedIndex < 0)
{
MessageBox.Show("请选择奖池类型", Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
if (CmbPrefab.SelectedIndex < 0)
{
MessageBox.Show("请选择奖池预制", Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
return null;
}
int[] yellowIds;
if (string.IsNullOrEmpty(TxtRateUpItems1.Text))
yellowIds = new int[0];
else
yellowIds = TxtRateUpItems1.Text.Split(',').Select(s => int.Parse(s.Trim())).ToArray();
int[] purpleIds;
if (string.IsNullOrEmpty(TxtRateUpItems2.Text))
purpleIds = new int[0];
else
purpleIds = TxtRateUpItems2.Text.Split(',').Select(s => int.Parse(s.Trim())).ToArray();
var prefabId = GameData.GachaBannerPrefabs.Ids[CmbPrefab.SelectedIndex];
GachaBanner banner = new GachaBanner
{
GachaType = (int)NUDGachaType.Value,
ScheduleId = (int)NUDScheduleId.Value,
BannerType = (BannerType)CmbBannerType.SelectedIndex,
PrefabPath = $"GachaShowPanel_A{prefabId:000}",
PreviewPrefabPath = $"UI_Tab_GachaShowPanel_A{prefabId:000}",
TitlePath = $"UI_GACHA_SHOW_PANEL_A{prefabId:000}_TITLE",
CostItem = RbCostItem224.Checked ? 224 : 223,
BeginTime = (int)NUDBeginTime.Value,
EndTime = (int)NUDEndTime.Value,
SortId = (int)NUDSortId.Value,
RateUpItems1 = yellowIds,
RateUpItems2 = purpleIds,
BaseYellowWeight = (int)(NUDBaseYellowWeight.Value * 100),
BasePurpleWeight = (int)(NUDBasePurpleWeight.Value * 100),
EventChance = (int)NUDEventChance.Value,
SoftPity = (int)NUDSoftPity.Value,
HardPity = (int)NUDHardPity.Value
};
return banner;
}
#endregion - UI -
#region - -
private void UpdateCheckedListBox(CheckedListBox list, int[] checkedIds)
{
for (int i = 0; i < list.Items.Count; i++)
{
if (checkedIds.Length == 0)
list.SetItemChecked(i, false);
else
{
var item = list.Items[i] as string;
var id = int.Parse(item.Substring(0, item.IndexOf(':')));
list.SetItemChecked(i, Array.IndexOf(checkedIds, id) != -1);
}
}
}
private void ListYellowPool_ItemCheck(object sender, ItemCheckEventArgs e)
{
BeginInvoke(new Action(() =>
UpdateCheckedItems(ListYellowPool, TxtRateUpItems1)
));
}
private void ListPurplePool_ItemCheck(object sender, ItemCheckEventArgs e)
{
BeginInvoke(new Action(() =>
UpdateCheckedItems(ListPurplePool, TxtRateUpItems2)
));
}
private void UpdateCheckedItems(CheckedListBox list, TextBox txt)
{
if (list.CheckedItems.Count == 0)
txt.Text = "";
else
{
StringBuilder builder = new StringBuilder();
foreach (string item in list.CheckedItems)
builder.Append(item.Substring(0, item.IndexOf(':')))
.Append(", ");
txt.Text = builder.ToString(0, builder.Length - 2);
}
}
private void BtnGen_Click(object sender, EventArgs e)
{
var banner = ParseBanner();
if (banner != null)
{
TxtJson.Text = JsonConvert.SerializeObject(banner, Formatting.Indented);
}
}
private void BtnParse_Click(object sender, EventArgs e)
{
try
{
ShowBanner(JsonConvert.DeserializeObject<GachaBanner>(TxtJson.Text));
}
catch (Exception ex)
{
MessageBox.Show("Json解析失败错误消息" + ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
#endregion - -
}
}

View File

@@ -0,0 +1,319 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="LblEventChanceTip.Location" type="System.Drawing.Point, System.Drawing">
<value>401, 262</value>
</data>
<data name="NUDEventChance.Location" type="System.Drawing.Point, System.Drawing">
<value>332, 260</value>
</data>
<data name="LblEventChance.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 17</value>
</data>
<data name="LblEventChance.Text" xml:space="preserve">
<value>Event chance</value>
</data>
<data name="LblSortId.Location" type="System.Drawing.Point, System.Drawing">
<value>72, 204</value>
</data>
<data name="LblSortId.Text" xml:space="preserve">
<value>Sort</value>
</data>
<data name="LblBaseYellowWeight.Location" type="System.Drawing.Point, System.Drawing">
<value>22, 262</value>
</data>
<data name="LblBaseYellowWeight.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 17</value>
</data>
<data name="LblBaseYellowWeight.Text" xml:space="preserve">
<value>5 star weight</value>
</data>
<data name="LblRateUpItems2.Location" type="System.Drawing.Point, System.Drawing">
<value>44, 350</value>
</data>
<data name="LblRateUpItems2.Size" type="System.Drawing.Size, System.Drawing">
<value>61, 17</value>
</data>
<data name="LblRateUpItems2.Text" xml:space="preserve">
<value>4 star UP</value>
</data>
<data name="LblSoftPity.Location" type="System.Drawing.Point, System.Drawing">
<value>49, 291</value>
</data>
<data name="LblSoftPity.Size" type="System.Drawing.Size, System.Drawing">
<value>56, 17</value>
</data>
<data name="LblSoftPity.Text" xml:space="preserve">
<value>Soft pity</value>
</data>
<data name="LblGachaTypeTip.Size" type="System.Drawing.Size, System.Drawing">
<value>123, 17</value>
</data>
<data name="LblGachaTypeTip.Text" xml:space="preserve">
<value>Increment from 400</value>
</data>
<data name="LblEndTime.Size" type="System.Drawing.Size, System.Drawing">
<value>62, 17</value>
</data>
<data name="LblEndTime.Text" xml:space="preserve">
<value>End Time</value>
</data>
<data name="LblRateUpItems1.Location" type="System.Drawing.Point, System.Drawing">
<value>44, 234</value>
</data>
<data name="LblRateUpItems1.Size" type="System.Drawing.Size, System.Drawing">
<value>61, 17</value>
</data>
<data name="LblRateUpItems1.Text" xml:space="preserve">
<value>5 star UP</value>
</data>
<data name="LblBeginTime.Location" type="System.Drawing.Point, System.Drawing">
<value>32, 175</value>
</data>
<data name="LblBeginTime.Size" type="System.Drawing.Size, System.Drawing">
<value>73, 17</value>
</data>
<data name="LblBeginTime.Text" xml:space="preserve">
<value>Begin Time</value>
</data>
<data name="LblHardPity.Location" type="System.Drawing.Point, System.Drawing">
<value>42, 320</value>
</data>
<data name="LblHardPity.Size" type="System.Drawing.Size, System.Drawing">
<value>62, 17</value>
</data>
<data name="LblHardPity.Text" xml:space="preserve">
<value>Hard pity</value>
</data>
<data name="NUDEndTime.Location" type="System.Drawing.Point, System.Drawing">
<value>287, 174</value>
</data>
<data name="LblHardPityTip.Size" type="System.Drawing.Size, System.Drawing">
<value>17, 17</value>
</data>
<data name="LblHardPityTip.Text" xml:space="preserve">
<value>...</value>
</data>
<data name="LblScheduleIdTip.Size" type="System.Drawing.Size, System.Drawing">
<value>49, 17</value>
</data>
<data name="LblScheduleIdTip.Text" xml:space="preserve">
<value>Unique</value>
</data>
<data name="LblSoftPityTip.Size" type="System.Drawing.Size, System.Drawing">
<value>17, 17</value>
</data>
<data name="LblSoftPityTip.Text" xml:space="preserve">
<value>...</value>
</data>
<data name="LblBasePurpleWeight.Location" type="System.Drawing.Point, System.Drawing">
<value>22, 378</value>
</data>
<data name="LblBasePurpleWeight.Size" type="System.Drawing.Size, System.Drawing">
<value>83, 17</value>
</data>
<data name="LblBasePurpleWeight.Text" xml:space="preserve">
<value>4 star weight</value>
</data>
<data name="CmbBannerType.Items" xml:space="preserve">
<value>Standard Wish</value>
</data>
<data name="CmbBannerType.Items1" xml:space="preserve">
<value>Character Event Wish</value>
</data>
<data name="CmbBannerType.Items2" xml:space="preserve">
<value>Weapon Event Wish</value>
</data>
<data name="LblSortIdTip.Size" type="System.Drawing.Size, System.Drawing">
<value>76, 17</value>
</data>
<data name="LblSortIdTip.Text" xml:space="preserve">
<value>Show order</value>
</data>
<data name="LblBannerType.Location" type="System.Drawing.Point, System.Drawing">
<value>25, 87</value>
</data>
<data name="LblBannerType.Size" type="System.Drawing.Size, System.Drawing">
<value>81, 17</value>
</data>
<data name="LblBannerType.Text" xml:space="preserve">
<value>Banner Type</value>
</data>
<data name="RbCostItem224.Size" type="System.Drawing.Size, System.Drawing">
<value>104, 21</value>
</data>
<data name="RbCostItem224.Text" xml:space="preserve">
<value>Acquaint Fate</value>
</data>
<data name="LblCostItem.Location" type="System.Drawing.Point, System.Drawing">
<value>41, 148</value>
</data>
<data name="LblCostItem.Size" type="System.Drawing.Size, System.Drawing">
<value>64, 17</value>
</data>
<data name="LblCostItem.Text" xml:space="preserve">
<value>Cost Item</value>
</data>
<data name="LblPrefabPath.Location" type="System.Drawing.Point, System.Drawing">
<value>59, 118</value>
</data>
<data name="LblPrefabPath.Size" type="System.Drawing.Size, System.Drawing">
<value>46, 17</value>
</data>
<data name="LblPrefabPath.Text" xml:space="preserve">
<value>Prefab</value>
</data>
<data name="RbCostItem223.Location" type="System.Drawing.Point, System.Drawing">
<value>222, 146</value>
</data>
<data name="RbCostItem223.Size" type="System.Drawing.Size, System.Drawing">
<value>119, 21</value>
</data>
<data name="RbCostItem223.Text" xml:space="preserve">
<value>Intertwined Fate</value>
</data>
<data name="GrpBannerValues.Text" xml:space="preserve">
<value>Banner</value>
</data>
<data name="GrpPurplePool.Text" xml:space="preserve">
<value>4 star pool</value>
</data>
<data name="GrpYellowPool.Text" xml:space="preserve">
<value>5 star pool</value>
</data>
<data name="BtnGen.Size" type="System.Drawing.Size, System.Drawing">
<value>85, 23</value>
</data>
<data name="BtnGen.Text" xml:space="preserve">
<value>Gen Json</value>
</data>
<data name="BtnParse.Location" type="System.Drawing.Point, System.Drawing">
<value>209, 437</value>
</data>
<data name="BtnParse.Size" type="System.Drawing.Size, System.Drawing">
<value>85, 23</value>
</data>
<data name="BtnParse.Text" xml:space="preserve">
<value>Parse Json</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Gacha Banner Editor</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,844 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="BtnCopy.Text" xml:space="preserve">
<value>Copy</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="ChkAutoCopy.Size" type="System.Drawing.Size, System.Drawing">
<value>54, 21</value>
</data>
<data name="ChkAutoCopy.Text" xml:space="preserve">
<value>Auto</value>
</data>
<data name="GrpCommand.Text" xml:space="preserve">
<value>Command (Press and hold Ctrl to run automatically)</value>
</data>
<data name="BtnInvokeOpenCommand.Text" xml:space="preserve">
<value>Run(F5)</value>
</data>
<data name="TPHome.Text" xml:space="preserve">
<value>Home</value>
</data>
<data name="BtnOpenTextMap.Size" type="System.Drawing.Size, System.Drawing">
<value>120, 23</value>
</data>
<data name="BtnOpenTextMap.Text" xml:space="preserve">
<value>TextMapBrowser</value>
</data>
<data name="BtnOpenGachaBannerEditor.Text" xml:space="preserve">
<value>Banner editor</value>
</data>
<data name="GrpSettings.Text" xml:space="preserve">
<value>Settings</value>
</data>
<data name="ChkIncludeUID.Size" type="System.Drawing.Size, System.Drawing">
<value>95, 21</value>
</data>
<data name="ChkIncludeUID.Text" xml:space="preserve">
<value>Include UID</value>
</data>
<data name="LblAbout.Location" type="System.Drawing.Point, System.Drawing">
<value>74, 38</value>
</data>
<data name="LblAbout.Size" type="System.Drawing.Size, System.Drawing">
<value>158, 24</value>
</data>
<data name="LblAbout.Text" xml:space="preserve">
<value>Have a nice time!</value>
</data>
<data name="TPCustom.Text" xml:space="preserve">
<value>Custom</value>
</data>
<data name="BtnExportCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
<value>533, 216</value>
</data>
<data name="BtnExportCustomCommands.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 23</value>
</data>
<data name="BtnExportCustomCommands.Text" xml:space="preserve">
<value>Export</value>
</data>
<data name="BtnLoadCustomCommands.Location" type="System.Drawing.Point, System.Drawing">
<value>467, 216</value>
</data>
<data name="BtnLoadCustomCommands.Size" type="System.Drawing.Size, System.Drawing">
<value>60, 23</value>
</data>
<data name="BtnLoadCustomCommands.Text" xml:space="preserve">
<value>Load</value>
</data>
<data name="LblCustomName.Size" type="System.Drawing.Size, System.Drawing">
<value>30, 17</value>
</data>
<data name="LblCustomName.Text" xml:space="preserve">
<value>Tag</value>
</data>
<data name="groupBox1.Text" xml:space="preserve">
<value>List</value>
</data>
<data name="BtnRemoveCustomCommand.Location" type="System.Drawing.Point, System.Drawing">
<value>393, 216</value>
</data>
<data name="BtnRemoveCustomCommand.Size" type="System.Drawing.Size, System.Drawing">
<value>70, 23</value>
</data>
<data name="BtnRemoveCustomCommand.Text" xml:space="preserve">
<value>x Delete</value>
</data>
<data name="BtnSaveCustomCommand.Location" type="System.Drawing.Point, System.Drawing">
<value>317, 216</value>
</data>
<data name="BtnSaveCustomCommand.Size" type="System.Drawing.Size, System.Drawing">
<value>70, 23</value>
</data>
<data name="BtnSaveCustomCommand.Text" xml:space="preserve">
<value>√ Save</value>
</data>
<data name="TxtCustomName.Size" type="System.Drawing.Size, System.Drawing">
<value>267, 23</value>
</data>
<data name="TPArtifact.Text" xml:space="preserve">
<value>Artifact</value>
</data>
<data name="LblArtifactStars.Location" type="System.Drawing.Point, System.Drawing">
<value>298, 41</value>
</data>
<data name="LblArtifactStars.Size" type="System.Drawing.Size, System.Drawing">
<value>37, 17</value>
</data>
<data name="LblArtifactStars.Text" xml:space="preserve">
<value>Stars</value>
</data>
<data name="LblArtifactPart.Size" type="System.Drawing.Size, System.Drawing">
<value>31, 17</value>
</data>
<data name="LblArtifactPart.Text" xml:space="preserve">
<value>Part</value>
</data>
<data name="LblArtifactSet.Location" type="System.Drawing.Point, System.Drawing">
<value>87, 11</value>
</data>
<data name="LblArtifactSet.Size" type="System.Drawing.Size, System.Drawing">
<value>49, 17</value>
</data>
<data name="LblArtifactSet.Text" xml:space="preserve">
<value>Artifact</value>
</data>
<data name="LblArtifactLevelTip.Size" type="System.Drawing.Size, System.Drawing">
<value>62, 17</value>
</data>
<data name="LblArtifactLevelTip.Text" xml:space="preserve">
<value>21 is +20</value>
</data>
<data name="LblClearSubAttrCheckedList.Size" type="System.Drawing.Size, System.Drawing">
<value>50, 17</value>
</data>
<data name="LblClearSubAttrCheckedList.Text" xml:space="preserve">
<value>X Clear</value>
</data>
<data name="LblArtifactLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>99, 41</value>
</data>
<data name="LblArtifactLevel.Size" type="System.Drawing.Size, System.Drawing">
<value>37, 17</value>
</data>
<data name="LblArtifactLevel.Text" xml:space="preserve">
<value>Level</value>
</data>
<data name="LblSubAttribution.Location" type="System.Drawing.Point, System.Drawing">
<value>80, 102</value>
</data>
<data name="LblSubAttribution.Size" type="System.Drawing.Size, System.Drawing">
<value>56, 17</value>
</data>
<data name="LblSubAttribution.Text" xml:space="preserve">
<value>Sub Stat</value>
</data>
<data name="LblMainAttribution.Location" type="System.Drawing.Point, System.Drawing">
<value>73, 71</value>
</data>
<data name="LblMainAttribution.Size" type="System.Drawing.Size, System.Drawing">
<value>63, 17</value>
</data>
<data name="LblMainAttribution.Text" xml:space="preserve">
<value>Main Stat</value>
</data>
<data name="TPQuest.Text" xml:space="preserve">
<value>Quest</value>
</data>
<data name="GrpQuestFilters.Text" xml:space="preserve">
<value>List Filter</value>
</data>
<data name="ChkQuestFilterTEST.Size" type="System.Drawing.Size, System.Drawing">
<value>51, 21</value>
</data>
<data name="ChkQuestFilterTEST.Text" xml:space="preserve">
<value>Test</value>
</data>
<data name="ChkQuestFilterUNRELEASED.Size" type="System.Drawing.Size, System.Drawing">
<value>93, 21</value>
</data>
<data name="ChkQuestFilterUNRELEASED.Text" xml:space="preserve">
<value>Unreleased</value>
</data>
<data name="ChkQuestFilterHIDDEN.Size" type="System.Drawing.Size, System.Drawing">
<value>69, 21</value>
</data>
<data name="ChkQuestFilterHIDDEN.Text" xml:space="preserve">
<value>Hidden</value>
</data>
<data name="BtnFinishQuest.Text" xml:space="preserve">
<value>Finish</value>
</data>
<data name="BtnAddQuest.Text" xml:space="preserve">
<value>Add</value>
</data>
<data name="LblQuestDescription.Text" xml:space="preserve">
<value>Add or Finish Quest
Tip: Many quest require server-side scripting support
Therefore, the quest can be add and finish, but not necessarily can be work</value>
</data>
<data name="TPSpawn.Text" xml:space="preserve">
<value>Spawn</value>
</data>
<data name="BtnSaveSpawnLog.Text" xml:space="preserve">
<value>√ Record</value>
</data>
<data name="BtnRemoveSpawnLog.Text" xml:space="preserve">
<value>× Delete</value>
</data>
<data name="GrpSpawnRecord.Text" xml:space="preserve">
<value>Records</value>
</data>
<data name="GrpEntityType.Text" xml:space="preserve">
<value>Class</value>
</data>
<data name="RbEntityOrnament.Size" type="System.Drawing.Size, System.Drawing">
<value>84, 21</value>
</data>
<data name="RbEntityOrnament.Text" xml:space="preserve">
<value>Ornament</value>
</data>
<data name="RbEntityAnimal.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 21</value>
</data>
<data name="RbEntityAnimal.Text" xml:space="preserve">
<value>Animal</value>
</data>
<data name="RbEntityMonster.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 21</value>
</data>
<data name="RbEntityMonster.Text" xml:space="preserve">
<value>Monster</value>
</data>
<data name="LblSpawnDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>81, 17</value>
</data>
<data name="LblSpawnDescription.Text" xml:space="preserve">
<value>Spawn entity</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="LblEntityAmount.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="LblEntityAmount.Size" type="System.Drawing.Size, System.Drawing">
<value>53, 17</value>
</data>
<data name="LblEntityAmount.Text" xml:space="preserve">
<value>Amount</value>
</data>
<data name="LblEntityLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>120, 218</value>
</data>
<data name="LblEntityLevel.Size" type="System.Drawing.Size, System.Drawing">
<value>20, 17</value>
</data>
<data name="LblEntityLevel.Text" xml:space="preserve">
<value>Lv</value>
</data>
<data name="NUDEntityAmout.Location" type="System.Drawing.Point, System.Drawing">
<value>64, 216</value>
</data>
<data name="NUDEntityLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>146, 216</value>
</data>
<data name="TPAvatar.Text" xml:space="preserve">
<value>Avatar</value>
</data>
<data name="LblAvatarGenWarning.Location" type="System.Drawing.Point, System.Drawing">
<value>88, 161</value>
</data>
<data name="LblAvatarGenWarning.Size" type="System.Drawing.Size, System.Drawing">
<value>427, 51</value>
</data>
<data name="LblAvatarGenWarning.Text" xml:space="preserve">
<value>WARN! Adding a character that is not officially used may result
in a corrupted account save, making it impossible to play the game.
The data may not be cleared even if the account is recreated.</value>
</data>
<data name="LblAvatar.Location" type="System.Drawing.Point, System.Drawing">
<value>135, 217</value>
</data>
<data name="LblAvatar.Size" type="System.Drawing.Size, System.Drawing">
<value>45, 17</value>
</data>
<data name="LblAvatar.Text" xml:space="preserve">
<value>Avatar</value>
</data>
<data name="LblLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>392, 216</value>
</data>
<data name="LblLevel.Size" type="System.Drawing.Size, System.Drawing">
<value>20, 17</value>
</data>
<data name="LblLevel.Text" xml:space="preserve">
<value>Lv</value>
</data>
<data name="NUDAvatarLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>418, 214</value>
</data>
<data name="CmbAvatar.Location" type="System.Drawing.Point, System.Drawing">
<value>186, 214</value>
</data>
<data name="CmbAvatar.Size" type="System.Drawing.Size, System.Drawing">
<value>200, 25</value>
</data>
<data name="TPStats.Text" xml:space="preserve">
<value>Stats</value>
</data>
<data name="GrpSetStats.Text" xml:space="preserve">
<value>Stats</value>
</data>
<data name="LblStatTip.Size" type="System.Drawing.Size, System.Drawing">
<value>26, 17</value>
</data>
<data name="LblStatTip.Text" xml:space="preserve">
<value>Tip</value>
</data>
<data name="GrpTalentLevel.Text" xml:space="preserve">
<value>Talent Level</value>
</data>
<data name="LnkTalentE.Location" type="System.Drawing.Point, System.Drawing">
<value>283, 24</value>
</data>
<data name="LnkTalentE.Size" type="System.Drawing.Size, System.Drawing">
<value>15, 17</value>
</data>
<data name="LnkTalentE.Text" xml:space="preserve">
<value>E</value>
</data>
<data name="LnkTalentQ.Location" type="System.Drawing.Point, System.Drawing">
<value>259, 24</value>
</data>
<data name="LnkTalentQ.Size" type="System.Drawing.Size, System.Drawing">
<value>18, 17</value>
</data>
<data name="LnkTalentQ.Text" xml:space="preserve">
<value>Q</value>
</data>
<data name="LnkTalentNormalATK.Location" type="System.Drawing.Point, System.Drawing">
<value>178, 24</value>
</data>
<data name="LnkTalentNormalATK.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 17</value>
</data>
<data name="LnkTalentNormalATK.Text" xml:space="preserve">
<value>NormalATK</value>
</data>
<data name="NUDTalentLevel.Size" type="System.Drawing.Size, System.Drawing">
<value>128, 23</value>
</data>
<data name="LblStatsDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>179, 17</value>
</data>
<data name="LblStatsDescription.Text" xml:space="preserve">
<value>Set current active Avatar data</value>
</data>
<data name="TPWeapon.Text" xml:space="preserve">
<value>Weapon</value>
</data>
<data name="LblWeaponDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>93, 17</value>
</data>
<data name="LblWeaponDescription.Text" xml:space="preserve">
<value>Geive Weapon</value>
</data>
<data name="LblWeaponRefinement.Location" type="System.Drawing.Point, System.Drawing">
<value>203, 218</value>
</data>
<data name="LblWeaponRefinement.Size" type="System.Drawing.Size, System.Drawing">
<value>73, 17</value>
</data>
<data name="LblWeaponRefinement.Text" xml:space="preserve">
<value>Refinement</value>
</data>
<data name="LblWeaponAmount.Size" type="System.Drawing.Size, System.Drawing">
<value>53, 17</value>
</data>
<data name="LblWeaponAmount.Text" xml:space="preserve">
<value>Amount</value>
</data>
<data name="LblWeaponLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>121, 218</value>
</data>
<data name="LblWeaponLevel.Size" type="System.Drawing.Size, System.Drawing">
<value>20, 17</value>
</data>
<data name="LblWeaponLevel.Text" xml:space="preserve">
<value>Lv</value>
</data>
<data name="NUDWeaponRefinement.Location" type="System.Drawing.Point, System.Drawing">
<value>282, 216</value>
</data>
<data name="NUDWeaponAmout.Location" type="System.Drawing.Point, System.Drawing">
<value>65, 216</value>
</data>
<data name="NUDWeaponLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>147, 216</value>
</data>
<data name="TPItem.Text" xml:space="preserve">
<value>Items</value>
</data>
<data name="BtnSaveGiveItemLog.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left</value>
</data>
<data name="BtnSaveGiveItemLog.Location" type="System.Drawing.Point, System.Drawing">
<value>265, 48</value>
</data>
<data name="BtnSaveGiveItemLog.Text" xml:space="preserve">
<value>√ Record</value>
</data>
<data name="BtnRemoveGiveItemLog.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left</value>
</data>
<data name="BtnRemoveGiveItemLog.Location" type="System.Drawing.Point, System.Drawing">
<value>265, 77</value>
</data>
<data name="BtnRemoveGiveItemLog.Text" xml:space="preserve">
<value>× Delete</value>
</data>
<data name="GrpGiveItemRecord.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left</value>
</data>
<data name="GrpGiveItemRecord.Size" type="System.Drawing.Size, System.Drawing">
<value>249, 162</value>
</data>
<data name="GrpGiveItemRecord.Text" xml:space="preserve">
<value>Records</value>
</data>
<data name="ListGiveItemLogs.Size" type="System.Drawing.Size, System.Drawing">
<value>243, 140</value>
</data>
<data name="ChkDrop.Location" type="System.Drawing.Point, System.Drawing">
<value>278, 217</value>
</data>
<data name="ChkDrop.Size" type="System.Drawing.Size, System.Drawing">
<value>57, 21</value>
</data>
<data name="ChkDrop.Text" xml:space="preserve">
<value>Drop</value>
</data>
<data name="TxtGameItemFilter.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="TxtGameItemFilter.Location" type="System.Drawing.Point, System.Drawing">
<value>346, 5</value>
</data>
<data name="TxtGameItemFilter.Size" type="System.Drawing.Size, System.Drawing">
<value>250, 23</value>
</data>
<data name="ListGameItems.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<data name="ListGameItems.Location" type="System.Drawing.Point, System.Drawing">
<value>346, 31</value>
</data>
<data name="ListGameItems.Size" type="System.Drawing.Size, System.Drawing">
<value>250, 208</value>
</data>
<data name="LblGameItemAmount.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="LblGameItemAmount.Size" type="System.Drawing.Size, System.Drawing">
<value>53, 17</value>
</data>
<data name="LblGameItemAmount.Text" xml:space="preserve">
<value>Amount</value>
</data>
<data name="LblGameItemLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>171, 218</value>
</data>
<data name="LblGameItemLevel.Size" type="System.Drawing.Size, System.Drawing">
<value>37, 17</value>
</data>
<data name="LblGameItemLevel.Text" xml:space="preserve">
<value>Level</value>
</data>
<data name="NUDGameItemAmout.Location" type="System.Drawing.Point, System.Drawing">
<value>65, 216</value>
</data>
<data name="NUDGameItemLevel.Location" type="System.Drawing.Point, System.Drawing">
<value>209, 216</value>
</data>
<data name="LblGiveCommandDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>118, 17</value>
</data>
<data name="LblGiveCommandDescription.Text" xml:space="preserve">
<value>Give item to player</value>
</data>
<data name="TPScene.Text" xml:space="preserve">
<value>Scene</value>
</data>
<data name="ChkIncludeSceneId.Location" type="System.Drawing.Point, System.Drawing">
<value>91, 213</value>
</data>
<data name="ChkIncludeSceneId.Size" type="System.Drawing.Size, System.Drawing">
<value>122, 21</value>
</data>
<data name="ChkIncludeSceneId.Text" xml:space="preserve">
<value>Include scene Id</value>
</data>
<data name="LblTp.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="LblTp.AutoSize" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="LblTp.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 89</value>
</data>
<data name="LblTp.Size" type="System.Drawing.Size, System.Drawing">
<value>337, 90</value>
</data>
<data name="LblTp.Text" xml:space="preserve">
<value>Teleporting
Tip: You can quickly teleport through the 'fishing hook' mark on the minimap in the game
In the command, you can use ~ to indicate the current position, and ~100 to indicate the relative current 100</value>
</data>
<data name="LblTpZ.Location" type="System.Drawing.Point, System.Drawing">
<value>219, 184</value>
</data>
<data name="LblTpY.Location" type="System.Drawing.Point, System.Drawing">
<value>113, 184</value>
</data>
<data name="BtnTeleport.Location" type="System.Drawing.Point, System.Drawing">
<value>10, 211</value>
</data>
<data name="BtnTeleport.Text" xml:space="preserve">
<value>Teleport</value>
</data>
<data name="LblTpX.Location" type="System.Drawing.Point, System.Drawing">
<value>7, 184</value>
</data>
<data name="NUDTpZ.Location" type="System.Drawing.Point, System.Drawing">
<value>239, 182</value>
</data>
<data name="NUDTpY.Location" type="System.Drawing.Point, System.Drawing">
<value>133, 182</value>
</data>
<data name="NUDTpX.Location" type="System.Drawing.Point, System.Drawing">
<value>27, 182</value>
</data>
<data name="CmbClimateType.Location" type="System.Drawing.Point, System.Drawing">
<value>66, 61</value>
</data>
<data name="LblClimateType.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 64</value>
</data>
<data name="LblClimateType.Size" type="System.Drawing.Size, System.Drawing">
<value>54, 17</value>
</data>
<data name="LblClimateType.Text" xml:space="preserve">
<value>weather</value>
</data>
<data name="LblSceneDescription.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="LblSceneDescription.AutoSize" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="LblSceneDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>287, 55</value>
</data>
<data name="LblSceneDescription.Text" xml:space="preserve">
<value>Scene control
Tip: Most of the scenes have no effect and cannot be entered.</value>
</data>
<data name="TPManage.Text" xml:space="preserve">
<value>Manage</value>
</data>
<data name="GrpAccount.Text" xml:space="preserve">
<value>Account Management</value>
</data>
<data name="ChkAccountSetUid.Size" type="System.Drawing.Size, System.Drawing">
<value>49, 21</value>
</data>
<data name="ChkAccountSetUid.Text" xml:space="preserve">
<value>UID</value>
</data>
<data name="NUDAccountUid.Location" type="System.Drawing.Point, System.Drawing">
<value>270, 23</value>
</data>
<data name="NUDAccountUid.Size" type="System.Drawing.Size, System.Drawing">
<value>130, 23</value>
</data>
<data name="BtnDeleteAccount.Text" xml:space="preserve">
<value>Delete</value>
</data>
<data name="BtnCreateAccount.Text" xml:space="preserve">
<value>Create</value>
</data>
<data name="LblAccountUserName.Location" type="System.Drawing.Point, System.Drawing">
<value>6, 25</value>
</data>
<data name="LblAccountUserName.Size" type="System.Drawing.Size, System.Drawing">
<value>67, 17</value>
</data>
<data name="LblAccountUserName.Text" xml:space="preserve">
<value>Username</value>
</data>
<data name="TxtAccountUserName.Location" type="System.Drawing.Point, System.Drawing">
<value>79, 22</value>
</data>
<data name="TxtAccountUserName.Size" type="System.Drawing.Size, System.Drawing">
<value>127, 23</value>
</data>
<data name="GrpPermission.Text" xml:space="preserve">
<value>Permission Management</value>
</data>
<data name="BtmPermRemove.Text" xml:space="preserve">
<value>Delete</value>
</data>
<data name="BtnPermAdd.Text" xml:space="preserve">
<value>Add</value>
</data>
<data name="LblPerm.Size" type="System.Drawing.Size, System.Drawing">
<value>38, 17</value>
</data>
<data name="LblPerm.Text" xml:space="preserve">
<value>Perm</value>
</data>
<data name="LblPermUID.Location" type="System.Drawing.Point, System.Drawing">
<value>30, 25</value>
</data>
<data name="LblPermUID.Size" type="System.Drawing.Size, System.Drawing">
<value>30, 17</value>
</data>
<data name="LblPermUID.Text" xml:space="preserve">
<value>UID</value>
</data>
<data name="TPAbout.Text" xml:space="preserve">
<value>About</value>
</data>
<data name="LnkGithub.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Left</value>
</data>
<data name="LblSupportDescription.Size" type="System.Drawing.Size, System.Drawing">
<value>110, 17</value>
</data>
<data name="LblSupportDescription.Text" xml:space="preserve">
<value>Grasscutter Tools</value>
</data>
<data name="TPRemoteCall.Text" xml:space="preserve">
<value>Remote</value>
</data>
<data name="GrpServerStatus.Text" xml:space="preserve">
<value>Server status</value>
</data>
<data name="LnkOpenCommandLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 63</value>
</data>
<data name="LnkOpenCommandLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>100, 17</value>
</data>
<data name="LnkOpenCommandLabel.Text" xml:space="preserve">
<value>OpenCommand</value>
</data>
<data name="LblOpenCommandSupport.Location" type="System.Drawing.Point, System.Drawing">
<value>119, 63</value>
</data>
<data name="LblServerVersion.Location" type="System.Drawing.Point, System.Drawing">
<value>119, 29</value>
</data>
<data name="LblPlayerCount.Location" type="System.Drawing.Point, System.Drawing">
<value>119, 46</value>
</data>
<data name="LblServerVersionLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>25, 29</value>
</data>
<data name="LblServerVersionLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>88, 17</value>
</data>
<data name="LblServerVersionLabel.Text" xml:space="preserve">
<value>Game version</value>
</data>
<data name="LblPlayerCountLabel.Location" type="System.Drawing.Point, System.Drawing">
<value>34, 46</value>
</data>
<data name="LblPlayerCountLabel.Size" type="System.Drawing.Size, System.Drawing">
<value>79, 17</value>
</data>
<data name="LblPlayerCountLabel.Text" xml:space="preserve">
<value>Player count</value>
</data>
<data name="GrpRemoteCommand.Text" xml:space="preserve">
<value>Remote Cell</value>
</data>
<data name="LnkRCHelp.Size" type="System.Drawing.Size, System.Drawing">
<value>35, 17</value>
</data>
<data name="LnkRCHelp.Text" xml:space="preserve">
<value>Help</value>
</data>
<data name="BtnConnectOpenCommand.Text" xml:space="preserve">
<value>Connect</value>
</data>
<data name="BtnSendVerificationCode.Text" xml:space="preserve">
<value>Send Code</value>
</data>
<data name="LblVerificationCode.Size" type="System.Drawing.Size, System.Drawing">
<value>39, 17</value>
</data>
<data name="LblVerificationCode.Text" xml:space="preserve">
<value>Code</value>
</data>
<data name="TxtHost.Size" type="System.Drawing.Size, System.Drawing">
<value>167, 23</value>
</data>
<data name="BtnQueryServerStatus.Location" type="System.Drawing.Point, System.Drawing">
<value>292, 36</value>
</data>
<data name="BtnQueryServerStatus.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 23</value>
</data>
<data name="BtnQueryServerStatus.Text" xml:space="preserve">
<value>Query</value>
</data>
<data name="LblHost.Size" type="System.Drawing.Size, System.Drawing">
<value>35, 17</value>
</data>
<data name="LblHost.Text" xml:space="preserve">
<value>Host</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>GrasscutterTools</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,158 @@
namespace GrasscutterTools
{
partial class FormTextMapBrowser
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormTextMapBrowser));
this.TxtTextMapFilter = new System.Windows.Forms.TextBox();
this.BtnSelectRecoursePath = new System.Windows.Forms.Button();
this.CmbLanguage = new System.Windows.Forms.ComboBox();
this.LblLanguage = new System.Windows.Forms.Label();
this.ChkTopMost = new System.Windows.Forms.CheckBox();
this.LblResourcesPath = new System.Windows.Forms.Label();
this.BtnSearch = new System.Windows.Forms.Button();
this.DGVTextMap = new System.Windows.Forms.DataGridView();
this.ColumnHash = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ColumnID = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ColumnText = new System.Windows.Forms.DataGridViewTextBoxColumn();
((System.ComponentModel.ISupportInitialize)(this.DGVTextMap)).BeginInit();
this.SuspendLayout();
//
// TxtTextMapFilter
//
resources.ApplyResources(this.TxtTextMapFilter, "TxtTextMapFilter");
this.TxtTextMapFilter.Name = "TxtTextMapFilter";
this.TxtTextMapFilter.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TxtTextMapFilter_KeyDown);
//
// BtnSelectRecoursePath
//
resources.ApplyResources(this.BtnSelectRecoursePath, "BtnSelectRecoursePath");
this.BtnSelectRecoursePath.Name = "BtnSelectRecoursePath";
this.BtnSelectRecoursePath.UseVisualStyleBackColor = true;
this.BtnSelectRecoursePath.Click += new System.EventHandler(this.BtnSelectRecoursePath_Click);
//
// CmbLanguage
//
resources.ApplyResources(this.CmbLanguage, "CmbLanguage");
this.CmbLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.CmbLanguage.FormattingEnabled = true;
this.CmbLanguage.Name = "CmbLanguage";
this.CmbLanguage.SelectedIndexChanged += new System.EventHandler(this.CmbLanguage_SelectedIndexChanged);
//
// LblLanguage
//
resources.ApplyResources(this.LblLanguage, "LblLanguage");
this.LblLanguage.Name = "LblLanguage";
//
// ChkTopMost
//
resources.ApplyResources(this.ChkTopMost, "ChkTopMost");
this.ChkTopMost.Name = "ChkTopMost";
this.ChkTopMost.UseVisualStyleBackColor = true;
this.ChkTopMost.CheckedChanged += new System.EventHandler(this.ChkTopMost_CheckedChanged);
//
// LblResourcesPath
//
resources.ApplyResources(this.LblResourcesPath, "LblResourcesPath");
this.LblResourcesPath.Name = "LblResourcesPath";
//
// BtnSearch
//
resources.ApplyResources(this.BtnSearch, "BtnSearch");
this.BtnSearch.Name = "BtnSearch";
this.BtnSearch.UseVisualStyleBackColor = true;
this.BtnSearch.Click += new System.EventHandler(this.BtnSearch_Click);
//
// DGVTextMap
//
this.DGVTextMap.AllowUserToAddRows = false;
this.DGVTextMap.AllowUserToDeleteRows = false;
this.DGVTextMap.AllowUserToResizeRows = false;
resources.ApplyResources(this.DGVTextMap, "DGVTextMap");
this.DGVTextMap.BackgroundColor = System.Drawing.Color.White;
this.DGVTextMap.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.DGVTextMap.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.ColumnHash,
this.ColumnID,
this.ColumnText});
this.DGVTextMap.Name = "DGVTextMap";
this.DGVTextMap.ReadOnly = true;
this.DGVTextMap.RowTemplate.Height = 23;
//
// ColumnHash
//
resources.ApplyResources(this.ColumnHash, "ColumnHash");
this.ColumnHash.Name = "ColumnHash";
this.ColumnHash.ReadOnly = true;
//
// ColumnID
//
resources.ApplyResources(this.ColumnID, "ColumnID");
this.ColumnID.Name = "ColumnID";
this.ColumnID.ReadOnly = true;
//
// ColumnText
//
resources.ApplyResources(this.ColumnText, "ColumnText");
this.ColumnText.Name = "ColumnText";
this.ColumnText.ReadOnly = true;
//
// FormTextMapBrowser
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.DGVTextMap);
this.Controls.Add(this.BtnSearch);
this.Controls.Add(this.ChkTopMost);
this.Controls.Add(this.LblLanguage);
this.Controls.Add(this.CmbLanguage);
this.Controls.Add(this.LblResourcesPath);
this.Controls.Add(this.BtnSelectRecoursePath);
this.Controls.Add(this.TxtTextMapFilter);
this.Name = "FormTextMapBrowser";
this.Load += new System.EventHandler(this.FormTextMapBrowser_Load);
((System.ComponentModel.ISupportInitialize)(this.DGVTextMap)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox TxtTextMapFilter;
private System.Windows.Forms.Button BtnSelectRecoursePath;
private System.Windows.Forms.ComboBox CmbLanguage;
private System.Windows.Forms.Label LblLanguage;
private System.Windows.Forms.CheckBox ChkTopMost;
private System.Windows.Forms.Label LblResourcesPath;
private System.Windows.Forms.Button BtnSearch;
private System.Windows.Forms.DataGridView DGVTextMap;
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnHash;
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnID;
private System.Windows.Forms.DataGridViewTextBoxColumn ColumnText;
}
}

View File

@@ -0,0 +1,201 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public 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/>.
*
**/
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using GrasscutterTools.Game;
using GrasscutterTools.Properties;
namespace GrasscutterTools
{
public partial class FormTextMapBrowser : Form
{
public FormTextMapBrowser()
{
InitializeComponent();
Icon = Resources.IconGrasscutter;
}
private void FormTextMapBrowser_Load(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(Settings.Default.ResourcesDirPath))
{
LoadResources(Settings.Default.ResourcesDirPath);
}
}
private TextMapData data;
private void LoadResources(string resourcesDirPath)
{
try
{
Cursor = Cursors.WaitCursor;
Application.DoEvents();
data = new TextMapData(resourcesDirPath);
LblResourcesPath.Text = resourcesDirPath;
if (Settings.Default.ResourcesDirPath != resourcesDirPath)
{
Settings.Default.ResourcesDirPath = resourcesDirPath;
Settings.Default.Save();
}
CmbLanguage.Items.Clear();
CmbLanguage.Items.AddRange(data.TextMapFiles);
if (!string.IsNullOrEmpty(Settings.Default.TextMapFileName))
{
var i = CmbLanguage.Items.IndexOf(Settings.Default.TextMapFileName);
if (i != -1)
CmbLanguage.SelectedIndex = i;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Cursor = Cursors.Default;
}
}
private void BtnSelectRecoursePath_Click(object sender, EventArgs e)
{
var dir = new FolderBrowserDialog()
{
ShowNewFolderButton = false,
Description = "./Gasscutter/resources",
};
if (dir.ShowDialog() == DialogResult.OK)
{
LoadResources(dir.SelectedPath);
}
}
private void CmbLanguage_SelectedIndexChanged(object sender, EventArgs e)
{
if (CmbLanguage.SelectedIndex == -1 || data == null)
return;
try
{
Cursor = Cursors.WaitCursor;
Application.DoEvents();
data.LoadTextMap(data.TextMapFilePaths[CmbLanguage.SelectedIndex]);
GenLines();
Settings.Default.TextMapFileName = CmbLanguage.Text;
Settings.Default.Save();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
Cursor = Cursors.Default;
}
}
private List<ListViewItem> Items;
private void GenLines()
{
List<ListViewItem> items = new List<ListViewItem>(data.TextMap.Count);
foreach (var kv in data.TextMap)
{
if (data.ManualTextMap.TryGetValue(kv.Key, out string id))
items.Add(new ListViewItem(new string[] { kv.Key, id, kv.Value }));
else
items.Add(new ListViewItem(new string[] { kv.Key, "", kv.Value }));
}
Items = items;
}
private void ChkTopMost_CheckedChanged(object sender, EventArgs e)
{
TopMost = ChkTopMost.Checked;
}
private void BtnSearch_Click(object sender, EventArgs e)
{
if (Items == null)
{
MessageBox.Show("请先选择资源目录,并选择对应语言文件。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
var filter = TxtTextMapFilter.Text.Trim();
if (string.IsNullOrEmpty(filter))
return;
Regex r;
try
{
r = new Regex(filter, RegexOptions.IgnoreCase);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
try
{
Cursor = Cursors.WaitCursor;
Application.DoEvents();
var result = data.ManualTextMap.Where(kv => r.Match(kv.Value).Success)
.Select(kv => new { Hash = kv.Key, Id = kv.Value, Text = data.TextMap[kv.Key] })
.Concat(
data.TextMap.Where(kv => r.Match(kv.Key).Success || r.Match(kv.Value).Success)
.Select(kv => new
{
Hash = kv.Key,
Id = data.ManualTextMap.TryGetValue(kv.Key, out string id) ? id : "",
Text = kv.Value
})
).ToList();
DGVTextMap.SuspendLayout();
DGVTextMap.Rows.Clear();
for (int i = 0; i < result.Count; i++)
{
DGVTextMap.Rows.Add();
DGVTextMap.Rows[i].Cells[0].Value = result[i].Hash;
DGVTextMap.Rows[i].Cells[1].Value = result[i].Id;
DGVTextMap.Rows[i].Cells[2].Value = result[i].Text;
}
DGVTextMap.ResumeLayout();
}
finally
{
Cursor = Cursors.Default;
}
}
private void TxtTextMapFilter_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
BtnSearch_Click(sender, e);
}
}
}

View File

@@ -0,0 +1,151 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="BtnSelectRecoursePath.Text" xml:space="preserve">
<value>Select</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="LblLanguage.Location" type="System.Drawing.Point, System.Drawing">
<value>477, 15</value>
</data>
<data name="LblLanguage.Size" type="System.Drawing.Size, System.Drawing">
<value>65, 17</value>
</data>
<data name="LblLanguage.Text" xml:space="preserve">
<value>Language</value>
</data>
<data name="ChkTopMost.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 21</value>
</data>
<data name="ChkTopMost.Text" xml:space="preserve">
<value>TopMost</value>
</data>
<data name="LblResourcesPath.Size" type="System.Drawing.Size, System.Drawing">
<value>294, 17</value>
</data>
<data name="LblResourcesPath.Text" xml:space="preserve">
<value>Please select a resource directory</value>
</data>
<data name="BtnSearch.Text" xml:space="preserve">
<value>Search</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>Text Map Browser</value>
</data>
</root>

View File

@@ -0,0 +1,405 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="TxtTextMapFilter.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="TxtTextMapFilter.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 41</value>
</data>
<data name="TxtTextMapFilter.Size" type="System.Drawing.Size, System.Drawing">
<value>555, 23</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="TxtTextMapFilter.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;TxtTextMapFilter.Name" xml:space="preserve">
<value>TxtTextMapFilter</value>
</data>
<data name="&gt;&gt;TxtTextMapFilter.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;TxtTextMapFilter.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;TxtTextMapFilter.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="BtnSelectRecoursePath.Location" type="System.Drawing.Point, System.Drawing">
<value>96, 12</value>
</data>
<data name="BtnSelectRecoursePath.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="BtnSelectRecoursePath.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="BtnSelectRecoursePath.Text" xml:space="preserve">
<value>浏览</value>
</data>
<data name="&gt;&gt;BtnSelectRecoursePath.Name" xml:space="preserve">
<value>BtnSelectRecoursePath</value>
</data>
<data name="&gt;&gt;BtnSelectRecoursePath.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;BtnSelectRecoursePath.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;BtnSelectRecoursePath.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="CmbLanguage.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
</data>
<data name="CmbLanguage.Location" type="System.Drawing.Point, System.Drawing">
<value>548, 12</value>
</data>
<data name="CmbLanguage.Size" type="System.Drawing.Size, System.Drawing">
<value>100, 25</value>
</data>
<data name="CmbLanguage.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="&gt;&gt;CmbLanguage.Name" xml:space="preserve">
<value>CmbLanguage</value>
</data>
<data name="&gt;&gt;CmbLanguage.Type" xml:space="preserve">
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;CmbLanguage.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;CmbLanguage.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="LblLanguage.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
</data>
<data name="LblLanguage.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="LblLanguage.Location" type="System.Drawing.Point, System.Drawing">
<value>510, 15</value>
</data>
<data name="LblLanguage.Size" type="System.Drawing.Size, System.Drawing">
<value>32, 17</value>
</data>
<data name="LblLanguage.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
</data>
<data name="LblLanguage.Text" xml:space="preserve">
<value>语言</value>
</data>
<data name="&gt;&gt;LblLanguage.Name" xml:space="preserve">
<value>LblLanguage</value>
</data>
<data name="&gt;&gt;LblLanguage.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;LblLanguage.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;LblLanguage.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="ChkTopMost.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="ChkTopMost.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 14</value>
</data>
<data name="ChkTopMost.Size" type="System.Drawing.Size, System.Drawing">
<value>51, 21</value>
</data>
<data name="ChkTopMost.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="ChkTopMost.Text" xml:space="preserve">
<value>置顶</value>
</data>
<data name="&gt;&gt;ChkTopMost.Name" xml:space="preserve">
<value>ChkTopMost</value>
</data>
<data name="&gt;&gt;ChkTopMost.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ChkTopMost.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;ChkTopMost.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="LblResourcesPath.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Left, Right</value>
</data>
<data name="LblResourcesPath.Location" type="System.Drawing.Point, System.Drawing">
<value>177, 15</value>
</data>
<data name="LblResourcesPath.Size" type="System.Drawing.Size, System.Drawing">
<value>327, 17</value>
</data>
<data name="LblResourcesPath.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="LblResourcesPath.Text" xml:space="preserve">
<value>请选择Resources路径</value>
</data>
<data name="&gt;&gt;LblResourcesPath.Name" xml:space="preserve">
<value>LblResourcesPath</value>
</data>
<data name="&gt;&gt;LblResourcesPath.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;LblResourcesPath.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;LblResourcesPath.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="BtnSearch.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Right</value>
</data>
<data name="BtnSearch.Location" type="System.Drawing.Point, System.Drawing">
<value>573, 41</value>
</data>
<data name="BtnSearch.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 23</value>
</data>
<data name="BtnSearch.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="BtnSearch.Text" xml:space="preserve">
<value>搜索</value>
</data>
<data name="&gt;&gt;BtnSearch.Name" xml:space="preserve">
<value>BtnSearch</value>
</data>
<data name="&gt;&gt;BtnSearch.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;BtnSearch.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;BtnSearch.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="DGVTextMap.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Top, Bottom, Left, Right</value>
</data>
<metadata name="ColumnHash.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnHash.HeaderText" xml:space="preserve">
<value>Hash</value>
</data>
<data name="ColumnHash.Width" type="System.Int32, mscorlib">
<value>80</value>
</data>
<metadata name="ColumnID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnID.HeaderText" xml:space="preserve">
<value>ID</value>
</data>
<data name="ColumnID.Width" type="System.Int32, mscorlib">
<value>240</value>
</data>
<metadata name="ColumnText.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="ColumnText.HeaderText" xml:space="preserve">
<value>Text</value>
</data>
<data name="ColumnText.Width" type="System.Int32, mscorlib">
<value>250</value>
</data>
<data name="DGVTextMap.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 70</value>
</data>
<data name="DGVTextMap.Size" type="System.Drawing.Size, System.Drawing">
<value>636, 379</value>
</data>
<data name="DGVTextMap.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
</data>
<data name="&gt;&gt;DGVTextMap.Name" xml:space="preserve">
<value>DGVTextMap</value>
</data>
<data name="&gt;&gt;DGVTextMap.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;DGVTextMap.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;DGVTextMap.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>7, 17</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>660, 461</value>
</data>
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
<value>微软雅黑, 9pt</value>
</data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>600, 400</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterScreen</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>文本映射表浏览器</value>
</data>
<data name="&gt;&gt;ColumnHash.Name" xml:space="preserve">
<value>ColumnHash</value>
</data>
<data name="&gt;&gt;ColumnHash.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnID.Name" xml:space="preserve">
<value>ColumnID</value>
</data>
<data name="&gt;&gt;ColumnID.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnText.Name" xml:space="preserve">
<value>ColumnText</value>
</data>
<data name="&gt;&gt;ColumnText.Type" xml:space="preserve">
<value>System.Windows.Forms.DataGridViewTextBoxColumn, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>FormTextMapBrowser</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
</root>

View File

@@ -0,0 +1,25 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public 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/>.
*
**/
namespace GrasscutterTools.Game.Gacha
{
public enum BannerType
{
STANDARD, EVENT, WEAPON
}
}

View File

@@ -0,0 +1,139 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public 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/>.
*
**/
using System.ComponentModel;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace GrasscutterTools.Game.Gacha
{
/// <summary>
/// 使用这个只需替换掉你原来的的data/banner.json文件
/// 然后重启服务器和客户端,即可享受全卡池抽卡,卡池的选择方式是点击左右箭头进行切换
/// </summary>
public class GachaBanner
{
/// <summary>
/// 添加卡池请从400开始增加id数值进行添加这个id需要每个池子不一样
/// 如果你想添加大量卡池请按照每次增加固定数值的id进行添加比如411412413....
/// </summary>
[JsonProperty("gachaType")]
public int GachaType { get; set; }
/// <summary>
/// 这个id需要每个池子不一样如果你想添加大量卡池
/// 请按照每次增加固定数值的id进行添加,比如210022002300....
/// </summary>
[JsonProperty("scheduleId")]
public int ScheduleId { get; set; }
/// <summary>
/// 这个有3种类型standard表示常驻池event表示限时角色祈愿池
/// weapon表示限时武器祈愿池选择一种类型的卡池
/// </summary>
[JsonProperty("bannerType", DefaultValueHandling = DefaultValueHandling.Include), JsonConverter(typeof(StringEnumConverter))]
public BannerType BannerType { get; set; }
/// <summary>
/// 这个是卡池的预制路径id
/// </summary>
[JsonProperty("prefabPath")]
public string PrefabPath { get; set; }
/// <summary>
/// 这个是抽卡的预览背景路径id
/// </summary>
[JsonProperty("previewPrefabPath")]
public string PreviewPrefabPath { get; set; }
/// <summary>
/// 这个是抽卡的标题路径id有可能与之前两项的id不同
/// 一般这3项的id只需保持一致即可就是A0xxxx为同一id
/// </summary>
[JsonProperty("titlePath")]
public string TitlePath { get; set; }
/// <summary>
/// 这个表示祈愿用的道具224是相遇之缘223是纠缠之缘 - 选择一个作为该卡池的抽卡道具
/// (提示请不要随便修改祈愿道具除了蓝球和粉球有可能会引发bug比如修改成摩拉抽卡可能导致卡住)
/// </summary>
[JsonProperty("costItem")]
public int CostItem { get; set; }
/// <summary>
/// 祈愿什么时候开始默认设置为0
/// </summary>
[JsonProperty("beginTime")]
public int BeginTime { get; set; } = 0;
/// <summary>
/// 这个卡池持续多长时间(默认为这个极大的数字)
/// </summary>
[JsonProperty("endTime")]
public int EndTime { get; set; } = 1924992000;
/// <summary>
/// 暂时未搞清楚功能,可能与卡池在屏幕的左右顺序有关
/// </summary>
[JsonProperty("sortId")]
public int SortId { get; set; }
/// <summary>
/// 通常为5星的up角色或物品可修改可添加查看gm手册可修改为任意角色或者物品
/// </summary>
[JsonProperty("rateUpItems1")]
public int[] RateUpItems1 { get; set; }
/// <summary>
/// 通常为4星的up物品或者角色(可修改可添加查看gm手册可修改为任意角色或者物品)
/// </summary>
[JsonProperty("rateUpItems2")]
public int[] RateUpItems2 { get; set; }
/// <summary>
/// 5星概率(0~10000)
/// </summary>
[JsonProperty("baseYellowWeight", DefaultValueHandling = DefaultValueHandling.Ignore), DefaultValue(60)]
public int BaseYellowWeight { get; set; } = 60; // Max 10000
/// <summary>
/// 4星概率(0~10000)
/// </summary>
[JsonProperty("basePurpleWeight", DefaultValueHandling = DefaultValueHandling.Ignore), DefaultValue(510)]
public int BasePurpleWeight { get; set; } = 510; // Max 10000
/// <summary>
/// 事件概率抽中后摇1~100随机数如果大于该值则抽中up池
/// </summary>
[JsonProperty("eventChance", DefaultValueHandling = DefaultValueHandling.Ignore), DefaultValue(50)]
public int EventChance { get; set; } = 50; // Chance to win a featured event item
/// <summary>
/// 软保底失败多少次开始提升抽中概率在这之上每失败一次概率增加1%
/// </summary>
[JsonProperty("softPity", DefaultValueHandling = DefaultValueHandling.Ignore), DefaultValue(75)]
public int SoftPity { get; set; } = 75;
/// <summary>
/// 硬保底(失败多少次必出)
/// </summary>
[JsonProperty("hardPity", DefaultValueHandling = DefaultValueHandling.Ignore), DefaultValue(90)]
public int HardPity { get; set; } = 90;
}
}

View File

@@ -0,0 +1,33 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public 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/>.
*
**/
namespace GrasscutterTools.Game
{
public class GameCommand
{
public GameCommand(string name, string command)
{
Name = name;
Command = command;
}
public string Name { get; set; }
public string Command { get; set; }
}
}

View File

@@ -0,0 +1,77 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public 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/>.
*
**/
using GrasscutterTools.Properties;
namespace GrasscutterTools.Game
{
internal static class GameData
{
public static void LoadResources()
{
Animals = new ItemMap(Resources.Animal);
Artifacts = new ItemMap(Resources.Artifact);
ArtifactCats = new ItemMap(Resources.ArtifactCat);
ArtifactMainAttribution = new ItemMap(Resources.ArtifactMainAttribution);
ArtifactSubAttribution = new ItemMap(Resources.ArtifactSubAttribution);
Avatars = new ItemMap(Resources.Avatar);
AvatarColors = new ItemMap(Resources.AvatarColor);
Items = new ItemMap(Resources.Item);
Monsters = new ItemMap(Resources.Monster);
NPCs = new ItemMap(Resources.NPC);
Scenes = new ItemMap(Resources.Scene);
Weapons = new ItemMap(Resources.Weapon);
WeaponColors = new ItemMap(Resources.WeaponColor);
Ornaments = new ItemMap(Resources.Ornament);
GachaBannerPrefabs = new ItemMap(Resources.GachaBennerPrefab);
Quests = new ItemMap(Resources.Quest);
}
public static ItemMap Animals { get; private set; }
public static ItemMap Artifacts { get; private set; }
public static ItemMap ArtifactCats { get; private set; }
public static ItemMap ArtifactMainAttribution { get; private set; }
public static ItemMap ArtifactSubAttribution { get; private set; }
public static ItemMap Avatars { get; private set; }
public static ItemMap AvatarColors { get; private set; }
public static ItemMap Items { get; private set; }
public static ItemMap Monsters { get; private set; }
public static ItemMap NPCs { get; private set; }
public static ItemMap Scenes { get; private set; }
public static ItemMap Weapons { get; private set; }
public static ItemMap WeaponColors { get; private set; }
public static ItemMap Ornaments { get; private set; }
public static ItemMap GachaBannerPrefabs { get; private set; }
public static ItemMap Quests { get; private set; }
}
}

View File

@@ -0,0 +1,74 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public 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/>.
*
**/
using System.Collections.Generic;
namespace GrasscutterTools.Game
{
public class ItemMap
{
public ItemMap(string idNamePairs)
{
var lines = idNamePairs.Split('\n');
var capacity = lines.Length;
//IdMap = new Dictionary<int, string>(capacity);
//NameMap = new Dictionary<string, int>(capacity);
var IdList = new List<int>(capacity);
var NameList = new List<string>(capacity);
var lineList = new List<string>(capacity);
foreach (var line in lines)
{
var si = line.IndexOf(':');
if (si > 0 && int.TryParse(line.Substring(0, si).Trim(), out int id))
{
var name = line.Substring(si + 1).Trim();
if (!string.IsNullOrEmpty(name))
{
//IdMap[id] = name;
//NameMap[name] = id;
IdList.Add(id);
NameList.Add(name);
lineList.Add(line);
}
}
}
Ids = IdList.ToArray();
Names = NameList.ToArray();
Lines = lineList.ToArray();
}
//Dictionary<int, string> IdMap;
//Dictionary<string, int> NameMap;
//List<int> IdList;
//List<string> NameList;
public int Count => Ids.Length;
//public string this[int id] => IdMap[id];
//public int this[string name] => NameMap[name];
public int[] Ids { get; }
public string[] Names { get; }
public string[] Lines { get; }
}
}

View File

@@ -0,0 +1,107 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public 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/>.
*
**/
using System.Text;
using GrasscutterTools.Properties;
using Newtonsoft.Json;
namespace GrasscutterTools.Game
{
internal static class SetStatsCommand
{
public class Stat
{
public Stat(string name, string argName, bool percent, string tip = "")
{
Name = name;
ArgName = argName;
Percent = percent;
Tip = tip;
}
/// <summary>
/// 属性名
/// </summary>
public string Name { get; set; }
/// <summary>
/// 参数名
/// </summary>
public string ArgName { get; set; }
/// <summary>
/// 是否百分比
/// </summary>
public bool Percent { get; set; }
/// <summary>
/// 提示
/// </summary>
public string Tip { get; set; }
}
public static Stat[] Stats { get; private set; }
public static void InitStats()
{
var json = Encoding.UTF8.GetString(Resources.AvatarStats);
Stats = JsonConvert.DeserializeObject<Stat[]>(json);
}
//static SetStatsCommand()
//{
// Stats = new List<Stat>
// {
// new Stat("最大生命值", "maxhp", false),
// new Stat("当前生命值", "hp", false),
// new Stat("当前攻击力", "atk", false),
// new Stat("基础攻击力", "atkb", false, "这似乎不会重新计算攻击力可能只对buff类有效。"),
// new Stat("防御力", "def", false),
// new Stat("元素精通", "em", false),
// new Stat("元素充能效率", "er", true),
// new Stat("暴击率", "crate", true),
// new Stat("暴击伤害", "cdmg", true),
// new Stat("伤害加成", "dmg", true, "这似乎在攻击后被重置"),
// new Stat("风元素伤害加成", "eanemo", true),
// new Stat("冰元素伤害加成", "ecryo", true),
// new Stat("草元素伤害加成", "edendro", true),
// new Stat("雷元素伤害加成", "eelectro", true),
// new Stat("土元素伤害加成", "egeo", true),
// new Stat("水元素伤害加成", "ehydro", true),
// new Stat("火元素伤害加成", "epyro", true),
// new Stat("物理伤害加成", "ephys", true),
// new Stat("伤害减免", "resall", true, "这似乎在攻击后被重置"),
// new Stat("风元素伤害减免", "resanemo", true),
// new Stat("冰元素伤害减免", "rescryo", true),
// new Stat("草元素伤害减免", "resdendro", true),
// new Stat("雷元素伤害减免", "reselectro", true),
// new Stat("土元素伤害减免", "resgeo", true),
// new Stat("水元素伤害减免", "reshydro", true),
// new Stat("火元素伤害减免", "respyro", true),
// new Stat("物理伤害减免", "resphys", true),
// new Stat("冷却缩减", "cdr", true),
// new Stat("治疗加成", "heal", true),
// new Stat("受治疗加成", "heali", true),
// new Stat("护盾强效","shield", true),
// new Stat("忽略防御", "defi", true),
// };
//}
}
}

View File

@@ -0,0 +1,84 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public 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/>.
*
**/
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Newtonsoft.Json;
namespace GrasscutterTools.Game
{
public class TextMapData
{
public TextMapData(string resourcesDirPath)
{
LoadManualTextMap(Path.Combine(resourcesDirPath, "ExcelBinOutput", "ManualTextMapConfigData.json"));
LoadTextMaps(Path.Combine(resourcesDirPath, "TextMap"));
}
public Dictionary<string, string> ManualTextMap;
public Dictionary<string, string> TextMap;
public string[] TextMapFilePaths;
public string[] TextMapFiles;
private void LoadManualTextMap(string manualTextMapPath)
{
using (var fs = File.OpenRead(manualTextMapPath))
using (var sr = new StreamReader(fs))
using (var reader = new JsonTextReader(sr))
{
ManualTextMap = new Dictionary<string, string>();
while (reader.Read())
{
if (reader.TokenType == JsonToken.PropertyName && (string)reader.Value == "TextMapId")
{
var textMapId = reader.ReadAsString();
reader.Read();
ManualTextMap.Add(reader.ReadAsString(), textMapId);
}
}
}
}
private void LoadTextMaps(string textMapDirPath)
{
TextMapFilePaths = Directory.GetFiles(textMapDirPath, "TextMap*.json");
if (TextMapFilePaths.Length == 0)
throw new FileNotFoundException("TextMap*.json Not Found");
TextMapFiles = TextMapFilePaths.Select(n => Path.GetFileNameWithoutExtension(n)).ToArray();
}
public void LoadTextMap(string textMapPath)
{
using (var fs = File.OpenRead(textMapPath))
using (var sr = new StreamReader(fs))
using (var reader = new JsonTextReader(sr))
{
TextMap = new Dictionary<string, string>();
while (reader.Read())
{
if (reader.TokenType == JsonToken.PropertyName)
{
TextMap.Add((string)reader.Value, reader.ReadAsString());
}
}
}
}
}
}

View File

@@ -0,0 +1,353 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\Resource.Embedder.2.2.0\build\Resource.Embedder.props" Condition="Exists('..\packages\Resource.Embedder.2.2.0\build\Resource.Embedder.props')" />
<Import Project="..\packages\Costura.Fody.5.7.0\build\Costura.Fody.props" Condition="Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{B26333FF-5560-4CBA-AF3C-4B80DB6F8025}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>GrasscutterTools</RootNamespace>
<AssemblyName>GrasscutterTools</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Resources\IconGrasscutter.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup>
<ApplicationManifest>Properties\app.manifest</ApplicationManifest>
</PropertyGroup>
<ItemGroup>
<Reference Include="Costura, Version=5.7.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Costura.Fody.5.7.0\lib\netstandard1.0\Costura.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Build.Framework" />
<Reference Include="Microsoft.Build.Utilities.v4.0" />
<Reference Include="Microsoft.Win32.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.AppContext, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.AppContext.4.3.0\lib\net463\System.AppContext.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Console, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Console.4.3.0\lib\net46\System.Console.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Core" />
<Reference Include="System.Diagnostics.DiagnosticSource, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
</Reference>
<Reference Include="System.Diagnostics.Tracing, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Globalization.Calendars, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.IO.Compression.ZipFile, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.FileSystem, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.FileSystem.Primitives, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Linq, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Linq.4.3.0\lib\net463\System.Linq.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Linq.Expressions, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Linq.Expressions.4.3.0\lib\net463\System.Linq.Expressions.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Sockets, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Reflection, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reflection.4.3.0\lib\net462\System.Reflection.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.Extensions, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.Extensions.4.3.0\lib\net462\System.Runtime.Extensions.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.InteropServices, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.4.3.0\lib\net463\System.Runtime.InteropServices.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Text.RegularExpressions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.RegularExpressions.4.3.0\lib\net463\System.Text.RegularExpressions.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.ReaderWriter, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="DispatchServer\DispatchServerAPI.cs" />
<Compile Include="DispatchServer\Model\ServerStatus.cs" />
<Compile Include="FormGachaBannerEditor.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FormGachaBannerEditor.Designer.cs">
<DependentUpon>FormGachaBannerEditor.cs</DependentUpon>
</Compile>
<Compile Include="FormMain.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FormMain.Designer.cs">
<DependentUpon>FormMain.cs</DependentUpon>
</Compile>
<Compile Include="FormTextMapBrowser.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FormTextMapBrowser.Designer.cs">
<DependentUpon>FormTextMapBrowser.cs</DependentUpon>
</Compile>
<Compile Include="Game\GameCommand.cs" />
<Compile Include="Game\Gacha\BannerType.cs" />
<Compile Include="Game\Gacha\GachaBanner.cs" />
<Compile Include="Game\GameData.cs" />
<Compile Include="Game\ItemMap.cs" />
<Compile Include="Game\SetStatsCommand.cs" />
<Compile Include="Game\TextMapData.cs" />
<Compile Include="OpenCommand\OpenCommandAPI.cs" />
<Compile Include="MultiLanguage.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Utils\HttpHelper.cs" />
<EmbeddedResource Include="FormGachaBannerEditor.en-us.resx">
<DependentUpon>FormGachaBannerEditor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FormGachaBannerEditor.resx">
<DependentUpon>FormGachaBannerEditor.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FormMain.en-us.resx">
<DependentUpon>FormMain.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="FormMain.resx">
<DependentUpon>FormMain.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="FormTextMapBrowser.en-US.resx">
<DependentUpon>FormTextMapBrowser.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FormTextMapBrowser.resx">
<DependentUpon>FormTextMapBrowser.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.en-us.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.en-us.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.en-us.Designer.cs">
<DependentUpon>Resources.en-us.resx</DependentUpon>
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="packages.config" />
<None Include="Properties\app.manifest" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<None Include="Resources\en-us\AvatarStats.json" />
<None Include="Resources\zh-cn\AvatarStats.json" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Content Include="FodyWeavers.xml" />
<Content Include="Resources\en-us\Animal.txt" />
<Content Include="Resources\en-us\Artifact.txt" />
<Content Include="Resources\en-us\ArtifactCat.txt" />
<Content Include="Resources\en-us\ArtifactMainAttribution.txt" />
<Content Include="Resources\en-us\ArtifactSubAttribution.txt" />
<Content Include="Resources\en-us\Avatar.txt" />
<Content Include="Resources\en-us\CustomCommands.txt" />
<Content Include="Resources\en-us\GachaBennerPrefab.txt" />
<Content Include="Resources\en-us\Item.txt" />
<Content Include="Resources\en-us\Monster.txt" />
<Content Include="Resources\en-us\NPC.txt" />
<Content Include="Resources\en-us\Ornament.txt" />
<Content Include="Resources\en-us\Quest.txt" />
<Content Include="Resources\en-us\Scene.txt" />
<Content Include="Resources\en-us\Weapon.txt" />
<Content Include="Resources\IconGrasscutter.ico" />
<Content Include="Resources\IconGrasscutter.png" />
<None Include="Resources\ImgSupport.png" />
<Content Include="Resources\ImgHome.jpg" />
<Content Include="Resources\Permissions.txt" />
<Content Include="Resources\WeaponColor.txt" />
<Content Include="Resources\zh-cn\Animal.txt" />
<Content Include="Resources\zh-cn\ArtifactCat.txt" />
<Content Include="Resources\zh-cn\ArtifactMainAttribution.txt" />
<Content Include="Resources\zh-cn\Artifact.txt" />
<Content Include="Resources\zh-cn\ArtifactSubAttribution.txt" />
<Content Include="Resources\zh-cn\Avatar.txt" />
<Content Include="Resources\zh-cn\CustomCommands.txt" />
<Content Include="Resources\AvatarColor.txt" />
<Content Include="Resources\zh-cn\GachaBennerPrefab.txt" />
<Content Include="Resources\zh-cn\Item.txt" />
<Content Include="Resources\zh-cn\Monster.txt" />
<Content Include="Resources\zh-cn\NPC.txt" />
<Content Include="Resources\zh-cn\Ornament.txt" />
<Content Include="Resources\zh-cn\Quest.txt" />
<Content Include="Resources\zh-cn\Scene.txt" />
<Content Include="Resources\zh-cn\Weapon.txt" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.8">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4.8 %28x86 和 x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.5.7.0\build\Costura.Fody.props'))" />
<Error Condition="!Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets'))" />
<Error Condition="!Exists('..\packages\Fody.6.6.1\build\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.6.6.1\build\Fody.targets'))" />
<Error Condition="!Exists('..\packages\Resource.Embedder.2.2.0\build\Resource.Embedder.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Resource.Embedder.2.2.0\build\Resource.Embedder.props'))" />
<Error Condition="!Exists('..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets'))" />
</Target>
<Import Project="..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets" Condition="Exists('..\packages\Costura.Fody.5.7.0\build\Costura.Fody.targets')" />
<Import Project="..\packages\Fody.6.6.1\build\Fody.targets" Condition="Exists('..\packages\Fody.6.6.1\build\Fody.targets')" />
<Import Project="..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets')" />
</Project>

View File

@@ -0,0 +1,99 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public 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/>.
*
**/
using System;
using System.Windows.Forms;
namespace GrasscutterTools
{
internal static class MultiLanguage
{
public static string DefaultLanguage = "zh-CN";
public static void SetDefaultLanguage(string lang)
{
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(lang);
DefaultLanguage = lang;
Properties.Settings.Default.DefaultLanguage = lang;
Properties.Settings.Default.Save();
}
/// <summary>
/// 加载语言
/// </summary>
/// <param name="form">加载语言的窗口</param>
/// <param name="formType">窗口的类型</param>
public static void LoadLanguage(Form form, Type formType)
{
if (form != null)
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(formType);
resources.ApplyResources(form, "$this");
Loading(form, resources);
}
}
/// <summary>
/// 加载语言
/// </summary>
/// <param name="control">控件</param>
/// <param name="resources">语言资源</param>
private static void Loading(Control control, System.ComponentModel.ComponentResourceManager resources)
{
if (control is MenuStrip strip)
{
//将资源与控件对应
resources.ApplyResources(control, control.Name);
if (strip.Items.Count > 0)
{
foreach (ToolStripMenuItem c in strip.Items)
{
//遍历菜单
Loading(c, resources);
}
}
}
foreach (Control c in control.Controls)
{
resources.ApplyResources(c, c.Name);
Loading(c, resources);
}
}
/// <summary>
/// 遍历菜单
/// </summary>
/// <param name="item">菜单项</param>
/// <param name="resources">语言资源</param>
private static void Loading(ToolStripMenuItem item, System.ComponentModel.ComponentResourceManager resources)
{
if (item is ToolStripMenuItem tsmi)
{
resources.ApplyResources(item, item.Name);
if (tsmi.DropDownItems.Count > 0)
{
foreach (ToolStripMenuItem c in tsmi.DropDownItems)
{
Loading(c, resources);
}
}
}
}
}
}

View File

@@ -0,0 +1,123 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public 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/>.
*
**/
using System;
using System.Threading.Tasks;
using GrasscutterTools.Utils;
using Newtonsoft.Json;
namespace GrasscutterTools.OpenCommand
{
public class OpenCommandAPI
{
public OpenCommandAPI(string host)
{
Host = host;
API = host + "/opencommand/api";
}
public string Host { get; }
private readonly string API;
public string Token { get; set; }
public bool CanInvoke { get; private set; }
public async Task<bool> Ping()
{
try
{
var response = await DoRequest("ping");
return response.RetCode == 200;
}
catch (Exception)
{
return false;
}
}
public async Task SendCode(int playerId)
{
var response = await DoRequest("sendCode", playerId);
Token = response.Data as string;
}
public async Task Verify(int code)
{
await DoRequest("verify", code);
CanInvoke = true;
}
public async Task<string> Invoke(string command)
{
var response = await DoRequest("command", command);
return response.Data as string;
}
private async Task<Response> DoRequest(string action, object data = null)
{
var response = await HttpHelper.PostAsync<Response>(API, new Request(Token, action, data));
if (response.RetCode == 401)
Token = "";
if (response.RetCode != 200)
throw new InvokeException(response.Message);
return response;
}
public class Request
{
public Request(string token, string action, object data)
{
Token = token;
Action = action;
Data = data;
}
[JsonProperty("token")]
public string Token { get; set; }
[JsonProperty("action")]
public string Action { get; set; }
[JsonProperty("data")]
public object Data { get; set; }
}
public class Response
{
[JsonProperty("retcode")]
public int RetCode { get; set; }
[JsonProperty("message")]
public string Message { get; set; }
[JsonProperty("data")]
public object Data { get; set; }
}
internal class InvokeException : Exception
{
public InvokeException(string message) : base(message)
{
}
}
}
}

View File

@@ -0,0 +1,92 @@
/**
* Grasscutter Tools
* Copyright (C) 2022 jie65535
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public 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/>.
*
**/
using System;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using GrasscutterTools.Properties;
namespace GrasscutterTools
{
internal static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
private static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//设置应用程序处理异常方式ThreadException处理
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
//处理线程异常
Application.ThreadException += Application_ThreadException;
//处理非UI线程异常
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
Application.Run(new FormMain());
}
#region - -
private static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
string str = GetExceptionMsg(e.Exception, e.ToString());
MessageBox.Show(str, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
string str = GetExceptionMsg(e.ExceptionObject as Exception, e.ToString());
MessageBox.Show(str, Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
/// <summary>
/// 生成自定义异常消息
/// </summary>
/// <param name="ex">异常对象</param>
/// <param name="backStr">备用异常消息当ex为null时有效</param>
/// <returns>异常字符串文本</returns>
private static string GetExceptionMsg(Exception ex, string backStr)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine("****************************异常文本****************************");
sb.AppendLine("【出现时间】:" + DateTime.Now.ToString());
if (ex != null)
{
sb.AppendLine("【异常类型】:" + ex.GetType().Name);
sb.AppendLine("【异常信息】:" + ex.Message);
#if DEBUG
sb.AppendLine("【堆栈调用】:" + ex.StackTrace);
#endif
}
else
{
sb.AppendLine("【未处理异常】:" + backStr);
}
sb.AppendLine("***************************************************************");
return sb.ToString();
}
#endregion - -
}
}

View File

@@ -0,0 +1,35 @@
using System.Reflection;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("GrasscutterTools")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("GrasscutterTools")]
[assembly: AssemblyCopyright("Copyright © jie65535 2022")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("b26333ff-5560-4cba-af3c-4b80db6f8025")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.2.0")]
[assembly: AssemblyFileVersion("1.0.0")]

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,241 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="Animal" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\en-us\Animal.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="Artifact" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\en-us\Artifact.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="ArtifactCat" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\en-us\ArtifactCat.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="ArtifactMainAttribution" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\en-us\ArtifactMainAttribution.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="ArtifactSubAttribution" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\en-us\ArtifactSubAttribution.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="AskConfirmDeletion" xml:space="preserve">
<value>Are you sure you want to delete this command?</value>
</data>
<data name="Avatar" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\en-us\Avatar.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="AvatarColor" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AvatarColor.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="AvatarStats" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\en-us\AvatarStats.json;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="BrowserOpenFailedTip" xml:space="preserve">
<value>The browser failed to open. You can manually access the following address:</value>
</data>
<data name="ClimateType" xml:space="preserve">
<value>None,Sunny,Partly cloudy,Rain,Thunderstorm,Snow,Fog</value>
</data>
<data name="CodeResendTip" xml:space="preserve">
<value>Resend in {0} seconds</value>
</data>
<data name="CodeSending" xml:space="preserve">
<value>sending...</value>
</data>
<data name="CommandContentCannotBeEmpty" xml:space="preserve">
<value>Command cannot be empty</value>
</data>
<data name="CommandNotFound" xml:space="preserve">
<value>Command not found</value>
</data>
<data name="CommandTagCannotBeEmpty" xml:space="preserve">
<value>Command tag cannot be empty</value>
</data>
<data name="ConnectedTip" xml:space="preserve">
<value>Now you can execute commands remotely!</value>
</data>
<data name="CustomCommands" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\en-us\CustomCommands.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="Error" xml:space="preserve">
<value>Error</value>
</data>
<data name="GachaBennerPrefab" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\en-us\GachaBennerPrefab.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="Help" xml:space="preserve">
<value>Help</value>
</data>
<data name="IconGrasscutter" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\IconGrasscutter.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ImgIconGrasscutter" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\IconGrasscutter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ImgSupport" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ImgSupport.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Item" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\en-us\Item.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="Monster" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\en-us\Monster.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="NPC" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\en-us\NPC.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="OpenCommandHelp" xml:space="preserve">
<value>1. Fill in the correct uid\n2. Send verification code to player\n3. Enter the correct verification code\n4. Connection\n5. Enjoy</value>
</data>
<data name="Ornament" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\en-us\Ornament.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="PermissionCannotBeEmpty" xml:space="preserve">
<value>Permission cannot be empty!</value>
</data>
<data name="Permissions" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Permissions.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="Quest" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\en-us\Quest.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="RequireOpenCommandTip" xml:space="preserve">
<value>Please connect to a server that supports [opencommand] first</value>
</data>
<data name="Scene" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\en-us\Scene.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="SettingLoadError" xml:space="preserve">
<value>Settings load failed:</value>
</data>
<data name="SettingSaveError" xml:space="preserve">
<value>Settings save failed:</value>
</data>
<data name="Tips" xml:space="preserve">
<value>Tips</value>
</data>
<data name="UsernameCannotBeEmpty" xml:space="preserve">
<value>Username cannot be empty!</value>
</data>
<data name="Weapon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\en-us\Weapon.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="WeaponColor" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\WeaponColor.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
</root>

View File

@@ -0,0 +1,244 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="Animal" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\Animal.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="Artifact" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\Artifact.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="ArtifactCat" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\ArtifactCat.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="ArtifactMainAttribution" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\ArtifactMainAttribution.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="ArtifactSubAttribution" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\ArtifactSubAttribution.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="AskConfirmDeletion" xml:space="preserve">
<value>确认删除?</value>
</data>
<data name="Avatar" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\Avatar.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="AvatarColor" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\AvatarColor.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="AvatarStats" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\AvatarStats.json;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="BrowserOpenFailedTip" xml:space="preserve">
<value>浏览器打开失败,你可以通过以下链接手动访问:</value>
</data>
<data name="ClimateType" xml:space="preserve">
<value>无,晴天,多云,雨天,雷暴,雪天,雾天</value>
</data>
<data name="CodeResendTip" xml:space="preserve">
<value>{0} 秒后可重发</value>
</data>
<data name="CodeSending" xml:space="preserve">
<value>发送中...</value>
</data>
<data name="CommandContentCannotBeEmpty" xml:space="preserve">
<value>命令内容不能为空</value>
</data>
<data name="CommandNotFound" xml:space="preserve">
<value>未找到该命令</value>
</data>
<data name="CommandTagCannotBeEmpty" xml:space="preserve">
<value>命令标签不能为空</value>
</data>
<data name="ConnectedTip" xml:space="preserve">
<value>现在你可以远程执行命令了哦!</value>
</data>
<data name="CustomCommands" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\CustomCommands.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="Error" xml:space="preserve">
<value>错误</value>
</data>
<data name="GachaBennerPrefab" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\GachaBennerPrefab.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="Help" xml:space="preserve">
<value>帮助</value>
</data>
<data name="IconGrasscutter" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\IconGrasscutter.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ImgHome" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ImgHome.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ImgIconGrasscutter" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\IconGrasscutter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ImgSupport" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ImgSupport.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Item" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\Item.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="Monster" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\Monster.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="NPC" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\NPC.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="OpenCommandHelp" xml:space="preserve">
<value>1. 填写正确的UID\n2. 向玩家发送验证码\n3. 输入正确的验证码\n4. 连接\n5. 享受</value>
</data>
<data name="Ornament" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\Ornament.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="PermissionCannotBeEmpty" xml:space="preserve">
<value>要设置的权限不能为空!</value>
</data>
<data name="Permissions" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Permissions.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="Quest" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\Quest.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="RequireOpenCommandTip" xml:space="preserve">
<value>请先连接到支持[OpenCommand]的服务器</value>
</data>
<data name="Scene" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\Scene.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="SettingLoadError" xml:space="preserve">
<value>加载设置时异常:</value>
</data>
<data name="SettingSaveError" xml:space="preserve">
<value>保存设置时异常:</value>
</data>
<data name="Tips" xml:space="preserve">
<value>提示</value>
</data>
<data name="UsernameCannotBeEmpty" xml:space="preserve">
<value>用户名不能为空!</value>
</data>
<data name="Weapon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\zh-cn\Weapon.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
<data name="WeaponColor" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\WeaponColor.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8</value>
</data>
</root>

View File

@@ -0,0 +1,110 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace GrasscutterTools.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool AutoCopy {
get {
return ((bool)(this["AutoCopy"]));
}
set {
this["AutoCopy"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("10001")]
public decimal Uid {
get {
return ((decimal)(this["Uid"]));
}
set {
this["Uid"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("zh-CN")]
public string DefaultLanguage {
get {
return ((string)(this["DefaultLanguage"]));
}
set {
this["DefaultLanguage"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string ResourcesDirPath {
get {
return ((string)(this["ResourcesDirPath"]));
}
set {
this["ResourcesDirPath"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("TextMapCHS")]
public string TextMapFileName {
get {
return ((string)(this["TextMapFileName"]));
}
set {
this["TextMapFileName"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("10001")]
public decimal RemoteUid {
get {
return ((decimal)(this["RemoteUid"]));
}
set {
this["RemoteUid"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("https://127.0.0.1")]
public string Host {
get {
return ((string)(this["Host"]));
}
set {
this["Host"] = value;
}
}
}
}

View File

@@ -0,0 +1,27 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="GrasscutterTools.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="AutoCopy" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="Uid" Type="System.Decimal" Scope="User">
<Value Profile="(Default)">10001</Value>
</Setting>
<Setting Name="DefaultLanguage" Type="System.String" Scope="User">
<Value Profile="(Default)">zh-CN</Value>
</Setting>
<Setting Name="ResourcesDirPath" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="TextMapFileName" Type="System.String" Scope="User">
<Value Profile="(Default)">TextMapCHS</Value>
</Setting>
<Setting Name="RemoteUid" Type="System.Decimal" Scope="User">
<Value Profile="(Default)">10001</Value>
</Setting>
<Setting Name="Host" Type="System.String" Scope="User">
<Value Profile="(Default)">https://127.0.0.1</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC 清单选项
如果想要更改 Windows 用户帐户控制级别,请使用
以下节点之一替换 requestedExecutionLevel 节点。
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
如果你的应用程序需要此虚拟化来实现向后兼容性,则移除此
元素。
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
<applicationRequestMinimum>
<defaultAssemblyRequest permissionSetReference="Custom" />
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
</applicationRequestMinimum>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的
Windows 版本的列表。取消评论适当的元素,
Windows 将自动选择最兼容的环境。 -->
<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
<!-- Windows 7 -->
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
<!-- Windows 8 -->
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
<!-- Windows 8.1 -->
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
<!-- 指示该应用程序可感知 DPI 且 Windows 在 DPI 较高时将不会对其进行
自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI无需
选择加入。选择加入此设置的 Windows 窗体应用程序(面向 .NET Framework 4.6)还应
在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。
将应用程序设为感知长路径。请参阅 https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation -->
<!--
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
</windowsSettings>
</application>
-->
<!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) -->
<!--
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
-->
</assembly>

View File

@@ -0,0 +1,50 @@
1001:purple
1002:yellow
1003:yellow
1005:yellow
1006:purple
1007:yellow
1014:purple
1015:purple
1016:yellow
1020:purple
1021:purple
1022:yellow
1023:purple
1024:purple
1025:purple
1026:yellow
1027:purple
1029:yellow
1030:yellow
1031:purple
1032:purple
1033:yellow
1034:purple
1035:yellow
1036:purple
1037:yellow
1038:yellow
1039:purple
1041:yellow
1042:yellow
1043:purple
1044:purple
1045:purple
1046:yellow
1047:yellow
1048:purple
1049:yellow
1050:purple
1051:yellow
1052:yellow
1053:purple
1054:yellow
1055:purple
1056:purple
1057:yellow
1058:yellow
1062:blue
1063:yellow
1064:purple
1066:yellow

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

View File

@@ -0,0 +1,36 @@
*
player.*
player.**
server.*
server.**
player.changescene
player.clearinv
player.enterdungeon
player.give
player.giveall
player.giveart
player.givechar
player.godmode
player.heal
player.killcharacter
player.resetconstellation
player.setfetterlevel
player.setstats
player.settalent
player.setworldlevel
player.teleport
player.tpall
player.weather
server.broadcast
server.coop
server.drop
server.kick
server.killall
server.reload
server.resetshop
server.sendmail
server.sendmessage
server.spawn
server.stop
mea.notice
mea.mail

View File

@@ -0,0 +1,144 @@
11301:blue
11302:blue
11303:blue
11304:blue
11305:blue
11306:blue
11401:purple
11402:purple
11403:purple
11404:purple
11405:purple
11406:purple
11407:purple
11408:purple
11409:purple
11410:purple
11411:purple
11412:purple
11413:purple
11414:purple
11415:purple
11501:yellow
11502:yellow
11503:yellow
11504:yellow
11505:yellow
11506:yellow
11507:yellow
11508:yellow
11509:yellow
11510:yellow
12301:blue
12302:blue
12303:blue
12304:blue
12305:blue
12306:blue
12401:purple
12402:purple
12403:purple
12404:purple
12405:purple
12406:purple
12407:purple
12408:purple
12409:purple
12410:purple
12411:purple
12412:purple
12414:purple
12416:purple
12501:yellow
12502:yellow
12503:yellow
12504:yellow
12505:yellow
12506:yellow
12508:yellow
12509:yellow
12510:yellow
13301:blue
13302:blue
13303:blue
13304:blue
13401:purple
13402:purple
13403:purple
13404:purple
13405:purple
13406:purple
13407:purple
13408:purple
13409:purple
13414:purple
13415:purple
13416:purple
13501:yellow
13502:yellow
13503:yellow
13504:yellow
13505:yellow
13506:yellow
13507:yellow
13509:yellow
14301:blue
14302:blue
14303:blue
14304:blue
14305:blue
14306:blue
14401:purple
14402:purple
14403:purple
14404:purple
14405:purple
14406:purple
14407:purple
14408:purple
14409:purple
14410:purple
14411:purple
14412:purple
14413:purple
14414:purple
14415:purple
14501:yellow
14502:yellow
14503:yellow
14504:yellow
14505:yellow
14506:yellow
14508:yellow
14509:yellow
15301:blue
15302:blue
15303:blue
15304:blue
15305:blue
15306:blue
15401:purple
15402:purple
15403:purple
15404:purple
15405:purple
15406:purple
15407:purple
15408:purple
15409:purple
15410:purple
15411:purple
15412:purple
15413:purple
15414:purple
15415:purple
15416:purple
15501:yellow
15502:yellow
15503:yellow
15504:yellow
15505:yellow
15506:yellow
15507:yellow
15508:yellow
15509:yellow

View File

@@ -0,0 +1,224 @@
28010101: Golden Crab
28010102: Sun Crab
28010103: Ocean Crab
28010104: General Crab
28010105: Pale Red Crab
28010106: Crab
28010201: Blue Horned Lizard
28010202: Red Horned Lizard
28010203: Green Horned Lizard
28010204: Sunset Loach
28010205: Golden Loach
28010206: Sunny Loach
28010207: Pith Lizard
28010301: Frog
28010302: Mud Frog
28010303: Blue Frog
28010401: Adorned Unagi
28010402: Deep Sea Unagi
28010403: Red-Finned Unagi
28020101: Snow Fox
28020102: Crimson Fox
28020103: Gifting Snow Fox
28020104: Super-Gifting Snow Fox
28020105: Snow Fox
28020106: Crimson Fox
28020201: Squirrel
28020301: Forest Boar
28020302: Forest Piglet
28020303: Snowboar
28020304: Great Snowboar King
28020305: Frozen Snowboar
28020306: Snowboar
28020307: Forest Boar
28020308: Frozen Snowboar
28020309: Great Snowboar King
28020401: Northland Hound
28020402: Forest-Patrol Hound
28020403: Shiba
28020404: Black-Back Hound
28020405: Shiba
28020406: Northland Hound
28020407: Northland Hound
28020408: Forest-Patrol Hound
28020409: Shiba
28020410: Black-Back Hound
28020501: Sapphire
28020502: Jade-Eyed Cat
28020503: Gray Snow Cat
28020504: Northland Cat
28020505: Tiger-Striped Cat
28020506: Sheriff Cat
28020507: Black Cat
28020508: Sapphire
28020509: Gray Snow Cat
28020510: Jade-Eyed Cat
28020511: Gray Snow Cat
28020512: Northland Cat
28020513: Tiger-Striped Cat
28020601: Snow Weasel
28020602: Red-Tailed Weasel
28020603: Boot Weasel
28020604: Masked Weasel
28020605: Bluethunder Weasel
28020701: Kitsune
28020702: Kitsune
28020801: Bake-Danuki
28020802: Master Yoshimoto (test)
28020803: Bake-Danuki
28020901: Samurai Dog Diversion (test)
28020902: Samurai dog boss (test)
28030101: Azure Crane
28030102: Violet Ibis
28030201: Brownwing Falcon
28030202: Umbertail Falcon
28030203: Lapis Glede
28030204: Silkwhite Falcon
28030301: White Pigeon
28030302: Brightcrown Pigeon
28030303: Graywing Pigeon
28030304: Crimsonflank Pigeon
28030305: Black King Pigeon
28030306: Crow
28030307: White Pigeon
28030308: Brightcrown Pigeon
28030309: Graywing Pigeon
28030310: Crimsonflank Pigeon
28030311: Black King Pigeon
28030401: Crimson Finch
28030402: Golden Finch
28030403: Snow Finch
28030404: Emerald Finch
28030405: Golden Finch
28030406: Crimson Finch
28030407: Golden Finch
28030408: Snow Finch
28030409: Emerald Finch
28030501: Scarletbeak Duck
28030502: Emerald Duck
28030503: Golden Duck
28030504: Scarletbeak Duck
28040101: Black-Back Bass
28040102: Blue-Fin Bass
28040103: Golden Bass
28040104: Black-Back Bass
28040105: Black-Back Bass
28040106: Blue-Fin Bass
28040107: Golden Bass
28040108: Black-Back Bass
28040201: Medaka
28040202: Glaze Medaka
28040203: Sweet-Flower Medaka
28040204: Aizen Medaka
28040205: Dawncatcher
28040206: Crystalfish
28040301: Lunged Stickleback
28040302: Betta
28040303: Venomspine Fish
28040304: Akai Maou
28040305: Snowstrider
28040401: Golden Koi
28040402: Rusty Koi
28040501: Brown Shirakodai
28040502: Purple Shirakodai
28040503: Tea-Colored Shirakodai
28040504: Abiding Angelfish
28040505: Raimei Angelfish
28040506: Moonfin
28040601: Pufferfish
28040602: Bitter Pufferfish
28040701: Divda Ray
28040702: Formalo Ray
28040703: Floating Ray
28050101: Anemo Crystalfly
28050102: Geo Crystalfly
28050103: Cryo Crystalfly
28050104: Electro Crystalfly
28050105: Coral Butterfly
28050201: Amateur Weasel Thief
28050202: Hoarder Weasel Thief
28050203: Golden Weasel Thief
28050211: Amateur Weasel Thief
28050212: Hoarder Weasel Thief
28050213: Golden Weasel Thief
28050301: Lucklight Fly
28210101: Golden Crab
28210102: Sun Crab
28210103: Ocean Crab
28210104: General Crab
28210105: Pale Red Crab
28210201: Blue Horned Lizard
28210202: Red Horned Lizard
28210203: Green Horned Lizard
28210204: Sunset Loach
28210205: Golden Loach
28210206: Sunny Loach
28210207: Marrow Lizard
28210301: Frog
28210302: Mud Frog
28210303: Blue Frog
28210401: Adorned Unagi
28210402: Deep Sea Unagi
28210403: Red-Finned Unagi
28220101: Snow Fox
28220102: Crimson Fox
28220201: Squirrel
28220301: Forest Boar
28220303: Snowboar
28220401: Northland Hound
28220402: Forest-Patrol Hound
28220403: Shiba
28220404: Black-Back Hound
28220501: Sapphire
28220502: Jade-Eyed Cat
28220503: Gray Snow Cat
28220504: Northland Cat
28220505: Tiger-Striped Cat
28220506: Sheriff Cat
28220601: Snow Weasel
28220602: Red-Tailed Weasel
28220603: Boot Weasel
28220605: Bluethunder Weasel
28220701: Kitsune
28220901: Samurai dog (test)
28230101: Azure Crane
28230102: Violet Ibis
28230301: White Pigeon
28230302: Brightcrown Pigeon
28230303: Graywing Pigeon
28230304: Crimsonflank Pigeon
28230305: Black King Pigeon
28230306: Crow
28230401: Crimson Finch
28230402: Golden Finch
28230403: Snow Finch
28230404: Emerald Finch
28240201: Medaka
28240202: Glaze Medaka
28240203: Sweet-Flower Medaka
28240204: Aizen Medaka
28240205: Dawncatcher
28240206: Crystalfish
28240301: Lunged Stickleback
28240302: Betta
28240303: Venomspine Fish
28240304: Akai Maou
28240305: Snowstrider
28240401: Golden Koi
28240402: Rusty Koi
28240501: Brown Shirakodai
28240502: Purple Shirakodai
28240503: Tea-Colored Shirakodai
28240504: Abiding Angelfish
28240505: Raimei Angelfish
28240506: Moonfin
28240601: Pufferfish
28240602: Bitter Pufferfish
28240701: Divda Ray
28240702: Formalo Ray
28250101: Anemo Crystalfly
28250102: Geo Crystalfly
28250103: Cryo Crystalfly
28250104: Electro Crystalfly
28250105: Coral Butterfly
28250301: Lucklight Fly

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,42 @@
51: 行者之心
52: 勇士之心
53: 守护之心
54: 奇迹
55: 战狂
56: 武人
57: 教官
58: 赌徒
59: 流放者
60: 冒险家
61: 幸运儿
62: 学士
63: 游医
71: 冰风迷途的勇士
72: 平息鸣雷的尊者
73: 渡过烈火的贤人
74: 被怜爱的少女
75: 角斗士的终幕礼
76: 翠绿之影
77: 流浪大地的乐团
78: 冰之川与雪之砂
79: 如雷的盛怒
80: 炽烈的炎之魔女
81: 昔日宗室之仪
82: 染血的骑士道
83: 祭火之人
84: 祭水之人
85: 祭雷之人
86: 祭风之人
87: 祭冰之人
88: 悠古的磐岩
89: 逆飞的流星
90: 沉沦之心
91: 千岩牢固
92: 苍白之火
93: 追忆之注连
94: 绝缘之旗印
95: 华馆梦醒形骸记
96: 海染砗磲
97: 辰砂往生录
98: 来歆余响
99: 高天的风之主

View File

@@ -0,0 +1,66 @@
10001: 生命值
10002: 生命值百分比
10003: 攻击力
10004: 攻击力百分比
10005: 防御力
10006: 防御力百分比
10007: 元素充能效率
10008: 元素精通
10009: 火元素抗性
10010: 雷元素抗性
10011: 冰元素抗性
10012: 水元素抗性
10013: 风元素抗性
10014: 岩元素抗性
10015: 草元素抗性
12001: 攻击力
13001: 生命值
13002: 生命值百分比
13003: 攻击力
13004: 攻击力百分比
13005: 防御力
13006: 防御力百分比
13007: 暴击率
13008: 暴击伤害
13009: 治疗加成
13010: 元素精通
14001: 生命值
15001: 生命值
15002: 生命值百分比
15003: 攻击力
15004: 攻击力百分比
15005: 防御力
15006: 防御力百分比
15007: 元素精通
15008: 火元素伤害加成
15009: 雷元素伤害加成
15010: 冰元素伤害加成
15011: 水元素伤害加成
15012: 风元素伤害加成
15013: 岩元素伤害加成
15014: 草元素伤害加成
15015: 物理伤害加成
10990: 攻击力百分比
10980: 生命值百分比
10970: 防御力百分比
10960: 元素充能效率
10950: 元素精通
30990: 攻击力百分比
30980: 生命值百分比
30970: 防御力百分比
30960: 暴击率
30950: 暴击伤害
30940: 治疗加成
30930: 元素精通
50990: 攻击力百分比
50980: 生命值百分比
50970: 防御力百分比
50960: 火元素伤害加成
50950: 雷元素伤害加成
50940: 冰元素伤害加成
50930: 水元素伤害加成
50920: 风元素伤害加成
50910: 岩元素伤害加成
50900: 草元素伤害加成
50890: 物理伤害加成
50880: 元素精通

View File

@@ -0,0 +1,335 @@
101021: 生命值+24
101022: 生命值+30
201021: 生命值+50
201022: 生命值+61
201023: 生命值+72
301021: 生命值+100
301022: 生命值+115
301023: 生命值+129
301024: 生命值+143
401021: 生命值+167
401022: 生命值+191
401023: 生命值+215
401024: 生命值+239
501021: 生命值+209
501022: 生命值+239
501023: 生命值+269
501024: 生命值+299
101031: 生命值百分比+1.2%
101032: 生命值百分比+1.5%
201031: 生命值百分比+1.6%
201032: 生命值百分比+2.0%
201033: 生命值百分比+2.3%
301031: 生命值百分比+2.4%
301032: 生命值百分比+2.8%
301033: 生命值百分比+3.2%
301034: 生命值百分比+3.5%
401031: 生命值百分比+3.3%
401032: 生命值百分比+3.7%
401033: 生命值百分比+4.2%
401034: 生命值百分比+4.7%
501031: 生命值百分比+4.1%
501032: 生命值百分比+4.7%
501033: 生命值百分比+5.2%
501034: 生命值百分比+5.8%
101051: 攻击力+2
101052: 攻击力+2
201051: 攻击力+3
201052: 攻击力+4
201053: 攻击力+5
301051: 攻击力+7
301052: 攻击力+7
301053: 攻击力+8
301054: 攻击力+9
401051: 攻击力+11
401052: 攻击力+12
401053: 攻击力+14
401054: 攻击力+16
501051: 攻击力+14
501052: 攻击力+16
501053: 攻击力+18
501054: 攻击力+19
101061: 攻击力百分比+1.2%
101062: 攻击力百分比+1.5%
201061: 攻击力百分比+1.6%
201062: 攻击力百分比+2.0%
201063: 攻击力百分比+2.3%
301061: 攻击力百分比+2.4%
301062: 攻击力百分比+2.8%
301063: 攻击力百分比+3.2%
301064: 攻击力百分比+3.5%
401061: 攻击力百分比+3.3%
401062: 攻击力百分比+3.7%
401063: 攻击力百分比+4.2%
401064: 攻击力百分比+4.7%
501061: 攻击力百分比+4.1%
501062: 攻击力百分比+4.7%
501063: 攻击力百分比+5.2%
501064: 攻击力百分比+5.8%
101081: 防御力+2
101082: 防御力+2
201081: 防御力+4
201082: 防御力+5
201083: 防御力+6
301081: 防御力+8
301082: 防御力+9
301083: 防御力+10
301084: 防御力+11
401081: 防御力+13
401082: 防御力+15
401083: 防御力+17
401084: 防御力+19
501081: 防御力+16
501082: 防御力+19
501083: 防御力+21
501084: 防御力+23
101091: 防御力百分比+1.5%
101092: 防御力百分比+1.8%
201091: 防御力百分比+2.0%
201092: 防御力百分比+2.5%
201093: 防御力百分比+2.9%
301091: 防御力百分比+3.1%
301092: 防御力百分比+3.5%
301093: 防御力百分比+3.9%
301094: 防御力百分比+4.4%
401091: 防御力百分比+4.1%
401092: 防御力百分比+4.7%
401093: 防御力百分比+5.2%
401094: 防御力百分比+5.8%
501091: 防御力百分比+5.1%
501092: 防御力百分比+5.8%
501093: 防御力百分比+6.6%
501094: 防御力百分比+7.3%
101231: 元素充能效率+1.3%
101232: 元素充能效率+1.6%
201231: 元素充能效率+1.8%
201232: 元素充能效率+2.2%
201233: 元素充能效率+2.6%
301231: 元素充能效率+2.7%
301232: 元素充能效率+3.1%
301233: 元素充能效率+3.5%
301234: 元素充能效率+3.9%
401231: 元素充能效率+3.6%
401232: 元素充能效率+4.1%
401233: 元素充能效率+4.7%
401234: 元素充能效率+5.2%
501231: 元素充能效率+4.5%
501232: 元素充能效率+5.2%
501233: 元素充能效率+5.8%
501234: 元素充能效率+6.5%
101241: 元素精通+5
101242: 元素精通+6
201241: 元素精通+7
201242: 元素精通+8
201243: 元素精通+9
301241: 元素精通+10
301242: 元素精通+11
301243: 元素精通+13
301244: 元素精通+14
401241: 元素精通+13
401242: 元素精通+15
401243: 元素精通+17
401244: 元素精通+19
501241: 元素精通+16
501242: 元素精通+19
501243: 元素精通+21
501244: 元素精通+23
101201: 暴击率+0.8%
101202: 暴击率+1.0%
201201: 暴击率+1.1%
201202: 暴击率+1.3%
201203: 暴击率+1.5%
301201: 暴击率+1.6%
301202: 暴击率+1.9%
301203: 暴击率+2.1%
301204: 暴击率+2.3%
401201: 暴击率+2.2%
401202: 暴击率+2.5%
401203: 暴击率+2.8%
401204: 暴击率+3.1%
501201: 暴击率+2.7%
501202: 暴击率+3.1%
501203: 暴击率+3.5%
501204: 暴击率+3.9%
101221: 暴击伤害+1.5%
101222: 暴击伤害+1.9%
201221: 暴击伤害+2.2%
201222: 暴击伤害+2.6%
201223: 暴击伤害+3.1%
301221: 暴击伤害+3.3%
301222: 暴击伤害+3.7%
301223: 暴击伤害+4.2%
301224: 暴击伤害+4.7%
401221: 暴击伤害+4.3%
401222: 暴击伤害+5.0%
401223: 暴击伤害+5.6%
401224: 暴击伤害+6.2%
501221: 暴击伤害+5.4%
501222: 暴击伤害+6.2%
501223: 暴击伤害+7.0%
501224: 暴击伤害+7.8%
999001: 暴击伤害+350.0%
999002: 暴击率+100.0%
999003: 攻击力+233333
999004: 防御力+233333
998001: 生命值百分比+14.6%
998002: 攻击力百分比+14.6%
998003: 防御力百分比+18.2%
998004: 暴击率+9.7%
998005: 元素充能效率+16.2%
998006: 元素精通+58
998007: 暴击伤害+19.4%
995001: 生命值百分比+14.6%
995002: 攻击力百分比+14.6%
995003: 防御力百分比+18.2%
995004: 暴击率+9.7%
995005: 元素充能效率+16.2%
995006: 元素精通+58
995007: 暴击伤害+19.4%
997001: 生命值百分比+9.3%
997002: 攻击力百分比+9.3%
997003: 防御力百分比+11.7%
997004: 暴击率+6.2%
997005: 元素充能效率+10.4%
997006: 元素精通+37
997007: 暴击伤害+12.4%
996001: 生命值百分比+9.3%
996002: 攻击力百分比+9.3%
996003: 防御力百分比+11.7%
996004: 暴击率+6.2%
996005: 元素充能效率+10.4%
996006: 元素精通+37
996007: 暴击伤害+12.4%
994001: 暴击率+80.0%
993001: 暴击伤害+80.0%
992001: 护盾强效+80.0%
991001: 治疗加成+80.0%
990001: 受治疗加成+80.0%
989001: 冷却缩减+50.0%
988001: 移动速度百分比+30.0%
987001: 火元素伤害加成+80.0%
986001: 雷元素伤害加成+80.0%
985001: 水元素伤害加成+80.0%
984001: 草元素伤害加成+80.0%
983001: 风元素伤害加成+80.0%
982001: 岩元素伤害加成+80.0%
981001: 冰元素伤害加成+80.0%
980001: 物理伤害加成+80.0%
979001: 火元素抗性+80.0%
978001: 雷元素抗性+80.0%
977001: 水元素抗性+80.0%
976001: 草元素抗性+80.0%
975001: 风元素抗性+80.0%
974001: 岩元素抗性+80.0%
973001: 冰元素抗性+80.0%
972001: 物理抗性+80.0%
971001: 伤害增加+80.0%
970001: 受伤减免+80.0%
969001: 防御力+-500
968001: 元素精通+-300
951001: 生命值百分比+14.6%
951002: 攻击力百分比+14.6%
951003: 防御力百分比+18.2%
951004: 暴击率+9.7%
951005: 元素充能效率+16.2%
951006: 元素精通+58
951007: 暴击伤害+19.4%
952001: 生命值百分比+14.6%
952002: 攻击力百分比+14.6%
952003: 防御力百分比+18.2%
952004: 暴击率+9.7%
952005: 元素充能效率+16.2%
952006: 元素精通+58
952007: 暴击伤害+19.4%
953001: 生命值百分比+14.6%
953002: 攻击力百分比+14.6%
953003: 防御力百分比+18.2%
953004: 暴击率+9.7%
953005: 元素充能效率+16.2%
953006: 元素精通+58
953007: 暴击伤害+19.4%
956001: 生命值百分比+14.6%
956002: 攻击力百分比+14.6%
956003: 防御力百分比+18.2%
956004: 暴击率+9.7%
956005: 元素充能效率+16.2%
956006: 元素精通+58
956007: 暴击伤害+19.4%
941001: 生命值百分比+9.3%
941002: 攻击力百分比+9.3%
941003: 防御力百分比+11.7%
941004: 暴击率+6.2%
941005: 元素充能效率+10.4%
941006: 元素精通+37
941007: 暴击伤害+12.4%
942001: 生命值百分比+9.3%
942002: 攻击力百分比+9.3%
942003: 防御力百分比+11.7%
942004: 暴击率+6.2%
942005: 元素充能效率+10.4%
942006: 元素精通+37
942007: 暴击伤害+12.4%
943001: 生命值百分比+9.3%
943002: 攻击力百分比+9.3%
943003: 防御力百分比+11.7%
943004: 暴击率+6.2%
943005: 元素充能效率+10.4%
943006: 元素精通+37
943007: 暴击伤害+12.4%
946001: 生命值百分比+9.3%
946002: 攻击力百分比+9.3%
946003: 防御力百分比+11.7%
946004: 暴击率+6.2%
946005: 元素充能效率+10.4%
946006: 元素精通+37
946007: 暴击伤害+12.4%
961001: 生命值百分比+14.6%
961002: 攻击力百分比+14.6%
961003: 防御力百分比+18.2%
961004: 暴击率+9.7%
961005: 元素充能效率+16.2%
961006: 元素精通+58
961007: 暴击伤害+19.4%
961008: 生命值+747
961009: 攻击力+49
961010: 防御力+58
962001: 生命值百分比+14.6%
962002: 攻击力百分比+14.6%
962003: 防御力百分比+18.2%
962004: 暴击率+9.7%
962005: 元素充能效率+16.2%
962006: 元素精通+58
962007: 暴击伤害+19.4%
962008: 生命值+747
962009: 攻击力+49
962010: 防御力+58
963001: 生命值百分比+14.6%
963002: 攻击力百分比+14.6%
963003: 防御力百分比+18.2%
963004: 暴击率+9.7%
963005: 元素充能效率+16.2%
963006: 元素精通+58
963007: 暴击伤害+19.4%
963008: 生命值+747
963009: 攻击力+49
963010: 防御力+58
964001: 生命值百分比+14.6%
964002: 攻击力百分比+14.6%
964003: 防御力百分比+18.2%
964004: 暴击率+9.7%
964005: 元素充能效率+16.2%
964006: 元素精通+58
964007: 暴击伤害+19.4%
964008: 生命值+747
964009: 攻击力+49
964010: 防御力+58
965001: 生命值百分比+14.6%
965002: 攻击力百分比+14.6%
965003: 防御力百分比+18.2%
965004: 暴击率+9.7%
965005: 元素充能效率+16.2%
965006: 元素精通+58
965007: 暴击伤害+19.4%
965008: 生命值+747
965009: 攻击力+49
965010: 防御力+58

View File

@@ -0,0 +1,78 @@
10000001: Kate
10000002: Kamisato Ayaka
10000003: Jean
10000005: Traveler
10000006: Lisa
10000007: Traveler
10000014: Barbara
10000015: Kaeya
10000016: Diluc
10000020: Razor
10000021: Amber
10000022: Venti
10000023: Xiangling
10000024: Beidou
10000025: Xingqiu
10000026: Xiao
10000027: Ningguang
10000029: Klee
10000030: Zhongli
10000031: Fischl
10000032: Bennett
10000033: Tartaglia
10000034: Noelle
10000035: Qiqi
10000036: Chongyun
10000037: Ganyu
10000038: Albedo
10000039: Diona
10000041: Mona
10000042: Keqing
10000043: Sucrose
10000044: Xinyan
10000045: Rosaria
10000046: Hu Tao
10000047: Kaedehara Kazuha
10000048: Yanfei
10000049: Yoimiya
10000050: Thoma
10000051: Eula
10000052: Raiden Shogun
10000053: Sayu
10000054: Sangonomiya Kokomi
10000055: Gorou
10000056: Kujou Sara
10000057: Arataki Itto
10000058: Yae Miko
10000062: Aloy
10000063: Shenhe
10000064: Yun Jin
10000066: Kamisato Ayato
11000008: Party Test #4
11000009: Background Test
11000010: Naked Model #1
11000011: Naked Man
11000013: Co-Op Test
11000017: Adult Male Body Test
11000018: Adult Female Body Test
11000019: Girl Body Test
11000025: Akuliya
11000026: Yaoyao
11000027: Girl Body Test - #2 Machine
11000028: Shiro Maiden
11000030: Greatsword Maiden
11000031: Late Weapon Test A
11000032: Late Weapon Test B
11000033: Late Weapon Test C
11000034: Late Weapon Test D
11000035: Lance Warrioress
11000036: Swordswoman Test
11000037: Rx White-Box
11000038: Boy Body Test
11000039: Adult Male Body Test
11000040: Female Lead New Normal Attack
11000041: Male Lead New Normal Attack
11000042: Chongyun (Test)
11000043: Test Character
11000044: Qiqi (Test)
11000045: Diona (Test)

View File

@@ -0,0 +1,194 @@
[
{
"Name": "MAX HP",
"ArgName": "maxhp",
"Percent": false,
"Tip": ""
},
{
"Name": "CUR HP",
"ArgName": "hp",
"Percent": false,
"Tip": ""
},
{
"Name": "CUR Attack",
"ArgName": "atk",
"Percent": false,
"Tip": ""
},
{
"Name": "Base Attack",
"ArgName": "atkb",
"Percent": false,
"Tip": "This doesn't seem to get used to recalculate ATK, so it's only useful for stuff like Bennett's buff."
},
{
"Name": "DEFENSE",
"ArgName": "def",
"Percent": false,
"Tip": ""
},
{
"Name": "ELEMENT MASTERY",
"ArgName": "em",
"Percent": false,
"Tip": ""
},
{
"Name": "CHARGE EFFICIENCY",
"ArgName": "er",
"Percent": true,
"Tip": ""
},
{
"Name": "CRITICAL",
"ArgName": "crate",
"Percent": true,
"Tip": ""
},
{
"Name": "CRITICAL HURT",
"ArgName": "cdmg",
"Percent": true,
"Tip": ""
},
{
"Name": "ADD HURT",
"ArgName": "dmg",
"Percent": true,
"Tip": "This seems to get reset after attacks"
},
{
"Name": "WIND ADD HURT",
"ArgName": "eanemo",
"Percent": true,
"Tip": ""
},
{
"Name": "ICE ADD HURT",
"ArgName": "ecryo",
"Percent": true,
"Tip": ""
},
{
"Name": "GRASS ADD HURT",
"ArgName": "edendro",
"Percent": true,
"Tip": ""
},
{
"Name": "ELEC ADD HURT",
"ArgName": "eelectro",
"Percent": true,
"Tip": ""
},
{
"Name": "ROCK ADD HURT",
"ArgName": "egeo",
"Percent": true,
"Tip": ""
},
{
"Name": "WATER ADD HURT",
"ArgName": "ehydro",
"Percent": true,
"Tip": ""
},
{
"Name": "FIRE ADD HURT",
"ArgName": "epyro",
"Percent": true,
"Tip": ""
},
{
"Name": "PHYSICAL ADD HURT",
"ArgName": "ephys",
"Percent": true,
"Tip": ""
},
{
"Name": "SUB HURT",
"ArgName": "resall",
"Percent": true,
"Tip": "This seems to get reset after attacks"
},
{
"Name": "WIND SUB HURT",
"ArgName": "resanemo",
"Percent": true,
"Tip": ""
},
{
"Name": "ICE SUB HURT",
"ArgName": "rescryo",
"Percent": true,
"Tip": ""
},
{
"Name": "GRASS SUB HURT",
"ArgName": "resdendro",
"Percent": true,
"Tip": ""
},
{
"Name": "ELEC SUB HURT",
"ArgName": "reselectro",
"Percent": true,
"Tip": ""
},
{
"Name": "ROCK SUB HURT",
"ArgName": "resgeo",
"Percent": true,
"Tip": ""
},
{
"Name": "WATER SUB HURT",
"ArgName": "reshydro",
"Percent": true,
"Tip": ""
},
{
"Name": "FIRE SUB HURT",
"ArgName": "respyro",
"Percent": true,
"Tip": ""
},
{
"Name": "PHYSICAL SUB HURT",
"ArgName": "resphys",
"Percent": true,
"Tip": ""
},
{
"Name": "SKILL CD MINUS RATIO",
"ArgName": "cdr",
"Percent": true,
"Tip": ""
},
{
"Name": "HEAL ADD",
"ArgName": "heal",
"Percent": true,
"Tip": ""
},
{
"Name": "HEALED ADD",
"ArgName": "heali",
"Percent": true,
"Tip": ""
},
{
"Name": "SHIELD COST MINUS RATIO",
"ArgName": "shield",
"Percent": true,
"Tip": ""
},
{
"Name": "DEFENCE IGNORE RATIO",
"ArgName": "defi",
"Percent": true,
"Tip": ""
}
]

View File

@@ -0,0 +1,54 @@
God Mode
/godmode
Level up to 60
/give 102 1880200
Heal
/heal
Give me ALL!
/giveall
Where am I?
/position
Set World Level
/setworldlevel 8
Set Fetter Level
/setfetterlevel 1
Clear Backpack(ALL)
/clear all
Clear Weapons
/clear wp
Clear Artifacts
/clear art
Clear Materials
/clear mat
Broadcast
/broadcast Hello everyone~
Reset Current Constellation(Need Re-login)
/resetconst
Reset ALL Constellation(Need Re-login)
/resetconst all
100k Intertwined Fates
/give 223 10000
100k Acquaint Fate
/give 224 10000
100k Primogem
/give 201 100000
100k Mora
/give 202 100000
TP Everyone
/tpall
Restart Server
/restart
Send PM
/say <player> <message>
Pull in team
/coop @targetId
Suicide
/killcharacter
Kill Somebody
/killcharacter <playerId>
List ALL users
/list uid
Reload service config
/reload
KillAll
/killall

View File

@@ -0,0 +1,35 @@
007: Beginners' wish
008: Wanderlust Invocation
009: Ballad in Goblets
010: Dawn Pilgrimage
011: Grace of Southwind
012: Bane of All Evil
013: Epitome Invocation
015: Sparkling Steps
016: Beginners' wish
017: Wanderlust Invocation
018: Sparkling Steps
019: Ballad in Goblets
020: Epitome Invocation
021: Epitome Invocation
022: Wanderlust Invocation
023: Farewell of Snezhnaya
024: Gentry of Hermitage
027: Secretum Secretorum
028: Adrift in the Harbor
031: Invitation to Mundane Life
032: Dance of Lanterns
033: Moment of Bloom
036: Ballad in Goblets
037: Farewell of Snezhnaya
040: Gentry of Hermitage
041: Born of Ocean Swell
045: Leaves in the Wind
048: The Heron's Court
049: Tapestry of Golden Flames
052: Reign of Serenity
053: Drifting Luminescence
061: Oni's Royale
065: The Transcendent One Returns
071: Everbloom Violet
076: Azure Excursion

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,330 @@
21010101: Hilichurl
21020101: Wooden Shieldwall Mitachurl
21020201: Blazing Axe Mitachurl
21020202: Blazing Axe Mitachurl
21020301: Rock Shieldwall Mitachurl
21020401: Frostarm Lawachurl
21020501: Stonehide Lawachurl
21020601: Ice Shieldwall Mitachurl
21020701: Crackling Axe Mitachurl
21020703: Crackling Axe Mitachurl
21020801: Thunderhelm Lawachurl
20010101: Dendro Slime
20010201: Large Dendro Slime
20010202: Large Dendro Slime
20010301: Anemo Slime
20010401: Large Anemo Slime
20010403: Large Anemo Slime
29010101: Stormterror
29010102: Stormterror
29010103: Stormterror
29010104: Stormterror
29020101: Lupus Boreas, Dominator of Wolves
29020102: Lupus Boreas, Dominator of Wolves
29030103: Childe
29030106: Childe
29040101: Azhdaha
29040102: Azhdaha
29040103: Azhdaha
29040104: Azhdaha
29040111: Azhdaha
29050102: La Signora
29050104: La Signora
29060202: Magatsu Mitake Narukami no Mikoto
29060203: Magatsu Mitake Narukami no Mikoto
20020101: Eye of the Storm
20040101: Electro Hypostasis
20040102: Electro Hypostasis
20040201: Anemo Hypostasis
20040202: Anemo Hypostasis
20040301: Geo Hypostasis
20040302: Geo Hypostasis
20040401: Hydro Hypostasis
20040501: Cryo Hypostasis
20040601: Pyro Hypostasis
20010501: Electro Slime
20010601: Large Electro Slime
20010604: Large Electro Slime
20010701: Mutant Electro Slime
20010702: Mutant Electro Slime
20010801: Cryo Slime
20010802: Cryo Slime
20010901: Large Cryo Slime
20010902: Large Cryo Slime
20010904: Large Cryo Slime
20011001: Hydro Slime
20011101: Large Hydro Slime
20011103: Large Hydro Slime
20011601: Hydro Hypostasis Summon
20011701: Hydro Hypostasis Summon
20011801: Hydro Hypostasis Summon
20011901: Hydro Hypostasis Summon
20050101: Oceanid
20050102: Oceanid
20050201: Hydro Mimic Boar
20050202: Hydro Mimic Boar
20050203: Hydro Mimic Boar
20050301: Hydro Mimic Crane
20050302: Hydro Mimic Crane
20050401: Hydro Mimic Crab
20050402: Hydro Mimic Crab
20050403: Hydro Mimic Crab
20050501: Hydro Mimic Finch
20050502: Hydro Mimic Finch
20050601: Hydro Mimic Mallard
20050602: Hydro Mimic Mallard
20050603: Hydro Mimic Mallard
20050701: Hydro Mimic Ferret
20050702: Hydro Mimic Ferret
20050703: Hydro Mimic Ferret
20050801: Hydro Mimic Frog
20050802: Hydro Mimic Frog
20050901: Hydro Mimic Raptor
20070101: Thunder Manifestation
21010201: Hilichurl Fighter
21010301: Wooden Shield Hilichurl Guard
21010401: Hilichurl Shooter
21010402: Hilichurl Shooter
21010501: Pyro Hilichurl Shooter
21010502: Pyro Hilichurl Shooter
21010601: Hilichurl Grenadier
21010603: Hilichurl Grenadier
21010701: Hilichurl Berserker
21010901: Cryo Hilichurl Shooter
21010902: Cryo Hilichurl Shooter
21011001: Electro Hilichurl Shooter
21011002: Electro Hilichurl Shooter
21011201: Rock Shield Hilichurl Guard
21011301: Cryo Hilichurl Grenadier
21011302: Cryo Hilichurl Grenadier
21011401: Ice Shield Hilichurl Guard
21011403: Ice Shield Hilichurl Guard
21011501: Unusual Hilichurl
21011601: Electro Hilichurl Grenadier
21011602: Electro Hilichurl Grenadier
20011201: Pyro Slime
20011202: Pyro Slime
20011301: Large Pyro Slime
20011304: Large Pyro Slime
20011401: Geo Slime
20011501: Large Geo Slime
20011502: Large Geo Slime
22010101: Pyro Abyss Mage
22010102: Pyro Abyss Mage
22010103: Pyro Abyss Mage
22010104: Pyro Abyss Mage
22010201: Cryo Abyss Mage
22010202: Cryo Abyss Mage
22010203: Cryo Abyss Mage
22010204: Cryo Abyss Mage
22010301: Hydro Abyss Mage
22010302: Hydro Abyss Mage
22010303: Hydro Abyss Mage
22010304: Hydro Abyss Mage
22010401: Electro Abyss Mage
22010403: Electro Abyss Mage
22010404: Electro Abyss Mage
22020101: Abyss Herald: Wicked Torrents
22020102: Abyss Herald: Wicked Torrents
22030101: Abyss Lector: Violet Lightning
22030102: Abyss Lector: Violet Lightning
22030201: Abyss Lector: Fathomless Flames
22030202: Abyss Lector: Fathomless Flames
22040101: Rockfond Rifthound Whelp
22040201: Thundercraven Rifthound Whelp
22050101: Rockfond Rifthound
22050201: Thundercraven Rifthound
22060101: Golden Wolflord
22070101: Shadowy Husk: Standard Bearer
22070102: Shadowy Husk: Standard Bearer
22070201: Shadowy Husk: Line Breaker
22070202: Shadowy Husk: Line Breaker
22070301: Shadowy Husk: Defender
22070302: Shadowy Husk: Defender
22080101: Black Serpent Knight: Windcutter
21030101: Hydro Samachurl
21030103: Hydro Samachurl
21030201: Dendro Samachurl
21030203: Dendro Samachurl
21030301: Anemo Samachurl
21030303: Anemo Samachurl
21030304: Anemo Samachurl
21030401: Geo Samachurl
21030402: Geo Samachurl
21030501: Cryo Samachurl
21030601: Electro Samachurl
21030603: Electro Samachurl
24010101: Ruin Guard
24010108: Ruin Guard
24010109: Ruin Guard
24010201: Ruin Hunter
24010301: Ruin Grader
24010303: Ruin Grader
24010401: Ruin Serpent
24020101: Ruin Cruiser
24020102: Ruin Cruiser
24020103: Ruin Cruiser
24020201: Ruin Destroyer
24020202: Ruin Destroyer
24020203: Ruin Destroyer
24020301: Ruin Defender
24020302: Ruin Defender
24020303: Ruin Defender
24020401: Ruin Scout
24020402: Ruin Scout
24020403: Ruin Scout
24021101: Perpetual Mechanical Array
24021102: Perpetual Mechanical Array
23010101: Fatui Skirmisher - Cryogunner Legionnaire
23010201: Fatui Skirmisher - Hydrogunner Legionnaire
23010301: Fatui Skirmisher - Electrohammer Vanguard
23010401: Fatui Skirmisher - Geochanter Bracer
23010501: Fatui Skirmisher - Anemoboxer Vanguard
23010601: Fatui Skirmisher - Pyroslinger Bracer
23020101: Fatui Pyro Agent
23020102: Fatui Pyro Agent
23030101: Fatui Electro Cicin Mage
23030102: Fatui Electro Cicin Mage
23040101: Fatui Cryo Cicin Mage
23040102: Fatui Cryo Cicin Mage
23050101: Mirror Maiden
25010101: Treasure Hoarders - Liuliu
25010102: Treasure Hoarders - Liuliu
25010103: Treasure Hoarders - Liuliu
25010104: Treasure Hoarders - Liuliu
25010105: Treasure Hoarders - Liuliu
25010106: Treasure Hoarders - Liuliu
25010201: Treasure Hoarders - Scout
25010203: Treasure Hoarders - Scout
25010204: Treasure Hoarders - Scout
25010205: Treasure Hoarders - Scout
25010206: Treasure Hoarders - Scout
25010207: Treasure Hoarders - Scout
25010208: Treasure Hoarders - Scout
25010301: Treasure Hoarders: Pyro Potioneer
25010302: Treasure Hoarders: Pyro Potioneer
25010401: Treasure Hoarders: Hydro Potioneer
25010501: Treasure Hoarders: Electro Potioneer
25010601: Treasure Hoarders: Cryo Potioneer
25010701: Treasure Hoarders: Handyman
25020101: Treasure Hoarders - Raptor
25020102: Treasure Hoarders - Raptor
25020201: Treasure Hoarders - Marksman
25020204: Treasure Hoarders - Marksman
25030101: Treasure Hoarders - Carmen
25030102: Treasure Hoarders - Carmen
25030103: Treasure Hoarders - Carmen
25030201: Treasure Hoarders: Gravedigger
25030301: Treasure Hoarders - Seaman
25040101: Treasure Hoarders - Boss
25040102: Treasure Hoarders - Boss
25040103: Treasure Hoarders - Boss
25050101: Millelith Soldier
25050201: Millelith Sergeant
25050301: Shogunate Infantry
25050401: Shogunate Infantry Captain
25050402: Shogunate Infantry Captain
25050501: Sangonomiya Cohort
25050502: Sangonomiya Cohort
25060101: Treasure Hoarders - Pugilist
25060102: Treasure Hoarders - Pugilist
25070101: Treasure Hoarders - Crusher
25070201: Treasure Hoarder: Wallenstein
25070202: Treasure Hoarder: Wallenstein
25080101: Nobushi: Jintouban
25080201: Nobushi: Hitsukeban
25080202: Nobushi: Hitsukeban
25080301: Nobushi: Kikouban
25080401: Yoriki Samurai
25080402: Yoriki Samurai
25090101: Maguu Kenki
25090102: Maguu Kenki
25090103: Maguu Kenki
25090104: Maguu Kenki
25090201: Maguu Kenki: Lone Gale
25090301: Maguu Kenki: Galloping Frost
25090401: Maguu Kenki: Mask of Terror
25100101: Kairagi: Dancing Thunder
25100301: Ochimusha: Ensorcelled Thunder
25100201: Kairagi: Fiery Might
25100401: Ochimusha: Cankered Flame
25100102: Kairagi: Dancing Thunder
25100302: Ochimusha: Ensorcelled Thunder
26010101: Cryo Whopperflower
26010102: Cryo Whopperflower
26010103: Cryo Whopperflower
26010104: Cryo Whopperflower
26010201: Pyro Whopperflower
26010301: Electro Whopperflower
26020101: Cryo Regisvine
26020102: Cryo Regisvine
26020201: Pyro Regisvine
26030101: Geovishap Hatchling
26040101: Geovishap
26040102: Geovishap
26040103: Geovishap
26040104: Geovishap
26050101: Primo Geovishap
26050201: Primo Geovishap
26050301: Primo Geovishap
26050401: Primo Geovishap
26050501: Primo Geovishap
26050601: Primordial Bathysmal Vishap
26050901: Primordial Bathysmal Vishap
26050701: Rimebiter Bathysmal Vishap
26051001: Rimebiter Bathysmal Vishap
26050702: Rimebiter Bathysmal Vishap
26050801: Bolteater Bathysmal Vishap
26051101: Bolteater Bathysmal Vishap
26050802: Bolteater Bathysmal Vishap
26060101: Electro Cicin
26060201: Hydro Cicin
26060301: Cryo Cicin
26080101: Beisht
26090101: Floating Hydro Fungus
20060101: Hydro Specter
20060201: Geo Specter
20060301: Anemo Specter
20060401: Cryo Specter
20060501: Electro Specter
20060601: Pyro Specter
21010102: Hilichurl
21020102: Wooden Shieldwall Mitachurl
21020203: Blazing Axe Mitachurl
21020702: Crackling Axe Mitachurl
21020302: Rock Shieldwall Mitachurl
21020402: Frostarm Lawachurl
21020502: Stonehide Lawachurl
21020802: Thunderhelm Lawachurl
21020602: Ice Shieldwall Mitachurl
20010302: Anemo Slime
20010402: Large Anemo Slime
20010502: Electro Slime
20010602: Large Electro Slime
20010703: Mutant Electro Slime
20010803: Cryo Slime
20010903: Large Cryo Slime
20011002: Hydro Slime
20011102: Large Hydro Slime
21010302: Wooden Shield Hilichurl Guard
21010702: Hilichurl Berserker
21011202: Rock Shield Hilichurl Guard
21011402: Ice Shield Hilichurl Guard
20011203: Pyro Slime
20011302: Large Pyro Slime
20011402: Geo Slime
20011503: Large Geo Slime
22010105: Pyro Abyss Mage
22010205: Cryo Abyss Mage
22010305: Hydro Abyss Mage
22010402: Electro Abyss Mage
21030102: Hydro Samachurl
21030202: Dendro Samachurl
21030302: Anemo Samachurl
21030403: Geo Samachurl
21030502: Cryo Samachurl
21030602: Electro Samachurl
24010102: Ruin Guard
24010202: Ruin Hunter
24010302: Ruin Grader
26040105: Geovishap

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,797 @@
369101: 翠目猫
369102: 北地犬
369103: 野林猪
369104: 蓝翎鹭
369105: 巡林犬
369106: 柴犬
369107: 黑背猎犬
369108: 北地猫
369109: 虎纹猫
369110: 警长猫
368101: 枫原万叶
368102: 烟绯
368103: 优菈
368104: 琴
368105: 丽莎
368106: 芭芭拉
368107: 凯亚
368108: 迪卢克
368109: 雷泽
368110: 安柏
368111: 温迪
368112: 香菱
368113: 北斗
368114: 行秋
368115: 魈
368116: 凝光
368117: 可莉
368118: 钟离
368119: 菲谢尔
368120: 班尼特
368121: 达达利亚
368122: 诺艾尔
368123: 七七
368124: 重云
368125: 甘雨
368126: 阿贝多
368127: 迪奥娜
368128: 莫娜
368129: 刻晴
368130: 砂糖
368131: 辛焱
368132: 罗莎莉亚
368133: 胡桃
368135: 宵宫
368136: 早柚
368137: 神里绫华
368138: 雷电将军
368139: 珊瑚宫心海
368140: 九条裟罗
368141: 埃洛伊
368142: 托马
368143: 五郎
368144: 荒泷一斗
368145: 申鹤
368146: 云堇
368147: 八重神子
368148: 神里绫人
360101: 玉面檐枋墙
360102: 深色木制拱劵墙
360201: 垂香木传统地板
360202: 异色方格地砖
360301: 垂香木方格天花板
360302: 暗纹方格天花板
360401: 双层烛台吊灯
360402: 八方灯笼-「时运亨通」
360403: 六角灯笼-「和气致祥」
360404: 「南瓜鬼怪狂欢夜」
360405: 锦缎华灯-「飞阁流丹」
364301: 垂香木窗格房门
364302: 骑士团杉木房门
364401: 垂香木转角阶梯
364402: 杉木转角阶梯
372101: 外景磐石-「却笠」
372102: 外景磐石-「磈垒」
372103: 外景磐石-「碧峭」
372104: 外景磐石-「眠云」
372105: 外景磐石-「天阶」
372106: 外景磐石-「玲珑」
361301: 厚重的图书馆长桌
361302: 骑士团的办公桌
361303: 骑士团的会议桌
361101: 极北桦木折角柜台
361304: 阔面石制炉灶
361305: 便携炉灶
361306: 菱形桌布的长桌
361307: 多重餐位松木圆桌
361308: 木纹雅致的书法桌案
361309: 松木方形茶桌
361501: 松木客栈柜台
361310: 垂香木朱漆圆桌
362201: 北地石制壁炉
363301: 古典诗琴-「听风的思绪」
364201: 木版画餐厅招牌
362202: 松木折屏-「云来帆影」
362203: 硬木座屏-「绝云晨雾」
362101: 柔软的会客厅沙发
362102: 「晴空蓝的午后」
362103: 「坚定意志」
362104: 松木餐椅
362105: 松木靠背茶椅
362106: 松木朱漆圆凳
364202: 明净的花瓶形壁灯
363101: 恒亮不熄的提灯
363102: 琉璃亭却砂木立灯
363103: 天圆灯笼-「明烛兰芳」
361311: 稳固的桦木梳妆台
361201: 图书馆双层书架
361202: 萃华木臻品书架
361203: 萃华木经济书架
361204: 「易逝于书页翻飞间」
361205: 「司书的宝库」
361102: 开顶杉木货架
361103: 组合式杉木货柜
361104: 古典杉木储藏柜
361206: 朱漆垂香木卷轴书架
361207: 朱漆垂香木百宝阁
361208: 垂香木商铺立柜
362301: 蒙德地毯-「明红的热忱」
362302: 蒙德地毯-「不倦的寻索」
362303: 客栈地毯-「宾至如归」
362304: 迎宾地毯-「惠然之顾」
364203: 半旧的圆盾
364204: 半旧的盾牌
364205: 半旧的单手剑
364101: 风景画-「乡野民居」
364102: 风景画-「远空层云」
364103: 风景画-「无名高崖」
364206: 战斗意志旗
364207: 纯净灵魂旗
364208: 骑士团剑盾徽章
364209: 壁挂式记录板
364210: 壁挂式广告牌
364104: 工笔淡彩-「珉林千峰」
364105: 工笔淡彩-「盏中春红」
364106: 工笔淡彩-「雾海叠嶂」
363302: 整齐叠放的书本
363303: 「学者的倦怠」
363304: 「书信的礼节」
363305: 精巧的沙漏摆件
363201: 花卉瓶栽-「淡蓝的从容」
363202: 绿植盆栽-「澄澈的清风」
363203: 花卉瓶栽-「盛放的曙红」
363204: 花卉盆栽-「甜蜜的伪装」
363306: 炼金装置-「水火之间」
363307: 炼金器件-「尘埃的重量」
363308: 纸墨笔砚-「临池学书」
363205: 绿植盆栽-「松青尺树上」
363309: 金色三重烛台
361401: 柔风加护的床榻
361402: 烟霞云梦榻
361105: 高大的桦木衣柜
362204: 桦木双屉床头柜
362205: 却砂木金纹床头柜
361106: 却砂木金纹衣柜
364211: 锦缎布帘
362206: 霓裳画帘-「上取红霞」
362207: 花团锦屏-「玉簪金璧」
363104: 贝壳灯罩硬质台灯
370301: 热闹红火的杂货摊位
370302: 生意平稳的水果摊位
370303: 货真价实的水果摊位
370304: 开放式烘炉工坊
370305: 丰收预兆的水果推车
370201: 多重拱门的蒙德建筑
370202: 悬挑阁楼的蒙德民居
370203: 不惧潮湿的蒙德公寓
370204: 抗击狂风的蒙德旧屋
371101: 花鸟喷泉
370205: 高大阁楼的乡间住宅
370206: 古典乡间住宅
370207: 袖珍松木小屋
370306: 「行商石门北」
370501: 「云游碧水东」
370307: 卷棚果蔬舆
370101: 干草庐屋
370102: 干草货站
370502: 干草货棚
370103: 璃月民居-「餐松饮涧」
370104: 璃月民房-「梁悬千石」
370105: 璃月驿站-「古道茶香」
370106: 璃月民居-「月卧檐上」
370107: 璃月民居-「笙磬同音」
370108: 璃月商铺-「客聚如潮」
370208: 璃月民居-「岁不我与」
371201: 三眼守仙牌
370401: 丘丘前哨小屋
371102: 丘丘螺旋瞭望塔
370402: 丘丘领袖大殿
371103: 丘丘简易草棚
374301: 丘丘双层警戒台
370503: 硬顶避雷帐篷
370504: 简易单人帐篷
375101: 蒙德宅邸-「向风的庄园」
374302: 开放式松木橱柜
374303: 重型杉木锻造桌
374304: 宽大的松木长桌
370308: 「百味四宫釜」
374305: 大型石制滚磨
374306: 炼金合成台
373301: 杉木置物架
373302: 杉木武器架
373303: 硬木兵戈架
373101: 交错放置的杉木货箱
373102: 有序叠放的杉木酒桶
373304: 简易货运拖车
373103: 沉甸甸的干草卷
373305: 硬石加固的水井
373104: 竹框酒坛-「琼浆待月往」
373201: 绿植盆栽-「苍翠寸泓中」
373105: 玩具摊-「琳琅生趣」
373106: 花伞铺-「簦下千彩」
370309: 果蔬摊-「案上田园」
374401: 酒肆货柜-「会须百杯饮」
374402: 抗浪结构双层货盘
374307: 双重商摊-「运势层层高」
373306: 红衣斗笠稻草人
373107: 储物袋-「隐雷退散」
373307: 旧式水井
373308: 硬顶水井-「但求虚澈」
373309: 石狮子像-「天禄」
373310: 石狮子像-「百解」
373108: 果蔬商贩的谨慎
373109: 果蔬商贩的劳累
373110: 硬面彩陶罐
374101: 饱经风雨的竹制围篱
374102: 卸力的松木围栏
374103: 丘丘木制围栏
374104: 丘丘图腾围栏
373111: 丘丘弓箭标靶
373112: 丘丘带角陶锅
373113: 枯木方向标
374201: 平整的木制长凳
374202: 平整的石制长凳
374308: 竹制露天茶桌
374309: 木制露天茶桌
373202: 锁水的花坛
374105: 葱郁的葡萄藤
373401: 铁艺雕花路灯
373402: 野外松木路灯
373403: 退邪灯-「明照左右」
373404: 四合灯-「车笠远来」
373405: 清影灯-「笔锋墨影」
372401: 垂香木厨房货架
372402: 正逢花期的灌木丛
372403: 平平无奇的灌木丛
372404: 「匿踪之叶」
372405: 「青色喷泉」
372406: 「暖叶篝火树」
372407: 「晶蝶的栖枝」
372408: 「南境香风叶」
372409: 「明冠羽叶」
372301: 「归风的苍色」
372302: 银钩白椰树
372303: 明沙白椰树
372304: 天衡赤枫-「红叶如灼」
372305: 奇状盘伏树
372306: 缃叶却砂树
372201: 伏青石
372202: 齐身石
372203: 帝台石
373114: 「冒险家难逃之重」
371202: 桦木庭院正门
371203: 雕花庭院墙尾
371204: 雕花庭院围墙
377101: 套装用家具
362208: 震晓云天鼓
3750102: 璃月古宅-「画阁朱楼」
370109: 古宅厢房-「庭中朝暮」
370110: 古宅凉亭-「夜观七宿」
371205: 古宅游廊-「信步前林」
371206: 古宅院墙-「檐下春秋」
371207: 古宅墙隅-「一角幽芳」
371208: 古宅院墙-「贝联珠贯」
371209: 古宅院墙-「阡陌之安」
371210: 古宅门楼-「云门通达」
371211: 古宅景墙-「阶柳庭花」
372307: 茁壮的萃华树
372308: 年幼的萃华树
372309: 高大的桦树
372310: 初成的桦树
372311: 金叶盘伏树
372312: 青叶盘伏树
372313: 缃叶盘伏树
372314: 缃叶剑骨树
372315: 金叶剑骨树
372316: 青叶剑骨树
372317: 轻策鹭顶竹
372318: 轻策行云竹
372319: 轻策寒玉竹
372410: 青衫景铄
372411: 青衫问寒
372412: 青衫自酌
372413: 「绿野的盛宴」
372414: 「绿野的侍者」
372415: 金叶珍枝树
372416: 缃叶珍枝树
372417: 败叶珍枝树
372418: 青叶珍枝树
372419: 丛生栌青
372420: 郁生栌青
372421: 丛生彤丹
372422: 郁生彤丹
372423: 丛生蝶绿
372424: 郁生蝶绿
372425: 飞泉锦簇
372426: 芽绿锦簇
372427: 梧枝锦簇
372428: 双生芽绿
372429: 双生素馨
372430: 「绿野的坐席」
372431: 「猎人的暗哨」
372432: 「猎品的斗篷」
372204: 照月石
372205: 侵霞石
372206: 映红石
372207: 金声石
372208: 金芽石
372209: 启夏石
372210: 兵阵石
372211: 纤拳石
372212: 临渊石
372213: 渴泽石
372214: 炉灰石
372215: 布衣石
372216: 卧苔石
372217: 断云石
372218: 穿涧石
372219: 无典石
372220: 仙家琥珀-「刚烈自见」
372221: 仙家琥珀-「画牢锁伥」
371104: 「牧歌与风车」
360406: 垂缨花灯-「大道锦绣」
362209: 花灯戏台-「笙歌鼎沸」
373115: 结实的木桶
373203: 转移壅土的木桶
374106: 初成的葡萄藤
374107: 简易木制围栏
374108: 施工过半的围栏
373116: 高耸的木杆
371107: 工程暂驻点
373117: 成捆的木材
373118: 防雨的杉木货箱
373311: 乡间的茶摊
373312: 「冒险家的随身秘宝」
373119: 石制盏形水池
363310: 白瓷茶具-「怀质抱真」
374310: 「夏日林中的盛宴」
374311: 古高尔桌子
374403: 「花海的摇篮」
373120: 「轻羽的礼赞」
374404: 「蓝海的宝钱」
373313: 「魔女的重唱」
373121: 「蓬蓬果的天空之梦」
373122: 「夏日林中的向导」
373123: 练兵场木桩支架
373124: 「夏日林中的信使」
374203: 古高尔椅子
371109: 「斑斓与清冽之夏」
372501: 贵本之道-「玄此玉田」
372502: 贵本之道-「薿此芝田」
372503: 贵本之道-「楚此渚田」
363311: 白鹭流光之簪
374312: 梦见木长桌
363312: 「茶烟笼白榻」
374204: 梦见木方凳
372320: 「九步踯躅间」
372222: 莺泣石
372223: 朱殷石
373125: 「前庭净念池」
373204: 「松株侯暮夕」
373406: 石灯笼-「不动明耀」
373501: 外景锚点
368134: 派蒙
373601: 「灵沼云池」
379001: 花鳉
379002: 琉璃花鳉
379003: 甜甜花鳉
379004: 蓝染花鳉
379005: 擒霞客
379006: 水晶宴
379007: 肺棘鱼
379008: 斗棘鱼
379009: 鸩棘鱼
379010: 赤魔王
379011: 雪中君
379012: 金赤假龙
379013: 锖假龙
379014: 流纹褐蝶鱼
379015: 流纹京紫蝶鱼
379016: 流纹茶蝶鱼
379017: 长生仙
379018: 雷鸣仙
379019: 月光鳍
379020: 炮鲀
379021: 苦炮鲀
379022: 迪芙妲鳐
379023: 佛玛洛鳐
372601: 外景磐石·空峋
372602: 外景磐石·孤硊
372603: 外景磐石·雾踞
372604: 外景磐石·浮峭
373314: 「回响弦音」
373701: 花架·古昔
373702: 花架·梦生
373703: 花架·风颂
373801: 星槿·春露
373802: 星槿·秋橘
373803: 星槿·紫锦
373804: 棠铃·萤灯
373805: 棠铃·渚莲
373806: 棠铃·青箬
373807: 绣荚·晓妆
373808: 绣荚·栖霞
373809: 绣荚·午日
373810: test家园花10
373811: test家园花11
373812: test家园花12
373813: test家园花13
373814: test家园花14
373815: test家园花15
373816: test家园花16
373817: test家园花17
373818: test家园花18
373819: test家园花19
373820: test家园花20
373821: test家园花21
370601: 「恒诰之龛」
370602: 「净绪之龛」
370310: 御伽木拉面屋台
371110: 朱木鸟居-「真静之扉」
373126: 阵屋半钟-「轰雷之音」
373127: 军势钲鼓-「破阵余响」
373407: 「三咫通明」
373408: 白石「鸣驻」立灯
373409: 御伽木「鸣驻」立灯
373205: 「祗力松茶」
374501: 铸石地基-「修身砥行」
374502: 铸石地基-「随车致雨」
374503: 铸石地基-「倍道兼行」
376101: 闲趣机关-「冲刺节拍」
376102: 「启动画板」
376103: 「终点光环」
360103: 枫木拱顶墙
360303: 枫木方格天花板
360203: 枫木褐彩地板
364403: 枫木转角阶梯
375103: 稻妻垣屋-「雅练上邸」
364303: 垣屋枫木房门
371212: 游廊转角-「轩景徐至」
371213: 要地牙门-「云底之能」
371214: 要地栏楯-「约己之壁」
371215: 栏楯转角-「瞩视无遗」
370603: 稻妻厦屋-「一意同心」
370604: 稻妻商铺-「千瑜百珉」
370605: 稻妻民居-「三世共业」
370606: 稻妻民居-「知变易通」
370607: 稻妻工坊-「竭蹈正则」
370608: 稻妻民居-「方寸安常」
370609: 稻妻筱屋-「静度岁晏」
370610: 稻妻筱屋-「野逸入心」
370611: 稻妻工坊-「适称兼用」
370612: 稻妻民居-「铁中铮铮」
370613: 稻妻工坊-「粝食寻甘」
370614: 稻妻民居-「长瞩无替」
370615: 稻妻官邸-「举目威仪」
370616: 稻妻官邸-「严谕正办」
370617: 官邸回廊-「势至权达」
370505: 御伽木市井杂煮屋台
370507: 御伽木储粮推车
371216: 御伽木「近竹」院门
371217: 御伽木「近竹」围栏
370618: 阵屋哨塔-「洞鉴」
370619: 阵屋行帐-「时策」
370620: 阵屋营房-「周固」
370621: 阵屋正门-「忠肃」
371218: 阵屋围栏-「错牙」
371219: 阵屋围栏-「截断」
371220: 阵屋桩木-「苦刺」
371112: 朱木鸟居-「安复之道」
370623: 御神签务所-「兆解」
373315: 梦见木「灾祛」御签挂
373128: 御伽木简易工棚
370508: 花伞铺-「异梦绮彩」
370509: 果蔬摊-「纯诚之味」
370624: 神社拜殿-「幸愿煦音」
370625: 神社偏殿-「社务顺易」
371221: 神社回廊-「樱尘步道」
371222: 神社回廊-「浅赤凝望」
370510: 祭典「定番」百货屋台
370511: 祭典「奇番」百货屋台
370626: 垣屋代馆-「度正礼适」
371113: 垣屋宅门-「风清之扉」
371114: 垣屋长庭-「颜行展舒」
371115: 垣屋庭角-「安节谦洽」
370627: 垣屋仓房-「万斗储集」
371223: 垣屋院墙-「崩石之御」
371224: 垣屋院墙-「柔睦一陬」
371225: 垣屋院墙-「庭中隐际」
371226: 垣屋墙隅-「旧市町墙」
374313: 御伽木「乐至」方桌
374314: 奇彩萦旋之桌
374205: 御伽木「乐至」方凳
374206: 奇彩连绕之椅
373410: 五重灯笼祭典门关
373411: 梦见木「空怀」路灯
373412: 梦见木「重念」路灯
373413: 鱼脂白烛-「傍明」
373414: 御伽木郊野路灯
373415: 御伽木简本路灯
373416: 孔雀木「连造」路灯
373316: 御建鸣神主尊旗
373317: 阵屋弓架-「响羽」
373318: 阵屋枪架-「尖破」
373319: 阵地篝火-「清曜」
373320: 阵地拒马-「示边」
373321: 天狐雕像-「白辰嗣响」
373322: 晴空缯彩游鱼旗
373323: 枫木布面狸猫玩偶
373324: 枫木布面白狐玩偶
373325: 「赤铁珊瑚」
373326: 「朽石荧伞」
373129: 御伽木「六用」木桶
373130: 御伽木「但饮」木桶
373131: 厚壁「石胆」陶制水缸
373327: 神社雕像-「清籁镇物」
373328: 乡野水井-「下彻澄泉」
373329: 梦见木「诚见」塞钱箱
372224: 「代宫司之印」
373330: 宗传刀架-「两训则」
373331: 「中庭竹水鸣」
374109: 「果农的勤俭」
374110: 御伽木纵置「久香」花坛
374111: 御伽木横置「散彩」花坛
373332: 孔雀木「遍知」告示牌
373132: 古法新造御伽木酒桶
373133: 古法新造御伽木货箱
372321: 青磁蓬生
372322: 常磐高罗
372323: 浅葱上旋
372324: 千岁森散
372325: 「花咲初退红」
372326: 「世纷鸠羽寻栖枝」
372327: 「春惜一斤染」
372328: 「红鸢问寝觉」
372329: 「纁漫雁来中」
372330: 「片叶苏芳缀银朱」
372331: 「着意入深薄」
372332: 「桔梗执别愁云去」
372433: 「紫苑叹幽弘」
372434: 「影徙露草自伤悼」
372435: 「晚花空言约」
372436: 「琼树映瓶覗」
372437: 「蝶引玉子穿白波」
372438: 「舞扇摇赤香」
372439: 「薄红榴璃散千瓣」
372225: 寂修石
372226: 涉浪石
363313: 茶室器物-「锁香笼」
362210: 茶室坐垫-「晚禾织」
363206: 「铸瓷正则」
363207: 「素守之瓶」
363208: 「恩返之盏」
363314: 纸墨笔砚-「正定笔锋」
361313: 铸铁泛用炉具
370111: 孔雀木「并提」层叠木匣
360407: 茶室烛台-「无味火」
360408: 茶室摆灯-「遮隐光」
360409: 枫木摆灯-「薄馨」
360410: 枫木地灯-「照澄」
360411: 御殿灯笼-「霆威萦盘」
360412: 御殿灯笼-「昔日绯月」
360413: 御殿灯笼-「雷照素心」
360414: 枫木吊灯-「显光」
361502: 茶室柜台-「十四丸」
362108: 茶室圆凳-「折痛辞」
364107: 绘染浮光-「遥山烟空」
364108: 绘染浮光-「水色绚缦」
364109: 壁画拓印-「雾海孤岳」
364110: 壁画拓印-「雾海旧仪」
361209: 枫木书柜-「墨染书心」
361210: 枫木书柜-「千卷柜藏」
370112: 孔雀木「万角」货柜
370113: 孔雀木「不染」橱柜
370114: 梦见木「露隐」衣柜
362211: 枫木仪鼓-「宴奏」
362212: 枫木仪鼓-「喧腾」
362213: 茶室屏风-「垢身金心」
370115: 梦见木「礼待」着物架
362214: 宗传刀架-「四常法」
362215: 旗本重铠-「影阵玄甲」
362216: 梦见木「入画」折屏
361314: 梦见木「冷暖一桌」被炉
363315: 破邪之弦镝
363316: 驱鬼之羽屏
363317: 「神之嗅觉」不倒狐狐
363318: 「真实厨艺」不倒狸狸
361403: 梦见木「樱眠」床榻
370512: 孔雀木「幸归」面具架
371116: 白石温泉-「暖漫」
371227: 温泉屏风-「适分」
371228: 温泉外墙-「无越」
372227: 温泉白石-「秘火」
371229: 温泉墙板-「稳足」
361315: 孔雀木「石定」茶桌
361316: 茶室长桌-「座无隙」
371230: 温泉门厅-「避凉」
373333: 乡野水井-「下索密藏」
364501: 「萦绊之刻」
363105: 「辉光灵闪」
371231: 绿野碧茵-「梦境边际」
371232: 绿野碧茵-「星花篱墙」
371233: 绿野碧茵-「烟景迷宫」
373206: 绿野碧茵-「缤彩飘曳」
373207: 绿野碧茵-「喵喵侍者」
373208: 绿野碧茵-「绒绒卫兵」
373334: 「梦见花霞织樱雨」
374504: 绿野碧茵-「饼干石路」
373335: 「亲爱的挚友派蒙的肖像」
371117: 绿野碧茵-「冰澈泉瀑」
374001: 雪人躯干-「乖乖坐」
374002: 雪人躯干-「兔子跳」
374003: 雪人躯干-「经典蛋堡」
374004: 雪人躯干-「理直气壮」
374005: 雪人脑袋-「猫猫惊叹」
374006: 雪人脑袋-「笑容节拍」
374007: 雪人脑袋-「开心通则」
374008: 雪人脑袋-「气鼓鼓」
374009: 雪人双手-「清洁骑士」
374010: 雪人双手-「随便做做」
374011: 雪人双手-「好运手套」
374012: 雪人双手-「欢乐雪怪」
374013: 雪人帽子-「铁头卫士」
374014: 雪人帽子-「晚宴贵宾」
374015: 雪人帽子-「雪夜梦乡」
374016: 雪人帽子-「保重头发」
374017: 雪人围巾-「编织暖意」
374018: 雪人围巾-「话剧演员」
374019: 雪人围巾-「果酱松饼」
374020: 雪人围巾-「钩钩冰沙」
374021: 雪人双眼-「智慧凝视」
374022: 雪人双眼-「寻宝视线」
374023: 雪人双眼-「忘吃早餐」
374024: 雪人双眼-「别铲我」
374025: 雪人鼻子-「苦土豆球」
374026: 雪人鼻子-「说谎萝卜」
374027: 雪人鼻子-「碰一碰」
374028: 雪人鼻子-「苹果炸弹」
369111: 影狼丸
369112: 雪猪
369113: 黄金蟹
369114: 太阳蟹
369115: 海蓝蟹
369116: 将军蟹
369117: 薄红蟹
369118: 雪狐
369119: 红狐
369120: 松鼠
369121: 蓝宝石
369122: 灰雪猫
369123: 雪隐鼬
369124: 红尾鼬
369125: 靴子鼬
369126: 狐
369127: 菫鹮
369128: 风晶蝶
369129: 岩晶蝶
369130: 冰晶蝶
369131: 雷晶蝶
369132: 蓝角蜥
369133: 红角蜥
369134: 绿角蜥
369135: 落日鳅鳅
369136: 金鳅鳅
369137: 晴天鳅鳅
369138: 嗜髓蜥
369139: 青蛙
369140: 泥蛙
369141: 蓝蛙
369142: 藤纹陆鳗鳗
369143: 赤鳍陆鳗鳗
369144: 白鸽
369145: 璃冠鸽
369146: 灰羽鸽
369147: 赤胁鸽
369148: 黑王鸽
369149: 鸦
369150: 赤团雀
369151: 金团雀
369152: 雪团雀
369153: 碧团雀
369154: 深海鳗鳗
369155: 珊瑚蝶
369156: 吉光虫
369157: 青雷鼬
376111: 「疾行节奏·芽绿 」
376112: 「计分灯架·芽绿」
376113: 「闪烁踏板·芽绿」
376121: 「疾行节奏·群青」
376122: 「计分灯架·群青」
376123: 「闪烁踏板·群青」
376131: 「疾行节奏·鹿角」
376132: 「计分灯架·鹿角」
376133: 「闪烁踏板·鹿角」
376141: 「疾行节奏·锦葵」
376142: 「计分灯架·锦葵」
376143: 「闪烁踏板·锦葵」
373336: 「千籁至音·飖扬」
362217: 「千籁至音·缪绕」
372107: 铸石地基-「运开时泰」
362218: 佳节香扆-「栈山航海」
362219: 佳节香扆-「金相玉质」
363319: 「清客扬芳」
373337: 晴虹灯树-「灯夕佳景」
370513: 「赀宝浮棚·赠彩」
370514: 「晴虹浮棚·黛蓝」
370515: 「晴虹浮棚·玉红」
373134: 「庆节嘉趣礼如山」
373338: 祥云宛虹飞缎柱衣
373339: 金纹羽节除祟丹帜
360415: 绽蕊烛灯-「澄净如莲」
360416: 晴虹灯树-「元辰吉庆」
360417: 「万家华灯照朗月」
373340: 伪一郎·石像
376151: 闲趣机关-「应弦而砰」
376152: 启动木牌
376153: 标靶区域·其一
376154: 标靶区域·其二
371118: 外景奇石-「飞升腾实」
363320: 酒馆摇壶-「郁烈摇荡」
363321: 「面具」
370628: 稻妻民居-「海祈话旧」
370629: 稻妻民居-「一室珊瑚」
370630: 稻妻民居-「风沫之屋」
372440: 「半夏沈香茶」
372441: 「竺生御纳户」
372442: 「露隐楝叶间」
372443: 「雪解甚三红」
372445: 「常夜荧枝」
372446: 「常夜光树」
376161: 闲趣机关-「蹈厉奋发」
376162: 历练木牌
376163: 历练木桩
376164: 历练木桩
376165: 历练木桩
376166: 历练木桩
376167: 历练木桩
376168: 历练木桩
373711: 橘樱黑鸢花器
373712: 金纹蝶翅花器
373713: 山影生壁花器
373714: 晓灰焦茶花器
373831: 砂上月踪
373832: 清涟凝明
373833: 苍色郁野
373834: 繁花蒙茏
373835: 紫苑遥曳
373836: 奇石含露
373837: 煦风碧叶
373838: 流韵虹枝
373841: 雀茶圆旋
373842: 薄香逸放
373843: 狐耳玉子
373844: 溪客问雨
373845: 泽芝示梦
373846: 走笔隐红
373847: 遐籁的轮廓
373848: 晴空的许诺
373849: 晚霞的姿影
373850: 阳之镜
373851: 心之环
373852: 愿之翎
372605: 外景奇石-「行远升高」
370516: 祭典展位-「奇奥」
370517: 祭典展位-「文彩」
373341: 御建鸣神主尊大御所大人像
373342: 影向山夜行赤狐玩偶
373135: 「悠眠花火」
373136: 「暇憩焰火」
373343: 狸猫抱抱合影板
373344: 「狐仙宫司」限定画旗
373345: 「五歌仙」之锦绘
373137: 重型餐馆专用炉灶
373138: 优悠之火
360001: (test)墙面1
360002: (test)墙面2
360003: (test)地板1
360004: (test)地板2
360005: (test)天花板1
360006: (test)天花板2
360007: (test)吊灯1
360008: (test)吊灯2
373100: (test)测试用烧烤炉
373900: 搭配「梦里花」
373901: 制作雪人
373902: 制作雪人
373903: 制作雪人
373904: 制作雪人

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,717 @@
1 : BigWorld_LevelStreaming
2 : BigWorld_LevelStreaming
3 : BigWorld_LevelStreaming
4 : LostParadise_LevelStreaming
5 : AbyssalPalace_LevelStreaming
6 : TheChasm_LevelStreaming
7 : MichiaeMatsuri_LevelStreaming
1001 : ClimbTest1
1002 : ClimbTest2
1003 : TheBigWorld
1004 : Knight_Inside_Test
1005 : ChurchSteal
1006 : Level_PFDungeon01
1008 : ChurchLobby
1009 : AngelShare
1011 : Level_Gameplay_Test
1013 : SneakAdvancedTest
1015 : WindZone
1016 : Level_AmborAbyss01
1017 : Level_FCdungeon_Kettle01
1018 : Chateau
1019 : Level_CloudDongTian_Test1
1023 : Level_Yurenzhong
1024 : Level_WeekDungeon01
1030 : TestIntercept_LiYue
1031 : Level_Tower_Morning_01
1032 : Level_FCdungeon_Cloud02
1033 : Indoor_Ly_Bank
1034 : Indoor_Ly_Liuliting
1035 : Indoor_Ly_Xinyuexuan
1050 : Level_WaterMonster_Test
1051 : Level_QunYuGe_CLX
1052 : Level_FCdungeon_FatOtaku
1053 : Level_FCdungeon_Kettle01
1054 : Level_FCdungeon_Kettle01
1055 : Level_YoungMaster
1056 : Level_ZhongLi_WG
1057 : Indoor_Ly_Qunyuge
1058 : Level_FCdungeon_FatOtaku
1059 : Level_FCdungeon_Hutao
1060 : IndoorScene_Dq_Teahouse
1061 : IndoorScene_Dq_Syabugyo
1062 : Level_FCdungeon_LeiDianYing
1063 : IndoorScene_Dq_Donjon
1064 : IndoorScene_Dq_TenryuBugyo
1065 : Level_TenryuBugyo01
1066 : IndoorScene_Dq_Uyutei
1068 : IndoorScene_Md_AngelShare_Bartender01
1070 : Level_Tower_Moon_01
2001 : Homeworld_Exterior_Above
2002 : Homeworld_Exterior_Karst
2003 : Homeworld_Exterior_Uncharted
2004 : Homeworld_Exterior_Ukiyo
2201 : Homeworld_Interior_Md_Apartment_01
2202 : Homeworld_Interior_Ly_Apartment_01
2203 : Homeworld_Interior_Dq_Apartment_01
20000 : Level_Gameplay_Test
20005 : PlotLevel_XiangLingLevel_Xyd
20006 : Level_UCDungeon01
20007 : PlotLevel_BarbaraMission02_Xyd
20008 : Level_KaeyaTutorialMission01
20009 : Level_AmborTutorialMission01
20010 : Level_LisaTutorialMission04
20011 : Level_LisaTutorialMission03
20012 : Level_UCDungeon01
20013 : Level_KaeyaTutorialMission02
20014 : Level_UCDungeon01
20015 : Level_LisaTutorialMission03
20016 : Level_KaeyaTutorialMission02
20017 : DvalinTest_S01
20018 : DvalinTest_S04
20019 : Level_LisaTutorialMission04
20020 : DvalinTest_S00
20022 : Level_UCDungeon01
20023 : Level_Plot
20024 : Level_UCDungeon01
20025 : DvalinTest_S04
20026 : Level_WeekDungeon01
20027 : Level_WeekDungeon01
20028 : Level_WeekDungeon01
20031 : Level_UCDungeon01
20032 : Level_WindyTutorial_YQT
20034 : IndoorScene_Ly_Goldenhouse
20035 : Level_KaeyaTutorialMission02
20036 : Level_KaeyaTutorialMission02
20037 : Level_FCdungeon_Eula
20101 : IndoorScene_Ly_Goldenhouse
20102 : Level_FCdungeon_Qiqi
20103 : Level_AmborTutorialMission01
20104 : Level_FCdungeon_GoddessLY
20105 : Level_FCdungeon_GoddessLY
20106 : Level_DahakaBoss01
20107 : Level_DahakaBoss01
20108 : Level_DahakaBoss01
20109 : Level_DahakaBoss01
20110 : Level_DahakaBoss01
20111 : Level_HFDungeon_Prison01
20112 : Level_Dq_Void01
20113 : Level_FCdungeon_Delusion01
20114 : Level_DonjonBattle01
20115 : Level_DonjonBattle01
20116 : Level_Dq_Void01
20117 : Level_Dq_Void02
20118 : Level_HFDungeon02
20119 : Level_HFDungeon_Yidou01
20120 : Level_Eldritch_Minor01
20121 : QuestLevel_FCdungeon_ShenheCloud01
20122 : Level_WeekDungeon_Baal
20123 : Level_FCdungeon_Miko
20124 : Level_Eldritch_Minor01
20125 : Level_WeekDungeon_Baal
20126 : Level_QuestRongcai_Dungeon01
30001 : LevelTest_CurseMaze
30100 : Level_Tower_Morning_01
30101 : Level_Tower_Morning_01
30102 : Level_Tower_Morning_01
30103 : Level_Tower_Morning_01
30104 : Level_Tower_Morning_01
30200 : Level_Tower_01_Water
30201 : Level_Tower_Morning_01
30202 : Level_Tower_01_Water
30203 : Level_Tower_Morning_01
30204 : Level_Tower_Morning_01
30300 : Level_Tower_Morning_01
30301 : Level_Tower_Morning_01
30302 : Level_Tower_01_Water
30303 : Level_Tower_01_Water
30304 : Level_Tower_Morning_01
30400 : Level_Tower_Dusk_01
30401 : Level_Tower_Dusk_01
30402 : Level_Tower_Dusk_01
30403 : Level_Tower_Dusk_01
30404 : Level_Tower_Dusk_01
30500 : Level_Tower_Dusk_01
30501 : Level_Tower_Dusk_01
30502 : Level_Tower_Dusk_01
30503 : Level_Tower_Dusk_01
30504 : Level_Tower_Dusk_01
30600 : Level_Tower_01_Open
30601 : Level_Tower_01_Open
30602 : Level_Tower_01_Open
30603 : Level_Tower_01_Open
30604 : Level_Tower_Night_01
30700 : Level_Tower_Dusk_01
30701 : Level_Tower_01_Water
30702 : Level_Tower_Dusk_01
30703 : Level_Tower_Dusk_01
30704 : Level_Tower_Dusk_01
30800 : Level_Tower_Universe_01
30801 : Level_Tower_Universe_01
30802 : Level_Tower_Universe_01
30803 : Level_Tower_01_Water
30804 : Level_Tower_Universe_01
30900 : Level_Tower_Moon_01
30901 : Level_Tower_Moon_01
30902 : Level_Tower_Moon_01
30903 : Level_Tower_Moon_01
30904 : Level_Tower_Moon_01
31000 : Level_Tower_Night_01
31001 : Level_Tower_Night_01
31002 : Level_Tower_Night_01
31003 : Level_Tower_Night_01
31004 : Level_Tower_Night_01
31100 : Level_Tower_Night_01
31101 : Level_Tower_Night_01
31102 : Level_Tower_Night_01
31103 : Level_Tower_Night_01
31104 : Level_Tower_Night_01
31200 : Level_Tower_Night_01
31201 : Level_Tower_Night_01
31202 : Level_Tower_Night_01
31203 : Level_Tower_Night_01
31204 : Level_Tower_Night_01
31300 : Level_Tower_Element_Fire_01
31301 : Level_Tower_Element_Fire_01
31302 : Level_Tower_Element_Fire_01
31303 : Level_Tower_Element_Fire_01
31304 : Level_Tower_Element_Fire_01
31400 : Level_Tower_Element_Thunder_01
31401 : Level_Tower_Element_Thunder_01
31402 : Level_Tower_Element_Thunder_01
31403 : Level_Tower_Element_Thunder_01
31404 : Level_Tower_Element_Thunder_01
31500 : Level_Tower_Element_Ice_01
31501 : Level_Tower_Element_Ice_01
31502 : Level_Tower_Element_Ice_01
31503 : Level_Tower_Element_Ice_01
31504 : Level_Tower_Element_Ice_01
31600 : Level_Tower_Element_Water_01
31601 : Level_Tower_Element_Water_01
31602 : Level_Tower_Element_Water_01
31603 : Level_Tower_Element_Water_01
31604 : Level_Tower_Element_Water_01
31700 : Level_Tower_Moon_01
31701 : Level_Tower_Moon_01
31702 : Level_Tower_Moon_01
31703 : Level_Tower_Moon_01
31704 : Level_Tower_Moon_01
31800 : Level_Tower_Universe_01
31801 : Level_Tower_Universe_01
31802 : Level_Tower_Universe_01
31803 : Level_Tower_Universe_01
31804 : Level_Tower_Universe_01
31900 : Level_Tower_Universe_01
31901 : Level_Tower_Universe_01
31902 : Level_Tower_Universe_01
31903 : Level_Tower_Universe_01
31904 : Level_Tower_Universe_01
32000 : Level_Tower_Universe_01
32001 : Level_Tower_Universe_01
32002 : Level_Tower_Universe_01
32003 : Level_Tower_Universe_01
32004 : Level_Tower_Universe_01
32100 : Level_Tower_Morning_01
32101 : Level_Tower_Morning_01
32102 : Level_Tower_Morning_01
32103 : Level_Tower_Morning_01
32104 : Level_Tower_Morning_01
32200 : Level_Tower_Morning_01
32201 : Level_Tower_Morning_01
32202 : Level_Tower_Morning_01
32203 : Level_Tower_Morning_01
32204 : Level_Tower_Morning_01
33100 : Level_Tower_Morning_01
33101 : Level_Tower_Morning_01
33102 : Level_Tower_01_Open
33103 : Level_Tower_Morning_01
33401 : Level_Tower_Dusk_01
33402 : Level_Tower_Night_01
33403 : Level_Tower_Night_01
33404 : Level_Tower_Night_01
33700 : Level_Tower_Moon_01
33701 : Level_Tower_Moon_01
33702 : Level_Tower_Universe_01
33703 : Level_Tower_Universe_01
33704 : Level_Tower_Element_Ice_01
33705 : Level_Tower_Element_Fire_01
33706 : Level_Tower_Element_Ice_01
33707 : Level_Tower_Element_Ice_01
33708 : Level_Tower_Universe_01
33709 : Level_Tower_Element_Thunder_01
33710 : Level_Tower_Universe_01
33711 : Level_Tower_Element_Water_01
33712 : Level_Tower_Universe_01
33713 : Level_Tower_Element_Ice_01
33714 : Level_Tower_Element_Ice_01
33715 : Level_Tower_Moon_01
33716 : Level_Tower_Universe_01
33717 : Level_Tower_Moon_01
33718 : Level_Tower_Moon_01
33719 : Level_Tower_Moon_01
33720 : Level_Tower_Universe_01
33721 : Level_Tower_Moon_01
33722 : Level_Tower_Universe_01
33723 : Level_Tower_Moon_01
33724 : Level_Tower_Universe_01
33725 : Level_Tower_Moon_01
33726 : Level_Tower_Universe_01
33727 : Level_Tower_Moon_01
33728 : Level_Tower_Universe_01
33729 : Level_Tower_Moon_01
33730 : Level_Tower_Universe_01
33731 : Level_Tower_Moon_01
33732 : Level_Tower_Universe_01
34100 : Level_Tower_Morning_01
34101 : Level_Tower_01_Water
34102 : Level_Tower_01_Open
34103 : Level_Tower_Morning_01
34401 : Level_Tower_Dusk_01
34402 : Level_Tower_Night_01
34403 : Level_Tower_Night_01
34404 : Level_Tower_Night_01
34700 : Level_Tower_Moon_01
34701 : Level_Tower_Moon_01
34702 : Level_Tower_Universe_01
34703 : Level_Tower_Universe_01
34704 : Level_Tower_Element_Ice_01
34705 : Level_Tower_Element_Fire_01
34706 : Level_Tower_Element_Ice_01
34707 : Level_Tower_Element_Ice_01
34708 : Level_Tower_Universe_01
34709 : Level_Tower_Element_Thunder_01
34710 : Level_Tower_Universe_01
34711 : Level_Tower_Element_Water_01
34712 : Level_Tower_Universe_01
34713 : Level_Tower_Element_Ice_01
34714 : Level_Tower_Element_Ice_01
34715 : Level_Tower_Moon_01
34716 : Level_Tower_Universe_01
34717 : Level_Tower_Moon_01
34718 : Level_Tower_Moon_01
34719 : Level_Tower_Moon_01
34720 : Level_Tower_Universe_01
34721 : Level_Tower_Moon_01
34722 : Level_Tower_Universe_01
34723 : Level_Tower_Moon_01
34724 : Level_Tower_Universe_01
34725 : Level_Tower_Moon_01
34726 : Level_Tower_Universe_01
34727 : Level_Tower_Moon_01
34728 : Level_Tower_Universe_01
34729 : Level_Tower_Moon_01
34730 : Level_Tower_Universe_01
34731 : Level_Tower_Moon_01
34732 : Level_Tower_Universe_01
35100 : Level_Tower_Morning_01
35101 : Level_Tower_Morning_01
35102 : Level_Tower_Morning_01
35103 : Level_Tower_Morning_01
35401 : Level_Tower_Dusk_01
35402 : Level_Tower_Night_01
35403 : Level_Tower_Dusk_01
35404 : Level_Tower_Night_01
35700 : Level_Tower_Moon_01
35701 : Level_Tower_Moon_01
35702 : Level_Tower_Universe_01
35703 : Level_Tower_Universe_01
35704 : Level_Tower_Element_Ice_01
35705 : Level_Tower_Element_Fire_01
35706 : Level_Tower_Element_Ice_01
35707 : Level_Tower_Element_Ice_01
35708 : Level_Tower_Universe_01
35709 : Level_Tower_Element_Thunder_01
35710 : Level_Tower_Universe_01
35711 : Level_Tower_Element_Water_01
35712 : Level_Tower_Universe_01
35713 : Level_Tower_Element_Ice_01
35714 : Level_Tower_Element_Ice_01
35715 : Level_Tower_Moon_01
35716 : Level_Tower_Universe_01
35717 : Level_Tower_Moon_01
35718 : Level_Tower_Moon_01
35719 : Level_Tower_Moon_01
35720 : Level_Tower_Universe_01
35721 : Level_Tower_Moon_01
35722 : Level_Tower_Universe_01
35723 : Level_Tower_Moon_01
35724 : Level_Tower_Universe_01
35725 : Level_Tower_Moon_01
35726 : Level_Tower_Universe_01
35727 : Level_Tower_Moon_01
35728 : Level_Tower_Universe_01
35729 : Level_Tower_Moon_01
35730 : Level_Tower_Universe_01
35731 : Level_Tower_Moon_01
35732 : Level_Tower_Universe_01
35800 : Level_CycleDungeon_WindFlower
35801 : Level_ContestBattle01
35802 : Level_ContestBattle01
35803 : Level_ContestBattle01
35804 : Level_ContestBattle01
35805 : Level_ContestBattle01
35806 : Level_ContestBattle01
35807 : Level_ContestBattle01
35808 : Level_ContestBattle01
35809 : Level_ContestBattle01
35810 : Level_ContestBattle01
35811 : Level_ContestBattle01
35812 : Level_ContestBattle01
35820 : Level_FCdungeon_Qiqi
35821 : Level_FCdungeon_Qiqi
35822 : Level_FCdungeon_Qiqi
35823 : Level_FCdungeon_Qiqi
35824 : PlotLevel_XiangLingLevel_Xyd
35825 : PlotLevel_XiangLingLevel_Xyd
35826 : PlotLevel_XiangLingLevel_Xyd
35827 : PlotLevel_XiangLingLevel_Xyd
35828 : Level_FCdungeon_Cloud01
35829 : Level_FCdungeon_Cloud01
35830 : Level_FCdungeon_Cloud01
35831 : Level_FCdungeon_Cloud01
35840 : Level_CrystalLink_01
35841 : Level_CrystalLink_01
35842 : Level_CrystalLink_01
35843 : Level_CrystalLink_01
35844 : Level_CrystalLink_01
35845 : Level_CrystalLink_01
40001 : Level_UCDungeon02
40002 : Level_UCDungeon01
40003 : Level_UCDungeon01
40004 : Level_KaeyaTutorialMission02
40005 : Level_KaeyaTutorialMission01
40006 : Level_KaeyaTutorialMission01
40007 : Level_PFDungeon01
40008 : Level_KaeyaTutorialMission02
40009 : Level_AmborTutorialMission01
40010 : Level_AmborTutorialMission01
40012 : Level_LisaTutorialMission03
40013 : Level_AmborTutorialMission01
40014 : Level_LisaTutorialMission03
40015 : Level_FCdungeon_Kettle01
40016 : Level_FCdungeon_Cloud01
40017 : Level_FCdungeon_Cloud01
40018 : Level_FCdungeon_Kettle01
40019 : Level_FCdungeon_Cloud01
40020 : Level_FCdungeon_Cloud01
40021 : Level_Challenge_Thunder01
40022 : Level_ActivityBoss01_Wind
40023 : Level_ActivityBoss01_Thunder
40024 : Level_ActivityBoss01_Rock
40025 : Level_ActivityBoss01_Wind
40026 : Level_LisaTutorialMission03
40027 : Level_ActivityBoss01_Wind
40028 : Level_ActivityBoss01_Thunder
40029 : Level_ActivityBoss01_Rock
40030 : Level_LisaTutorialMission03
40031 : Level_LisaTutorialMission03
40032 : Level_LisaTutorialMission03
40033 : Level_LisaTutorialMission03
40034 : Level_LisaTutorialMission03
40035 : Level_LisaTutorialMission03
40036 : Level_LisaTutorialMission03
40037 : Level_Tower_Universe_01
40038 : Level_Tower_Universe_01
40039 : Level_Tower_Element_Water_01
40040 : Level_Tower_Element_Water_01
40041 : Level_ActivityBoss02_Water
40042 : Level_ActivityBoss02_Water
40043 : Level_ActivityBoss02_Water
40044 : Level_HFDungeon01
40045 : Level_HFDungeon02
40046 : Level_Tower_Element_Water_01
40047 : Level_HFDungeon02
40048 : Level_HFDungeon01
40049 : Level_HFDungeon02
40050 : Level_HFDungeon_wq
40100 : Level_CycleDungeon01_Fire
40101 : Level_CycleDungeon01_Fire
40102 : Level_CycleDungeon01_Fire
40103 : Level_CycleDungeon01_Fire
40104 : Level_CycleDungeon01_Fire
40105 : Level_CycleDungeon01_Fire
40200 : Level_CycleDungeon01_Ice
40201 : Level_CycleDungeon01_Ice
40202 : Level_CycleDungeon01_Ice
40203 : Level_CycleDungeon01_Ice
40300 : Level_CycleDungeon01_Water
40301 : Level_CycleDungeon01_Water
40302 : Level_CycleDungeon01_Water
40303 : Level_CycleDungeon01_Water
40400 : Level_CycleDungeon01_Thunder
40401 : Level_CycleDungeon01_Thunder
40402 : Level_CycleDungeon01_Thunder
40403 : Level_CycleDungeon01_Thunder
40404 : Level_CycleDungeon01_Snow
40405 : Level_CycleDungeon01_Thunder
40406 : Level_CycleDungeon01_Thunder
40407 : Level_CycleDungeon01_Thunder
40408 : Level_CycleDungeon01_Snow
40409 : Level_CycleDungeon01_Snow
40410 : Level_CycleDungeon01_Snow
40500 : Level_CycleDungeon02_Morning
40501 : Level_CycleDungeon02_Morning
40502 : Level_CycleDungeon02_Morning
40503 : Level_CycleDungeon02_Dusk
40504 : Level_CycleDungeon02_Dusk
40505 : Level_CycleDungeon02_Night
40506 : Level_CycleDungeon02_Night
40507 : Level_CycleDungeon02_Normal
40508 : Level_CycleDungeon02_Morning
40509 : Level_CycleDungeon02_Dusk
40510 : Level_CycleDungeon02_Dusk
40511 : Level_CycleDungeon02_Night
40512 : Level_CycleDungeon02_Night
40513 : Level_CycleDungeon02_Normal
40514 : Level_CycleDungeon02_Morning
40515 : Level_CycleDungeon02_Morning
40516 : Level_CycleDungeon02_Night
40517 : Level_CycleDungeon02_Night
40600 : Level_CycleDungeon02_Morning
40601 : Level_CycleDungeon02_Morning
40602 : Level_CycleDungeon02_Dusk
40603 : Level_CycleDungeon02_Dusk
40604 : Level_CycleDungeon02_Night
40605 : Level_CycleDungeon02_Night
40606 : Level_CycleDungeon02_Normal
40607 : Level_CycleDungeon02_Dusk
40608 : Level_CycleDungeon02_Dusk
40609 : Level_CycleDungeon02_Night
40610 : Level_CycleDungeon02_Night
40611 : Level_CycleDungeon02_Normal
40612 : Level_CycleDungeon02_Dusk
40613 : Level_CycleDungeon02_Night
40614 : Level_CycleDungeon02_Night
40615 : Level_CycleDungeon02_Night
40616 : Level_Daily_Water
40617 : Level_CycleDungeon02_Chasm
40618 : Level_CycleDungeon02_Chasm
40619 : Level_CycleDungeon02_Chasm
40620 : Level_CycleDungeon02_Chasm
40700 : Level_CycleDungeon01_Rock
40701 : Level_CycleDungeon01_Rock
40702 : Level_CycleDungeon01_Rock
40703 : Level_CycleDungeon01_Rock
40800 : Level_CycleDungeon02_ThunderCave_Dq
40801 : Level_CycleDungeon02_ThunderCave_Dq
40802 : Level_CycleDungeon02_ThunderCave_Dq
40803 : Level_CycleDungeon02_ThunderCave_Dq
40804 : Level_CycleDungeon02_ThunderCave_Dq
40805 : Level_CycleDungeon01_Thunder
40806 : Level_CycleDungeon02_ThunderCave_Dq
40807 : Level_CycleDungeon02_ThunderCave_Dq
40808 : Level_CycleDungeon02_ThunderCave_Dq
40809 : Level_CycleDungeon02_ThunderCave_Dq
40900 : Level_CycleDungeon01_Rock
40901 : Level_CycleDungeon01_Rock
40902 : Level_CycleDungeon01_Rock
40903 : Level_CycleDungeon01_Rock
40950 : Level_CycleDungeon01_Thunder_Dq
40951 : Level_CycleDungeon01_Thunder_Dq
40952 : Level_CycleDungeon01_Thunder_Dq
40953 : Level_CycleDungeon01_Thunder_Dq
41000 : Level_Tower_01_Open
41001 : Level_Tower_01_Open
41002 : Level_Tower_01_Open
41003 : Level_Tower_01_Open
41004 : Level_Tower_01_Open
41005 : Level_Tower_01_Open
41006 : Level_Tower_01_Open
41007 : Level_Tower_01_Open
41008 : Level_Tower_01_Open
41009 : Level_Tower_01_Open
41010 : Level_Tower_01_Open
41011 : Level_Tower_01_Open
41012 : Level_Tower_01_Open
41013 : Level_Tower_01_Open
41014 : Level_Tower_01_Open
41015 : Level_Tower_01_Open
41016 : Level_Tower_01_Open
41017 : Level_Tower_01_Open
41018 : Level_Tower_01_Open
41019 : Level_Tower_01_Open
41020 : Level_Tower_01_Open
41021 : Level_Tower_01_Open
41022 : Level_Tower_01_Open
41023 : Level_Tower_01_Open
41024 : Level_Tower_01_Open
41025 : Level_Tower_01_Open
41026 : Level_Tower_01_Open
41027 : Level_Tower_01_Open
41028 : Level_Tower_01_Open
41029 : Level_Tower_01_Open
41030 : Level_Tower_01_Open
41031 : Level_Tower_01_Open
41032 : Level_Tower_01_Open
41033 : Level_Tower_01_Open
41034 : Level_Tower_01_Open
41035 : Level_Tower_01_Open
41036 : Level_Tower_01_Open
41037 : Level_Tower_01_Open
41038 : Level_Tower_01_Open
41039 : Level_Tower_01_Open
41040 : Level_Tower_01_Open
41041 : Level_Tower_01_Open
41042 : Level_Tower_01_Open
41043 : Level_Tower_01_Open
41044 : Level_Tower_01_Open
41045 : Level_Tower_01_Open
41046 : Level_Tower_01_Open
41047 : Level_Tower_01_Open
42001 : Level_PFDungeon02_Active01
42002 : Level_PFDungeon02_Active02
42003 : Level_PFDungeon02_Active07
42004 : Level_PFDungeon02_Active06
42005 : Level_PFDungeon02_Active05
42006 : Level_PFDungeon02_Active03
42007 : Level_PFDungeon02_Active04
42008 : Level_PFDungeon02_Active07
42009 : Level_PFDungeon02_Active02
42010 : Level_PFDungeon02_Active01
42011 : Level_PFDungeon02_Active05
42012 : Level_PFDungeon02_Active04
42013 : Level_PFDungeon02_Active07
42014 : Level_PFDungeon02_Active03
43001 : Level_FCdungeon_MistTrial
43002 : Level_FCdungeon_MistTrial
43003 : Level_FCdungeon_MistTrial
43004 : Level_FCdungeon_MistTrial
43005 : Level_FCdungeon_MistTrial
43006 : Level_FCdungeon_MistTrial
43007 : Level_FCdungeon_MistTrial
43008 : Level_FCdungeon_MistTrial
43009 : Level_FCdungeon_MistTrial
43010 : Level_FCdungeon_MistTrial
43011 : Level_FCdungeon_MistTrial
43012 : Level_FCdungeon_MistTrial
43013 : Level_FCdungeon_MistTrial
44001 : Level_PFDungeon01
44002 : Level_KaeyaTutorialMission02
44003 : PlotLevel_XiangLingLevel_Xyd
44004 : Level_Tower_Dusk_01
44005 : Level_Tower_Moon_01
44006 : Level_Tower_Element_Thunder_01
44007 : Level_Tower_Universe_01
44011 : Level_Tower_Moon_01
44012 : Level_Tower_Night_01
44013 : Level_Tower_Moon_01
45000 : Level_PFDungeon02_ReActive02
45001 : Level_PFDungeon02_ReActive01
45002 : Level_PFDungeon02_ReActive02
45003 : Level_PFDungeon02_ReActive03
45004 : Level_PFDungeon02_ReActive04
45005 : Level_PFDungeon02_ReActive05
45006 : Level_PFDungeon02_ReActive06
45007 : Level_PFDungeon02_ReActive05
45008 : Level_PFDungeon02_ReActive01
45009 : Level_PFDungeon02_ReActive02
45010 : Level_PFDungeon02_ReActive03
45011 : Level_PFDungeon02_ReActive04
45012 : Level_PFDungeon02_ReActive05
45013 : Level_PFDungeon02_Active08
45014 : Level_PFDungeon02_Active02
45015 : Level_PFDungeon02_Active03
45016 : Level_PFDungeon02_Active04
45017 : Level_PFDungeon02_Active08
45018 : Level_PFDungeon02_Active02
45019 : Level_PFDungeon02_Active03
45020 : Level_PFDungeon02_Active04
45050 : Level_CustomLevel_A_01
45051 : Level_CustomLevel_A_02
45052 : Level_CustomLevel_A_03
45053 : Level_CustomLevel_A_04
45054 : Level_CustomLevel_A_05
45055 : Level_CustomLevel_A_01
45056 : Level_CustomLevel_A_02
45057 : Level_CustomLevel_A_03
45058 : Level_CustomLevel_A_04
45059 : Level_CustomLevel_A_05
46001 : Level_Tower_Universe_01
46101 : Level_HFDungeon_Prison01
47001 : Level_OnmyoMaze_01
47002 : Level_OnmyoMaze_05
47003 : Level_OnmyoMaze_03
47004 : Level_OnmyoMaze_04
47005 : Level_OnmyoMaze_02
47006 : Level_OnmyoMaze_06
47007 : Level_OnmyoMaze_07
47008 : Level_OnmyoMaze_08
47009 : Level_OnmyoMaze_01
47010 : Level_OnmyoMaze_05
47011 : Level_OnmyoMaze_05
47012 : TestLevel_Dq_Rouge_SLL03
47013 : Level_OnmyoMaze_03
47014 : TestLevel_Dq_Rouge_SLL05
47015 : TestLevel_Dq_Rouge_SLL06
47016 : TestLevel_Dq_Rouge_LX01
47017 : TestLevel_Dq_Rouge_LX02
47018 : TestLevel_Dq_Rouge_LX03
47019 : TestLevel_Dq_Rouge_LX04
47020 : TestLevel_Dq_Rouge_LX05
50002 : TestLevel_Cold_LYX
50003 : TestLevel_Battle_CLX
50004 : Level_PowerCharge_Test
50005 : Level_ElementGameplay_Test
50006 : Level_KaeyaTutorialMission02
50007 : Level_PowerCharge_Test
50008 : Level_Function_BlackBox_Test
50009 : TestLevelGameplay_CX
50010 : TestLevelGameplay_LSA
50011 : Level_CycleDungeon01_Fire
50012 : Level_CycleDungeon01_Ice
50013 : Level_CycleDungeon01_Fire
50014 : Monster_StrategyTest_LTJ
50015 : LevelTestRooms
50016 : Level_CharactersPattern_Test
50017 : Level_Tower_Night_01
50018 : TestLevel_Protect_MC
50019 : TestLevel_Protect_MC
50020 : ClimbTest1
50021 : LevelTest_TestTest_WG
50022 : TestLevel_PFDungeon01_ZHT
50023 : Level_Tower_Dusk_01
50024 : Level_Tower_Dusk_01
50025 : Level_CycleDungeon02_Normal
50026 : Level_CycleDungeon02_Normal
50027 : Level_CycleDungeon02_Normal
50028 : TestLevel_CycleFire_YQT
50029 : Level_TdGameplay_Test
50030 : Level_PFDungeon02_Active01
50031 : Level_FCdungeon_DragonBoss
50032 : Level_PFDungeon02_Active03
50033 : Level_PFDungeon02_Active04
50034 : Level_PFDungeon02_Active05
50041 : TestLevel_SZ_LX
50042 : TestLevel_MD_YQT
50043 : TestLevel_MD_YQT
50044 : TestLevel_SZ_LX
50045 : Level_CycleDungeon_WindFlower
50046 : Level_Challenge_Thunder01
50047 : Level_CycleDungeon_WindFlower
50048 : Level_CycleDungeon_WindFlower
50049 : Level_CycleDungeon_WindFlower
50050 : Level_Tower_Morning_01
50051 : Level_FCdungeon_MistTrial
50052 : Level_Tower_01_Open
50053 : Level_LadyBoss01
50054 : Level_ActivityBoss02_Water
50055 : TestLevel_Dq_Rouge
50056 : TestLevel_Dq_Rouge_YQT01
50057 : TestLevel_Dq_Rouge_YQT02
50058 : Level_Dq_Void02
50059 : TestLevelSLL_SpringFestival
50060 : TestLevel_Dq_UGC_LX01
50061 : Level_Tower_Universe_01
50062 : TestLevel_Dq_UGC_LX02
50063 : TestLevel_Dq_UGC_LX03
50064 : TestLevel_Dq_UGC_LX04
50065 : TestLevel_Dq_UGC_LX05
50066 : TestLevel_FCdungeon_ShenheCloud01
50067 : TestLevel_WB_Z
50068 : Level_Tower_01_Open
50069 : TestLevel_ClimbBox
50070 : TestLevel_APA_ZQQ
50071 : TestWorld_APA_ZQQ
50072 : Level_TD_V3_Gameplay_Test
50073 : PerformanceTest_LevelStreaming
79999 : GcgCardTest

View File

@@ -0,0 +1,145 @@
11101: Dull Blade
11201: Silver Sword
11301: Cool Steel
11302: Harbinger of Dawn
11303: Traveler's Handy Sword
11304: Dark Iron Sword
11305: Fillet Blade
11306: Skyrider Sword
11401: Favonius Sword
11402: The Flute
11403: Sacrificial Sword
11404: Royal Longsword
11405: Lion's Roar
11406: Prototype Rancour
11407: Iron Sting
11408: Blackcliff Longsword
11409: The Black Sword
11410: The Alley Flash
11412: Sword of Descension
11413: Festering Desire
11414: Amenoma Kageuchi
11415: Cinnabar Spindle
11501: Aquila Favonia
11502: Skyward Blade
11503: Freedom-Sworn
11504: Summit Shaper
11505: Primordial Jade Cutter
11506: Primordial Jade Cutter
11507: One Side
11509: Mistsplitter Reforged
11510: Haran Geppaku Futsu
12101: Waster Greatsword
12201: Old Merc's Pal
12301: Ferrous Shadow
12302: Bloodtainted Greatsword
12303: White Iron Greatsword
12304: Quartz
12305: Debate Club
12306: Skyrider Greatsword
12401: Favonius Greatsword
12402: The Bell
12403: Sacrificial Greatsword
12404: Royal Greatsword
12405: Rainslasher
12406: Prototype Archaic
12407: Whiteblind
12408: Blackcliff Slasher
12409: Serpent Spine
12410: Lithic Blade
12411: Snow-Tombed Starsilver
12412: Luxurious Sea-Lord
12414: Katsuragikiri Nagamasa
12416: Akuoumaru
12501: Skyward Pride
12502: Wolf's Gravestone
12503: Song of Broken Pines
12504: The Unforged
12505: Primordial Jade Greatsword
12506: The Other Side
12510: Redhorn Stonethresher
13101: Beginner's Protector
13201: Iron Point
13301: White Tassel
13302: Halberd
13303: Black Tassel
13304: The Flagstaff
13401: Dragon's Bane
13402: Prototype Starglitter
13403: Crescent Pike
13404: Blackcliff Pole
13405: Deathmatch
13406: Lithic Spear
13407: Favonius Lance
13408: Royal Spear
13409: Dragonspine Spear
13414: Kitain Cross Spear
13415: "The Catch"
13416: Wavebreaker's Fin
13501: Staff of Homa
13502: Skyward Spine
13504: Vortex Vanquisher
13505: Primordial Jade Winged-Spear
13506: Deicide
13507: Calamity Queller
13509: Engulfing Lightning
14101: Apprentice's Notes
14201: Pocket Grimoire
14301: Magic Guide
14302: Thrilling Tales of Dragon Slayers
14303: Otherworldly Story
14304: Emerald Orb
14305: Twin Nephrite
14306: Amber Bead
14401: Favonius Codex
14402: The Widsith
14403: Sacrificial Fragments
14404: Royal Grimoire
14405: Solar Pearl
14406: Prototype Amber
14407: Mappa Mare
14408: Blackcliff Agate
14409: Eye of Perception
14410: Wine and Song
14412: Frostbearer
14413: Dodoco Tales
14414: Hakushin Ring
14415: Oathsworn Eye
14501: Skyward Atlas
14502: Lost Prayer to the Sacred Winds
14503: Lost Ballade
14504: Memory of Dust
14505: Primordial Jade Regalia
14506: Everlasting Moonglow
14509: Kagura's Verity
15101: Hunter's Bow
15201: Seasoned Hunter's Bow
15301: Raven Bow
15302: Sharpshooter's Oath
15303: Recurve Bow
15304: Slingshot
15305: Messenger
15306: Ebony Bow
15401: Favonius Warbow
15402: The Stringless
15403: Sacrificial Bow
15404: Royal Bow
15405: Rust
15406: Prototype Crescent
15407: Compound Bow
15408: Blackcliff Warbow
15409: The Viridescent Hunt
15410: Alley Hunter
15412: Mitternachts Waltz
15413: Windblume Ode
15414: Hamayumi
15415: Predator
15416: Mouun's Moon
15501: Skyward Harp
15502: Amos' Bow
15503: Elegy for the End
15504: Kunwu's Wyrmbane
15505: Primordial Jade Vista
15506: Mirror Breaker
15507: Polar Star
15509: Thundering Pulse

View File

@@ -0,0 +1,224 @@
28010101: 黄金蟹
28010102: 太阳蟹
28010103: 海蓝蟹
28010104: 将军蟹
28010105: 薄红蟹
28010106: 螃蟹
28020101: 雪狐
28020102: 红狐
28020103: 送礼雪狐
28020104: 送大礼雪狐
28020105: 雪狐
28020106: 红狐
28020201: 松鼠
28030101: 蓝翎鹭
28030102: 菫鹮
28030201: 茶羽鹰
28030202: 棕翎鹰
28030203: 石鸢
28030204: 白练鹰
28050101: 风晶蝶
28050102: 岩晶蝶
28050103: 冰晶蝶
28050104: 雷晶蝶
28050105: 珊瑚蝶
28050301: 吉光虫
28010201: 蓝角蜥
28010202: 红角蜥
28010203: 绿角蜥
28010204: 落日鳅鳅
28010205: 金鳅鳅
28010206: 晴天鳅鳅
28010207: 嗜髓蜥
28010301: 青蛙
28010302: 泥蛙
28010303: 蓝蛙
28010401: 藤纹陆鳗鳗
28010402: 深海鳗鳗
28010403: 赤鳍陆鳗鳗
28020301: 野林猪
28020302: 小野林猪
28020303: 雪猪
28020304: 「大雪猪王」
28020305: 冰冻雪猪
28020306: 雪猪
28020307: 野林猪
28020308: 冰冻雪猪
28020309: 「大雪猪王」
28030301: 白鸽
28030302: 璃冠鸽
28030303: 灰羽鸽
28030304: 赤胁鸽
28030305: 黑王鸽
28030306: 鸦
28030307: 白鸽
28030308: 璃冠鸽
28030309: 灰羽鸽
28030310: 赤胁鸽
28030311: 黑王鸽
28030401: 赤团雀
28030402: 金团雀
28030403: 雪团雀
28030404: 碧团雀
28030405: 金团雀
28030406: 赤团雀
28030407: 金团雀
28030408: 雪团雀
28030409: 碧团雀
28030501: 赤喙鸭
28030502: 翠冠鸭
28030503: 沉金鸭
28030504: 赤喙鸭
28040101: 黑背鲈鱼
28040102: 蓝鳍鲈鱼
28040103: 黄金鲈鱼
28040104: 黑背鲈鱼
28040105: 黑背鲈鱼
28040106: 蓝鳍鲈鱼
28040107: 黄金鲈鱼
28040108: 黑背鲈鱼
28040201: 花鳉
28040202: 琉璃花鳉
28040203: 甜甜花鳉
28040204: 蓝染花鳉
28040205: 擒霞客
28040206: 水晶宴
28040301: 肺棘鱼
28040302: 斗棘鱼
28040303: 鸩棘鱼
28040304: 赤魔王
28040305: 雪中君
28040401: 金赤假龙
28040402: 锖假龙
28040501: 流纹褐蝶鱼
28040502: 流纹京紫蝶鱼
28040503: 流纹茶蝶鱼
28040504: 长生仙
28040505: 雷鸣仙
28040506: 月光鳍
28040601: 炮鲀
28040602: 苦炮鲀
28040701: 迪芙妲鳐
28040702: 佛玛洛鳐
28040703: 幽浮鳐
28020401: 北地犬
28020402: 巡林犬
28020403: 柴犬
28020404: 黑背猎犬
28020405: 柴犬
28020406: 北地犬
28020407: 北地犬
28020408: 巡林犬
28020409: 柴犬
28020410: 黑背猎犬
28020501: 蓝宝石
28020502: 翠目猫
28020503: 灰雪猫
28020504: 北地猫
28020505: 虎纹猫
28020506: 警长猫
28020507: 黑猫
28020508: 蓝宝石
28020509: 灰雪猫
28020510: 翠目猫
28020511: 灰雪猫
28020512: 北地猫
28020513: 虎纹猫
28020601: 雪隐鼬
28020602: 红尾鼬
28020603: 靴子鼬
28020604: 面具鼬
28020605: 青雷鼬
28050201: 新手盗宝鼬
28050202: 藏金盗宝鼬
28050203: 大黄金盗宝鼬
28050211: 新手盗宝鼬
28050212: 藏金盗宝鼬
28050213: 大黄金盗宝鼬
28020701: 狐
28020702: 狐
28020801: 妖狸
28020802: 吉法师(test)
28020803: 妖狸
28020901: 武士狗分身test
28020902: 武士狗bosstest
28220301: 野林猪
28220303: 雪猪
28210101: 黄金蟹
28210102: 太阳蟹
28210103: 海蓝蟹
28210104: 将军蟹
28210105: 薄红蟹
28220101: 雪狐
28220102: 红狐
28220201: 松鼠
28220401: 北地犬
28220402: 巡林犬
28220403: 柴犬
28220404: 黑背猎犬
28220501: 蓝宝石
28220502: 翠目猫
28220503: 灰雪猫
28220504: 北地猫
28220505: 虎纹猫
28220506: 警长猫
28220601: 雪隐鼬
28220602: 红尾鼬
28220603: 靴子鼬
28220605: 青雷鼬
28220701: 狐
28220901: 武士狗test
28230101: 蓝翎鹭
28230102: 菫鹮
28250101: 风晶蝶
28250102: 岩晶蝶
28250103: 冰晶蝶
28250104: 雷晶蝶
28250105: 珊瑚蝶
28250301: 吉光虫
28210201: 蓝角蜥
28210202: 红角蜥
28210203: 绿角蜥
28210204: 落日鳅鳅
28210205: 金鳅鳅
28210206: 晴天鳅鳅
28210207: 嗜髓蜥
28210301: 青蛙
28210302: 泥蛙
28210303: 蓝蛙
28210401: 藤纹陆鳗鳗
28210402: 深海鳗鳗
28210403: 赤鳍陆鳗鳗
28230301: 白鸽
28230302: 璃冠鸽
28230303: 灰羽鸽
28230304: 赤胁鸽
28230305: 黑王鸽
28230306: 鸦
28230401: 赤团雀
28230402: 金团雀
28230403: 雪团雀
28230404: 碧团雀
28240201: 花鳉
28240202: 琉璃花鳉
28240203: 甜甜花鳉
28240204: 蓝染花鳉
28240205: 擒霞客
28240206: 水晶宴
28240301: 肺棘鱼
28240302: 斗棘鱼
28240303: 鸩棘鱼
28240304: 赤魔王
28240305: 雪中君
28240401: 金赤假龙
28240402: 锖假龙
28240501: 流纹褐蝶鱼
28240502: 流纹京紫蝶鱼
28240503: 流纹茶蝶鱼
28240504: 长生仙
28240505: 雷鸣仙
28240506: 月光鳍
28240601: 炮鲀
28240602: 苦炮鲀
28240701: 迪芙妲鳐
28240702: 佛玛洛鳐

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,42 @@
51: 行者之心
52: 勇士之心
53: 守护之心
54: 奇迹
55: 战狂
56: 武人
57: 教官
58: 赌徒
59: 流放者
60: 冒险家
61: 幸运儿
62: 学士
63: 游医
71: 冰风迷途的勇士
72: 平息鸣雷的尊者
73: 渡过烈火的贤人
74: 被怜爱的少女
75: 角斗士的终幕礼
76: 翠绿之影
77: 流浪大地的乐团
78: 冰之川与雪之砂
79: 如雷的盛怒
80: 炽烈的炎之魔女
81: 昔日宗室之仪
82: 染血的骑士道
83: 祭火之人
84: 祭水之人
85: 祭雷之人
86: 祭风之人
87: 祭冰之人
88: 悠古的磐岩
89: 逆飞的流星
90: 沉沦之心
91: 千岩牢固
92: 苍白之火
93: 追忆之注连
94: 绝缘之旗印
95: 华馆梦醒形骸记
96: 海染砗磲
97: 辰砂往生录
98: 来歆余响
99: 高天的风之主

View File

@@ -0,0 +1,66 @@
10001: 生命值
10002: 生命值百分比
10003: 攻击力
10004: 攻击力百分比
10005: 防御力
10006: 防御力百分比
10007: 元素充能效率
10008: 元素精通
10009: 火元素抗性
10010: 雷元素抗性
10011: 冰元素抗性
10012: 水元素抗性
10013: 风元素抗性
10014: 岩元素抗性
10015: 草元素抗性
12001: 攻击力
13001: 生命值
13002: 生命值百分比
13003: 攻击力
13004: 攻击力百分比
13005: 防御力
13006: 防御力百分比
13007: 暴击率
13008: 暴击伤害
13009: 治疗加成
13010: 元素精通
14001: 生命值
15001: 生命值
15002: 生命值百分比
15003: 攻击力
15004: 攻击力百分比
15005: 防御力
15006: 防御力百分比
15007: 元素精通
15008: 火元素伤害加成
15009: 雷元素伤害加成
15010: 冰元素伤害加成
15011: 水元素伤害加成
15012: 风元素伤害加成
15013: 岩元素伤害加成
15014: 草元素伤害加成
15015: 物理伤害加成
10990: 攻击力百分比
10980: 生命值百分比
10970: 防御力百分比
10960: 元素充能效率
10950: 元素精通
30990: 攻击力百分比
30980: 生命值百分比
30970: 防御力百分比
30960: 暴击率
30950: 暴击伤害
30940: 治疗加成
30930: 元素精通
50990: 攻击力百分比
50980: 生命值百分比
50970: 防御力百分比
50960: 火元素伤害加成
50950: 雷元素伤害加成
50940: 冰元素伤害加成
50930: 水元素伤害加成
50920: 风元素伤害加成
50910: 岩元素伤害加成
50900: 草元素伤害加成
50890: 物理伤害加成
50880: 元素精通

View File

@@ -0,0 +1,335 @@
101021: 生命值+24
101022: 生命值+30
201021: 生命值+50
201022: 生命值+61
201023: 生命值+72
301021: 生命值+100
301022: 生命值+115
301023: 生命值+129
301024: 生命值+143
401021: 生命值+167
401022: 生命值+191
401023: 生命值+215
401024: 生命值+239
501021: 生命值+209
501022: 生命值+239
501023: 生命值+269
501024: 生命值+299
101031: 生命值百分比+1.2%
101032: 生命值百分比+1.5%
201031: 生命值百分比+1.6%
201032: 生命值百分比+2.0%
201033: 生命值百分比+2.3%
301031: 生命值百分比+2.4%
301032: 生命值百分比+2.8%
301033: 生命值百分比+3.2%
301034: 生命值百分比+3.5%
401031: 生命值百分比+3.3%
401032: 生命值百分比+3.7%
401033: 生命值百分比+4.2%
401034: 生命值百分比+4.7%
501031: 生命值百分比+4.1%
501032: 生命值百分比+4.7%
501033: 生命值百分比+5.2%
501034: 生命值百分比+5.8%
101051: 攻击力+2
101052: 攻击力+2
201051: 攻击力+3
201052: 攻击力+4
201053: 攻击力+5
301051: 攻击力+7
301052: 攻击力+7
301053: 攻击力+8
301054: 攻击力+9
401051: 攻击力+11
401052: 攻击力+12
401053: 攻击力+14
401054: 攻击力+16
501051: 攻击力+14
501052: 攻击力+16
501053: 攻击力+18
501054: 攻击力+19
101061: 攻击力百分比+1.2%
101062: 攻击力百分比+1.5%
201061: 攻击力百分比+1.6%
201062: 攻击力百分比+2.0%
201063: 攻击力百分比+2.3%
301061: 攻击力百分比+2.4%
301062: 攻击力百分比+2.8%
301063: 攻击力百分比+3.2%
301064: 攻击力百分比+3.5%
401061: 攻击力百分比+3.3%
401062: 攻击力百分比+3.7%
401063: 攻击力百分比+4.2%
401064: 攻击力百分比+4.7%
501061: 攻击力百分比+4.1%
501062: 攻击力百分比+4.7%
501063: 攻击力百分比+5.2%
501064: 攻击力百分比+5.8%
101081: 防御力+2
101082: 防御力+2
201081: 防御力+4
201082: 防御力+5
201083: 防御力+6
301081: 防御力+8
301082: 防御力+9
301083: 防御力+10
301084: 防御力+11
401081: 防御力+13
401082: 防御力+15
401083: 防御力+17
401084: 防御力+19
501081: 防御力+16
501082: 防御力+19
501083: 防御力+21
501084: 防御力+23
101091: 防御力百分比+1.5%
101092: 防御力百分比+1.8%
201091: 防御力百分比+2.0%
201092: 防御力百分比+2.5%
201093: 防御力百分比+2.9%
301091: 防御力百分比+3.1%
301092: 防御力百分比+3.5%
301093: 防御力百分比+3.9%
301094: 防御力百分比+4.4%
401091: 防御力百分比+4.1%
401092: 防御力百分比+4.7%
401093: 防御力百分比+5.2%
401094: 防御力百分比+5.8%
501091: 防御力百分比+5.1%
501092: 防御力百分比+5.8%
501093: 防御力百分比+6.6%
501094: 防御力百分比+7.3%
101231: 元素充能效率+1.3%
101232: 元素充能效率+1.6%
201231: 元素充能效率+1.8%
201232: 元素充能效率+2.2%
201233: 元素充能效率+2.6%
301231: 元素充能效率+2.7%
301232: 元素充能效率+3.1%
301233: 元素充能效率+3.5%
301234: 元素充能效率+3.9%
401231: 元素充能效率+3.6%
401232: 元素充能效率+4.1%
401233: 元素充能效率+4.7%
401234: 元素充能效率+5.2%
501231: 元素充能效率+4.5%
501232: 元素充能效率+5.2%
501233: 元素充能效率+5.8%
501234: 元素充能效率+6.5%
101241: 元素精通+5
101242: 元素精通+6
201241: 元素精通+7
201242: 元素精通+8
201243: 元素精通+9
301241: 元素精通+10
301242: 元素精通+11
301243: 元素精通+13
301244: 元素精通+14
401241: 元素精通+13
401242: 元素精通+15
401243: 元素精通+17
401244: 元素精通+19
501241: 元素精通+16
501242: 元素精通+19
501243: 元素精通+21
501244: 元素精通+23
101201: 暴击率+0.8%
101202: 暴击率+1.0%
201201: 暴击率+1.1%
201202: 暴击率+1.3%
201203: 暴击率+1.5%
301201: 暴击率+1.6%
301202: 暴击率+1.9%
301203: 暴击率+2.1%
301204: 暴击率+2.3%
401201: 暴击率+2.2%
401202: 暴击率+2.5%
401203: 暴击率+2.8%
401204: 暴击率+3.1%
501201: 暴击率+2.7%
501202: 暴击率+3.1%
501203: 暴击率+3.5%
501204: 暴击率+3.9%
101221: 暴击伤害+1.5%
101222: 暴击伤害+1.9%
201221: 暴击伤害+2.2%
201222: 暴击伤害+2.6%
201223: 暴击伤害+3.1%
301221: 暴击伤害+3.3%
301222: 暴击伤害+3.7%
301223: 暴击伤害+4.2%
301224: 暴击伤害+4.7%
401221: 暴击伤害+4.3%
401222: 暴击伤害+5.0%
401223: 暴击伤害+5.6%
401224: 暴击伤害+6.2%
501221: 暴击伤害+5.4%
501222: 暴击伤害+6.2%
501223: 暴击伤害+7.0%
501224: 暴击伤害+7.8%
999001: 暴击伤害+350.0%
999002: 暴击率+100.0%
999003: 攻击力+233333
999004: 防御力+233333
998001: 生命值百分比+14.6%
998002: 攻击力百分比+14.6%
998003: 防御力百分比+18.2%
998004: 暴击率+9.7%
998005: 元素充能效率+16.2%
998006: 元素精通+58
998007: 暴击伤害+19.4%
995001: 生命值百分比+14.6%
995002: 攻击力百分比+14.6%
995003: 防御力百分比+18.2%
995004: 暴击率+9.7%
995005: 元素充能效率+16.2%
995006: 元素精通+58
995007: 暴击伤害+19.4%
997001: 生命值百分比+9.3%
997002: 攻击力百分比+9.3%
997003: 防御力百分比+11.7%
997004: 暴击率+6.2%
997005: 元素充能效率+10.4%
997006: 元素精通+37
997007: 暴击伤害+12.4%
996001: 生命值百分比+9.3%
996002: 攻击力百分比+9.3%
996003: 防御力百分比+11.7%
996004: 暴击率+6.2%
996005: 元素充能效率+10.4%
996006: 元素精通+37
996007: 暴击伤害+12.4%
994001: 暴击率+80.0%
993001: 暴击伤害+80.0%
992001: 护盾强效+80.0%
991001: 治疗加成+80.0%
990001: 受治疗加成+80.0%
989001: 冷却缩减+50.0%
988001: 移动速度百分比+30.0%
987001: 火元素伤害加成+80.0%
986001: 雷元素伤害加成+80.0%
985001: 水元素伤害加成+80.0%
984001: 草元素伤害加成+80.0%
983001: 风元素伤害加成+80.0%
982001: 岩元素伤害加成+80.0%
981001: 冰元素伤害加成+80.0%
980001: 物理伤害加成+80.0%
979001: 火元素抗性+80.0%
978001: 雷元素抗性+80.0%
977001: 水元素抗性+80.0%
976001: 草元素抗性+80.0%
975001: 风元素抗性+80.0%
974001: 岩元素抗性+80.0%
973001: 冰元素抗性+80.0%
972001: 物理抗性+80.0%
971001: 伤害增加+80.0%
970001: 受伤减免+80.0%
969001: 防御力+-500
968001: 元素精通+-300
951001: 生命值百分比+14.6%
951002: 攻击力百分比+14.6%
951003: 防御力百分比+18.2%
951004: 暴击率+9.7%
951005: 元素充能效率+16.2%
951006: 元素精通+58
951007: 暴击伤害+19.4%
952001: 生命值百分比+14.6%
952002: 攻击力百分比+14.6%
952003: 防御力百分比+18.2%
952004: 暴击率+9.7%
952005: 元素充能效率+16.2%
952006: 元素精通+58
952007: 暴击伤害+19.4%
953001: 生命值百分比+14.6%
953002: 攻击力百分比+14.6%
953003: 防御力百分比+18.2%
953004: 暴击率+9.7%
953005: 元素充能效率+16.2%
953006: 元素精通+58
953007: 暴击伤害+19.4%
956001: 生命值百分比+14.6%
956002: 攻击力百分比+14.6%
956003: 防御力百分比+18.2%
956004: 暴击率+9.7%
956005: 元素充能效率+16.2%
956006: 元素精通+58
956007: 暴击伤害+19.4%
941001: 生命值百分比+9.3%
941002: 攻击力百分比+9.3%
941003: 防御力百分比+11.7%
941004: 暴击率+6.2%
941005: 元素充能效率+10.4%
941006: 元素精通+37
941007: 暴击伤害+12.4%
942001: 生命值百分比+9.3%
942002: 攻击力百分比+9.3%
942003: 防御力百分比+11.7%
942004: 暴击率+6.2%
942005: 元素充能效率+10.4%
942006: 元素精通+37
942007: 暴击伤害+12.4%
943001: 生命值百分比+9.3%
943002: 攻击力百分比+9.3%
943003: 防御力百分比+11.7%
943004: 暴击率+6.2%
943005: 元素充能效率+10.4%
943006: 元素精通+37
943007: 暴击伤害+12.4%
946001: 生命值百分比+9.3%
946002: 攻击力百分比+9.3%
946003: 防御力百分比+11.7%
946004: 暴击率+6.2%
946005: 元素充能效率+10.4%
946006: 元素精通+37
946007: 暴击伤害+12.4%
961001: 生命值百分比+14.6%
961002: 攻击力百分比+14.6%
961003: 防御力百分比+18.2%
961004: 暴击率+9.7%
961005: 元素充能效率+16.2%
961006: 元素精通+58
961007: 暴击伤害+19.4%
961008: 生命值+747
961009: 攻击力+49
961010: 防御力+58
962001: 生命值百分比+14.6%
962002: 攻击力百分比+14.6%
962003: 防御力百分比+18.2%
962004: 暴击率+9.7%
962005: 元素充能效率+16.2%
962006: 元素精通+58
962007: 暴击伤害+19.4%
962008: 生命值+747
962009: 攻击力+49
962010: 防御力+58
963001: 生命值百分比+14.6%
963002: 攻击力百分比+14.6%
963003: 防御力百分比+18.2%
963004: 暴击率+9.7%
963005: 元素充能效率+16.2%
963006: 元素精通+58
963007: 暴击伤害+19.4%
963008: 生命值+747
963009: 攻击力+49
963010: 防御力+58
964001: 生命值百分比+14.6%
964002: 攻击力百分比+14.6%
964003: 防御力百分比+18.2%
964004: 暴击率+9.7%
964005: 元素充能效率+16.2%
964006: 元素精通+58
964007: 暴击伤害+19.4%
964008: 生命值+747
964009: 攻击力+49
964010: 防御力+58
965001: 生命值百分比+14.6%
965002: 攻击力百分比+14.6%
965003: 防御力百分比+18.2%
965004: 暴击率+9.7%
965005: 元素充能效率+16.2%
965006: 元素精通+58
965007: 暴击伤害+19.4%
965008: 生命值+747
965009: 攻击力+49
965010: 防御力+58

View File

@@ -0,0 +1,78 @@
10000001: 凯特
10000002: 神里绫华
10000003: 琴
10000005: 旅行者
10000006: 丽莎
10000007: 旅行者
10000014: 芭芭拉
10000015: 凯亚
10000016: 迪卢克
10000020: 雷泽
10000021: 安柏
10000022: 温迪
10000023: 香菱
10000024: 北斗
10000025: 行秋
10000026: 魈
10000027: 凝光
10000029: 可莉
10000030: 钟离
10000031: 菲谢尔
10000032: 班尼特
10000033: 达达利亚
10000034: 诺艾尔
10000035: 七七
10000036: 重云
10000037: 甘雨
10000038: 阿贝多
10000039: 迪奥娜
10000041: 莫娜
10000042: 刻晴
10000043: 砂糖
10000044: 辛焱
10000045: 罗莎莉亚
10000046: 胡桃
10000047: 枫原万叶
10000048: 烟绯
10000049: 宵宫
10000050: 托马
10000051: 优菈
10000052: 雷电将军
10000053: 早柚
10000054: 珊瑚宫心海
10000055: 五郎
10000056: 九条裟罗
10000057: 荒泷一斗
10000058: 八重神子
10000062: 埃洛伊
10000063: 申鹤
10000064: 云堇
10000066: 神里绫人
11000008: 队伍测试4号
11000009: 场景测试
11000010: 裸模1号
11000011: 裸男
11000013: 联机测试
11000017: 成男体型测试
11000018: 成女体型测试
11000019: 少女体型测试
11000025: 阿葵丽雅
11000026: 瑶瑶
11000027: 少女体型测试-二号机
11000028: 白盒少女
11000030: 大剑少女
11000031: 后武器测试A
11000032: 后武器测试B
11000033: 后武器测试C
11000034: 后武器测试D
11000035: 长枪成女
11000036: 单手剑成女测试
11000037: Rx白盒
11000038: 少男体型测试
11000039: 成男体型测试
11000040: 女主新普攻
11000041: 男主新普攻
11000042: 重云(测试)
11000043: 测试角色
11000044: 七七(测试)
11000045: 迪奥娜(测试)

View File

@@ -0,0 +1,194 @@
[
{
"Name": "最大生命值",
"ArgName": "maxhp",
"Percent": false,
"Tip": ""
},
{
"Name": "当前生命值",
"ArgName": "hp",
"Percent": false,
"Tip": ""
},
{
"Name": "当前攻击力",
"ArgName": "atk",
"Percent": false,
"Tip": ""
},
{
"Name": "基础攻击力",
"ArgName": "atkb",
"Percent": false,
"Tip": "这似乎不会重新计算攻击力可能只对buff类有效。"
},
{
"Name": "防御力",
"ArgName": "def",
"Percent": false,
"Tip": ""
},
{
"Name": "元素精通",
"ArgName": "em",
"Percent": false,
"Tip": ""
},
{
"Name": "元素充能效率",
"ArgName": "er",
"Percent": true,
"Tip": ""
},
{
"Name": "暴击率",
"ArgName": "crate",
"Percent": true,
"Tip": ""
},
{
"Name": "暴击伤害",
"ArgName": "cdmg",
"Percent": true,
"Tip": ""
},
{
"Name": "伤害加成",
"ArgName": "dmg",
"Percent": true,
"Tip": "这似乎在攻击后被重置"
},
{
"Name": "风元素伤害加成",
"ArgName": "eanemo",
"Percent": true,
"Tip": ""
},
{
"Name": "冰元素伤害加成",
"ArgName": "ecryo",
"Percent": true,
"Tip": ""
},
{
"Name": "草元素伤害加成",
"ArgName": "edendro",
"Percent": true,
"Tip": ""
},
{
"Name": "雷元素伤害加成",
"ArgName": "eelectro",
"Percent": true,
"Tip": ""
},
{
"Name": "土元素伤害加成",
"ArgName": "egeo",
"Percent": true,
"Tip": ""
},
{
"Name": "水元素伤害加成",
"ArgName": "ehydro",
"Percent": true,
"Tip": ""
},
{
"Name": "火元素伤害加成",
"ArgName": "epyro",
"Percent": true,
"Tip": ""
},
{
"Name": "物理伤害加成",
"ArgName": "ephys",
"Percent": true,
"Tip": ""
},
{
"Name": "伤害减免",
"ArgName": "resall",
"Percent": true,
"Tip": "这似乎在攻击后被重置"
},
{
"Name": "风元素伤害减免",
"ArgName": "resanemo",
"Percent": true,
"Tip": ""
},
{
"Name": "冰元素伤害减免",
"ArgName": "rescryo",
"Percent": true,
"Tip": ""
},
{
"Name": "草元素伤害减免",
"ArgName": "resdendro",
"Percent": true,
"Tip": ""
},
{
"Name": "雷元素伤害减免",
"ArgName": "reselectro",
"Percent": true,
"Tip": ""
},
{
"Name": "土元素伤害减免",
"ArgName": "resgeo",
"Percent": true,
"Tip": ""
},
{
"Name": "水元素伤害减免",
"ArgName": "reshydro",
"Percent": true,
"Tip": ""
},
{
"Name": "火元素伤害减免",
"ArgName": "respyro",
"Percent": true,
"Tip": ""
},
{
"Name": "物理伤害减免",
"ArgName": "resphys",
"Percent": true,
"Tip": ""
},
{
"Name": "冷却缩减",
"ArgName": "cdr",
"Percent": true,
"Tip": ""
},
{
"Name": "治疗加成",
"ArgName": "heal",
"Percent": true,
"Tip": ""
},
{
"Name": "受治疗加成",
"ArgName": "heali",
"Percent": true,
"Tip": ""
},
{
"Name": "护盾强效",
"ArgName": "shield",
"Percent": true,
"Tip": ""
},
{
"Name": "忽略防御",
"ArgName": "defi",
"Percent": true,
"Tip": ""
}
]

View File

@@ -0,0 +1,54 @@
无敌
/godmode
升到60级
/give 102 1880200
/heal
我全都要!
/giveall
我在哪?
/position
设置世界等级
/setworldlevel 8
设置羁绊等级
/setfetterlevel 1
清空背包
/clear all
清空武器
/clear wp
清空圣物
/clear art
清空材料
/clear mat
发送广播
/broadcast 大家好啊~
清空当前角色命之座(需重登)
/resetconst
清空全部角色命之座(需重登)
/resetconst all
一万纠缠
/give 223 10000
一万相遇
/give 224 10000
十万原石
/give 201 100000
十万摩拉
/give 202 100000
速速集合!
/tpall
拔线
/restart
私信
/say <player> <message>
进来吧你
/coop @targetId
自杀
/killcharacter
暗杀
/killcharacter <playerId>
都有谁在?
/list uid
重载服务配置
/reload
清场
/killall

View File

@@ -0,0 +1,35 @@
007: 初行者推荐祈愿
008: 奔行世间
009: 杯装之诗
010: 黎明巡礼
011: 南风之眷
012: 靖妖傩舞
013: 神铸赋形
015: 闪焰的驻足
016: 初行者推荐祈愿
017: 奔行世间
018: 闪焰的驻足
019: 杯装之诗
020: 神铸赋形
021: 神铸赋形
022: 奔行世间
023: 暂别冬都
024: 陵薮市朝
027: 深秘之息
028: 浮生孰来
031: 烟火之邀
032: 鱼龙灯昼
033: 赤团开时
036: 杯装之诗
037: 暂别冬都
040: 陵薮市朝
041: 浪涌之瞬
045: 叶落风随
048: 白鹭之庭
049: 焰色天河
052: 影寂天下人
053: 浮岳虹珠
061: 鬼门斗宴
065: 出尘入世
071: 华紫樱绯
076: 苍流踏花

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,330 @@
21010101: 丘丘人
21020101: 木盾丘丘暴徒
21020201: 火斧丘丘暴徒
21020202: 火斧丘丘暴徒
21020301: 岩盾丘丘暴徒
21020401: 丘丘霜铠王
21020501: 丘丘岩盔王
21020601: 冰盾丘丘暴徒
21020701: 雷斧丘丘暴徒
21020703: 雷斧丘丘暴徒
21020801: 丘丘雷兜王
20010101: 草史莱姆
20010201: 大型草史莱姆
20010202: 大型草史莱姆
20010301: 风史莱姆
20010401: 大型风史莱姆
20010403: 大型风史莱姆
29010101: 裂空的魔龙
29010102: 裂空的魔龙
29010103: 裂空的魔龙
29010104: 裂空的魔龙
29020101: 北风的王狼,奔狼的领主
29020102: 北风的王狼,奔狼的领主
29030103: 「公子」
29030106: 「公子」
29040101: 若陀龙王
29040102: 若陀龙王
29040103: 若陀龙王
29040104: 若陀龙王
29040111: 若陀龙王
29050102: 「女士」
29050104: 「女士」
29060202: 祸津御建鸣神命
29060203: 祸津御建鸣神命
20020101: 狂风之核
20040101: 无相之雷
20040102: 无相之雷
20040201: 无相之风
20040202: 无相之风
20040301: 无相之岩
20040302: 无相之岩
20040401: 无相之水
20040501: 无相之冰
20040601: 无相之火
20010501: 雷史莱姆
20010601: 大型雷史莱姆
20010604: 大型雷史莱姆
20010701: 变异雷史莱姆
20010702: 变异雷史莱姆
20010801: 冰史莱姆
20010802: 冰史莱姆
20010901: 大型冰史莱姆
20010902: 大型冰史莱姆
20010904: 大型冰史莱姆
20011001: 水史莱姆
20011101: 大型水史莱姆
20011103: 大型水史莱姆
20011601: 无相之水·召唤物
20011701: 无相之水·召唤物
20011801: 无相之水·召唤物
20011901: 无相之水·召唤物
20050101: 纯水精灵
20050102: 纯水精灵
20050201: 幻形豕兽·水
20050202: 幻形豕兽·水
20050203: 幻形豕兽·水
20050301: 幻形鹤·水
20050302: 幻形鹤·水
20050401: 幻形蟹·水
20050402: 幻形蟹·水
20050403: 幻形蟹·水
20050501: 幻形雀·水
20050502: 幻形雀·水
20050601: 幻形游禽·水
20050602: 幻形游禽·水
20050603: 幻形游禽·水
20050701: 幻形花鼠·水
20050702: 幻形花鼠·水
20050703: 幻形花鼠·水
20050801: 幻形蛙·水
20050802: 幻形蛙·水
20050901: 幻形飞鸢·水
20070101: 雷音权现
21010201: 打手丘丘人
21010301: 木盾丘丘人
21010401: 射手丘丘人
21010402: 射手丘丘人
21010501: 火箭丘丘人
21010502: 火箭丘丘人
21010601: 爆弹丘丘人
21010603: 爆弹丘丘人
21010701: 冲锋丘丘人
21010901: 冰箭丘丘人
21010902: 冰箭丘丘人
21011001: 雷箭丘丘人
21011002: 雷箭丘丘人
21011201: 岩盾丘丘人
21011301: 冰弹丘丘人
21011302: 冰弹丘丘人
21011401: 冰盾丘丘人
21011403: 冰盾丘丘人
21011501: 奇怪的丘丘人
21011601: 雷弹丘丘人
21011602: 雷弹丘丘人
20011201: 火史莱姆
20011202: 火史莱姆
20011301: 大型火史莱姆
20011304: 大型火史莱姆
20011401: 岩史莱姆
20011501: 大型岩史莱姆
20011502: 大型岩史莱姆
22010101: 火深渊法师
22010102: 火深渊法师
22010103: 火深渊法师
22010104: 火深渊法师
22010201: 冰深渊法师
22010202: 冰深渊法师
22010203: 冰深渊法师
22010204: 冰深渊法师
22010301: 水深渊法师
22010302: 水深渊法师
22010303: 水深渊法师
22010304: 水深渊法师
22010401: 雷深渊法师
22010403: 雷深渊法师
22010404: 雷深渊法师
22020101: 深渊使徒·激流
22020102: 深渊使徒·激流
22030101: 深渊咏者·紫电
22030102: 深渊咏者·紫电
22030201: 深渊咏者·渊火
22030202: 深渊咏者·渊火
22040101: 嗜岩·兽境幼兽
22040201: 嗜雷·兽境幼兽
22050101: 嗜岩·兽境猎犬
22050201: 嗜雷·兽境猎犬
22060101: 黄金王兽
22070101: 黯色空壳·旗令
22070102: 黯色空壳·旗令
22070201: 黯色空壳·破阵
22070202: 黯色空壳·破阵
22070301: 黯色空壳·近卫
22070302: 黯色空壳·近卫
22080101: 黑蛇骑士·斩风之剑
21030101: 水丘丘萨满
21030103: 水丘丘萨满
21030201: 草丘丘萨满
21030203: 草丘丘萨满
21030301: 风丘丘萨满
21030303: 风丘丘萨满
21030304: 风丘丘萨满
21030401: 岩丘丘萨满
21030402: 岩丘丘萨满
21030501: 冰丘丘萨满
21030601: 雷丘丘萨满
21030603: 雷丘丘萨满
24010101: 遗迹守卫
24010108: 遗迹守卫
24010109: 遗迹守卫
24010201: 遗迹猎者
24010301: 遗迹重机
24010303: 遗迹重机
24010401: 遗迹巨蛇
24020101: 遗迹巡弋者
24020102: 遗迹巡弋者
24020103: 遗迹巡弋者
24020201: 遗迹歼击者
24020202: 遗迹歼击者
24020203: 遗迹歼击者
24020301: 遗迹防卫者
24020302: 遗迹防卫者
24020303: 遗迹防卫者
24020401: 遗迹侦察者
24020402: 遗迹侦察者
24020403: 遗迹侦察者
24021101: 恒常机关阵列
24021102: 恒常机关阵列
23010101: 愚人众先遣队·冰铳重卫士
23010201: 愚人众先遣队·水铳重卫士
23010301: 愚人众先遣队·雷锤前锋军
23010401: 愚人众先遣队·岩使游击兵
23010501: 愚人众先遣队·风拳前锋军
23010601: 愚人众先遣队·火铳游击兵
23020101: 愚人众·火之债务处理人
23020102: 愚人众·火之债务处理人
23030101: 愚人众·雷萤术士
23030102: 愚人众·雷萤术士
23040101: 愚人众·冰萤术士
23040102: 愚人众·冰萤术士
23050101: 愚人众·藏镜仕女
25010101: 盗宝团·「溜溜」
25010102: 盗宝团·「溜溜」
25010103: 盗宝团·「溜溜」
25010104: 盗宝团·「溜溜」
25010105: 盗宝团·「溜溜」
25010106: 盗宝团·「溜溜」
25010201: 盗宝团·斥候
25010203: 盗宝团·斥候
25010204: 盗宝团·斥候
25010205: 盗宝团·斥候
25010206: 盗宝团·斥候
25010207: 盗宝团·斥候
25010208: 盗宝团·斥候
25010301: 盗宝团·火之药剂师
25010302: 盗宝团·火之药剂师
25010401: 盗宝团·水之药剂师
25010501: 盗宝团·雷之药剂师
25010601: 盗宝团·冰之药剂师
25010701: 盗宝团·杂工
25020101: 盗宝团·「怪鸟」
25020102: 盗宝团·「怪鸟」
25020201: 盗宝团·神射手
25020204: 盗宝团·神射手
25030101: 盗宝团·「卡门」
25030102: 盗宝团·「卡门」
25030103: 盗宝团·「卡门」
25030201: 盗宝团·掘墓者
25030301: 盗宝团·海上男儿
25040101: 盗宝团·「大姐头」
25040102: 盗宝团·「大姐头」
25040103: 盗宝团·「大姐头」
25050101: 千岩军士兵
25050201: 千岩军教头
25050301: 幕府足轻
25050401: 幕府足轻头
25050402: 幕府足轻头
25050501: 珊瑚宫众
25050502: 珊瑚宫众
25060101: 盗宝团·拳术家
25060102: 盗宝团·拳术家
25070101: 盗宝团·粉碎者
25070201: 盗宝团·「瓦伦斯坦」
25070202: 盗宝团·「瓦伦斯坦」
25080101: 野伏·阵刀番
25080201: 野伏·火付番
25080202: 野伏·火付番
25080301: 野伏·机巧番
25080401: 寄骑武士
25080402: 寄骑武士
25090101: 魔偶剑鬼
25090102: 魔偶剑鬼
25090103: 魔偶剑鬼
25090104: 魔偶剑鬼
25090201: 魔偶剑鬼·孤风
25090301: 魔偶剑鬼·霜驰
25090401: 魔偶剑鬼·凶面
25100101: 海乱鬼·雷腾
25100301: 落武者·咒雷
25100201: 海乱鬼·炎威
25100401: 落武者·祟炎
25100102: 海乱鬼·雷腾
25100302: 落武者·咒雷
26010101: 冰霜骗骗花
26010102: 冰霜骗骗花
26010103: 冰霜骗骗花
26010104: 冰霜骗骗花
26010201: 炽热骗骗花
26010301: 电气骗骗花
26020101: 急冻树
26020102: 急冻树
26020201: 爆炎树
26030101: 幼岩龙蜥
26040101: 岩龙蜥
26040102: 岩龙蜥
26040103: 岩龙蜥
26040104: 岩龙蜥
26050101: 古岩龙蜥
26050201: 古岩龙蜥
26050301: 古岩龙蜥
26050401: 古岩龙蜥
26050501: 古岩龙蜥
26050601: 深海龙蜥·原种
26050901: 深海龙蜥·原种
26050701: 深海龙蜥·啮冰
26051001: 深海龙蜥·啮冰
26050702: 深海龙蜥·啮冰
26050801: 深海龙蜥·吞雷
26051101: 深海龙蜥·吞雷
26050802: 深海龙蜥·吞雷
26060101: 雷萤
26060201: 水萤
26060301: 冰萤
26080101: 跋掣
26090101: 浮游水蕈兽
20060101: 水飘浮灵
20060201: 岩飘浮灵
20060301: 风飘浮灵
20060401: 冰飘浮灵
20060501: 雷飘浮灵
20060601: 火飘浮灵
21010102: 丘丘人
21020102: 木盾丘丘暴徒
21020203: 火斧丘丘暴徒
21020702: 雷斧丘丘暴徒
21020302: 岩盾丘丘暴徒
21020402: 丘丘霜铠王
21020502: 丘丘岩盔王
21020802: 丘丘雷兜王
21020602: 冰盾丘丘暴徒
20010302: 风史莱姆
20010402: 大型风史莱姆
20010502: 雷史莱姆
20010602: 大型雷史莱姆
20010703: 变异雷史莱姆
20010803: 冰史莱姆
20010903: 大型冰史莱姆
20011002: 水史莱姆
20011102: 大型水史莱姆
21010302: 木盾丘丘人
21010702: 冲锋丘丘人
21011202: 岩盾丘丘人
21011402: 冰盾丘丘人
20011203: 火史莱姆
20011302: 大型火史莱姆
20011402: 岩史莱姆
20011503: 大型岩史莱姆
22010105: 火深渊法师
22010205: 冰深渊法师
22010305: 水深渊法师
22010402: 雷深渊法师
21030102: 水丘丘萨满
21030202: 草丘丘萨满
21030302: 风丘丘萨满
21030403: 岩丘丘萨满
21030502: 冰丘丘萨满
21030602: 雷丘丘萨满
24010102: 遗迹守卫
24010202: 遗迹猎者
24010302: 遗迹重机
26040105: 岩龙蜥

File diff suppressed because it is too large Load Diff

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