mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-01-28 03:13:12 +08:00
Merge branch 'development' into stable
This commit is contained in:
commit
610d24d84c
10
.github/workflows/build.yml
vendored
10
.github/workflows/build.yml
vendored
@ -25,6 +25,16 @@ jobs:
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: '17'
|
||||
- name: Cache gradle files
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
~/.gradle/wrapper
|
||||
./.gradle/loom-cache
|
||||
key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle', 'gradle.properties', '**/*.accesswidener') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-gradle-
|
||||
- name: Run Gradle
|
||||
run: ./gradlew && ./gradlew jar
|
||||
- name: Upload build
|
||||
|
36
.gitignore
vendored
36
.gitignore
vendored
@ -17,7 +17,7 @@
|
||||
*.nar
|
||||
*.ear
|
||||
*.zip
|
||||
*.tar.gz
|
||||
*.gz
|
||||
*.rar
|
||||
|
||||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||
@ -52,20 +52,30 @@ tmp/
|
||||
.vscode
|
||||
|
||||
# Grasscutter
|
||||
resources/
|
||||
logs/
|
||||
plugins/
|
||||
data/AbilityEmbryos.json
|
||||
data/OpenConfig.json
|
||||
/resources
|
||||
/logs
|
||||
/plugins
|
||||
/data
|
||||
/keys
|
||||
/language
|
||||
/languages
|
||||
/src/generated
|
||||
|
||||
/*.jar
|
||||
/*.sh
|
||||
|
||||
GM Handbook.txt
|
||||
config.json
|
||||
mitmdump.exe
|
||||
*.jar
|
||||
!lib/*.jar
|
||||
mongod.exe
|
||||
/src/generated/
|
||||
/*.sh
|
||||
language/
|
||||
languages/
|
||||
|
||||
gacha-mapping.js
|
||||
data/gacha_mappings.js
|
||||
mappings.js
|
||||
BuildConfig.java
|
||||
|
||||
# lombok
|
||||
/.apt_generated/
|
||||
|
||||
# macOS
|
||||
.DS_Store
|
||||
data/hk4e/announcement/
|
||||
|
60
README.md
60
README.md
@ -67,7 +67,7 @@ EN | [中文](README_zh-CN.md)
|
||||
|
||||
2. Set network proxy to `127.0.0.1:8080` or the proxy port you specified.
|
||||
|
||||
**you can also use `start.cmd` to start servers and proxy daemons automatically**
|
||||
**you can also use `start.cmd` to start servers and proxy daemons automatically, but you have to set up JAVA_HOME enviroment**
|
||||
|
||||
### Building
|
||||
|
||||
@ -98,61 +98,11 @@ chmod +x gradlew
|
||||
|
||||
You can find the output jar in the root of the project folder.
|
||||
|
||||
## Commands
|
||||
|
||||
You might want to use this command (`java -jar grasscutter.jar -handbook`) in a cmd that is in the grasscutter folder. It will create a handbook file (GM Handbook.txt) where you can find the item IDs for stuff you want.
|
||||
|
||||
You may want to use this command (`java -jar grasscutter.jar -gachamap`) to generate a mapping file for the gacha record subsystem. The file will be generated to `GRASSCUTTER_RESOURCE/gcstatic` folder. Otherwise you may only see number IDs in the gacha record page.
|
||||
|
||||
There is a dummy user named "Server" in every player's friends list that you can message to use commands. Commands also work in other chat rooms, such as private/team chats. to run commands ingame, you need to add prefix `/` or `!` such as `/pos`
|
||||
|
||||
| Commands | Usage | Permission node | Availability | description | Alias |
|
||||
| -------------- | ------------------------------------------------- | ------------------------- | ------------ | ------------------------------------------------------------ | ----------------------------------------------- |
|
||||
| account | account <create\|delete> \<username> [UID] | | Server only | Creates an account with the specified username and the in-game UID for that account. The UID will be auto generated if not set. | |
|
||||
| broadcast | broadcast \<message> | server.broadcast | Both side | Sends a message to all the players. | b |
|
||||
| coop | coop \<playerId> \<target playerId> | server.coop | Both side | Forces someone to join the world of others. | |
|
||||
| changescene | changescene \<scene id> | player.changescene | Client only | Switch scenes by scene ID. | scene |
|
||||
| clear | clear <all\|wp\|art\|mat> [UID] | player.clearinv | Client only | Deletes all unequipped and unlocked level 0 artifacts(art)/weapons(wp)/material(all) or all, including 5-star rarity ones from your inventory. | clear |
|
||||
| drop | drop <itemID\|itemName> [amount] | server.drop | Client only | Drops an item around you. | `d` `dropitem` |
|
||||
| enterdungeon | enterdungeon \<dungeon id> | player.enterdungeon | Client only | Enter a dungeon by dungeon ID | |
|
||||
| give | give [player] <itemId\|itemName> [amount] [level] [finement] | player.give | Both side | Gives item(s) to you or the specified player. (finement option only weapon.) | `g` `item` `giveitem` |
|
||||
| givechar | givechar \<uid> \<avatarId> | player.givechar | Both side | Gives the player a specified character. | givec |
|
||||
| giveart | giveart [player] \<artifactId> \<mainPropId> [\<appendPropId>[,\<times>]]... [level] | player.giveart | Both side | Gives the player a specified artifact. | gart |
|
||||
| giveall | giveall [uid] [amount] | player.giveall | Both side | Gives all items. | givea |
|
||||
| godmode | godmode [uid] | player.godmode | Client only | Prevents you from taking damage. | |
|
||||
| heal | heal | player.heal | Client only | Heals all characters in your current team. | h |
|
||||
| help | help [command] | | Both side | Sends the help message or shows information about a specified command. | |
|
||||
| kick | kick \<player> | server.kick | Both side | Kicks the specified player from the server. (WIP) | k |
|
||||
| killall | killall [playerUid] [sceneId] | server.killall | Both side | Kills all entities in the current scene or specified scene of the corresponding player. | |
|
||||
| list | list | | Both side | Lists online players. | |
|
||||
| permission | permission <add\|remove> \<UID> \<permission> | * | Both side | Grants or removes a permission for a user. | |
|
||||
| position | position | | Client only | Sends your current coordinates. | pos |
|
||||
| reload | reload | server.reload | Both side | Reloads the server config | |
|
||||
| resetconst | resetconst [all] | player.resetconstellation | Client only | Resets the constellation level on your currently selected character, will need to relog after using the command to see any changes. | resetconstellation |
|
||||
| restart | | | Both side | Restarts the current session | |
|
||||
| say | say \<player> \<message> | server.sendmessage | Both side | Sends a message to a player as the server | `sendservmsg` `sendservermessage` `sendmessage` |
|
||||
| setfetterlevel | setfetterlevel \<level> | player.setfetterlevel | Client only | Sets the friendship level for your currently selected character | setfetterlvl |
|
||||
| setstats | setstats \<stat> \<value> | player.setstats | Client only | Sets a stat for your currently selected character | stats |
|
||||
| setworldlevel | setworldlevel \<level> | player.setworldlevel | Client only | Sets your world level (Relog to see proper effects) | setworldlvl |
|
||||
| spawn | spawn \<entityId> [amount] [level(monster only)] | server.spawn | Client only | Spawns some entities around you | |
|
||||
| stop | stop | server.stop | Both side | Stops the server | |
|
||||
| talent | talent \<talentID> \<value> | player.settalent | Client only | Sets talent level for your currently selected character | |
|
||||
| teleport | teleport [@playerUid] \<x> \<y> \<z> [sceneId] | player.teleport | Both side | Change the player's position. | tp |
|
||||
| tpall | | player.tpall | Client only | Teleports all players in your world to your position | |
|
||||
| weather | weather \<weatherID> \<climateID> | player.weather | Client only | Changes the weather | w |
|
||||
|
||||
### Bonus
|
||||
|
||||
- Teleporting
|
||||
- When you want to teleport somewhere, use the in-game marking function on the map.
|
||||
- Mark a point on the map using the fish hook marking (the last one.)
|
||||
- (Optional) rename the map marker to a number to override the default Y coordinate (height, default 300.)
|
||||
- Confirm and close the map.
|
||||
- You will see your character falling from a very high destination, exact location that you marked.
|
||||
### Commands have moved to the [wiki](https://github.com/Grasscutters/Grasscutter/wiki/Commands)!
|
||||
|
||||
# Quick Troubleshooting
|
||||
|
||||
* If compiling wasn't successful, please check your JDK installation (JDK 17 and validated JDK's bin PATH variable)
|
||||
* My client doesn't connect, doesn't login, 4206, etc... - Your proxy daemon setup is most likely *the issue*, if you are using Fiddler, make sure it running on another port other than 8888
|
||||
|
||||
* Startup sequence: Mongodb > Grasscutter > Proxy daemon (mitmdump, fiddler, etc.) > Game
|
||||
* My client doesn't connect, doesn't login, 4206, etc... - Mostly your proxy daemon setup is *the issue*, if using
|
||||
Fiddler make sure it running on another port except 8888
|
||||
* Startup sequence: MongoDB > Grasscutter > Proxy daemon (mitmdump, fiddler, etc.) > Game
|
||||
|
@ -123,11 +123,13 @@ chmod +x gradlew
|
||||
| godmode | godmode [uid] | player.godmode | 仅客户端 | 保护你不受到任何伤害(依然会被击退) | |
|
||||
| heal | heal | player.heal | 仅客户端 | 治疗队伍中所有角色 | h |
|
||||
| help | help [命令] | | 均可使用 | 显示帮助或展示指定命令的帮助 | |
|
||||
| join | join [多个角色id] | player.join | 仅客户端 | 强制入队角色,跟config.json中的avatarLimits有关(跟队内角色数量上限有关)。用法:`join 10000021 10000022` | |
|
||||
| kick | kick \<uid> | server.kick | 均可使用 | 从服务器中踢出指定玩家 (WIP) | k |
|
||||
| killall | killall [uid] [场景ID] | server.killall | 均可使用 | 杀死指定玩家世界中所在或指定场景的全部生物 | |
|
||||
| list | list | | 均可使用 | 列出在线玩家 | |
|
||||
| permission | permission <add\|remove> <UID> <权限节点> | * | 均可使用 | 添加或移除玩家的权限 | |
|
||||
| position | position | | 仅客户端 | 获取当前坐标 | pos |
|
||||
| remove | remove [多个角色在队伍中的序号] | player.remove | 仅客户端 | 强制将某个角色从当前队伍中移除。例如`remove 1 2`表示将1号和2号角色移除 | |
|
||||
| reload | reload | server.reload | 均可使用 | 重载服务器配置 | |
|
||||
| resetconst | resetconst [all] | player.resetconstellation | 仅客户端 | 重置当前角色的命座,重新登录即可生效 | resetconstellation |
|
||||
| restart | restart | | 均可使用 | 重启服务端 | |
|
||||
@ -140,6 +142,7 @@ chmod +x gradlew
|
||||
| talent | talent <天赋ID> <等级> | player.settalent | 仅客户端 | 设置当前角色的天赋等级 | |
|
||||
| teleport | teleport [@playerUid] \<x> \<y> \<z> [sceneId] | player.teleport | 均可使用 | 传送玩家到指定坐标 | tp |
|
||||
| tpall | | player.tpall | 仅客户端 | 传送多人世界中所有的玩家到自身地点 | |
|
||||
| unlocktower | | player.tower | 仅客户端 | 解锁深渊全部层 | ut |
|
||||
| weather | weather <天气ID> <气候ID> | player.weather | 仅客户端 | 改变天气 | w |
|
||||
|
||||
### 额外功能
|
||||
|
25
build.gradle
25
build.gradle
@ -43,7 +43,8 @@ sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
|
||||
group = 'xyz.grasscutters'
|
||||
version = '1.1.0'
|
||||
version = '1.1.2-dev'
|
||||
|
||||
|
||||
sourceCompatibility = 17
|
||||
targetCompatibility = 17
|
||||
@ -86,6 +87,9 @@ dependencies {
|
||||
implementation group: 'org.luaj', name: 'luaj-jse', version: '3.0.1'
|
||||
|
||||
protobuf files('proto/')
|
||||
|
||||
compileOnly 'org.projectlombok:lombok:1.18.24'
|
||||
annotationProcessor 'org.projectlombok:lombok:1.18.24'
|
||||
}
|
||||
|
||||
configurations.all {
|
||||
@ -97,12 +101,14 @@ application {
|
||||
mainClassName = 'emu.grasscutter.Grasscutter'
|
||||
}
|
||||
|
||||
|
||||
jar {
|
||||
manifest {
|
||||
attributes 'Main-Class': 'emu.grasscutter.Grasscutter'
|
||||
}
|
||||
|
||||
jar.baseName = 'grasscutter'
|
||||
jar.archiveName = project.hasProperty('jarFilename') ? "${jarFilename}.${extension}" : archiveName
|
||||
|
||||
from {
|
||||
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
|
||||
@ -226,6 +232,23 @@ javadoc {
|
||||
}
|
||||
}
|
||||
|
||||
task injectGitHash {
|
||||
def gitCommitHash = {
|
||||
try {
|
||||
return 'git rev-parse --verify --short HEAD'.execute().text.trim()
|
||||
} catch (e) {
|
||||
return "GIT_NOT_FOUND"
|
||||
}
|
||||
}
|
||||
new File(projectDir, "src/main/java/emu/grasscutter/BuildConfig.java").text = """
|
||||
package emu.grasscutter;
|
||||
public class BuildConfig {
|
||||
public static final String VERSION = \"${version}\";
|
||||
public static final String GIT_HASH = \"${gitCommitHash()}\";
|
||||
}
|
||||
"""
|
||||
}
|
||||
|
||||
processResources {
|
||||
dependsOn "generateProto"
|
||||
}
|
||||
|
@ -1,49 +0,0 @@
|
||||
[
|
||||
{
|
||||
"gachaType": 200,
|
||||
"scheduleId": 893,
|
||||
"bannerType": "STANDARD",
|
||||
"prefabPath": "GachaShowPanel_A022",
|
||||
"previewPrefabPath": "UI_Tab_GachaShowPanel_A022",
|
||||
"titlePath": "UI_GACHA_SHOW_PANEL_A022_TITLE",
|
||||
"costItem": 224,
|
||||
"beginTime": 0,
|
||||
"endTime": 1924992000,
|
||||
"sortId": 1000,
|
||||
"rateUpItems1": [],
|
||||
"rateUpItems2": []
|
||||
},
|
||||
{
|
||||
"gachaType": 301,
|
||||
"scheduleId": 903,
|
||||
"bannerType": "EVENT",
|
||||
"prefabPath": "GachaShowPanel_A079",
|
||||
"previewPrefabPath": "UI_Tab_GachaShowPanel_A079",
|
||||
"titlePath": "UI_GACHA_SHOW_PANEL_A048_TITLE",
|
||||
"costItem": 223,
|
||||
"beginTime": 0,
|
||||
"endTime": 1924992000,
|
||||
"sortId": 9998,
|
||||
"maxItemType": 1,
|
||||
"rateUpItems1": [1002],
|
||||
"rateUpItems2": [1053, 1020, 1045]
|
||||
},
|
||||
{
|
||||
"gachaType": 302,
|
||||
"scheduleId": 913,
|
||||
"bannerType": "WEAPON",
|
||||
"prefabPath": "GachaShowPanel_A080",
|
||||
"previewPrefabPath": "UI_Tab_GachaShowPanel_A080",
|
||||
"titlePath": "UI_GACHA_SHOW_PANEL_A021_TITLE",
|
||||
"costItem": 223,
|
||||
"beginTime": 0,
|
||||
"endTime": 1924992000,
|
||||
"sortId": 9997,
|
||||
"minItemType": 2,
|
||||
"eventChance": 75,
|
||||
"softPity": 80,
|
||||
"hardPity": 80,
|
||||
"rateUpItems1": [11509, 12504],
|
||||
"rateUpItems2": [11401, 12402, 13407, 14401, 15401]
|
||||
}
|
||||
]
|
@ -1,29 +0,0 @@
|
||||
{
|
||||
"list": [
|
||||
{
|
||||
"ann_id": 1,
|
||||
"title": "<b>Welcome to Grasscutter!</b>",
|
||||
"subtitle": "<b>Welcome</b>",
|
||||
"banner": "https://uploadstatic-sea.mihoyo.com/announcement/2020/09/17/f4aa42d505822805eebf4a55d72a78d8_2755691727027973637.jpg",
|
||||
"content": "Hi there!<br>First of all, welcome to Grasscutter. If you have any issues, please let us know so that Lawnmower can help you! Check out our:<br><div><p style=\"white-space: pre-wrap;\"><strong>¡þDiscord¡þ</strong></p><p style=\"white-space: pre-wrap;\"><a href=\"https://discord.gg/T5vZU6UyeG\">https://discord.gg/T5vZU6UyeG</a></p><p style=\"white-space: pre-wrap;\"><strong>¡þGitHub¡þ</strong></p><p style=\"white-space: pre-wrap;\"><a href=\"https://github.com/Grasscutters/Grasscutter\">https://github.com/Grasscutters/Grasscutter</a></p></div>",
|
||||
"lang": "es-es"
|
||||
},
|
||||
{
|
||||
"ann_id": 2,
|
||||
"title": "<b>How to use announcements</b>",
|
||||
"subtitle": "<b>How to use</b>",
|
||||
"banner": "https://uploadstatic-sea.mihoyo.com/announcement/2020/09/17/f4aa42d505822805eebf4a55d72a78d8_2755691727027973637.jpg",
|
||||
"content": "<strong>Tips<br></strong>>How to use announcements<br><br>>Announcement content can use HTML<br><br>>The specific content of the announcement is stored in the program directory<code>data/GameAnnouncement.json</code>, while<code>GameAnnouncementList.json</code> stores the announcement list data<br><br><strong>How to use</strong><br>>In <code>GameAnnouncement</code><table><thead><thead><tr><th>Parameters</th><th>Description</th></thead></thead><thbody><thead><tr><th>ann_Id</th><th>Announcement unique id</th></thead><thead><tr><th>title</th><th>Show at the top of the content</th></thead><thead><tr><th>subtitle</th><th>title shown on the left</th></thead><thead><tr><th>banner</th><th>Display between content and title</th></thead><thead><tr><th>content</th><th>as u see</th></thead><thead><tr><th>lang</th><th>display language</th></thead><thead><tr><th>total</th><th>Announcement quantity</th></thead></thbody></table><br><br>>In <code>GameAnnouncementList</code><br>If you want to add an annouement, please add the list data in the announcement type corresponding to GameAnnouncementList, and finally add the announcement content in GameAnnouncement",
|
||||
"lang": "es-es"
|
||||
},
|
||||
{
|
||||
"ann_id": 3,
|
||||
"title": "<b>ÕâÊǻ¹«¸æ--This is the event announcement</b>",
|
||||
"subtitle": "<b>Welcome</b>",
|
||||
"banner":"https://uploadstatic-sea.mihoyo.com/announcement/2020/09/22/7d85f19b152d218e73224d7c138a0fd0_5818585260283672899.jpg",
|
||||
"content": "Welcome",
|
||||
"lang": "es-es"
|
||||
}
|
||||
],
|
||||
"total": 3
|
||||
}
|
@ -1,119 +0,0 @@
|
||||
{
|
||||
"t": "System.currentTimeMillis()",
|
||||
"list": [
|
||||
{
|
||||
"list": [
|
||||
{
|
||||
"ann_id": 1,
|
||||
"title": "<b>Welcome to Grasscutter!</b>",
|
||||
"subtitle": "<b>Welcome</b>",
|
||||
"banner": "https://uploadstatic-sea.mihoyo.com/announcement/2020/09/22/7d85f19b152d218e73224d7c138a0fd0_5818585260283672899.jpg",
|
||||
"content": "",
|
||||
"type_label": "Juego",
|
||||
"tag_label": "1",
|
||||
"tag_icon": "https://uploadstatic-sea.mihoyo.com/announcement/2020/03/05/a2588f1a51faee9fa8dfe9aead649dd6_7237021399135895303.png",
|
||||
"login_alert": 1,
|
||||
"lang": "es-es",
|
||||
"start_time": "2020-09-25 04:05:30",
|
||||
"end_time": "2023-10-30 11:00:00",
|
||||
"type": 2,
|
||||
"remind": 0,
|
||||
"alert": 0,
|
||||
"tag_start_time": "2000-01-02 15:04:05",
|
||||
"tag_end_time": "2030-01-02 15:04:05",
|
||||
"remind_ver": 1,
|
||||
"has_content": true,
|
||||
"extra_remind": 0
|
||||
},
|
||||
{
|
||||
"ann_id": 2,
|
||||
"title": "<b>这是游戏公告 -- This is the game announcement</b>",
|
||||
"subtitle": "<b>This is the game announcement</b>",
|
||||
"banner": "https://uploadstatic-sea.mihoyo.com/announcement/2020/09/17/85b7163c95745a76d49b3d163d893592_6487108933004985049.jpg",
|
||||
"content": "",
|
||||
"type_label": "Juego",
|
||||
"tag_label": "1",
|
||||
"tag_icon": "https://uploadstatic-sea.mihoyo.com/announcement/2020/03/05/a2588f1a51faee9fa8dfe9aead649dd6_7237021399135895303.png",
|
||||
"login_alert": 1,
|
||||
"lang": "es-es",
|
||||
"start_time": "2020-09-25 15:12:09",
|
||||
"end_time": "2030-10-30 11:00:00",
|
||||
"type": 2,
|
||||
"remind": 0,
|
||||
"alert": 0,
|
||||
"tag_start_time": "2000-01-02 08:04:05",
|
||||
"tag_end_time": "2030-01-02 08:04:05",
|
||||
"remind_ver": 1,
|
||||
"has_content": true,
|
||||
"extra_remind": 0
|
||||
}
|
||||
],
|
||||
"type_id": 2,
|
||||
"type_label": "Juego"
|
||||
},
|
||||
{
|
||||
"list": [
|
||||
{
|
||||
"ann_id": 3,
|
||||
"title": "<b>这是活动公告--This is the event announcement</b>",
|
||||
"subtitle": "<b>Welcome</b>",
|
||||
"banner": "https://uploadstatic-sea.mihoyo.com/announcement/2020/09/22/7d85f19b152d218e73224d7c138a0fd0_5818585260283672899.jpg",
|
||||
"content": "",
|
||||
"type_label": "Eventos",
|
||||
"tag_label": "1",
|
||||
"tag_icon": "https://uploadstatic-sea.mihoyo.com/announcement/2020/03/05/a2588f1a51faee9fa8dfe9aead649dd6_7237021399135895303.png",
|
||||
"login_alert": 1,
|
||||
"lang": "es-es",
|
||||
"start_time": "2020-09-25 04:05:30",
|
||||
"end_time": "2022-05-02 00:51:00",
|
||||
"type": 2,
|
||||
"remind": 0,
|
||||
"alert": 0,
|
||||
"tag_start_time": "2000-01-02 15:04:05",
|
||||
"tag_end_time": "2022-05-02 00:51:00",
|
||||
"remind_ver": 1,
|
||||
"has_content": true,
|
||||
"extra_remind": 0
|
||||
}
|
||||
],
|
||||
"type_id": 1,
|
||||
"type_label": "Eventos"
|
||||
},
|
||||
{
|
||||
"list": [
|
||||
{}
|
||||
],
|
||||
"type_id": 3,
|
||||
"type_label": "Others"
|
||||
}
|
||||
],
|
||||
"total": 3,
|
||||
"type_list": [
|
||||
{
|
||||
"id": 2,
|
||||
"name": "游戏系统公告",
|
||||
"mi18n_name": "Juego"
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"name": "活动公告",
|
||||
"mi18n_name": "Eventos"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "其他",
|
||||
"mi18n_name": "Others"
|
||||
}
|
||||
],
|
||||
"alert": true,
|
||||
"alert_id": 2,
|
||||
"timezone": -5,
|
||||
"pic_list": [
|
||||
],
|
||||
"pic_total": 0,
|
||||
"pic_type_list": [
|
||||
],
|
||||
"pic_alert": false,
|
||||
"pic_alert_id": 0,
|
||||
"static_sign": ""
|
||||
}
|
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
||||
ElIKBm9zX3VzYRIHQW1lcmljYRoKREVWX1BVQkxJQyIzaHR0cHM6Ly9vc3VzYWRpc3BhdGNoLnl1YW5zaGVuLmNvbS9xdWVyeV9jdXJfcmVnaW9uElMKB29zX2V1cm8SBkV1cm9wZRoKREVWX1BVQkxJQyI0aHR0cHM6Ly9vc2V1cm9kaXNwYXRjaC55dWFuc2hlbi5jb20vcXVlcnlfY3VyX3JlZ2lvbhJRCgdvc19hc2lhEgRBc2lhGgpERVZfUFVCTElDIjRodHRwczovL29zYXNpYWRpc3BhdGNoLnl1YW5zaGVuLmNvbS9xdWVyeV9jdXJfcmVnaW9uElUKBm9zX2NodBIKVFcsIEhLLCBNTxoKREVWX1BVQkxJQyIzaHR0cHM6Ly9vc2NodGRpc3BhdGNoLnl1YW5zaGVuLmNvbS9xdWVyeV9jdXJfcmVnaW9uKpwQRWMyYhAAAABbrAvbhfIRHfaSCN24qQyVAAgAAMs68ZiMdPfEj41O2wBCYqGiC/WdovvJvaw4t3/m1zIYDrt3/ftK9GKFb7C+2E8FmaHqOnwjJYBg2wI1sXpGmuSxkeWw8Avr36wlNtQjhXNV9zoNKstuZYuheyLlpbPRbYZ3UA6/BzTVsjIhjR1lcqFrigQnpV6MgRR9KqxakCaffK6qIzMlodx4ZPKlqseQhCiyVAvLWQSRqCRcZipzotXsmgLQbpDFtRzhgukXPjfW5dAlzMwswPuu7ZQsf1AKipI34dVQLu6gtXthGgbjn89h/79VR5AokLCPGqIV7/2s+gHfykrjDtyp5rwCcmGQqwV3gHy5LGrHl8Zm12jNd7Qcng51ydqtX4xzet6J2iMF6Dw5nPd/hTyxn+i3Ttk6fop9rbCq3iNgEw3+0cSDal1I1ThYdVnMgPhZgQkZc5/SpTaR+8vfDzRIKbSSrrPSEgLnQvWZOOugXhNdyuiaBc8rJveno7vvktmnhDUF3xWi6osj75j2KghRrdHfDR3Zuh4COrGZDRBSKHft2AvfrxaMT9O8hPzzzYk0U2iicVCDlNP/8wqaT9Vqt1kHmruLxqh377iyp0mxKfNt0+SNRzLyRoyvOar/z3AT6TU9LRoCFrkcJpVsUN+2MVeT52PfMbv5O/Nw9sqsFDlofCJJ/EknY0wDc+tNarYOhDM67/ojn/p6W3ZPBJxb2wcF1TOh9dpAeZdCGJusqhMIj5lpoW8nENTFhkEgMUv2Lh5Z6WpeOAKAu9eDpBMhlRNCccDaNYUgo6TdVDtWxtPrS3NRYqtkvb2I2SEFP0apht954oKdG3ncxyOgHRUkwgtxbCMAngzWo9+VWV3H3OlqeEOv7DdO2o0y95EvlHYb/qtosXPI2jC+6FPa+yl4xmLqcENRTUrU23dsmX3SyBEmZvML4dNeyC53B+mh7DUFtPFJFndxj2tGO9mTSDgy8eCmKG90AiJOMoxaLB2HpnDXN1sTiIcd3WraiE6ZCt4E54hKXvXHPyN52CHkxq1y/TeXHEq4X4MyHyDSRLHmzVs9pnwHM0ZLthKFNyvGfTvjiYokAWtNEuh74syt+m6Wietb6JvgibnnDj6uFKI3BbH4GUT9blsnMgug323bJ6bFvV4iESvz1fNnnUSokWQy5+fWzxPDohULgFzhDCpwov78Bp0E3t6DXSWnrUdNqpLbYKmXO1Hdbn+QH4B90p85UB1V5eSZgxPpUvZbIO4GPScil8K+dkDLdsFa1zypWNmlUN0Ns5H/iuzMuJql2QFYz+SnV1R1T+qywwqCNP9oswcLiAR3XnSacs52vd3PI9+0PZuoF6tVMWlvutsQ34IFZaAwIkdKigZcHumLBt/0KyFASBfN674n8FnHrHOQHU6oCeXkQA9kC8MtkvMb7fOLdzbTsD6SVojzZ64i9mDXxF+iLR9o52OxjIFzwLGRy/ivT/aAnHLZ3AsbnvslDjlQl2ADBFvf7xjmvFu0xlfK58TUpfVEkScFFapWJyKVybB4CRz1wKKz6n/a9581LpCVOWRsJa5p+j0zYcS2PfhmRf3RzwsDHeBjEVlIARbhxNKvmjdZyIidSdMMcsJHDRLE3bvo9kKfag0vRVKmuPLPc9FrACsz3vlkApcVQvzieHWoiP+foEvfj9+7Ti2tLfKdzVkMUmugZiZ46+7PKvIciiiuBPlyld0CCPTtTFHUOMO5dUfrUblX8K3awWiaNQFBS0J3iK08t1bgWfLhsKzsS32fRWugaqecwO9Rji9oHn+UuN8Nz9SgNxodroq9q7y/KHFxbqjCl62g25HN9zUa/s5wnIRwVAiWgTuOe3qGqjwp5m/GR8YVSSK/8mV9EL4AaF8d1uifdVA6wWSH1e/1UB8vcdU83P8ne3u1ho+Y/57WB7KnQaGaiD/108+wiAxNqMb2ex8on01VxdLKV1makXV3gzsvWaRevW8t/K11ZwYfo9g+guWADsA0JO0jWooiaupq1kNWrEheBdSRXBO7Jnb+56cTjPGwLpp7ZOHe/bSCJ4MGzPF3lK66LXhVo+rxvNjhoKVRjhGYxN4T8+AiRo3r+1KwdIGSrtODp3ri3JWAy6Eajp1Ukp9GaCbHSJFnYml84nKew7zLLe//ExQpjd4QAjMTvnbm+Ff6a1jf69QEVo0I33gI7/buwqgjiuvjeL6EYaMolKrKlHZHf/HwWbFbdID8T9aoyZJuCUd6YHaMPRAS6n5nvTwkRLlJ/f6wgyypUGZ22Bb1qGIb9SoPgSgIJkifUoewQW2EexqfoAsHXJVABLy+jp/SC4xzHZOSh42zU1k80HIgrnSOmu6T56F6gqy4Y2cZuZU8LXbO/01u8ifEz8yaXfEFSFdxE0TWl92OLKFtJZr9nNOBQQQr5FDGf6zB1/0CziG/5+PrUDgG3irzho6+7wXkc2CpxlBKOLWdjs3V/Lab6cURz1QZY4HYgUkJtm4U5OKUeO2+murlhC7SrnwyUtGrsD8NbCmI4SRHKPoeLBJQO/m3dRze5Ltr8N9IS7/ukPeOYe1O2agrmhH/JjYfz/l8Gmq8PGY+oavYp8I+2yKvGLD9kCxEgKcTeRh9AW/xPTLGsacrGKQCY+M76DfyLKxCZDiDY9xkBIKchxsMsn7FqZvRMMyJBHbqa3AKQyAN73NCSuFF5f1qDjARU/xqJFhOaKoR64c78oqh1GqOqEFbfNQIRw6WeFCGyW6v6p10uLdR7KXnR7+wub9aG992MpIBk0+gru74yO/WcA0vLdDEQIBwc+M0lmLB53ylsPtde3nliaC5ROHR1IS4LO8Q+3o0BHMr0my0bqFwwCAvZVXOFBHxXyUgrrmUTnZYVSQXNV6+MALBmmRU5yOzhhyHoEdj9YHZeyPpZkYc6DkJWCRYbFfmczNIs133KB9rlfug40w/hHa8pXyRyLaKQUMIUYEvt3Y4AQ==
|
295
install.sh
Normal file
295
install.sh
Normal file
@ -0,0 +1,295 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Grasscutter install script for linux
|
||||
# Made by TurtleIdiot
|
||||
|
||||
# Stops the installer if any command has a non-zero exit status
|
||||
set -e
|
||||
|
||||
# Checks for root
|
||||
if [ $EUID != 0 ]; then
|
||||
echo "Please run the installer as root!"
|
||||
exit
|
||||
fi
|
||||
|
||||
is_command() {
|
||||
# Checks if a given command is available
|
||||
local check_command="$1"
|
||||
command -v "${check_command}" > /dev/null 2>&1
|
||||
}
|
||||
|
||||
# IP validation
|
||||
valid_ip() {
|
||||
local ip=$1
|
||||
local stat=1
|
||||
|
||||
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
|
||||
OIFS=$IFS
|
||||
IFS="."
|
||||
ip=($ip)
|
||||
IFS=$OIFS
|
||||
[[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \
|
||||
&& ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
|
||||
stat=$?
|
||||
fi
|
||||
return $stat
|
||||
}
|
||||
|
||||
# Checks for supported installer(s) (only apt-get and pacman right now, might add more in the future)
|
||||
if is_command apt-get ; then
|
||||
echo -e "Supported package manager found (apt-get)\n"
|
||||
|
||||
GC_DEPS="mongodb openjdk-17-jre"
|
||||
INSTALLER_DEPS="wget openssl unzip git"
|
||||
SYSTEM="deb" # Debian-based (debian, ubuntu)
|
||||
elif is_command pacman ; then
|
||||
echo -e "supported package manager found (pacman)\n"
|
||||
|
||||
GC_DEPS="jre17-openjdk"
|
||||
INSTALLER_DEPS="curl wget openssl unzip git base-devel" # curl is still a dependency here in order to successfully build mongodb
|
||||
SYSTEM="arch" # Arch for the elitists :P
|
||||
else
|
||||
echo "No supported package manager found"
|
||||
exit
|
||||
fi
|
||||
|
||||
BRANCH="stable" # Stable by default
|
||||
# Allows choice between stable and dev branch
|
||||
echo "Please select the branch you wish to install"
|
||||
echo -e "!!NOTE!!: stable is the recommended branch.\nDo *NOT* use development unless you have a reason to and know what you're doing"
|
||||
select branch in "stable" "development" ; do
|
||||
case $branch in
|
||||
stable )
|
||||
BRANCH="stable"
|
||||
break;;
|
||||
development )
|
||||
BRANCH="development"
|
||||
break;;
|
||||
esac
|
||||
done
|
||||
|
||||
echo "The following packages will have to be installed in order to INSTALL grasscutter:"
|
||||
echo -e "$INSTALLER_DEPS \n"
|
||||
echo "The following packages will have to be installed to RUN grasscutter:"
|
||||
echo -e "$GC_DEPS \n"
|
||||
|
||||
echo "Do you wish to proceed and install grasscutter?"
|
||||
select yn in "Yes" "No" ; do
|
||||
case $yn in
|
||||
Yes ) break;;
|
||||
No ) exit;;
|
||||
esac
|
||||
done
|
||||
|
||||
echo "Updating package cache..."
|
||||
case $SYSTEM in # More concise than if
|
||||
deb ) apt-get update -qq;;
|
||||
arch ) pacman -Syy;;
|
||||
esac
|
||||
|
||||
# Starts installing dependencies
|
||||
echo "Installing setup dependencies..."
|
||||
case $SYSTEM in # These are one-liners anyways
|
||||
deb ) apt-get -qq install $INSTALLER_DEPS -y;;
|
||||
arch ) pacman -Sq --noconfirm --needed $INSTALLER_DEPS > /dev/null;;
|
||||
esac
|
||||
echo "Done"
|
||||
|
||||
echo "Installing grasscutter dependencies..."
|
||||
case $SYSTEM in
|
||||
deb) apt-get -qq install $GC_DEPS -y > /dev/null;;
|
||||
arch ) pacman -Sq --noconfirm --needed $GC_DEPS > /dev/null;;
|
||||
esac
|
||||
# *sighs* here we go...
|
||||
INST_ARCH_MONGO="no"
|
||||
if [ $SYSTEM = "arch" ]; then
|
||||
echo -e "-=-=-=-=-=--- !! IMPORTANT !! ---=-=-=-=-=-\n"
|
||||
echo -e " Due to licensing issues with mongodb,\n it is no longer available on the official arch repositiries."
|
||||
echo -e " In order to install mongodb,\n it needs to be fetched from the Arch User Repository.\n"
|
||||
echo -e " As this script is running as root,\n a temporary user will need to be created to run makepkg."
|
||||
echo -e " The temporary user will be deleted once\n makepkg has finished.\n"
|
||||
echo -e " This will be handled automatically.\n"
|
||||
echo -e "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n"
|
||||
echo -e "!!NOTE!!: Only select \"Skip\" if mongodb is already installed on this system"
|
||||
echo "Do you want to continue?"
|
||||
select yn in "Yes" "Skip" "No" ; do
|
||||
case $yn in
|
||||
Yes )
|
||||
INST_ARCH_MONGO="yes"
|
||||
break;;
|
||||
No ) exit;;
|
||||
Skip )
|
||||
INST_ARCH_MONGO="no"
|
||||
break;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
if [ $INST_ARCH_MONGO = "yes" ]; then
|
||||
DIR=$(pwd)
|
||||
# Make temp user
|
||||
echo "Creating temporary user..."
|
||||
TEMPUSER="gctempuser"
|
||||
TEMPHOME="/home/$TEMPUSER"
|
||||
useradd -m $TEMPUSER
|
||||
cd $TEMPHOME
|
||||
|
||||
# Do the actual makepkg shenanigans
|
||||
echo "Building mongodb... (this will take a moment)"
|
||||
su $TEMPUSER<<EOF
|
||||
mkdir temp
|
||||
cd temp
|
||||
git clone https://aur.archlinux.org/mongodb-bin.git -q
|
||||
cd mongodb-bin
|
||||
makepkg -s > /dev/null
|
||||
exit
|
||||
EOF
|
||||
mv "$(find -name "mongodb-bin*.pkg.tar.zst" -type f)" ./mongodb-bin.pkg.tar.zst
|
||||
cd $DIR
|
||||
|
||||
# Snatch the file to current working directory
|
||||
mv "$TEMPHOME/mongodb-bin.pkg.tar.zst" ./mongodb-bin.pkg.tar.zst
|
||||
chown root ./mongodb-bin.pkg.tar.zst
|
||||
chgrp root ./mongodb-bin.pkg.tar.zst
|
||||
chmod 775 ./mongodb-bin.pkg.tar.zst
|
||||
|
||||
echo "Installing mongodb..."
|
||||
pacman -U mongodb-bin.pkg.tar.zst --noconfirm > /dev/null
|
||||
rm mongodb-bin.pkg.tar.zst
|
||||
|
||||
echo "Starting mongodb..."
|
||||
systemctl enable mongodb
|
||||
systemctl start mongodb
|
||||
|
||||
echo "Removing temporary account..."
|
||||
userdel -r $TEMPUSER
|
||||
fi
|
||||
echo "Done"
|
||||
|
||||
echo "Getting grasscutter..."
|
||||
|
||||
# Download and rename jar
|
||||
wget -q --show-progress "https://nightly.link/Grasscutters/Grasscutter/workflows/build/$BRANCH/Grasscutter.zip"
|
||||
echo "unzipping"
|
||||
unzip -qq Grasscutter.zip
|
||||
mv $(find -name "grasscutter*.jar" -type f) grasscutter.jar
|
||||
|
||||
# Download resources
|
||||
echo "Downloading resources... (this will take a moment)"
|
||||
wget -q --show-progress https://github.com/Koko-boya/Grasscutter_Resources/archive/refs/heads/main.zip -O resources.zip
|
||||
echo "Extracting..."
|
||||
unzip -qq resources.zip
|
||||
mv ./Grasscutter_Resources-main/Resources ./resources
|
||||
|
||||
# Here we do a sparse checkout to only pull /data and /keys
|
||||
echo "Downloading keys and data..."
|
||||
mkdir repo
|
||||
cd repo
|
||||
git init -q
|
||||
git remote add origin https://github.com/Grasscutters/Grasscutter.git
|
||||
git fetch -q
|
||||
git config core.sparseCheckout true
|
||||
echo "data/" >> .git/info/sparse-checkout
|
||||
echo "keys/" >> .git/info/sparse-checkout
|
||||
git pull origin stable -q
|
||||
cd ../
|
||||
mv ./repo/data ./data
|
||||
mv ./repo/keys ./keys
|
||||
|
||||
# Generate handbook/config
|
||||
echo "Please enter language when *NEXT* prompted (press enter/return to continue to language select)"
|
||||
read
|
||||
java -jar grasscutter.jar -handbook
|
||||
|
||||
# Prompt IP address for config.json and for generating new keystore.p12 file
|
||||
echo "Please enter the IP address that will be used to connect to the server"
|
||||
echo "This can be a local or a public IP address"
|
||||
echo "This IP address will be used to generate SSL certificates so it is important it is correct"
|
||||
|
||||
while : ; do
|
||||
read -p "Enter IP: " SERVER_IP
|
||||
if valid_ip $SERVER_IP; then
|
||||
break;
|
||||
else
|
||||
echo "Invalid IP address. Try again."
|
||||
fi
|
||||
done
|
||||
|
||||
# Replaces "127.0.0.1" with given IP
|
||||
sed -i "s/127.0.0.1/$SERVER_IP/g" config.json
|
||||
|
||||
# Generates new keystore.p12 with the server's IP address
|
||||
# This is done to prevent a "Connection Timed Out" error from appearing
|
||||
# after clicking to enter the door in the main menu/title screen
|
||||
# This issue only exists when connecting to a server *other* than localhost
|
||||
# since the default keystore.p12 has only been made for localhost
|
||||
|
||||
mkdir certs
|
||||
cd certs
|
||||
echo "Generating CA key and certificate pair..."
|
||||
openssl req -x509 -nodes -days 25202 -newkey rsa:2048 -subj "/C=GB/ST=Essex/L=London/O=Grasscutters/OU=Grasscutters/CN=$SERVER_IP" -keyout CAkey.key -out CAcert.crt
|
||||
echo "Generating SSL key and certificate pair..."
|
||||
|
||||
openssl genpkey -out ssl.key -algorithm rsa
|
||||
|
||||
# Creates a conf file in order to generate a csr
|
||||
cat > csr.conf <<EOF
|
||||
[ req ]
|
||||
default_bits = 2048
|
||||
prompt = no
|
||||
default_md = sha256
|
||||
req_extensions = req_ext
|
||||
distinguished_name = dn
|
||||
|
||||
[ dn ]
|
||||
C = GB
|
||||
ST = Essex
|
||||
L = London
|
||||
O = Grasscutters
|
||||
OU = Grasscutters
|
||||
CN = $SERVER_IP
|
||||
|
||||
[ req_ext ]
|
||||
subjectAltName = @alt_names
|
||||
|
||||
[ alt_names ]
|
||||
IP.1 = $SERVER_IP
|
||||
EOF
|
||||
|
||||
# Creates csr using key and conf
|
||||
openssl req -new -key ssl.key -out ssl.csr -config csr.conf
|
||||
|
||||
# Creates conf to finalise creation of certificate
|
||||
cat > cert.conf <<EOF
|
||||
|
||||
authorityKeyIdentifier=keyid,issuer
|
||||
basicConstraints=CA:FALSE
|
||||
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, keyAgreement, dataEncipherment
|
||||
subjectAltName = @alt_names
|
||||
|
||||
[alt_names]
|
||||
IP.1 = $SERVER_IP
|
||||
|
||||
EOF
|
||||
|
||||
# Creates ssl cert
|
||||
openssl x509 -req -in ssl.csr -CA CAcert.crt -CAkey CAkey.key -CAcreateserial -out ssl.crt -days 25202 -sha256 -extfile cert.conf
|
||||
|
||||
echo "Generating keystore.p12 from key and certificate..."
|
||||
openssl pkcs12 -export -out keystore.p12 -inkey ssl.key -in ssl.crt -certfile CAcert.crt -passout pass:123456
|
||||
|
||||
cd ../
|
||||
mv ./certs/keystore.p12 ./keystore.p12
|
||||
echo "Done"
|
||||
|
||||
echo -e "Asking Noelle to clean up...\n"
|
||||
rm -rf Grasscutter.zip resources.zip ./certs ./Grasscutter_Resources-main ./repo
|
||||
echo -e "All done!\n"
|
||||
echo -e "You can now uninstall the following packages if you wish:\n$INSTALLER_DEPS"
|
||||
echo -e "-=-=-=-=-=--- !! IMPORTANT !! ---=-=-=-=-=-\n"
|
||||
echo "Please make sure that ports 443 and 22102 are OPEN (both tcp and udp)"
|
||||
echo -e "In order to run the server, run the following command:\nsudo java -jar grasscutter.jar"
|
||||
echo "You must run it using sudo as port 443 is a privileged port"
|
||||
echo "To play, use the IP you provided earlier ($SERVER_IP) via GrassClipper or Fiddler"
|
||||
|
||||
exit
|
Binary file not shown.
49
plugin-schema.json
Normal file
49
plugin-schema.json
Normal file
@ -0,0 +1,49 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "JSON schema for a Grasscutter Plugin",
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"definitions": {
|
||||
"plugin-name": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-Za-z\\d_.-]+$"
|
||||
}
|
||||
},
|
||||
"required": [ "name", "description", "mainClass" ],
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "The unique name of plugin.",
|
||||
"$ref": "#/definitions/plugin-name"
|
||||
},
|
||||
"mainClass": {
|
||||
"description": "The plugin's initial class file.",
|
||||
"type": "string",
|
||||
"pattern": "^(?!org\\.bukkit\\.)([a-zA-Z_$][a-zA-Z\\d_$]*\\.)*[a-zA-Z_$][a-zA-Z\\d_$]*$"
|
||||
},
|
||||
"version": {
|
||||
"description": "A plugin revision identifier.",
|
||||
"type": [ "string", "number" ]
|
||||
},
|
||||
"description": {
|
||||
"description": "Human readable plugin summary.",
|
||||
"type": "string"
|
||||
},
|
||||
"author": {
|
||||
"description": "The plugin author.",
|
||||
"type": "string"
|
||||
},
|
||||
"authors": {
|
||||
"description": "The plugin contributors.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"website": {
|
||||
"title": "Website",
|
||||
"description": "The URL to the plugin's site",
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
}
|
||||
}
|
||||
}
|
11
proto/AbilityActionGenerateElemBall.proto
Normal file
11
proto/AbilityActionGenerateElemBall.proto
Normal file
@ -0,0 +1,11 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "Vector.proto";
|
||||
|
||||
message AbilityActionGenerateElemBall {
|
||||
Vector pos = 1;
|
||||
Vector rot = 2;
|
||||
uint32 room_id = 3;
|
||||
}
|
@ -2,8 +2,8 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AbilityString.proto";
|
||||
import "AbilityScalarValueEntry.proto";
|
||||
import "AbilityString.proto";
|
||||
|
||||
message AbilityAppliedAbility {
|
||||
AbilityString ability_name = 1;
|
||||
|
@ -2,8 +2,8 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AbilityString.proto";
|
||||
import "AbilityAttachedModifier.proto";
|
||||
import "AbilityString.proto";
|
||||
import "ModifierDurability.proto";
|
||||
|
||||
message AbilityAppliedModifier {
|
||||
|
@ -2,7 +2,6 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message AbilityAttachedModifier {
|
||||
bool is_invalid = 1;
|
||||
uint32 owner_entity_id = 2;
|
||||
|
@ -4,15 +4,10 @@ option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AbilityControlBlock.proto";
|
||||
|
||||
// CmdId: 1155
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AbilityChangeNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1112;
|
||||
}
|
||||
|
||||
uint32 entity_id = 1;
|
||||
AbilityControlBlock ability_control_block = 2;
|
||||
uint32 entity_id = 3;
|
||||
AbilityControlBlock ability_control_block = 10;
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message AbilityEmbryo {
|
||||
uint32 ability_id = 1;
|
||||
fixed32 ability_name_hash = 2;
|
||||
|
@ -2,7 +2,6 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message AbilityGadgetInfo {
|
||||
uint32 camp_id = 1;
|
||||
uint32 camp_target_type = 2;
|
||||
|
@ -2,7 +2,6 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message AbilityIdentifier {
|
||||
uint32 instanced_ability_id = 1;
|
||||
uint32 ability_caster_id = 2;
|
||||
|
@ -4,15 +4,10 @@ option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AbilityInvokeEntry.proto";
|
||||
|
||||
// CmdId: 1131
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
// IsAllowClient: true
|
||||
message AbilityInvocationsNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
NONE = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
IS_ALLOW_CLIENT = 1;
|
||||
CMD_ID = 1118;
|
||||
}
|
||||
|
||||
repeated AbilityInvokeEntry invokes = 1;
|
||||
repeated AbilityInvokeEntry invokes = 8;
|
||||
}
|
||||
|
@ -3,52 +3,58 @@ syntax = "proto3";
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
enum AbilityInvokeArgument {
|
||||
ABILITY_NONE = 0;
|
||||
ABILITY_META_MODIFIER_CHANGE = 1;
|
||||
ABILITY_META_COMMAND_MODIFIER_CHANGE_REQUEST = 2;
|
||||
ABILITY_META_SPECIAL_FLOAT_ARGUMENT = 3;
|
||||
ABILITY_META_OVERRIDE_PARAM = 4;
|
||||
ABILITY_META_CLEAR_OVERRIDE_PARAM = 5;
|
||||
ABILITY_META_REINIT_OVERRIDEMAP = 6;
|
||||
ABILITY_META_GLOBAL_FLOAT_VALUE = 7;
|
||||
ABILITY_META_CLEAR_GLOBAL_FLOAT_VALUE = 8;
|
||||
ABILITY_META_ABILITY_ELEMENT_STRENGTH = 9;
|
||||
ABILITY_META_ADD_OR_GET_ABILITY_AND_TRIGGER = 10;
|
||||
ABILITY_META_SET_KILLED_SETATE = 11;
|
||||
ABILITY_META_SET_ABILITY_TRIGGER = 12;
|
||||
ABILITY_META_ADD_NEW_ABILITY = 13;
|
||||
ABILITY_META_REMOVE_ABILITY = 14;
|
||||
ABILITY_META_SET_MODIFIER_APPLY_ENTITY = 15;
|
||||
ABILITY_META_MODIFIER_DURABILITY_CHANGE = 16;
|
||||
ABILITY_META_ELEMENT_REACTION_VISUAL = 17;
|
||||
ABILITY_META_SET_POSE_PARAMETER = 18;
|
||||
ABILITY_META_UPDATE_BASE_REACTION_DAMAGE = 19;
|
||||
ABILITY_META_TRIGGER_ELEMENT_REACTION = 20;
|
||||
ABILITY_META_LOSE_HP = 21;
|
||||
ABILITY_ACTION_TRIGGER_ABILITY = 50;
|
||||
ABILITY_ACTION_SET_CRASH_DAMAGE = 51;
|
||||
ABILITY_ACTION_EFFECT = 52;
|
||||
ABILITY_ACTION_SUMMON = 53;
|
||||
ABILITY_ACTION_BLINK = 54;
|
||||
ABILITY_ACTION_CREATE_GADGET = 55;
|
||||
ABILITY_ACTION_APPLY_LEVEL_MODIFIER = 56;
|
||||
ABILITY_ACTION_GENERATE_ELEM_BALL = 57;
|
||||
ABILITY_ACTION_SET_RANDOM_OVERRIDE_MAP_VALUE = 58;
|
||||
ABILITY_ACTION_SERVER_MONSTER_LOG = 59;
|
||||
ABILITY_ACTION_CREATE_TILE = 60;
|
||||
ABILITY_ACTION_DESTROY_TILE = 61;
|
||||
ABILITY_ACTION_FIRE_AFTER_IMAGE = 62;
|
||||
ABILITY_MIXIN_AVATAR_STEER_BY_CAMERA = 100;
|
||||
ABILITY_MIXIN_MONSTER_DEFEND = 101;
|
||||
ABILITY_MIXIN_WIND_ZONE = 102;
|
||||
ABILITY_MIXIN_COST_STAMINA = 103;
|
||||
ABILITY_MIXIN_ELITE_SHIELD = 104;
|
||||
ABILITY_MIXIN_ELEMENT_SHIELD = 105;
|
||||
ABILITY_MIXIN_GLOBAL_SHIELD = 106;
|
||||
ABILITY_MIXIN_SHIELD_BAR = 107;
|
||||
ABILITY_MIXIN_WIND_SEED_SPAWNER = 108;
|
||||
ABILITY_MIXIN_DO_ACTION_BY_ELEMENT_REACTION = 109;
|
||||
ABILITY_MIXIN_FIELD_ENTITY_COUNT_CHANGE = 110;
|
||||
ABILITY_MIXIN_SCENE_PROP_SYNC = 111;
|
||||
ABILITY_MIXIN_WIDGET_MP_SUPPORT = 112;
|
||||
ABILITY_INVOKE_ARGUMENT_NONE = 0;
|
||||
ABILITY_INVOKE_ARGUMENT_META_MODIFIER_CHANGE = 1;
|
||||
ABILITY_INVOKE_ARGUMENT_META_COMMAND_MODIFIER_CHANGE_REQUEST = 2;
|
||||
ABILITY_INVOKE_ARGUMENT_META_SPECIAL_FLOAT_ARGUMENT = 3;
|
||||
ABILITY_INVOKE_ARGUMENT_META_OVERRIDE_PARAM = 4;
|
||||
ABILITY_INVOKE_ARGUMENT_META_CLEAR_OVERRIDE_PARAM = 5;
|
||||
ABILITY_INVOKE_ARGUMENT_META_REINIT_OVERRIDEMAP = 6;
|
||||
ABILITY_INVOKE_ARGUMENT_META_GLOBAL_FLOAT_VALUE = 7;
|
||||
ABILITY_INVOKE_ARGUMENT_META_CLEAR_GLOBAL_FLOAT_VALUE = 8;
|
||||
ABILITY_INVOKE_ARGUMENT_META_ABILITY_ELEMENT_STRENGTH = 9;
|
||||
ABILITY_INVOKE_ARGUMENT_META_ADD_OR_GET_ABILITY_AND_TRIGGER = 10;
|
||||
ABILITY_INVOKE_ARGUMENT_META_SET_KILLED_SETATE = 11;
|
||||
ABILITY_INVOKE_ARGUMENT_META_SET_ABILITY_TRIGGER = 12;
|
||||
ABILITY_INVOKE_ARGUMENT_META_ADD_NEW_ABILITY = 13;
|
||||
ABILITY_INVOKE_ARGUMENT_META_REMOVE_ABILITY = 14;
|
||||
ABILITY_INVOKE_ARGUMENT_META_SET_MODIFIER_APPLY_ENTITY = 15;
|
||||
ABILITY_INVOKE_ARGUMENT_META_MODIFIER_DURABILITY_CHANGE = 16;
|
||||
ABILITY_INVOKE_ARGUMENT_META_ELEMENT_REACTION_VISUAL = 17;
|
||||
ABILITY_INVOKE_ARGUMENT_META_SET_POSE_PARAMETER = 18;
|
||||
ABILITY_INVOKE_ARGUMENT_META_UPDATE_BASE_REACTION_DAMAGE = 19;
|
||||
ABILITY_INVOKE_ARGUMENT_META_TRIGGER_ELEMENT_REACTION = 20;
|
||||
ABILITY_INVOKE_ARGUMENT_META_LOSE_HP = 21;
|
||||
ABILITY_INVOKE_ARGUMENT_JDDDLJELBLJ = 22;
|
||||
ABILITY_INVOKE_ARGUMENT_ACTION_TRIGGER_ABILITY = 50;
|
||||
ABILITY_INVOKE_ARGUMENT_ACTION_SET_CRASH_DAMAGE = 51;
|
||||
ABILITY_INVOKE_ARGUMENT_ACTION_EFFECT = 52;
|
||||
ABILITY_INVOKE_ARGUMENT_ACTION_SUMMON = 53;
|
||||
ABILITY_INVOKE_ARGUMENT_ACTION_BLINK = 54;
|
||||
ABILITY_INVOKE_ARGUMENT_ACTION_CREATE_GADGET = 55;
|
||||
ABILITY_INVOKE_ARGUMENT_ACTION_APPLY_LEVEL_MODIFIER = 56;
|
||||
ABILITY_INVOKE_ARGUMENT_ACTION_GENERATE_ELEM_BALL = 57;
|
||||
ABILITY_INVOKE_ARGUMENT_ACTION_SET_RANDOM_OVERRIDE_MAP_VALUE = 58;
|
||||
ABILITY_INVOKE_ARGUMENT_ACTION_SERVER_MONSTER_LOG = 59;
|
||||
ABILITY_INVOKE_ARGUMENT_ACTION_CREATE_TILE = 60;
|
||||
ABILITY_INVOKE_ARGUMENT_ACTION_DESTROY_TILE = 61;
|
||||
ABILITY_INVOKE_ARGUMENT_ACTION_FIRE_AFTER_IMAGE = 62;
|
||||
ABILITY_INVOKE_ARGUMENT_FNANDDPDLOL = 63;
|
||||
ABILITY_INVOKE_ARGUMENT_MIXIN_AVATAR_STEER_BY_CAMERA = 100;
|
||||
ABILITY_INVOKE_ARGUMENT_MIXIN_MONSTER_DEFEND = 101;
|
||||
ABILITY_INVOKE_ARGUMENT_MIXIN_WIND_ZONE = 102;
|
||||
ABILITY_INVOKE_ARGUMENT_MIXIN_COST_STAMINA = 103;
|
||||
ABILITY_INVOKE_ARGUMENT_MIXIN_ELITE_SHIELD = 104;
|
||||
ABILITY_INVOKE_ARGUMENT_MIXIN_ELEMENT_SHIELD = 105;
|
||||
ABILITY_INVOKE_ARGUMENT_MIXIN_GLOBAL_SHIELD = 106;
|
||||
ABILITY_INVOKE_ARGUMENT_MIXIN_SHIELD_BAR = 107;
|
||||
ABILITY_INVOKE_ARGUMENT_MIXIN_WIND_SEED_SPAWNER = 108;
|
||||
ABILITY_INVOKE_ARGUMENT_MIXIN_DO_ACTION_BY_ELEMENT_REACTION = 109;
|
||||
ABILITY_INVOKE_ARGUMENT_MIXIN_FIELD_ENTITY_COUNT_CHANGE = 110;
|
||||
ABILITY_INVOKE_ARGUMENT_MIXIN_SCENE_PROP_SYNC = 111;
|
||||
ABILITY_INVOKE_ARGUMENT_MIXIN_WIDGET_MP_SUPPORT = 112;
|
||||
ABILITY_INVOKE_ARGUMENT_NJHBFADEOON = 113;
|
||||
ABILITY_INVOKE_ARGUMENT_EGCIFFFLLBG = 114;
|
||||
ABILITY_INVOKE_ARGUMENT_OFDGFACOLDI = 115;
|
||||
ABILITY_INVOKE_ARGUMENT_KDPKJGJNGFB = 116;
|
||||
}
|
||||
|
@ -2,8 +2,8 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AbilityInvokeEntryHead.proto";
|
||||
import "AbilityInvokeArgument.proto";
|
||||
import "AbilityInvokeEntryHead.proto";
|
||||
import "ForwardType.proto";
|
||||
|
||||
message AbilityInvokeEntry {
|
||||
|
@ -2,7 +2,6 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message AbilityInvokeEntryHead {
|
||||
uint32 instanced_ability_id = 1;
|
||||
uint32 instanced_modifier_id = 2;
|
||||
|
21
proto/AbilityMetaModifierChange.proto
Normal file
21
proto/AbilityMetaModifierChange.proto
Normal file
@ -0,0 +1,21 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "ModifierAction.proto";
|
||||
import "AbilityString.proto";
|
||||
import "AbilityAttachedModifier.proto";
|
||||
import "ModifierProperty.proto";
|
||||
|
||||
message AbilityMetaModifierChange {
|
||||
ModifierAction action = 1;
|
||||
AbilityString parent_ability_name = 2;
|
||||
AbilityString parent_ability_override = 3;
|
||||
AbilityAttachedModifier attached_instanced_modifier = 4;
|
||||
repeated ModifierProperty properties = 5;
|
||||
int32 modifier_local_id = 6;
|
||||
bool is_mute_remote = 7;
|
||||
uint32 apply_entity_id = 8;
|
||||
bool is_attached_parent_ability = 9;
|
||||
uint32 server_buff_uid = 10;
|
||||
}
|
9
proto/AbilityMetaReInitOverrideMap.proto
Normal file
9
proto/AbilityMetaReInitOverrideMap.proto
Normal file
@ -0,0 +1,9 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AbilityScalarValueEntry.proto";
|
||||
|
||||
message AbilityMetaReInitOverrideMap {
|
||||
repeated AbilityScalarValueEntry override_map = 1;
|
||||
}
|
7
proto/AbilityMixinCostStamina.proto
Normal file
7
proto/AbilityMixinCostStamina.proto
Normal file
@ -0,0 +1,7 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
message AbilityMixinCostStamina {
|
||||
bool is_swim = 1;
|
||||
}
|
@ -5,12 +5,12 @@ option java_package = "emu.grasscutter.net.proto";
|
||||
import "MassivePropSyncInfo.proto";
|
||||
|
||||
message AbilityMixinRecoverInfo {
|
||||
oneof Source {
|
||||
uint32 instanced_ability_id = 1;
|
||||
uint32 instanced_modifier_id = 2;
|
||||
}
|
||||
uint32 local_id = 3;
|
||||
repeated uint32 data_list = 4;
|
||||
bool is_serverbuff_modifier = 5;
|
||||
repeated MassivePropSyncInfo massive_prop_list = 6;
|
||||
oneof source {
|
||||
uint32 instanced_ability_id = 1;
|
||||
uint32 instanced_modifier_id = 2;
|
||||
}
|
||||
}
|
||||
|
8
proto/AbilityMixinWidgetMpSupport.proto
Normal file
8
proto/AbilityMixinWidgetMpSupport.proto
Normal file
@ -0,0 +1,8 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message AbilityMixinWidgetMpSupport {
|
||||
uint32 target_entity_id = 1;
|
||||
}
|
@ -3,11 +3,11 @@ syntax = "proto3";
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
enum AbilityScalarType {
|
||||
UNKNOW = 0;
|
||||
FLOAT = 1;
|
||||
INT = 2;
|
||||
BOOL = 3;
|
||||
TRIGGER = 4;
|
||||
STRING = 5;
|
||||
UINT = 6;
|
||||
ABILITY_SCALAR_TYPE_UNKNOW = 0;
|
||||
ABILITY_SCALAR_TYPE_FLOAT = 1;
|
||||
ABILITY_SCALAR_TYPE_INT = 2;
|
||||
ABILITY_SCALAR_TYPE_BOOL = 3;
|
||||
ABILITY_SCALAR_TYPE_TRIGGER = 4;
|
||||
ABILITY_SCALAR_TYPE_STRING = 5;
|
||||
ABILITY_SCALAR_TYPE_UINT = 6;
|
||||
}
|
||||
|
@ -2,16 +2,16 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AbilityString.proto";
|
||||
import "AbilityScalarType.proto";
|
||||
import "AbilityString.proto";
|
||||
|
||||
message AbilityScalarValueEntry {
|
||||
oneof Value {
|
||||
AbilityString key = 1;
|
||||
AbilityScalarType value_type = 2;
|
||||
oneof value {
|
||||
float float_value = 3;
|
||||
string string_value = 4;
|
||||
int32 int_value = 5;
|
||||
uint32 uint_value = 6;
|
||||
}
|
||||
AbilityString key = 1;
|
||||
AbilityScalarType value_type = 2;
|
||||
}
|
||||
|
@ -2,9 +2,8 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message AbilityString {
|
||||
oneof Type {
|
||||
oneof type {
|
||||
string str = 1;
|
||||
uint32 hash = 2;
|
||||
}
|
||||
|
@ -2,10 +2,10 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AbilityScalarValueEntry.proto";
|
||||
import "AbilityAppliedAbility.proto";
|
||||
import "AbilityAppliedModifier.proto";
|
||||
import "AbilityMixinRecoverInfo.proto";
|
||||
import "AbilityScalarValueEntry.proto";
|
||||
|
||||
message AbilitySyncStateInfo {
|
||||
bool is_inited = 1;
|
||||
|
@ -2,45 +2,42 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "ActivityNullDetailInfo.proto";
|
||||
import "ActivityWatcherInfo.proto";
|
||||
/*import "ArenaChallengeActivityDetailInfo.proto";
|
||||
import "AsterActivityDetailInfo.proto";
|
||||
import "BlessingActivityDetailInfo.proto";
|
||||
import "BlitzRushActivityDetailInfo.proto";
|
||||
import "BounceConjuringActivityDetailInfo.proto";
|
||||
import "BuoyantCombatDetailInfo.proto";
|
||||
import "ChannelerSlabActivityDetailInfo.proto";
|
||||
import "ChessActivityDetailInfo.proto";
|
||||
import "CrucibleActivityDetailInfo.proto";
|
||||
import "DeliveryActivityDetailInfo.proto";
|
||||
import "DigActivityDetailInfo.proto";
|
||||
import "DragonSpineActivityDetailInfo.proto";
|
||||
import "EchoShellDetailInfo.proto";
|
||||
import "EffigyActivityDetailInfo.proto";
|
||||
import "ExpeditionActivityDetailInfo.proto";
|
||||
import "FindHilichurlDetailInfo.proto";
|
||||
import "FleurFairActivityDetailInfo.proto";
|
||||
import "FlightActivityDetailInfo.proto";
|
||||
import "HideAndSeekActivityDetailInfo.proto";
|
||||
import "LunaRiteDetailInfo.proto";
|
||||
import "MistTrialActivityDetailInfo.proto";
|
||||
import "MoonfinTrialActivityDetailInfo.proto";
|
||||
import "MusicGameActivityDetailInfo.proto";
|
||||
import "PlantFlowerActivityDetailInfo.proto";
|
||||
import "RoguelikeDungeonActivityDetailInfo.proto";
|
||||
import "SalesmanActivityDetailInfo.proto";
|
||||
import "SeaLampActivityDetailInfo.proto";
|
||||
import "SeaLampActivityInfo.proto";
|
||||
import "SummerTimeDetailInfo.proto";
|
||||
import "SumoActivityDetailInfo.proto";
|
||||
import "TreasureMapActivityDetailInfo.proto";
|
||||
import "TrialAvatarActivityDetailInfo.proto";
|
||||
import "WaterSpiritActivityDetailInfo.proto";*/
|
||||
|
||||
message ActivityInfo {
|
||||
oneof Detail {
|
||||
ActivityNullDetailInfo sam_lamp_info = 11;
|
||||
ActivityNullDetailInfo crucible_info = 12;
|
||||
ActivityNullDetailInfo salesman_info = 13;
|
||||
ActivityNullDetailInfo trial_avatar_info = 14;
|
||||
ActivityNullDetailInfo delivery_info = 16;
|
||||
ActivityNullDetailInfo aster_info = 21;
|
||||
ActivityNullDetailInfo flight_info = 25;
|
||||
ActivityNullDetailInfo dragon_spine_info = 31;
|
||||
ActivityNullDetailInfo effigy_info = 32;
|
||||
ActivityNullDetailInfo treasure_map_info = 35;
|
||||
ActivityNullDetailInfo blessing_info = 41;
|
||||
ActivityNullDetailInfo sea_lamp_info = 42;
|
||||
ActivityNullDetailInfo expedition_info = 43;
|
||||
ActivityNullDetailInfo arena_challenge_info = 44;
|
||||
ActivityNullDetailInfo fleur_fair_info = 51;
|
||||
ActivityNullDetailInfo water_spirit_info = 52;
|
||||
ActivityNullDetailInfo challneler_slab_info = 61;
|
||||
ActivityNullDetailInfo mist_trial_activity_info = 62;
|
||||
ActivityNullDetailInfo hide_and_seek_info = 63;
|
||||
ActivityNullDetailInfo find_hilichurl_info = 64;
|
||||
ActivityNullDetailInfo summer_time_info = 65;
|
||||
ActivityNullDetailInfo buoyant_combat_info = 66;
|
||||
ActivityNullDetailInfo echo_shell_info = 67;
|
||||
ActivityNullDetailInfo bounce_conjuring_info = 68;
|
||||
ActivityNullDetailInfo blitz_rush_info = 69;
|
||||
ActivityNullDetailInfo chess_info = 70;
|
||||
ActivityNullDetailInfo sumo_info = 71;
|
||||
ActivityNullDetailInfo moonfin_trial_info = 72;
|
||||
ActivityNullDetailInfo luna_rite_info = 73;
|
||||
ActivityNullDetailInfo plant_flower_info = 74;
|
||||
ActivityNullDetailInfo music_game_info = 75;
|
||||
ActivityNullDetailInfo roguelike_dungoen_info = 76;
|
||||
ActivityNullDetailInfo dig_info = 77;
|
||||
}
|
||||
uint32 activity_id = 1;
|
||||
uint32 schedule_id = 2;
|
||||
uint32 begin_time = 3;
|
||||
@ -59,4 +56,57 @@ message ActivityInfo {
|
||||
repeated uint32 taken_reward_list = 24;
|
||||
bool is_hidden = 26;
|
||||
uint32 first_day_start_time = 27;
|
||||
//bool MIFCLBCMKJI = 28;
|
||||
//bool BPGCBIEDEDM = 29;
|
||||
//map<uint32, uint32> AGKPABKOHDA = 30;
|
||||
/*oneof detail {
|
||||
SeaLampActivityDetailInfo sam_lamp_info = 11;
|
||||
CrucibleActivityDetailInfo crucible_info = 12;
|
||||
SalesmanActivityDetailInfo salesman_info = 13;
|
||||
TrialAvatarActivityDetailInfo trial_avatar_info = 14;
|
||||
DeliveryActivityDetailInfo delivery_info = 16;
|
||||
AsterActivityDetailInfo aster_info = 21;
|
||||
FlightActivityDetailInfo flight_info = 25;
|
||||
DragonSpineActivityDetailInfo dragon_spine_info = 31;
|
||||
EffigyActivityDetailInfo effigy_info = 32;
|
||||
TreasureMapActivityDetailInfo treasure_map_info = 35;
|
||||
BlessingActivityDetailInfo blessing_info = 41;
|
||||
SeaLampActivityInfo sea_lamp_info = 42;
|
||||
ExpeditionActivityDetailInfo expedition_info = 43;
|
||||
ArenaChallengeActivityDetailInfo arena_challenge_info = 44;
|
||||
FleurFairActivityDetailInfo fleur_fair_info = 51;
|
||||
WaterSpiritActivityDetailInfo water_spirit_info = 52;
|
||||
ChannelerSlabActivityDetailInfo challneler_slab_info = 61;
|
||||
MistTrialActivityDetailInfo mist_trial_activity_info = 62;
|
||||
HideAndSeekActivityDetailInfo hide_and_seek_info = 63;
|
||||
FindHilichurlDetailInfo find_hilichurl_info = 64;
|
||||
SummerTimeDetailInfo summer_time_info = 65;
|
||||
BuoyantCombatDetailInfo buoyant_combat_info = 66;
|
||||
EchoShellDetailInfo echo_shell_info = 67;
|
||||
BounceConjuringActivityDetailInfo bounce_conjuring_info = 68;
|
||||
BlitzRushActivityDetailInfo blitz_rush_info = 69;
|
||||
ChessActivityDetailInfo chess_info = 70;
|
||||
SumoActivityDetailInfo sumo_info = 71;
|
||||
MoonfinTrialActivityDetailInfo moonfin_trial_info = 72;
|
||||
LunaRiteDetailInfo luna_rite_info = 73;
|
||||
PlantFlowerActivityDetailInfo plant_flower_info = 74;
|
||||
MusicGameActivityDetailInfo music_game_info = 75;
|
||||
RoguelikeDungeonActivityDetailInfo roguelike_dungoen_info = 76;
|
||||
DigActivityDetailInfo dig_info = 77;
|
||||
DOCNGBMKEID hachi_info = 78;
|
||||
DLHPBNNDGFI winter_camp_info = 79;
|
||||
IFACCKLEJCC potion_info = 80;
|
||||
PFMCPMIMGLM tanuki_travel_activity_info = 81;
|
||||
JEIAODKGIBD lantern_rite_activity_info = 82;
|
||||
EPDOGGKOCAP michiae_matsuri_info = 83;
|
||||
NHMFHLIGAKL bartender_info = 84;
|
||||
EAGKNMCLJDI ugc_info = 85;
|
||||
ADPBMLFDHJD crystal_link_info = 86;
|
||||
JACDNLEIDOO irodori_info = 87;
|
||||
EHDKFDJEEGP photo_info = 88;
|
||||
BEPFLAKHNHL spice_info = 89;
|
||||
MMNEJBFMAEA gacha_info = 90;
|
||||
JLMHDDHOGGD luminance_stone_challenge_info = 91;
|
||||
IGBMCJOPGIL rogue_diary_info = 92;
|
||||
}*/
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message ActivityWatcherInfo {
|
||||
uint32 watcher_id = 1;
|
||||
uint32 cur_progress = 2;
|
||||
|
@ -2,7 +2,6 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message AiSkillCdInfo {
|
||||
map<uint32, uint32> skill_cd_map = 1;
|
||||
map<uint32, uint32> skill_group_cd_map = 2;
|
||||
|
@ -2,7 +2,6 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message AiSyncInfo {
|
||||
uint32 entity_id = 1;
|
||||
bool has_path_to_target = 2;
|
||||
|
@ -2,7 +2,6 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message AiThreatInfo {
|
||||
map<uint32, uint32> ai_threat_map = 1;
|
||||
}
|
||||
|
26
proto/AllWidgetDataNotify.proto
Normal file
26
proto/AllWidgetDataNotify.proto
Normal file
@ -0,0 +1,26 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AnchorPointData.proto";
|
||||
// import "CCEOEOHLAPK.proto";
|
||||
import "ClientCollectorData.proto";
|
||||
import "LunchBoxData.proto";
|
||||
import "OneoffGatherPointDetectorData.proto";
|
||||
import "WidgetCoolDownData.proto";
|
||||
import "WidgetSlotData.proto";
|
||||
|
||||
// CmdId: 4273
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AllWidgetDataNotify {
|
||||
repeated AnchorPointData anchor_point_list = 13;
|
||||
uint32 next_anchor_point_usable_time = 10;
|
||||
LunchBoxData lunch_box_data = 11;
|
||||
repeated OneoffGatherPointDetectorData oneoff_gather_point_detector_data_list = 5;
|
||||
repeated ClientCollectorData client_collector_data_list = 6;
|
||||
repeated WidgetCoolDownData cool_down_group_data_list = 2;
|
||||
repeated WidgetCoolDownData normal_cool_down_data_list = 4;
|
||||
repeated WidgetSlotData slot_list = 3;
|
||||
// CCEOEOHLAPK KNPDHPEGCHI = 12;
|
||||
}
|
13
proto/AnchorPointData.proto
Normal file
13
proto/AnchorPointData.proto
Normal file
@ -0,0 +1,13 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "Vector.proto";
|
||||
|
||||
message AnchorPointData {
|
||||
uint32 anchor_point_id = 1;
|
||||
Vector pos = 2;
|
||||
Vector rot = 3;
|
||||
uint32 end_time = 4;
|
||||
uint32 scene_id = 5;
|
||||
}
|
13
proto/AnchorPointDataNotify.proto
Normal file
13
proto/AnchorPointDataNotify.proto
Normal file
@ -0,0 +1,13 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AnchorPointData.proto";
|
||||
|
||||
// CmdId: 4268
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AnchorPointDataNotify {
|
||||
repeated AnchorPointData anchor_point_list = 14;
|
||||
uint32 next_usable_time = 6;
|
||||
}
|
18
proto/AnchorPointOpReq.proto
Normal file
18
proto/AnchorPointOpReq.proto
Normal file
@ -0,0 +1,18 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
// CmdId: 4254
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
// IsAllowClient: true
|
||||
message AnchorPointOpReq {
|
||||
uint32 anchor_point_op_type = 6;
|
||||
uint32 anchor_point_id = 1;
|
||||
|
||||
enum AnchorPointOpType {
|
||||
ANCHOR_POINT_OP_TYPE_NONE = 0;
|
||||
ANCHOR_POINT_OP_TYPE_TELEPORT = 1;
|
||||
ANCHOR_POINT_OP_TYPE_REMOVE = 2;
|
||||
}
|
||||
}
|
12
proto/AnchorPointOpRsp.proto
Normal file
12
proto/AnchorPointOpRsp.proto
Normal file
@ -0,0 +1,12 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
// CmdId: 4278
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AnchorPointOpRsp {
|
||||
int32 retcode = 13;
|
||||
uint32 anchor_point_op_type = 3;
|
||||
uint32 anchor_point_id = 2;
|
||||
}
|
@ -2,12 +2,11 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message AnimatorParameterValueInfo {
|
||||
oneof ParaVal {
|
||||
uint32 para_type = 1;
|
||||
oneof para_val {
|
||||
int32 int_val = 2;
|
||||
float float_val = 3;
|
||||
bool bool_val = 4;
|
||||
}
|
||||
uint32 para_type = 1;
|
||||
}
|
||||
|
@ -4,15 +4,10 @@ option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "FriendBrief.proto";
|
||||
|
||||
// CmdId: 4038
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AskAddFriendNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 4006;
|
||||
}
|
||||
|
||||
uint32 target_uid = 1;
|
||||
FriendBrief target_friend_brief = 2;
|
||||
uint32 target_uid = 13;
|
||||
FriendBrief target_friend_brief = 10;
|
||||
}
|
||||
|
@ -2,16 +2,10 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 4032
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
// IsAllowClient: true
|
||||
message AskAddFriendReq {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
NONE = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
IS_ALLOW_CLIENT = 1;
|
||||
CMD_ID = 4100;
|
||||
}
|
||||
|
||||
uint32 target_uid = 1;
|
||||
uint32 target_uid = 8;
|
||||
}
|
||||
|
@ -2,18 +2,12 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 4017
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
// IsAllowClient: true
|
||||
message AskAddFriendRsp {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
NONE = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
IS_ALLOW_CLIENT = 1;
|
||||
CMD_ID = 4001;
|
||||
}
|
||||
|
||||
int32 retcode = 1;
|
||||
uint32 target_uid = 2;
|
||||
uint32 param = 3;
|
||||
int32 retcode = 11;
|
||||
uint32 target_uid = 14;
|
||||
uint32 param = 13;
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message AttackHitEffectResult {
|
||||
uint32 hit_eff_level = 1;
|
||||
float retreat_strength = 2;
|
||||
|
@ -3,9 +3,9 @@ syntax = "proto3";
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AbilityIdentifier.proto";
|
||||
import "AttackHitEffectResult.proto";
|
||||
import "HitCollision.proto";
|
||||
import "Vector.proto";
|
||||
import "AttackHitEffectResult.proto";
|
||||
|
||||
message AttackResult {
|
||||
uint32 attacker_id = 1;
|
||||
@ -37,4 +37,5 @@ message AttackResult {
|
||||
float endure_delta = 37;
|
||||
uint32 target_type = 38;
|
||||
float element_durability_attenuation = 39;
|
||||
uint32 EGPFEACDCLP = 40;
|
||||
}
|
||||
|
@ -4,15 +4,10 @@ option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AvatarInfo.proto";
|
||||
|
||||
// CmdId: 1757
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarAddNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1795;
|
||||
}
|
||||
|
||||
AvatarInfo avatar = 1;
|
||||
bool is_in_team = 2;
|
||||
AvatarInfo avatar = 11;
|
||||
bool is_in_team = 15;
|
||||
}
|
||||
|
@ -4,14 +4,9 @@ option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "SceneEntityInfo.proto";
|
||||
|
||||
// CmdId: 1780
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarChangeCostumeNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1724;
|
||||
}
|
||||
|
||||
SceneEntityInfo entity_info = 1;
|
||||
}
|
||||
|
@ -2,17 +2,11 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1734
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
// IsAllowClient: true
|
||||
message AvatarChangeCostumeReq {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
NONE = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
IS_ALLOW_CLIENT = 1;
|
||||
CMD_ID = 1606;
|
||||
}
|
||||
|
||||
uint64 avatar_guid = 1;
|
||||
uint32 costume_id = 2;
|
||||
uint64 avatar_guid = 7;
|
||||
uint32 costume_id = 8;
|
||||
}
|
||||
|
@ -2,17 +2,11 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1723
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarChangeCostumeRsp {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1748;
|
||||
}
|
||||
|
||||
int32 retcode = 1;
|
||||
uint64 avatar_guid = 2;
|
||||
uint32 costume_id = 3;
|
||||
int32 retcode = 15;
|
||||
uint64 avatar_guid = 3;
|
||||
uint32 costume_id = 1;
|
||||
}
|
||||
|
@ -5,20 +5,15 @@ option java_package = "emu.grasscutter.net.proto";
|
||||
import "AvatarInfo.proto";
|
||||
import "AvatarTeam.proto";
|
||||
|
||||
// CmdId: 1695
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarDataNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1694;
|
||||
}
|
||||
|
||||
repeated AvatarInfo avatar_list = 1;
|
||||
map<uint32, AvatarTeam> avatar_team_map = 2;
|
||||
uint32 cur_avatar_team_id = 3;
|
||||
fixed64 choose_avatar_guid = 4;
|
||||
repeated uint64 temp_avatar_guid_list = 5;
|
||||
repeated uint32 owned_flycloak_list = 6;
|
||||
repeated AvatarInfo avatar_list = 15;
|
||||
map<uint32, AvatarTeam> avatar_team_map = 6;
|
||||
uint32 cur_avatar_team_id = 2;
|
||||
fixed64 choose_avatar_guid = 11;
|
||||
repeated uint64 temp_avatar_guid_list = 14;
|
||||
repeated uint32 owned_flycloak_list = 8;
|
||||
repeated uint32 owned_costume_list = 7;
|
||||
}
|
||||
|
@ -4,17 +4,12 @@ option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "Vector.proto";
|
||||
|
||||
// CmdId: 1616
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
// IsAllowClient: true
|
||||
message AvatarDieAnimationEndReq {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
NONE = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
IS_ALLOW_CLIENT = 1;
|
||||
CMD_ID = 1737;
|
||||
}
|
||||
|
||||
uint64 die_guid = 1;
|
||||
uint32 skill_id = 2;
|
||||
Vector reborn_pos = 3;
|
||||
uint64 die_guid = 14;
|
||||
uint32 skill_id = 4;
|
||||
Vector reborn_pos = 13;
|
||||
}
|
||||
|
@ -2,17 +2,11 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1765
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarDieAnimationEndRsp {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1697;
|
||||
}
|
||||
|
||||
int32 retcode = 1;
|
||||
uint64 die_guid = 2;
|
||||
uint32 skill_id = 3;
|
||||
int32 retcode = 12;
|
||||
uint64 die_guid = 11;
|
||||
uint32 skill_id = 13;
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message AvatarEquipAffixInfo {
|
||||
uint32 equip_affix_id = 1;
|
||||
uint32 left_cd_time = 2;
|
||||
|
@ -2,23 +2,18 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "SceneWeaponInfo.proto";
|
||||
import "SceneReliquaryInfo.proto";
|
||||
import "SceneWeaponInfo.proto";
|
||||
|
||||
// CmdId: 690
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
// IsAllowClient: true
|
||||
message AvatarEquipChangeNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
NONE = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
IS_ALLOW_CLIENT = 1;
|
||||
CMD_ID = 615;
|
||||
}
|
||||
|
||||
uint64 avatar_guid = 1;
|
||||
uint32 equip_type = 2;
|
||||
uint32 item_id = 3;
|
||||
uint32 item_id = 8;
|
||||
uint64 equip_guid = 4;
|
||||
SceneWeaponInfo weapon = 5;
|
||||
SceneReliquaryInfo reliquary = 6;
|
||||
SceneWeaponInfo weapon = 13;
|
||||
SceneReliquaryInfo reliquary = 11;
|
||||
}
|
||||
|
@ -1,19 +1,15 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AvatarExpeditionInfo.proto";
|
||||
|
||||
// CmdId: 1636
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarExpeditionAllDataRsp {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1783;
|
||||
}
|
||||
|
||||
int32 retcode = 1;
|
||||
map<uint64, AvatarExpeditionInfo> expedition_info_map = 2;
|
||||
repeated uint32 open_expedition_list = 3;
|
||||
uint32 expedition_count_limit = 4;
|
||||
int32 retcode = 11;
|
||||
map<uint64, AvatarExpeditionInfo> expedition_info_map = 1;
|
||||
repeated uint32 open_expedition_list = 6;
|
||||
uint32 expedition_count_limit = 7;
|
||||
}
|
||||
|
@ -2,15 +2,10 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
// CmdId: 1655
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
// IsAllowClient: true
|
||||
message AvatarExpeditionCallBackReq {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
NONE = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
IS_ALLOW_CLIENT = 1;
|
||||
CMD_ID = 1618;
|
||||
}
|
||||
|
||||
repeated uint64 avatar_guid = 1;
|
||||
repeated uint64 avatar_guid = 12;
|
||||
}
|
||||
|
@ -1,17 +1,13 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AvatarExpeditionInfo.proto";
|
||||
|
||||
// CmdId: 1642
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarExpeditionCallBackRsp {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1633;
|
||||
}
|
||||
|
||||
int32 retcode = 1;
|
||||
map<uint64, AvatarExpeditionInfo> expedition_info_map = 2;
|
||||
map<uint64, AvatarExpeditionInfo> expedition_info_map = 14;
|
||||
}
|
||||
|
@ -1,16 +1,12 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AvatarExpeditionInfo.proto";
|
||||
|
||||
// CmdId: 1698
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarExpeditionDataNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1621;
|
||||
}
|
||||
|
||||
map<uint64, AvatarExpeditionInfo> expedition_info_map = 1;
|
||||
}
|
||||
|
@ -2,15 +2,10 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
// CmdId: 1603
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
// IsAllowClient: true
|
||||
message AvatarExpeditionGetRewardReq {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
NONE = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
IS_ALLOW_CLIENT = 1;
|
||||
CMD_ID = 1610;
|
||||
}
|
||||
|
||||
uint64 avatar_guid = 1;
|
||||
uint64 avatar_guid = 5;
|
||||
}
|
||||
|
@ -1,19 +1,16 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AvatarExpeditionInfo.proto";
|
||||
|
||||
import "ItemParam.proto";
|
||||
message AvatarExpeditionGetRewardRsp {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1670;
|
||||
}
|
||||
|
||||
int32 retcode = 1;
|
||||
map<uint64, AvatarExpeditionInfo> expedition_info_map = 2;
|
||||
repeated ItemParam item_list = 3;
|
||||
// CmdId: 1646
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarExpeditionGetRewardRsp {
|
||||
int32 retcode = 15;
|
||||
map<uint64, AvatarExpeditionInfo> expedition_info_map = 5;
|
||||
repeated ItemParam item_list = 6;
|
||||
repeated ItemParam BNFDDKNNJJH = 2;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AvatarExpeditionState.proto";
|
||||
|
||||
message AvatarExpeditionInfo {
|
||||
|
@ -2,17 +2,12 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
// CmdId: 1675
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
// IsAllowClient: true
|
||||
message AvatarExpeditionStartReq {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
NONE = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
IS_ALLOW_CLIENT = 1;
|
||||
CMD_ID = 1609;
|
||||
}
|
||||
|
||||
uint64 avatar_guid = 1;
|
||||
uint64 avatar_guid = 8;
|
||||
uint32 exp_id = 2;
|
||||
uint32 hour_time = 3;
|
||||
uint32 hour_time = 7;
|
||||
}
|
||||
|
@ -1,17 +1,13 @@
|
||||
syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AvatarExpeditionInfo.proto";
|
||||
|
||||
// CmdId: 1688
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarExpeditionStartRsp {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1646;
|
||||
}
|
||||
|
||||
int32 retcode = 1;
|
||||
map<uint64, AvatarExpeditionInfo> expedition_info_map = 2;
|
||||
int32 retcode = 4;
|
||||
map<uint64, AvatarExpeditionInfo> expedition_info_map = 1;
|
||||
}
|
||||
|
@ -3,9 +3,9 @@ syntax = "proto3";
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
enum AvatarExpeditionState {
|
||||
AVATAR_EXPEDITION_NONE = 0;
|
||||
AVATAR_EXPEDITION_DOING = 1;
|
||||
AVATAR_EXPEDITION_FINISH_WAIT_REWARD = 2;
|
||||
AVATAR_EXPEDITION_CALLBACK_WAIT_REWARD = 3;
|
||||
AVATAR_EXPEDITION_LOCKED = 4;
|
||||
AVATAR_EXPEDITION_STATE_NONE = 0;
|
||||
AVATAR_EXPEDITION_STATE_DOING = 1;
|
||||
AVATAR_EXPEDITION_STATE_FINISH_WAIT_REWARD = 2;
|
||||
AVATAR_EXPEDITION_STATE_CALLBACK_WAIT_REWARD = 3;
|
||||
AVATAR_EXPEDITION_STATE_LOCKED = 4;
|
||||
}
|
||||
|
@ -4,14 +4,9 @@ option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AvatarFetterInfo.proto";
|
||||
|
||||
// CmdId: 1777
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarFetterDataNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1685;
|
||||
}
|
||||
|
||||
map<uint64, AvatarFetterInfo> fetter_info_map = 1;
|
||||
}
|
||||
|
@ -2,16 +2,11 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
// CmdId: 1704
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
// IsAllowClient: true
|
||||
message AvatarFetterLevelRewardReq {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
NONE = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
IS_ALLOW_CLIENT = 1;
|
||||
CMD_ID = 1624;
|
||||
}
|
||||
|
||||
uint64 avatar_guid = 1;
|
||||
uint64 avatar_guid = 15;
|
||||
uint32 fetter_level = 2;
|
||||
}
|
||||
|
@ -2,17 +2,12 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
// CmdId: 1606
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarFetterLevelRewardRsp {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1704;
|
||||
}
|
||||
|
||||
int32 retcode = 1;
|
||||
uint64 avatar_guid = 2;
|
||||
uint32 fetter_level = 3;
|
||||
uint32 reward_id = 4;
|
||||
int32 retcode = 14;
|
||||
uint64 avatar_guid = 12;
|
||||
uint32 fetter_level = 10;
|
||||
uint32 reward_id = 11;
|
||||
}
|
||||
|
@ -2,16 +2,10 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1232
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarFightPropNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1300;
|
||||
}
|
||||
|
||||
uint64 avatar_guid = 1;
|
||||
map<uint32, float> fight_prop_map = 2;
|
||||
uint64 avatar_guid = 3;
|
||||
map<uint32, float> fight_prop_map = 6;
|
||||
}
|
||||
|
@ -2,16 +2,10 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1217
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarFightPropUpdateNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1201;
|
||||
}
|
||||
|
||||
uint64 avatar_guid = 1;
|
||||
map<uint32, float> fight_prop_map = 2;
|
||||
map<uint32, float> fight_prop_map = 6;
|
||||
}
|
||||
|
@ -2,16 +2,10 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1681
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarFlycloakChangeNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1759;
|
||||
}
|
||||
|
||||
uint64 avatar_guid = 1;
|
||||
uint32 flycloak_id = 2;
|
||||
uint64 avatar_guid = 12;
|
||||
uint32 flycloak_id = 14;
|
||||
}
|
||||
|
@ -2,15 +2,9 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1670
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarGainCostumeNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1734;
|
||||
}
|
||||
|
||||
uint32 costume_id = 1;
|
||||
uint32 costume_id = 15;
|
||||
}
|
||||
|
@ -2,15 +2,9 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1615
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarGainFlycloakNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1604;
|
||||
}
|
||||
|
||||
uint32 flycloak_id = 1;
|
||||
uint32 flycloak_id = 2;
|
||||
}
|
||||
|
@ -2,13 +2,13 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "TrialAvatarInfo.proto";
|
||||
import "AvatarFetterInfo.proto";
|
||||
import "AvatarExpeditionState.proto";
|
||||
import "AvatarExcelInfo.proto";
|
||||
import "PropValue.proto";
|
||||
import "AvatarSkillInfo.proto";
|
||||
import "AvatarEquipAffixInfo.proto";
|
||||
import "AvatarExcelInfo.proto";
|
||||
import "AvatarExpeditionState.proto";
|
||||
import "AvatarFetterInfo.proto";
|
||||
import "AvatarSkillInfo.proto";
|
||||
import "PropValue.proto";
|
||||
import "TrialAvatarInfo.proto";
|
||||
|
||||
message AvatarInfo {
|
||||
uint32 avatar_id = 1;
|
||||
|
@ -5,20 +5,15 @@ option java_package = "emu.grasscutter.net.proto";
|
||||
import "PlayerDieType.proto";
|
||||
import "ServerBuff.proto";
|
||||
|
||||
// CmdId: 1235
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarLifeStateChangeNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1242;
|
||||
}
|
||||
|
||||
uint64 avatar_guid = 1;
|
||||
uint32 life_state = 2;
|
||||
uint32 source_entity_id = 3;
|
||||
string attack_tag = 4;
|
||||
PlayerDieType die_type = 5;
|
||||
uint32 move_reliable_seq = 6;
|
||||
repeated ServerBuff server_buff_list = 7;
|
||||
uint64 avatar_guid = 8;
|
||||
uint32 life_state = 15;
|
||||
uint32 source_entity_id = 1;
|
||||
string attack_tag = 10;
|
||||
PlayerDieType die_type = 11;
|
||||
uint32 move_reliable_seq = 7;
|
||||
repeated ServerBuff server_buff_list = 6;
|
||||
}
|
||||
|
@ -2,16 +2,11 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
// CmdId: 1676
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
// IsAllowClient: true
|
||||
message AvatarPromoteGetRewardReq {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
NONE = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
IS_ALLOW_CLIENT = 1;
|
||||
CMD_ID = 1701;
|
||||
}
|
||||
|
||||
uint64 avatar_guid = 1;
|
||||
uint32 promote_level = 2;
|
||||
uint64 avatar_guid = 12;
|
||||
uint32 promote_level = 8;
|
||||
}
|
||||
|
@ -2,18 +2,12 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1613
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarPromoteGetRewardRsp {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1764;
|
||||
}
|
||||
|
||||
int32 retcode = 1;
|
||||
int32 retcode = 11;
|
||||
uint64 avatar_guid = 2;
|
||||
uint32 promote_level = 3;
|
||||
uint32 reward_id = 4;
|
||||
uint32 promote_level = 14;
|
||||
uint32 reward_id = 1;
|
||||
}
|
||||
|
@ -2,16 +2,10 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1711
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
// IsAllowClient: true
|
||||
message AvatarPromoteReq {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
NONE = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
IS_ALLOW_CLIENT = 1;
|
||||
CMD_ID = 1692;
|
||||
}
|
||||
|
||||
uint64 guid = 1;
|
||||
uint64 guid = 9;
|
||||
}
|
||||
|
@ -2,16 +2,10 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1668
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarPromoteRsp {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1728;
|
||||
}
|
||||
|
||||
int32 retcode = 1;
|
||||
uint64 guid = 2;
|
||||
int32 retcode = 15;
|
||||
uint64 guid = 7;
|
||||
}
|
||||
|
@ -2,16 +2,10 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1255
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarPropNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1212;
|
||||
}
|
||||
|
||||
uint64 avatar_guid = 1;
|
||||
map<uint32, int64> prop_map = 2;
|
||||
uint64 avatar_guid = 4;
|
||||
map<uint32, int64> prop_map = 1;
|
||||
}
|
||||
|
@ -2,20 +2,14 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1030
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarSkillChangeNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1091;
|
||||
}
|
||||
|
||||
uint64 avatar_guid = 1;
|
||||
uint32 entity_id = 2;
|
||||
uint32 skill_depot_id = 3;
|
||||
uint32 avatar_skill_id = 4;
|
||||
uint32 old_level = 5;
|
||||
uint32 cur_level = 6;
|
||||
uint64 avatar_guid = 4;
|
||||
uint32 entity_id = 15;
|
||||
uint32 skill_depot_id = 5;
|
||||
uint32 avatar_skill_id = 2;
|
||||
uint32 old_level = 10;
|
||||
uint32 cur_level = 7;
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message AvatarSkillInfo {
|
||||
uint32 pass_cd_time = 1;
|
||||
repeated uint32 full_cd_time_list = 2;
|
||||
|
@ -4,7 +4,10 @@ option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AvatarSkillInfo.proto";
|
||||
|
||||
// CmdId: 1035
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarSkillInfoNotify {
|
||||
uint64 guid = 1;
|
||||
uint64 guid = 4;
|
||||
map<uint32, AvatarSkillInfo> skill_map = 2;
|
||||
}
|
||||
|
@ -2,8 +2,11 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
// CmdId: 1085
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarSkillMaxChargeCountNotify {
|
||||
uint64 avatar_guid = 1;
|
||||
uint64 avatar_guid = 15;
|
||||
uint32 skill_id = 2;
|
||||
uint32 max_charge_count = 3;
|
||||
uint32 max_charge_count = 1;
|
||||
}
|
||||
|
@ -2,18 +2,12 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1027
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
// IsAllowClient: true
|
||||
message AvatarSkillUpgradeReq {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
NONE = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
IS_ALLOW_CLIENT = 1;
|
||||
CMD_ID = 1026;
|
||||
}
|
||||
|
||||
uint64 avatar_guid = 1;
|
||||
uint32 avatar_skill_id = 2;
|
||||
uint32 old_level = 3;
|
||||
uint32 avatar_skill_id = 5;
|
||||
uint32 old_level = 10;
|
||||
}
|
||||
|
@ -2,19 +2,13 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1007
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarSkillUpgradeRsp {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1024;
|
||||
}
|
||||
|
||||
int32 retcode = 1;
|
||||
uint64 avatar_guid = 2;
|
||||
uint32 avatar_skill_id = 3;
|
||||
uint32 old_level = 4;
|
||||
uint32 cur_level = 5;
|
||||
int32 retcode = 3;
|
||||
uint64 avatar_guid = 10;
|
||||
uint32 avatar_skill_id = 2;
|
||||
uint32 old_level = 5;
|
||||
uint32 cur_level = 7;
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message AvatarTeam {
|
||||
repeated uint64 avatar_guid_list = 1;
|
||||
string team_name = 2;
|
||||
|
@ -2,7 +2,6 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message AvatarTeamResonanceInfo {
|
||||
uint32 entity_id = 1;
|
||||
uint64 avatar_guid = 2;
|
||||
|
@ -4,15 +4,10 @@ option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
import "AvatarTeam.proto";
|
||||
|
||||
// CmdId: 1713
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarTeamUpdateNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1642;
|
||||
}
|
||||
|
||||
map<uint32, AvatarTeam> avatar_team_map = 1;
|
||||
repeated uint64 temp_avatar_guid_list = 2;
|
||||
map<uint32, AvatarTeam> avatar_team_map = 6;
|
||||
repeated uint64 temp_avatar_guid_list = 9;
|
||||
}
|
||||
|
@ -2,18 +2,12 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1041
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarUnlockTalentNotify {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1089;
|
||||
}
|
||||
|
||||
uint64 avatar_guid = 1;
|
||||
uint32 entity_id = 2;
|
||||
uint32 talent_id = 3;
|
||||
uint32 skill_depot_id = 4;
|
||||
uint32 entity_id = 15;
|
||||
uint32 talent_id = 13;
|
||||
uint32 skill_depot_id = 14;
|
||||
}
|
||||
|
@ -2,18 +2,12 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1680
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
// IsAllowClient: true
|
||||
message AvatarUpgradeReq {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
NONE = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
IS_ALLOW_CLIENT = 1;
|
||||
CMD_ID = 1691;
|
||||
}
|
||||
|
||||
uint32 item_id = 1;
|
||||
uint32 count = 2;
|
||||
uint64 avatar_guid = 3;
|
||||
uint32 item_id = 9;
|
||||
uint32 count = 12;
|
||||
uint64 avatar_guid = 14;
|
||||
}
|
||||
|
@ -2,20 +2,14 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1779
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarUpgradeRsp {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1720;
|
||||
}
|
||||
|
||||
int32 retcode = 1;
|
||||
uint64 avatar_guid = 2;
|
||||
uint32 old_level = 3;
|
||||
uint32 cur_level = 4;
|
||||
map<uint32, float> old_fight_prop_map = 5;
|
||||
map<uint32, float> cur_fight_prop_map = 6;
|
||||
int32 retcode = 6;
|
||||
uint64 avatar_guid = 15;
|
||||
uint32 old_level = 5;
|
||||
uint32 cur_level = 7;
|
||||
map<uint32, float> old_fight_prop_map = 2;
|
||||
map<uint32, float> cur_fight_prop_map = 4;
|
||||
}
|
||||
|
@ -2,17 +2,11 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1728
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
// IsAllowClient: true
|
||||
message AvatarWearFlycloakReq {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
NONE = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
IS_ALLOW_CLIENT = 1;
|
||||
CMD_ID = 1635;
|
||||
}
|
||||
|
||||
uint64 avatar_guid = 1;
|
||||
uint32 flycloak_id = 2;
|
||||
uint64 avatar_guid = 11;
|
||||
uint32 flycloak_id = 9;
|
||||
}
|
||||
|
@ -2,17 +2,11 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
// CmdId: 1770
|
||||
// EnetChannelId: 0
|
||||
// EnetIsReliable: true
|
||||
message AvatarWearFlycloakRsp {
|
||||
enum CmdId {
|
||||
option allow_alias = true;
|
||||
NONE = 0;
|
||||
ENET_CHANNEL_ID = 0;
|
||||
ENET_IS_RELIABLE = 1;
|
||||
CMD_ID = 1709;
|
||||
}
|
||||
|
||||
int32 retcode = 1;
|
||||
uint64 avatar_guid = 2;
|
||||
uint32 flycloak_id = 3;
|
||||
int32 retcode = 13;
|
||||
uint64 avatar_guid = 8;
|
||||
uint32 flycloak_id = 2;
|
||||
}
|
||||
|
@ -2,7 +2,6 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message Birthday {
|
||||
uint32 month = 1;
|
||||
uint32 day = 2;
|
||||
|
@ -2,7 +2,6 @@ syntax = "proto3";
|
||||
|
||||
option java_package = "emu.grasscutter.net.proto";
|
||||
|
||||
|
||||
message BlockInfo {
|
||||
uint32 block_id = 1;
|
||||
uint32 data_version = 2;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user