Merge branch 'stable' into development

This commit is contained in:
memetrollsXD 2022-04-22 07:56:30 +02:00
commit d87cb5bef5
484 changed files with 10472 additions and 6467 deletions

24
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,24 @@
name: "Build"
on:
push:
branches:
- "stable"
jobs:
Build-Server-Jar:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: '8'
- name: Run Gradle
run: .\gradlew.bat && .\gradlew jar
- name: Upload build
uses: actions/upload-artifact@v3
with:
name: Grasscutter
path: grasscutter.jar

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "Grasscutter-Protos"]
path = Grasscutter-Protos
url = https://github.com/Melledy/Grasscutter-Protos

1
Grasscutter-Protos Submodule

@ -0,0 +1 @@
Subproject commit 0537e9cc4c7856a7c6f88bbbaa908a80c4ee677e

View File

@ -1,19 +1,20 @@
# Grasscutter
A WIP server emulator for Genshin Impact 2.3-2.6
A WIP server reimplementation for *some anime game* 2.3-2.6
**Documentation**: [Grasscutter Wiki](https://github.com/Melledy/Grasscutter/wiki/)
**Note**: For support please join the [Discord server](https://discord.gg/T5vZU6UyeG).
# Current features
* Logging in
* Spawning monsters via console
* Combat
* Spawning monsters via console
* Inventory features (recieving items/characters, upgrading items/characters, etc)
* Co-op does work, but movement is kind of buggy and some player ults do not spawn properly
* Friends list
* Gacha system
* Friends list
* Co-op *partially* work
# Quick setup guide
* For more information, we now have [Grasscutter Wiki](https://github.com/Melledy/Grasscutter/wiki/) page !
### Note
* If you update from an older version, delete `config.json` for regeneration
### Prerequisites
* JDK-8u202 ([mirror link](https://mirrors.huaweicloud.com/java/jdk/8u202-b08/) since Oracle required an account to download old builds)
* Mongodb (recommended 4.0+)
@ -22,13 +23,13 @@ A WIP server emulator for Genshin Impact 2.3-2.6
### Starting up Grasscutter server (Assuming you are on Windows)
1. Setup compile environment `gradlew.bat`
2. Compile Grasscutter with `gradlew jar`
3. Create a folder named `resources` in your Grasscutter directory, bring your `BinOutput` and `ExcelBinOutput` folders into it *(Check the wiki for more details where to get those.)*
4. Run Grasscutter with `java -jar grasscutter.jar`. Make sure mongodb is running as well.
3. Create a folder named `resources` in your Grasscutter directory, bring your `BinOutput` and `ExcelBinOutput` folders into it *(Check the wiki for more details how to get those.)*
4. Run Grasscutter with `java -jar grasscutter.jar`. Make sure mongodb service is running as well.
### Connecting with the client
½. Create an account using command below
½. Create an account using *server console command* below
1. Run a proxy daemon: (choose either one)
- mitmdump: `mitmdump -s proxy.py --ssl-insecure`
- mitmdump: `mitmdump -s proxy.py -k`
- Fiddler Classic: Run Fiddler Classic, turn on `Decrypt https traffic` in setting and change the default port there (Tools -> Options -> Connections) to anything other than `8888`, and load [this script](https://github.lunatic.moe/fiddlerscript).
- [Hosts file](https://github.com/Melledy/Grasscutter/wiki/Running#traffic-route-map)
2. Trust CA certificate:
@ -39,35 +40,40 @@ A WIP server emulator for Genshin Impact 2.3-2.6
* or you can use `run.cmd` to start Server & Proxy daemon with one click
# Grasscutter commands
### Server console commands
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.
`account create [username] {playerid}` - Creates an account with the specified username and the in-game uid for that account. The playerid parameter is optional and will be auto generated if not set.
### In-Game commands
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.
`spawn [monster id] [level] [amount]`
`!spawn [monster id] [level] [amount]`
`give [item id] [amount]`
`!give [item id] [amount]`
`givechar [avatar id] [level]`
`!givechar [avatar id] [level]`
`drop [item id] [amount]`
`!drop [item id] [amount]`
`killall`
`!killall`
`setworldlevel [level]` - Relog to see effects properly
`!setworldlevel [level]` - Relog to see effects properly
`godmode` - Prevents you from taking damage
`!godmode` - Prevents you from taking damage
`resetconst` - Resets the constellation level on your current active character, will need to relog after using the command to see any changes.
`!resetconst` - Resets the constellation level on your current active character, will need to relog after using the command to see any changes.
`setstats [stats] [amount]` - Changes the current character's specified stat.
`!sethp [hp]`
`clearartifacts` - Deletes all unequipped and unlocked level 0 artifacts, **including yellow rarity ones** from your inventory
`!clearartifacts` - Deletes all unequipped and unlocked level 0 artifacts, **including yellow rarity ones** from your inventory
`pos` - Gets your current coordinate.
`weather [weather id] [climate id]` - Changes the current weather.
*More commands will be updated in the [wiki](https://github.com/Melledy/Grasscutter/wiki/).*
### Bonus
When you want to teleport to somewhere, use the ingame marking function on Map, click Confirm. You will see your character falling from a very high destination, exact location that you marked.
# Quick Troubleshooting
* If compiling wasnt successful, please check your JDK installation (must be JDK 8 and validated JDK's bin PATH variable)
* 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
* If compiling wasn't successful, please check your JDK installation (must be JDK 8 and validated JDK's bin PATH variable)
* 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.) > Client
* If `4206` error constantly prompt up, try to use [jdk-8u202-b08](https://mirrors.huaweicloud.com/java/jdk/8u202-b08/) instead of other versions of JDK

View File

@ -23,19 +23,21 @@ repositories {
}
dependencies {
compile fileTree(dir: 'lib', include: '*.jar')
implementation fileTree(dir: 'lib', include: ['*.jar'])
compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.32'
compile group: 'ch.qos.logback', name: 'logback-core', version: '1.2.6'
compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.6'
compile group: 'io.netty', name: 'netty-all', version: '4.1.69.Final'
implementation group: 'org.slf4j', name: 'slf4j-api', version: '1.7.32'
implementation group: 'ch.qos.logback', name: 'logback-core', version: '1.2.6'
implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.6'
implementation group: 'io.netty', name: 'netty-all', version: '4.1.69.Final'
compile group: 'com.google.code.gson', name: 'gson', version: '2.8.8'
compile group: 'com.google.protobuf', name: 'protobuf-java', version: '3.18.1'
implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.8'
implementation group: 'com.google.protobuf', name: 'protobuf-java', version: '3.18.1'
compile group: 'org.reflections', name: 'reflections', version: '0.9.12'
implementation group: 'org.reflections', name: 'reflections', version: '0.9.12'
compile group: 'dev.morphia.morphia', name: 'core', version: '1.6.1'
implementation group: 'dev.morphia.morphia', name: 'core', version: '1.6.1'
implementation group: 'org.greenrobot', name: 'eventbus-java', version: '3.3.1'
}
application {
@ -51,9 +53,11 @@ jar {
jar.baseName = 'grasscutter'
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
duplicatesStrategy = DuplicatesStrategy.INCLUDE
from('src/main/java') {
include '*.xml'
}

View File

@ -17,39 +17,24 @@
"gachaType": 301,
"scheduleId": 903,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A076",
"previewPrefabPath": "UI_Tab_GachaShowPanel_A076",
"titlePath": "UI_GACHA_SHOW_PANEL_A076_TITLE",
"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": [1066],
"rateUpItems2": [1023, 1043, 1064]
},
{
"gachaType": 400,
"scheduleId": 913,
"bannerType": "EVENT",
"prefabPath": "GachaShowPanel_A077",
"previewPrefabPath": "UI_Tab_GachaShowPanel_A077",
"titlePath": "UI_Tab_GachaShowPanel_A077",
"costItem": 223,
"beginTime": 0,
"endTime": 1924992000,
"sortId": 9998,
"maxItemType": 1,
"rateUpItems1": [1022],
"rateUpItems2": [1023, 1043, 1064]
"rateUpItems1": [1002],
"rateUpItems2": [1053, 1020, 1045]
},
{
"gachaType": 302,
"scheduleId": 923,
"scheduleId": 913,
"bannerType": "WEAPON",
"prefabPath": "GachaShowPanel_A078",
"previewPrefabPath": "UI_Tab_GachaShowPanel_A078",
"titlePath": "UI_GACHA_SHOW_PANEL_A078_TITLE",
"prefabPath": "GachaShowPanel_A080",
"previewPrefabPath": "UI_Tab_GachaShowPanel_A080",
"titlePath": "UI_GACHA_SHOW_PANEL_A021_TITLE",
"costItem": 223,
"beginTime": 0,
"endTime": 1924992000,
@ -58,7 +43,7 @@
"eventChance": 75,
"softPity": 80,
"hardPity": 80,
"rateUpItems1": [11510, 15503],
"rateUpItems2": [11402, 12403, 13401, 14402, 15405]
"rateUpItems1": [11509, 12504],
"rateUpItems2": [11401, 12402, 13407, 14401, 15401]
}
]
]

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

View File

@ -1,13 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "AbilityScalarValueEntry.proto";
import "AbilityString.proto";
message AbilityAppliedAbility {
AbilityString abilityName = 1;
AbilityString abilityOverride = 2;
repeated AbilityScalarValueEntry overrideMap = 3;
uint32 instancedAbilityId = 4;
}

View File

@ -1,23 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "AbilityAttachedModifier.proto";
import "AbilityString.proto";
import "ModifierDurability.proto";
message AbilityAppliedModifier {
int32 modifierLocalId = 1;
uint32 parentAbilityEntityId = 2;
AbilityString parentAbilityName = 3;
AbilityString parentAbilityOverride = 4;
uint32 instancedAbilityId = 5;
uint32 instancedModifierId = 6;
float existDuration = 7;
AbilityAttachedModifier attachedInstancedModifier = 8;
uint32 applyEntityId = 9;
bool isAttachedParentAbility = 10;
ModifierDurability modifierDurability = 11;
uint32 sbuffUid = 12;
bool isServerbuffModifier = 13;
}

View File

@ -1,11 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AbilityAttachedModifier {
bool isInvalid = 1;
uint32 ownerEntityId = 2;
uint32 instancedModifierId = 3;
bool isServerbuffModifier = 4;
int32 attachNameHash = 5;
}

View File

@ -1,10 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "AbilityControlBlock.proto";
message AbilityChangeNotify {
uint32 entityId = 1;
AbilityControlBlock abilityControlBlock = 2;
}

View File

@ -1,9 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "AbilityEmbryo.proto";
message AbilityControlBlock {
repeated AbilityEmbryo abilityEmbryoList = 1;
}

View File

@ -1,9 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AbilityEmbryo {
uint32 abilityId = 1;
fixed32 abilityNameHash = 2;
fixed32 abilityOverrideNameHash = 3;
}

View File

@ -1,12 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AbilityIdentifier {
uint32 instancedAbilityId = 1;
uint32 abilityCasterId = 2;
int32 localId = 3;
uint32 instancedModifierId = 4;
uint32 modifierOwnerId = 5;
bool isServerbuffModifier = 6;
}

View File

@ -1,9 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "AbilityInvokeEntry.proto";
message AbilityInvocationsNotify {
repeated AbilityInvokeEntry invokes = 1;
}

View File

@ -1,48 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
enum AbilityInvokeArgument {
AbilityNone = 0;
AbilityMetaModifierChange = 1;
AbilityMetaCommandModifierChangeRequest = 2;
AbilityMetaSpecialFloatArgument = 3;
AbilityMetaOverrideParam = 4;
AbilityMetaClearOverrideParam = 5;
AbilityMetaReinitOverridemap = 6;
AbilityMetaGlobalFloatValue = 7;
AbilityMetaClearGlobalFloatValue = 8;
AbilityMetaAbilityElementStrength = 9;
AbilityMetaAddOrGetAbilityAndTrigger = 10;
AbilityMetaSetKilledSetate = 11;
AbilityMetaSetAbilityTrigger = 12;
AbilityMetaAddNewAbility = 13;
AbilityMetaRemoveAbility = 14;
AbilityMetaSetModifierApplyEntity = 15;
AbilityMetaModifierDurabilityChange = 16;
AbilityMetaElementReactionVisual = 17;
AbilityMetaSetPoseParameter = 18;
AbilityMetaUpdateBaseReactionDamage = 19;
AbilityActionTriggerAbility = 50;
AbilityActionSetCrashDamage = 51;
AbilityActionEffect = 52;
AbilityActionSummon = 53;
AbilityActionBlink = 54;
AbilityActionCreateGadget = 55;
AbilityActionApplyLevelModifier = 56;
AbilityActionGenerateElemBall = 57;
AbilityActionSetRandomOverrideMapValue = 58;
AbilityActionServerMonsterLog = 59;
AbilityMixinAvatarSteerByCamera = 100;
AbilityMixinMonsterDefend = 101;
AbilityMixinWindZone = 102;
AbilityMixinCostStamina = 103;
AbilityMixinEliteShield = 104;
AbilityMixinElementShield = 105;
AbilityMixinGlobalShield = 106;
AbilityMixinShieldBar = 107;
AbilityMixinWindSeedSpawner = 108;
AbilityMixinDoActionByElementReaction = 109;
AbilityMixinFieldEntityCountChange = 110;
AbilityMixinScenePropSync = 111;
}

View File

@ -1,17 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "AbilityInvokeArgument.proto";
import "AbilityInvokeEntryHead.proto";
import "ForwardType.proto";
message AbilityInvokeEntry {
AbilityInvokeEntryHead head = 1;
AbilityInvokeArgument argumentType = 2;
bytes abilityData = 3;
uint32 entityId = 4;
ForwardType forwardType = 5;
uint32 forwardPeer = 6;
uint32 eventId = 7;
}

View File

@ -1,13 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AbilityInvokeEntryHead {
uint32 instancedAbilityId = 1;
uint32 instancedModifierId = 2;
int32 localId = 3;
int32 modifierConfigLocalId = 4;
uint32 targetId = 5;
bool isServerbuffModifier = 6;
uint32 serverBuffUid = 7;
}

View File

@ -1,16 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "MassivePropSyncInfo.proto";
message AbilityMixinRecoverInfo {
oneof source {
uint32 instancedAbilityId = 1;
uint32 instancedModifierId = 2;
}
uint32 localId = 3;
repeated uint32 dataList = 4;
bool isServerbuffModifier = 5;
repeated MassivePropSyncInfo massivePropList = 6;
}

View File

@ -1,13 +0,0 @@
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;
}

View File

@ -1,17 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "AbilityScalarType.proto";
import "AbilityString.proto";
message AbilityScalarValueEntry {
AbilityString key = 1;
AbilityScalarType valueType = 2;
oneof value {
float floatValue = 3;
string stringValue = 4;
int32 intValue = 5;
uint32 uintValue = 6;
}
}

View File

@ -1,10 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AbilityString {
oneof type {
string str = 1;
uint32 hash = 2;
}
}

View File

@ -1,16 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "AbilityAppliedAbility.proto";
import "AbilityAppliedModifier.proto";
import "AbilityMixinRecoverInfo.proto";
import "AbilityScalarValueEntry.proto";
message AbilitySyncStateInfo {
bool isInited = 1;
repeated AbilityScalarValueEntry dynamicValueMap = 2;
repeated AbilityAppliedAbility appliedAbilities = 3;
repeated AbilityAppliedModifier appliedModifiers = 4;
repeated AbilityMixinRecoverInfo mixinRecoverInfos = 5;
}

View File

@ -1,179 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
enum ActionReasonType {
ActionReasonNone = 0;
ActionReasonQuestItem = 1;
ActionReasonQuestReward = 2;
ActionReasonTrifle = 3;
ActionReasonShop = 4;
ActionReasonPlayerUpgradeReward = 5;
ActionReasonAddAvatar = 6;
ActionReasonGadgetEnvAnimal = 7;
ActionReasonMonsterEnvAnimal = 8;
ActionReasonCompound = 9;
ActionReasonCook = 10;
ActionReasonGather = 11;
ActionReasonMailAttachment = 12;
ActionReasonCityLevelupReturn = 15;
ActionReasonCityLevelupReward = 17;
ActionReasonAreaExploreReward = 18;
ActionReasonUnlockPointReward = 19;
ActionReasonDungeonFirstPass = 20;
ActionReasonDungeonPass = 21;
ActionReasonChangeElemType = 23;
ActionReasonFetterOpen = 25;
ActionReasonDailyTaskScore = 26;
ActionReasonDailyTaskHost = 27;
ActionReasonRandTaskHost = 28;
ActionReasonExpedition = 29;
ActionReasonGacha = 30;
ActionReasonCombine = 31;
ActionReasonRandTaskGuest = 32;
ActionReasonDailyTaskGuest = 33;
ActionReasonForgeOutput = 34;
ActionReasonForgeReturn = 35;
ActionReasonInitAvatar = 36;
ActionReasonMonsterDie = 37;
ActionReasonGm = 38;
ActionReasonOpenChest = 39;
ActionReasonGadgetDie = 40;
ActionReasonMonsterChangeHp = 41;
ActionReasonSubfieldDrop = 42;
ActionReasonPushTipsReward = 43;
ActionReasonActivityMonsterDrop = 44;
ActionReasonActivityGather = 45;
ActionReasonActivitySubfieldDrop = 46;
ActionReasonTowerScheduleReward = 47;
ActionReasonTowerFloorStarReward = 48;
ActionReasonTowerFirstPassReward = 49;
ActionReasonTowerDailyReward = 50;
ActionReasonHitClientTrivialEntity = 51;
ActionReasonOpenWorldBossChest = 52;
ActionReasonMaterialDeleteReturn = 53;
ActionReasonSignInReward = 54;
ActionReasonOpenBlossomChest = 55;
ActionReasonRecharge = 56;
ActionReasonBonusActivityReward = 57;
ActionReasonTowerCommemorativeReward = 58;
ActionReasonTowerSkipFloorReward = 59;
ActionReasonRechargeBonus = 60;
ActionReasonRechargeCard = 61;
ActionReasonRechargeCardDaily = 62;
ActionReasonRechargeCardReplace = 63;
ActionReasonRechargeCardReplaceFree = 64;
ActionReasonRechargePlayReplace = 65;
ActionReasonMpPlayTakeReward = 66;
ActionReasonActivityWatcher = 67;
ActionReasonSalesmanDeliverItem = 68;
ActionReasonSalesmanReward = 69;
ActionReasonRebate = 70;
ActionReasonMcoinExchangeHcoin = 71;
ActionReasonDailyTaskExchangeLegendaryKey = 72;
ActionReasonUnlockPersonLine = 73;
ActionReasonFetterLevelReward = 74;
ActionReasonBuyResin = 75;
ActionReasonRechargePackage = 76;
ActionReasonDeliveryDailyReward = 77;
ActionReasonCityReputationLevel = 78;
ActionReasonCityReputationQuest = 79;
ActionReasonCityReputationRequest = 80;
ActionReasonCityReputationExplore = 81;
ActionReasonOffergingLevel = 82;
ActionReasonRoutineHost = 83;
ActionReasonRoutineGuest = 84;
ActionReasonTreasureMapSpotToken = 89;
ActionReasonTreasureMapBonusLevelReward = 90;
ActionReasonTreasureMapMpReward = 91;
ActionReasonConvert = 92;
ActionReasonOverflowTransform = 93;
ActionReasonActivityAvatarSelectionReward = 96;
ActionReasonActivityWatcherBatch = 97;
ActionReasonHitTreeDrop = 98;
ActionReasonGetHomeLevelupReward = 99;
ActionReasonHomeDefaultFurniture = 100;
ActionReasonActivityCond = 101;
ActionReasonBattlePassNotify = 102;
ActionReasonPlayerUseItem = 1001;
ActionReasonDropItem = 1002;
ActionReasonWeaponUpgrade = 1011;
ActionReasonWeaponPromote = 1012;
ActionReasonWeaponAwaken = 1013;
ActionReasonRelicUpgrade = 1014;
ActionReasonAbility = 1015;
ActionReasonDungeonStatueDrop = 1016;
ActionReasonOfflineMsg = 1017;
ActionReasonAvatarUpgrade = 1018;
ActionReasonAvatarPromote = 1019;
ActionReasonQuestAction = 1021;
ActionReasonCityLevelup = 1022;
ActionReasonUpgradeSkill = 1024;
ActionReasonUnlockTalent = 1025;
ActionReasonUpgradeProudSkill = 1026;
ActionReasonPlayerLevelLimitUp = 1027;
ActionReasonDungeonDaily = 1028;
ActionReasonItemGiving = 1030;
ActionReasonForgeCost = 1031;
ActionReasonInvestigationReward = 1032;
ActionReasonInvestigationTargetReward = 1033;
ActionReasonGadgetInteract = 1034;
ActionReasonSeaLampCiMaterial = 1036;
ActionReasonSeaLampContributionReward = 1037;
ActionReasonSeaLampPhaseReward = 1038;
ActionReasonSeaLampFlyLamp = 1039;
ActionReasonAutoRecover = 1040;
ActionReasonActivityExpireItem = 1041;
ActionReasonSubCoinNegative = 1042;
ActionReasonBargainDeduct = 1043;
ActionReasonBattlePassPaidReward = 1044;
ActionReasonBattlePassLevelReward = 1045;
ActionReasonTrialAvatarActivityFirstPassReward = 1046;
ActionReasonBuyBattlePassLevel = 1047;
ActionReasonGrantBirthdayBenefit = 1048;
ActionReasonAchievementReward = 1049;
ActionReasonAchievementGoalReward = 1050;
ActionReasonFirstShareToSocialNetwork = 1051;
ActionReasonDestroyMaterial = 1052;
ActionReasonCodexLevelupReward = 1053;
ActionReasonHuntingOfferReward = 1054;
ActionReasonUseWidgetAnchorPoint = 1055;
ActionReasonUseWidgetBonfire = 1056;
ActionReasonUngradeWeaponReturnMaterial = 1057;
ActionReasonUseWidgetOneoffGatherPointDetector = 1058;
ActionReasonUseWidgetClientCollector = 1059;
ActionReasonUseWidgetClientDetector = 1060;
ActionReasonTakeGeneralReward = 1061;
ActionReasonAsterTakeSpecialReward = 1062;
ActionReasonRemoveCodexBook = 1063;
ActionReasonOfferingItem = 1064;
ActionReasonUseWidgetGadgetBuilder = 1065;
ActionReasonEffigyFirstPassReward = 1066;
ActionReasonEffigyReward = 1067;
ActionReasonReunionFirstGiftReward = 1068;
ActionReasonReunionSignInReward = 1069;
ActionReasonReunionWatcherReward = 1070;
ActionReasonSalesmanMpReward = 1071;
ActionReasionAvatarPromoteReward = 1072;
ActionReasonBlessingRedeemReward = 1073;
ActionMiracleRingReward = 1074;
ActionReasonExpeditionReward = 1075;
ActionReasonTreasureMapRemoveDetector = 1076;
ActionReasonMechanicusDungeonTicket = 1077;
ActionReasonMechanicusLevelupGear = 1078;
ActionReasonMechanicusBattleSettle = 1079;
ActionReasonRegionSearchReward = 1080;
ActionReasonUnlockCoopChapter = 1081;
ActionReasonTakeCoopReward = 1082;
ActionReasonFleurFairDungeonReward = 1083;
ActionReasonActivityScore = 1084;
ActionReasonChannellerSlabOneoffDungeonReward = 1085;
ActionReasonFurnitureMakeStart = 1086;
ActionReasonFurnitureMakeTake = 1087;
ActionReasonFurnitureMakeCancel = 1088;
ActionReasonFurnitureMakeFastFinish = 1089;
ActionReasonChannellerSlabLoopDungeonFirstPassReward = 1090;
ActionReasonChannellerSlabLoopDungeonScoreReward = 1091;
ActionReasonHomeLimitedShopBuy = 1092;
ActionReasonHomeCoinCollect = 1093;
}

View File

@ -1,47 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "ActivityNullDetailInfo.proto";
import "ActivityWatcherInfo.proto";
message ActivityInfo {
uint32 activityId = 1;
uint32 scheduleId = 2;
uint32 beginTime = 3;
uint32 endTime = 4;
uint32 activityType = 5;
bool isPlayOpenAnim = 6;
bool isFinished = 7;
bool isStarting = 8;
repeated ActivityWatcherInfo watcherInfoList = 9;
repeated uint32 meetCondList = 10;
repeated uint32 expireCondList = 15;
uint32 selectedAvatarRewardId = 17;
map<uint32, uint32> activityCoinMap = 18;
uint32 scoreLimit = 19;
uint32 curScore = 20;
repeated uint32 takenRewardList = 24;
oneof detail {
ActivityNullDetailInfo samLampInfo = 11;
ActivityNullDetailInfo crucibleInfo = 12;
ActivityNullDetailInfo salesmanInfo = 13;
ActivityNullDetailInfo trialAvatarInfo = 14;
ActivityNullDetailInfo deliveryInfo = 16;
ActivityNullDetailInfo asterInfo = 21;
ActivityNullDetailInfo flightInfo = 25;
ActivityNullDetailInfo dragonSpineInfo = 31;
ActivityNullDetailInfo effigyInfo = 32;
ActivityNullDetailInfo treasureMapInfo = 35;
ActivityNullDetailInfo blessingInfo = 41;
ActivityNullDetailInfo seaLampInfo = 42;
ActivityNullDetailInfo expeditionInfo = 43;
ActivityNullDetailInfo arenaChallengeInfo = 44;
ActivityNullDetailInfo fleurFairInfo = 51;
ActivityNullDetailInfo waterSpiritInfo = 52;
ActivityNullDetailInfo challnelerSlabInfo = 61;
ActivityNullDetailInfo mistTrialActivityInfo = 62;
ActivityNullDetailInfo hideAndSeekInfo = 63;
ActivityNullDetailInfo findHilichurlInfo = 64;
}
}

View File

@ -1,7 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message ActivityNullDetailInfo {
}

View File

@ -1,10 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message ActivityWatcherInfo {
uint32 watcherId = 1;
uint32 curProgress = 2;
uint32 totalProgress = 3;
bool isTakenReward = 4;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AiSkillCdInfo {
map<uint32, uint32> skillCdMap = 1;
map<uint32, uint32> skillGroupCdMap = 2;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AiSyncInfo {
uint32 entityId = 1;
bool hasPathToTarget = 2;
}

View File

@ -1,7 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AiThreatInfo {
map<uint32, uint32> aiThreatMap = 1;
}

View File

@ -1,10 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AnimatorParameterValueInfo {
uint32 paraType = 1;
int32 intVal = 2;
float floatVal = 3;
bool boolVal = 4;
}

View File

@ -1,10 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "AnimatorParameterValueInfo.proto";
message AnimatorParameterValueInfoPair {
int32 name = 1;
AnimatorParameterValueInfo animatorPara = 2;
}

View File

@ -1,10 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "FriendBrief.proto";
message AskAddFriendNotify {
uint32 targetUid = 1;
FriendBrief targetFriendBrief = 2;
}

View File

@ -1,7 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AskAddFriendReq {
uint32 targetUid = 1;
}

View File

@ -1,9 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AskAddFriendRsp {
int32 retcode = 1;
uint32 targetUid = 2;
uint32 param = 3;
}

View File

@ -1,12 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AttackHitEffectResult {
uint32 hitEffLevel = 1;
float retreatStrength = 2;
float airStrength = 3;
float hitHaltTime = 4;
float hitHaltTimeScale = 5;
uint32 originalHitEffLevel = 6;
}

View File

@ -1,40 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "AbilityIdentifier.proto";
import "AttackHitEffectResult.proto";
import "HitCollision.proto";
import "Vector.proto";
message AttackResult {
uint32 attackerId = 1;
uint32 defenseId = 2;
string animEventId = 3;
AbilityIdentifier abilityIdentifier = 4;
float damage = 6;
bool isCrit = 7;
HitCollision hitCollision = 8;
uint32 hitPosType = 9;
uint32 endureBreak = 10;
Vector resolvedDir = 11;
int32 hitRetreatAngleCompat = 12;
AttackHitEffectResult hitEffResult = 13;
uint32 elementType = 14;
bool useGadgetDamageAction = 19;
uint32 gadgetDamageActionIdx = 20;
bool isResistText = 22;
uint32 criticalRand = 23;
float elementAmplifyRate = 24;
float damageShield = 26;
bool muteElementHurt = 27;
uint32 amplifyReactionType = 30;
uint32 addhurtReactionType = 31;
uint32 bulletFlyTimeMs = 32;
uint32 attackCount = 33;
uint32 hashedAnimEventId = 34;
uint32 attackTimestampMs = 36;
float endureDelta = 37;
uint32 targetType = 38;
float elementDurabilityAttenuation = 39;
}

View File

@ -1,10 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "AvatarInfo.proto";
message AvatarAddNotify {
AvatarInfo avatar = 1;
bool isInTeam = 2;
}

View File

@ -1,9 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "SceneEntityInfo.proto";
message AvatarChangeCostumeNotify {
SceneEntityInfo entity = 1;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarChangeCostumeReq {
uint64 avatarGuid = 1;
uint32 costumeId = 2;
}

View File

@ -1,9 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarChangeCostumeRsp {
uint32 retcode = 1;
uint64 avatarGuid = 2;
uint32 costumeId = 3;
}

View File

@ -1,16 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "AvatarInfo.proto";
import "AvatarTeam.proto";
message AvatarDataNotify {
repeated AvatarInfo avatarList = 1;
map<uint32, AvatarTeam> avatarTeamMap = 2;
uint32 curAvatarTeamId = 3;
fixed64 chooseAvatarGuid = 4;
repeated uint64 tempAvatarGuidList = 5;
repeated uint32 ownedFlycloakList = 6;
repeated uint32 ownedCostumeList = 7;
}

View File

@ -1,11 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "Vector.proto";
message AvatarDieAnimationEndReq {
uint64 dieGuid = 1;
uint32 skillId = 2;
Vector rebornPos = 3;
}

View File

@ -1,9 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarDieAnimationEndRsp {
int32 retcode = 1;
uint64 dieGuid = 2;
uint32 skillId = 3;
}

View File

@ -1,17 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "AbilitySyncStateInfo.proto";
import "ServerBuff.proto";
message AvatarEnterSceneInfo {
uint64 avatarGuid = 1;
uint32 avatarEntityId = 2;
AbilitySyncStateInfo avatarAbilityInfo = 3;
repeated uint32 buffIdList = 4;
uint64 weaponGuid = 5;
uint32 weaponEntityId = 6;
AbilitySyncStateInfo weaponAbilityInfo = 7;
repeated ServerBuff serverBuffList = 8;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarEquipAffixInfo {
uint32 equipAffixId = 1;
uint32 leftCdTime = 2;
}

View File

@ -1,15 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "SceneReliquaryInfo.proto";
import "SceneWeaponInfo.proto";
message AvatarEquipChangeNotify {
uint64 avatarGuid = 1;
uint32 equipType = 2;
uint32 itemId = 3;
uint64 equipGuid = 4;
SceneWeaponInfo weapon = 5;
SceneReliquaryInfo reliquary = 6;
}

View File

@ -1,10 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
enum AvatarExpeditionState {
AvatarExpeditionNone = 0;
AvatarExpeditionDoing = 1;
AvatarExpeditionFinishWaitReward = 2;
AvatarExpeditionCallbackWaitReward = 3;
}

View File

@ -1,14 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "FetterData.proto";
message AvatarFetterInfo {
uint32 expNumber = 1;
uint32 expLevel = 2;
repeated uint32 openIdList = 3;
repeated uint32 finishIdList = 4;
repeated uint32 rewardedFetterLevelList = 5;
repeated FetterData fetterList = 6;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarFightPropNotify {
uint64 avatarGuid = 1;
map<uint32, float> fightPropMap = 2;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarFightPropUpdateNotify {
uint64 avatarGuid = 1;
map<uint32, float> fightPropMap = 2;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarFlycloakChangeNotify {
uint64 avatarGuid = 1;
uint32 flycloakId = 2;
}

View File

@ -1,7 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarGainCostumeNotify {
uint32 costumeId = 1;
}

View File

@ -1,7 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarGainFlycloakNotify {
uint32 flycloakId = 1;
}

View File

@ -1,37 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "AvatarEquipAffixInfo.proto";
import "AvatarExpeditionState.proto";
import "AvatarFetterInfo.proto";
import "AvatarSkillInfo.proto";
import "PropValue.proto";
import "TrialAvatarInfo.proto";
message AvatarInfo {
uint32 avatarId = 1;
uint64 guid = 2;
map<uint32, PropValue> propMap = 3;
uint32 lifeState = 4;
repeated uint64 equipGuidList = 5;
repeated uint32 talentIdList = 6;
map<uint32, float> fightPropMap = 7;
TrialAvatarInfo trialAvatarInfoField = 9;
map<uint32, AvatarSkillInfo> skillMap = 10;
uint32 skillDepotId = 11;
AvatarFetterInfo fetterInfo = 12;
uint32 coreProudSkillLevel = 13;
repeated uint32 inherentProudSkillList = 14;
map<uint32, uint32> skillLevelMap = 15;
AvatarExpeditionState expeditionState = 16;
map<uint32, uint32> proudSkillExtraLevel = 17;
bool isFocusFieldNumber = 18;
uint32 avatarType = 19;
repeated uint32 teamResonanceList = 20;
uint32 wearingFlycloakId = 21;
repeated AvatarEquipAffixInfo equipAffixList = 22;
uint32 bornTime = 23;
repeated uint32 pendingPromoteRewardListFieldNumber = 24;
uint32 costumeId = 25;
}

View File

@ -1,14 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "PlayerDieType.proto";
message AvatarLifeStateChangeNotify {
uint64 avatarGuid = 1;
uint32 lifeState = 2;
uint32 sourceEntityId = 3;
string attackTag = 4;
PlayerDieType dieType = 5;
uint32 moveReliableSeq = 6;
}

View File

@ -1,7 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarPromoteReq {
uint64 guid = 1;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarPromoteRsp {
int32 retcode = 1;
uint64 guid = 2;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarPropNotify {
uint64 avatarGuid = 1;
map<uint32, int64> propMap = 2;
}

View File

@ -1,12 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarSkillChangeNotify {
uint64 avatarGuid = 1;
uint32 entityId = 2;
uint32 skillDepotId = 3;
uint32 avatarSkillId = 4;
uint32 oldLevel = 5;
uint32 curLevel = 6;
}

View File

@ -1,9 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarSkillInfo {
uint32 passCdTime = 1;
repeated uint32 fullCdTimeList = 2;
uint32 maxChargeCount = 3;
}

View File

@ -1,9 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarSkillUpgradeReq {
uint64 avatarGuid = 1;
uint32 avatarSkillId = 2;
uint32 oldLevel = 3;
}

View File

@ -1,11 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarSkillUpgradeRsp {
int32 retcode = 1;
uint64 avatarGuid = 2;
uint32 avatarSkillId = 3;
uint32 oldLevel = 4;
uint32 curLevel = 5;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarTeam {
repeated uint64 avatarGuidList = 1;
string teamName = 2;
}

View File

@ -1,10 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarTeamResonanceInfo {
uint32 entityId = 1;
uint64 avatarGuid = 2;
repeated uint32 addTeamResonanceIdList = 3;
repeated uint32 delTeamResonanceIdList = 4;
}

View File

@ -1,10 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "AvatarTeam.proto";
message AvatarTeamUpdateNotify {
map<uint32, AvatarTeam> avatarTeamMap = 1;
repeated uint64 tempAvatarGuidList = 2;
}

View File

@ -1,10 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarUnlockTalentNotify {
uint64 avatarGuid = 1;
uint32 entityId = 2;
uint32 talentId = 3;
uint32 skillDepotId = 4;
}

View File

@ -1,9 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarUpgradeReq {
uint32 itemId = 1;
uint32 count = 2;
uint64 avatarGuid = 3;
}

View File

@ -1,12 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarUpgradeRsp {
int32 retcode = 1;
uint64 avatarGuid = 2;
uint32 oldLevel = 3;
uint32 curLevel = 4;
map<uint32, float> oldFightPropMap = 5;
map<uint32, float> curFightPropMap = 6;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarWearFlycloakReq {
uint64 avatarGuid = 1;
uint32 flycloakId = 2;
}

View File

@ -1,9 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AvatarWearFlycloakRsp {
int32 retcode = 1;
uint64 avatarGuid = 2;
uint32 flycloakId = 3;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message Birthday {
uint32 month = 1;
uint32 day = 2;
}

View File

@ -1,10 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message BlockInfo {
uint32 blockId = 1;
uint32 dataVersion = 2;
bytes binData = 3;
bool isDirty = 4;
}

View File

@ -1,11 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "ItemParam.proto";
message CalcWeaponUpgradeReturnItemsReq {
uint64 targetWeaponGuid = 1;
repeated uint64 foodWeaponGuidList = 2;
repeated ItemParam itemParamList = 3;
}

View File

@ -1,11 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "ItemParam.proto";
message CalcWeaponUpgradeReturnItemsRsp {
int32 retcode = 1;
uint64 targetWeaponGuid = 2;
repeated ItemParam itemParamList = 3;
}

View File

@ -1,12 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "Vector.proto";
message ChangeAvatarReq {
uint64 guid = 1;
uint32 skillId = 2;
bool isMove = 3;
Vector movePos = 4;
}

View File

@ -1,9 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message ChangeAvatarRsp {
uint32 retcode = 1;
uint64 currGuid = 2;
uint32 skillId = 3;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message ChangeGameTimeReq {
uint32 gameTime = 1;
bool isForceSet = 2;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message ChangeGameTimeRsp {
int32 retcode = 1;
uint32 curGameTime = 2;
}

View File

@ -1,31 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
enum ChangeHpReason {
ChangeHpNone = 0;
ChangeHpSubAvatar = 1;
ChangeHpSubMonster = 2;
ChangeHpSubGear = 3;
ChangeHpSubEnvir = 4;
ChangeHpSubFall = 5;
ChangeHpSubDrawn = 6;
ChangeHpSubAbyss = 7;
ChangeHpSubAbility = 8;
ChangeHpSubSummon = 9;
ChangeHpSubScript = 10;
ChangeHpSubGm = 11;
ChangeHpSubKillSelf = 12;
ChangeHpSubClimateCold = 13;
ChangeHpSubStormLightning = 14;
ChangeHpSubKillServerGadget = 15;
ChangeHpByLua = 51;
ChangeHpAddAbility = 101;
ChangeHpAddItem = 102;
ChangeHpAddRevive = 103;
ChangeHpAddUpgrade = 104;
ChangeHpAddStatue = 105;
ChangeHpAddBackground = 106;
ChangeHpAddGm = 107;
ChangeHpAddTrialAvatarActivity = 108;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message ChangeMpTeamAvatarReq {
repeated uint64 avatarGuidList = 1;
uint64 curAvatarGuid = 2;
}

View File

@ -1,9 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message ChangeMpTeamAvatarRsp {
int32 retcode = 1;
repeated uint64 avatarGuidList = 2;
uint64 curAvatarGuid = 3;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message ChangeTeamNameReq {
int32 teamId = 1;
string teamName = 2;
}

View File

@ -1,9 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message ChangeTeamNameRsp {
int32 teamId = 1;
string teamName = 2;
int32 retcode = 3;
}

View File

@ -1,18 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "SystemHint.proto";
message ChatInfo {
uint32 time = 1;
uint32 uid = 2;
uint32 sequence = 3;
uint32 toUid = 4;
bool isRead = 5;
oneof content {
string text = 100;
uint32 icon = 101;
SystemHint systemHint = 102;
}
}

View File

@ -1,7 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message ChooseCurAvatarTeamReq {
uint32 teamId = 1;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message ChooseCurAvatarTeamRsp {
int32 retcode = 1;
uint32 curTeamId = 2;
}

View File

@ -1,9 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message CityInfo {
uint32 cityId = 1;
uint32 level = 2;
uint32 crystalNum = 3;
}

View File

@ -1,10 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "AbilityInvokeEntry.proto";
message ClientAbilityChangeNotify {
uint32 entityId = 1;
repeated AbilityInvokeEntry invokes = 2;
}

View File

@ -1,7 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message ClientAbilityInitBeginNotify {
uint32 entityId = 1;
}

View File

@ -1,10 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "AbilityInvokeEntry.proto";
message ClientAbilityInitFinishNotify {
uint32 entityId = 1;
repeated AbilityInvokeEntry invokes = 2;
}

View File

@ -1,9 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "CombatInvokeEntry.proto";
message CombatInvocationsNotify {
repeated CombatInvokeEntry invokeList = 1;
}

View File

@ -1,12 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "CombatTypeArgument.proto";
import "ForwardType.proto";
message CombatInvokeEntry {
CombatTypeArgument argumentType = 1;
ForwardType forwardType = 2;
bytes combatData = 3;
}

View File

@ -1,21 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
enum CombatTypeArgument {
CombatNone = 0;
CombatEvtBeingHit = 1;
CombatAnimatorStateChanged = 2;
CombatFaceToDir = 3;
CombatSetAttackTarget = 4;
CombatRushMove = 5;
CombatAnimatorParameterChanged = 6;
EntityMove = 7;
SyncEntityPosition = 8;
CombatSteerMotionInfo = 9;
CombatForceSetPosInfo = 10;
CombatCompensatePosDiff = 11;
CombatMonsterDoBlink = 12;
CombatFixedRushMove = 13;
CombatSyncTransform = 14;
}

View File

@ -1,8 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message CoopCg {
uint32 id = 1;
bool isUnlock = 2;
}

View File

@ -1,21 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "CoopCg.proto";
import "CoopChapterState.proto";
import "CoopPoint.proto";
import "CoopReward.proto";
message CoopChapter {
uint32 id = 1;
CoopChapterState state = 2;
repeated uint32 lockReasonList = 3;
repeated CoopPoint coopPointList = 4;
repeated CoopReward coopRewardList = 5;
repeated CoopCg coopCgList = 6;
uint32 totalEndCount = 7;
uint32 finishedEndCount = 8;
map<uint32, uint32> seenEndingMap = 9;
repeated uint32 finishDialogList = 10;
}

View File

@ -1,10 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
enum CoopChapterState {
Close = 0;
CondNotMeet = 1;
CondMeet = 2;
Accept = 3;
}

View File

@ -1,12 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "CoopChapter.proto";
message CoopDataNotify {
repeated CoopChapter chapterList = 1;
bool isHaveProgress = 2;
uint32 curCoopPoint = 3;
repeated uint32 viewedChapterList = 4;
}

View File

@ -1,11 +0,0 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "CoopPointState.proto";
message CoopPoint {
uint32 id = 1;
CoopPointState state = 2;
uint32 selfConfidence = 3;
}

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