Merge from version 2.6-3.3 aka full data

This commit is contained in:
Akbar Yahya 2022-12-05 19:56:53 +08:00
parent 00497f72de
commit cec755eb30
2944 changed files with 30765 additions and 45467 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,13 +0,0 @@
import os
for file in os.listdir(r'./proto'):
with open(f'./proto/{file}', 'r') as f:
temp = '// Proto has been converted from Sorapointa to Grasscutter format\n'
for line in f.readlines():
if 'org.sorapointa.proto' in line:
temp += "option java_package = \"emu.grasscutter.net.proto\";\n"
else:
temp += line
with open(f'./proto/{file}', 'w') as out:
out.write(temp)

2052
cmdid.csv

File diff suppressed because it is too large Load Diff

8210
cmdid.json

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,62 +0,0 @@
[
{
"name": "FireworkNotify",
"id": 5934
},
{
"name": "FireworkReq",
"id": 6068
},
{
"name": "FireworkRsp",
"id": 5918
},
{
"name": "FireworkSetNotify",
"id": 6079
},
{
"name": "FireworkSetReq",
"id": 6099
},
{
"name": "FireworkSetRsp",
"id": 5969
},
{
"name": "MusicGameGetBeatmapRsp",
"id": 6309
},
{
"name": "MusicGameCreateBeatmapRsp",
"id": 6347
},
{
"name": "MusicGameSearchBeatmapRsp",
"id": 6304
},
{
"name": "MusicGameSearchBeatmapReq",
"id": 6343
},
{
"name": "MusicGameStartToPlayOthersBeatmapReq",
"id": 6302
},
{
"name": "MusicGameStartToPlayOthersBeatmapRsp",
"id": 6313
},
{
"name": "PrivateChatSetSequenceReq",
"id": 4985
},
{
"name": "PrivateChatSetSequenceRsp",
"id": 4957
},
{
"name": "Unk2700_NGPMINKIOPK",
"id": 8956
}
]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

513
op.js
View File

@ -1,513 +0,0 @@
// Removed useless files, to speed up build process and make it clearer.
const path = require("path");
const fs = require("fs");
const readline = require("readline");
// cmdid current version
const read_cmdid = "cmdid.csv";
const read_cmdid_output = "cmdid.json";
const read_cmdid_output_gc = "cmdid_gc.json";
const read_cmdid_output_gc_update = "cmdid_gc_update.json";
const read_cmdid_output_gc_nofound = "cmdid_gc_nofound.json";
const file_gc_needed = "gc_needed.json";
const write_op = "PacketOpcodes.java";
console.log(process.cwd());
//(TODO: add input file)
// folder gc auto-generated proto
const folder_proto_gc_gen =
"../Grasscutter-Yuuki/src/generated/main/java/emu/grasscutter/net/proto/";
// file PacketOpcodes currently in use
const read_cmdid_gc =
"../Grasscutter-Yuuki/src/main/java/emu/grasscutter/net/packet/PacketOpcodes.java";
const folder_packet_gc =
"../Grasscutter-Yuuki/src/main/java/emu/grasscutter/server/packet/";
//const read_cmdid = fs.readFileSync("cmdid.csv");
//const read_packetopcodes = fs.readFileSync("PacketOpcodes.java");
var data = [];
var data_gc = [];
var index_file_gen = 0;
var index_file_cmdid = 0;
var index_cmdid_gc = 0;
var index_cmdid_gc_out = 0;
function check_gen() {
fs.readdir(folder_proto_gc_gen, function (err, files) {
//handling error
if (err) {
return console.log("Unable to scan directory: " + err);
}
files.forEach(function (file) {
index_file_gen++;
});
console.log("file proto gen: " + index_file_gen);
});
}
// gen json file cmdid
function get_cmdid_json() {
const inputStreamcmdid = fs.createReadStream(read_cmdid);
var lineReadercmdid = readline.createInterface({
input: inputStreamcmdid,
terminal: false,
});
lineReadercmdid.on("line", function (line) {
var config = line.split(",");
var subdata = new Object();
subdata["name"] = config[0];
subdata["id"] = parseInt(config[1]);
data.push(subdata);
index_file_cmdid++;
});
lineReadercmdid.on("close", function () {
console.log("found cmd id " + index_file_cmdid);
save_json(data, read_cmdid_output);
});
}
// create cmdid from gc which comes from PacketOpcodes
function get_cmdid_gc() {
const inputStreamcmdid = fs.createReadStream(read_cmdid_gc);
var lineReadercmdid = readline.createInterface({
input: inputStreamcmdid,
terminal: false,
});
lineReadercmdid.on("line", function (line) {
var config = line.split(" = ");
var name = config[0];
var id = parseInt(config[1]);
if (name.includes("public static final int")) {
name = name.replace("\tpublic static final int ", "");
// skip 0 ?
if (id == 0) {
return;
}
var subdata = new Object();
subdata["name"] = name;
subdata["id"] = id;
data_gc.push(subdata);
//console.log(name);
index_cmdid_gc++;
} else {
index_cmdid_gc_out++;
}
});
lineReadercmdid.on("close", function () {
console.log(
"found cmd id " + index_cmdid_gc + " | no need " + index_cmdid_gc_out
);
save_json(data_gc, read_cmdid_output_gc);
});
}
var found_cmdid_new = 0;
var nofound_cmdid_new = 0;
var rename_name_cmdid = 0;
var noneed_rename_name_cmdid = 0;
var data_gc_cmdid_nofound = [];
var check_dunp_id = [];
function update_cmdid_gc() {
const cmd_last = fs.readFileSync(read_cmdid_output);
const cmd_old = fs.readFileSync(read_cmdid_output_gc);
const json_cmdid_last = JSON.parse(cmd_last);
const json_cmdid_old = JSON.parse(cmd_old);
json_cmdid_old.forEach(function (s, index) {
var id = s.id;
var name = s.name.trim();
var found_id = json_cmdid_last.find((j) => j.id == id);
if (found_id) {
found_cmdid_new++;
if (name == found_id.name) {
noneed_rename_name_cmdid++;
} else {
rename_name_cmdid++;
//console.log("Wow rename -> ID: "+id+" | Name: "+name+" > "+found_id.name);
// rename json_cmdid_old
s.replace = s.name;
s.name = found_id.name;
}
} else {
console.log("Wow nofound -> ID: " + id + " | Name: " + name);
data_gc_cmdid_nofound.push(s);
nofound_cmdid_new++;
}
// find dump by id
var found_id = check_dunp_id.find((j) => j.id == id);
if (found_id) {
console.log(
"Wow dup -> ID: " +
id +
" (ADD " +
found_id.id +
") | Name Remove: " +
name +
" (ADD " +
found_id.name +
")"
);
// remove bad
json_cmdid_old.splice(index, 1);
} else {
check_dunp_id.push(s);
}
});
check_dunp_id = []; // clear
// I don't know why this happened but make sure to check again
var check_dunp_name = [];
json_cmdid_old.forEach(function (s, index) {
var id = s.id;
var name = s.name.trim();
var found_name = check_dunp_name.find((j) => j.name === name);
if (found_name) {
console.log(
"Wow dup -> ID: " +
id +
" (ADD " +
found_name.id +
") | Name Remove: " +
name +
" (ADD " +
found_name.name +
")"
);
// remove bad
json_cmdid_old.splice(index, 1);
} else {
check_dunp_name.push(s);
}
var found_id = json_cmdid_last.find((j) => j.id == id);
if (found_id) {
if (name != found_id.name) {
console.log(
"Wow why? -> ID: " + id + " | Name: " + name + " > " + found_id.name
);
s.name = found_id.name;
}
}
});
check_dunp_name = []; // clear
console.log(
"found " +
found_cmdid_new +
" | no found " +
nofound_cmdid_new +
" | rename " +
rename_name_cmdid +
" | noneed rename " +
noneed_rename_name_cmdid
);
save_json(json_cmdid_old, read_cmdid_output_gc_update);
save_json(data_gc_cmdid_nofound, read_cmdid_output_gc_nofound);
}
function read_json(file) {
return JSON.parse(fs.readFileSync(file));
}
// save json
function save_json(raw, file) {
var j = JSON.stringify(raw, null, 4);
save(j, file);
}
function save(raw, file) {
fs.writeFile(file, raw, "utf8", function (err) {
if (err) {
console.log("An error occured while writing to File.");
return console.log(err);
}
console.log("File has been saved: " + file);
});
}
function cmdid_to_op() {
let melon =
"\
package emu.grasscutter.net.packet;\
\n\
\npublic class PacketOpcodes {\
\n// Empty\
\npublic static final int NONE = 0;\
\n\
\n// Opcodes\
";
const cmdidfix_raw = fs.readFileSync(read_cmdid_output_gc_update);
const json_cmdidfix_raw = JSON.parse(cmdidfix_raw);
json_cmdidfix_raw.forEach(function (s) {
melon += "\npublic static final int " + s.name + " = " + s.id + ";";
});
melon += "\n}";
save(melon, write_op); // use "npx prettier --write PacketOpcodes.java" for better Formatter
}
var index_file_packet = 0;
var index_file_packet_found = 0;
var index_file_packet_nofound = 0;
var index_file_packet_rename = 0;
var index_file_packet_norename = 0;
var index_file_packet_renamemulti = 0;
var file_gc_need = [];
function fix_packet(saveit = false) {
const files = getAllFiles(folder_packet_gc);
const json_cmdid_last = read_json(read_cmdid_output);
const json_cmdid_old = read_json(read_cmdid_output_gc);
const json_cmdidfix_raw = read_json(read_cmdid_output_gc_update);
files.forEach(function (file) {
//var f = path + "/" + file;
const read = fs.readFileSync(file);
var real = read.toString();
var name = getPacketOpcodes(real);
if (!name) {
console.log("no found");
return;
}
if (name === "NONE") {
return;
}
var subdata = new Object();
subdata["name"] = name;
file_gc_need.push(subdata);
//var name = c[1];
//console.log(r);
var found_old = json_cmdid_old.find((j) => j.name === name);
if (found_old) {
//console.log(found_old);
index_file_packet_found++;
var found_new = json_cmdid_last.find((j) => j.id == found_old.id);
if (found_new) {
if (found_new.name != found_old.name) {
index_file_packet_rename++;
console.log(
"Found need rename: " + found_old.name + " > " + found_new.name
);
// rename all
json_cmdidfix_raw.forEach(function (s) {
var r = s.replace;
if (r) {
// var notify = HomeNewUnlockedBgmIdListNotify.Unk2700_MEBFPBDNPGO_ServerNotify
// var notify = Unk2700MEBFPBDNPGOServerNotify.HomeNewUnlockedBgmIdListNotify
// Unk2700MEBFPBDNPGOServerNotify to HomeNewUnlockedBgmIdListNotifyOuterClass
// Unk2700OGHMHELMBNNServerRsp to HomeChangeBgmRspOuterClass
// - Need More Auto like -
// addUnk2700ELJPLMIHNIP to addNewUnlockedBgmIdList (this should be found inside gen proto)
// setUnk2700BJHAMKKECEI to setBgmId
if (r.match("Unk")) {
//console.log(r);
var x = r.split("_");
var tr = x.join("");
var realneed = tr;
if (tr.match("ServerNotify")) {
//console.log("found: "+tr);
let re = new RegExp(`${tr}`, "g");
tr = tr.replace(re, `${s.name}OuterClass`);
//console.log("found: " + tr);
} else if (tr.match("ServerRsp")) {
let re = new RegExp(`${tr}`, "g");
tr = tr.replace(re, `${s.name}OuterClass`);
} else {
let re = new RegExp(`${tr}`, "g");
tr = tr.replace(re, s.name);
//console.log("found: " + tr);
}
let re = new RegExp(`${realneed}`, "g");
real = real.replace(re, tr);
}
let re = new RegExp(`${r}`, "g");
real = real.replace(re, s.name);
}
});
// simpel rename
//let re = new RegExp(`${found_old.name}`, "g");
//real = real.replace(re, found_new.name);
//console.log(real);
if (saveit) {
save(real, f);
}
}
} else {
index_file_packet_norename++;
//console.log("Same name "+name);
}
} else {
index_file_packet_nofound++;
console.log("No found " + name);
}
//return;
index_file_packet++;
});
save_json(file_gc_need, file_gc_needed);
console.log(
"Index file: " +
index_file_packet +
" | found " +
index_file_packet_found +
" | No found " +
index_file_packet_nofound +
" | Rename " +
index_file_packet_rename +
" | NoRename " +
index_file_packet_norename
);
}
function isBlank(str) {
return !!!str || /^\s*$/.test(str);
}
function getAllFiles(dirPath, arrayOfFiles) {
files = fs.readdirSync(dirPath);
arrayOfFiles = arrayOfFiles || [];
files.forEach(function (file) {
if (fs.statSync(dirPath + "/" + file).isDirectory()) {
arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles);
} else {
arrayOfFiles.push(path.join(__dirname, dirPath, "/", file));
}
});
return arrayOfFiles;
}
function getPacketOpcodes(raw) {
var r = raw.match(/\(.*?\)/g).map((x) => x.replace(/[()]/g, ""));
var name;
r.forEach(function (s, index) {
if (s.match("PacketOpcodes.")) {
name = s.split("PacketOpcodes.")[1];
if (name.match(",")) {
name = name.split(",")[0];
}
return;
}
});
return name;
}
var file_toclean = [];
var file_toaddmore = [];
var found_noclean = 0;
var found_needclean = 0;
var found_maybe_related = 0;
function clean_proto_gen() {
//const files = getAllFiles(folder_proto_gc_gen);
const files = getAllFiles("./proto");
const json_gc_needed = read_json(file_gc_needed);
const json_gc_now = read_json(read_cmdid_output_gc);
const json_gc_update = read_json(read_cmdid_output_gc_update);
//console.log(json_gc_needed);
console.log(
"File proto: " + files.length + " | Need " + json_gc_needed.length
);
const regex = /\import "(.*?)\.proto"/g;
// find all file import
files.forEach(function (file) {
var found = json_gc_needed.find((j) => file.match(j.name));
if (found) {
// read file
const read = fs.readFileSync(file);
var rd = read.toString();
// find import
while ((m = regex.exec(rd)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
// only index 1 grup
if (groupIndex == 1) {
var found_rt = file_toaddmore.find((j) => j.name === match);
if (found_rt) {
//found_maybe_related++;
//console.log(`Skip ${match}`);
} else {
var subdata = new Object();
subdata["name"] = match;
file_toaddmore.push(subdata);
found_maybe_related++;
}
}
});
}
}
});
// all
files.forEach(function (file) {
// main file
var found = json_gc_needed.find((j) => file.match(j.name));
if (found) {
found_noclean++;
} else {
var found1 = file_toaddmore.find((j) => file.match(j.name));
if (found1) {
found_noclean++;
//console.log("Files sub are required: "+file);
} else {
found_needclean++;
try {
fs.unlinkSync(file);
//file removed
} catch (err) {
console.error(err);
}
}
}
});
//console.log(file_toaddmore);
console.log(
"No clean: " +
found_noclean +
" | Need to clean: " +
found_needclean +
" | Related " +
found_maybe_related
);
}
clean_proto_gen();
//fix_packet(false);
//cmdid_to_op();
//update_cmdid_gc();
//get_cmdid_gc();
//get_cmdid_json();
//check_gen();

View File

@ -22,16 +22,16 @@ import "AISnapshotEntitySkillCycle.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AISnapshotEntityData { message AISnapshotEntityData {
float tick_time = 5; repeated AISnapshotEntitySkillCycle finished_skill_cycles = 14;
uint32 tactic = 2; uint32 attack_target_id = 2;
repeated AISnapshotEntitySkillCycle finished_skill_cycles = 9; uint32 entity_id = 6;
float moved_distance = 4; float Unk3300_ALBMEMMJEJA = 13;
uint32 ai_target_id = 13; uint32 Unk3300_IADJCDJOKND = 5;
uint32 threat_target_id = 3; uint32 Unk3300_FNCIDLDKANO = 7;
uint32 threat_list_size = 1; float Unk3300_GPCFOCIFHCD = 15;
uint32 entity_id = 15; float Unk3300_FMBBEIHCCJO = 12;
map<uint32, uint32> hitting_avatars = 7; float Unk3300_LIJIDJOLLEB = 11;
float distance_to_player = 11; uint32 Unk3300_GNBOAJHMNJO = 9;
uint32 attack_target_id = 10; map<uint32, uint32> hitting_avatars = 4;
float real_time = 14; uint32 Unk3300_FIKEAEPLOHJ = 3;
} }

View File

@ -20,9 +20,9 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AISnapshotEntitySkillCycle { message AISnapshotEntitySkillCycle {
bool failed = 12; bool Unk3300_IIOIBLEOHEK = 14;
bool trydoskill = 8; uint32 skill_id = 12;
bool success = 9; bool Unk3300_ABKFNGIDFMI = 7;
bool selected = 1; bool Unk3300_IFKDIMDJBDH = 2;
uint32 skill_id = 2; bool Unk3300_EGIILMJFEBE = 1;
} }

View File

@ -22,5 +22,5 @@ import "AISnapshotEntityData.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AISnapshotInfo { message AISnapshotInfo {
repeated AISnapshotEntityData ai_snapshots = 13; repeated AISnapshotEntityData ai_snapshots = 1;
} }

View File

@ -22,6 +22,6 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityActionBlink { message AbilityActionBlink {
Vector rot = 11; Vector rot = 8;
Vector pos = 10; Vector pos = 3;
} }

View File

@ -22,7 +22,7 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityActionCreateGadget { message AbilityActionCreateGadget {
uint32 room_id = 3; uint32 room_id = 5;
Vector rot = 8; Vector rot = 13;
Vector pos = 11; Vector pos = 8;
} }

View File

@ -22,6 +22,6 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityActionCreateTile { message AbilityActionCreateTile {
Vector rot = 3; Vector pos = 15;
Vector pos = 8; Vector rot = 13;
} }

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityActionDeductStamina { message AbilityActionDeductStamina {
bool is_swim = 1; bool is_swim = 7;
} }

View File

@ -22,6 +22,6 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityActionDestroyTile { message AbilityActionDestroyTile {
Vector rot = 3; Vector pos = 13;
Vector pos = 1; Vector rot = 5;
} }

View File

@ -22,5 +22,5 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityActionFireAfterImage { message AbilityActionFireAfterImage {
Vector dir = 12; Vector dir = 10;
} }

View File

@ -22,7 +22,7 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityActionGenerateElemBall { message AbilityActionGenerateElemBall {
uint32 room_id = 2; uint32 room_id = 8;
Vector pos = 7; Vector rot = 1;
Vector rot = 13; Vector pos = 14;
} }

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityActionHitEffect { message AbilityActionHitEffect {
uint32 trigger_id = 3; uint32 trigger_id = 13;
} }

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityActionServerMonsterLog { message AbilityActionServerMonsterLog {
repeated int32 param_list = 2; repeated int32 param_list = 3;
} }

View File

@ -0,0 +1,25 @@
// Proto has been converted from Sorapointa to Grasscutter format
// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
// Copyright (C) 2022 Sorapointa Team
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AbilityActionSetBulletTrackTarget {
uint32 Unk3300_GKACKBIEOHK = 10;
uint32 Unk3300_HGBOFFKEPDJ = 4;
}

View File

@ -22,6 +22,6 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityActionSetCrashDamage { message AbilityActionSetCrashDamage {
Vector hit_pos = 2; float damage = 2;
float damage = 15; Vector hit_pos = 8;
} }

View File

@ -22,6 +22,6 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityActionSummon { message AbilityActionSummon {
Vector pos = 10; Vector pos = 3;
Vector rot = 1; Vector rot = 10;
} }

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityActionTriggerAbility { message AbilityActionTriggerAbility {
uint32 other_id = 14; uint32 other_id = 4;
} }

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityApplyLevelModifier { message AbilityApplyLevelModifier {
uint32 apply_entity_id = 6; uint32 apply_entity_id = 1;
} }

View File

@ -21,8 +21,8 @@ option java_package = "emu.grasscutter.net.proto";
message AbilityArgument { message AbilityArgument {
oneof arg { oneof arg {
uint32 int_arg = 5; uint32 int_arg = 14;
float float_arg = 15; float float_arg = 7;
string str_arg = 11; string str_arg = 9;
} }
} }

View File

@ -22,7 +22,7 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityBornType { message AbilityBornType {
Vector rot = 2; Vector move_dir = 3;
Vector move_dir = 14; Vector rot = 15;
Vector pos = 5; Vector pos = 12;
} }

View File

@ -21,10 +21,15 @@ import "AbilityControlBlock.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 1131
// EnetChannelId: 0
// EnetIsReliable: true
message AbilityChangeNotify { message AbilityChangeNotify {
uint32 entity_id = 1; // enum CmdId {
AbilityControlBlock ability_control_block = 15; // option allow_alias = true;
// NONE = 0;
// CMD_ID = 1127;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// }
AbilityControlBlock ability_control_block = 6;
uint32 entity_id = 10;
} }

View File

@ -20,10 +20,10 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityIdentifier { message AbilityIdentifier {
uint32 modifier_owner_id = 2; uint32 instanced_ability_id = 4;
uint32 instanced_modifier_id = 9; uint32 Unk3300_IHCKJKLCICI = 10;
uint32 instanced_ability_id = 10; bool is_serverbuff_modifier = 14;
bool is_serverbuff_modifier = 6; int32 local_id = 7;
uint32 ability_caster_id = 15; uint32 Unk3300_OOOLELPBDHJ = 1;
int32 local_id = 3; uint32 instanced_modifier_id = 5;
} }

View File

@ -21,11 +21,16 @@ import "AbilityInvokeEntry.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 1107
// EnetChannelId: 0
// EnetIsReliable: true
message AbilityInvocationFailNotify { message AbilityInvocationFailNotify {
string reason = 7; // enum CmdId {
uint32 entity_id = 13; // option allow_alias = true;
AbilityInvokeEntry invoke = 3; // NONE = 0;
// CMD_ID = 1200;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// }
uint32 entity_id = 4;
string reason = 8;
AbilityInvokeEntry invoke = 11;
} }

View File

@ -21,15 +21,20 @@ import "AbilityInvokeEntry.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 1172
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message AbilityInvocationFixedNotify { message AbilityInvocationFixedNotify {
AbilityInvokeEntry invoke6th = 14; // enum CmdId {
AbilityInvokeEntry invoke5th = 8; // option allow_alias = true;
AbilityInvokeEntry invoke4th = 1; // NONE = 0;
AbilityInvokeEntry invoke2nd = 5; // CMD_ID = 1179;
AbilityInvokeEntry invoke1st = 10; // ENET_CHANNEL_ID = 0;
AbilityInvokeEntry invoke3rd = 12; // ENET_IS_RELIABLE = 1;
// IS_ALLOW_CLIENT = 1;
// }
AbilityInvokeEntry Unk3300_LDIAOMFIBPL = 7;
AbilityInvokeEntry Unk3300_ONGNOHLIIBO = 3;
AbilityInvokeEntry Unk3300_AHDFHHFHEFM = 10;
AbilityInvokeEntry Unk3300_GAFFBFFKDIC = 1;
AbilityInvokeEntry Unk3300_EMGKKHKLIEG = 4;
AbilityInvokeEntry Unk3300_KFMHLLHECCJ = 9;
} }

View File

@ -21,10 +21,15 @@ import "AbilityInvokeEntry.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 1198
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message AbilityInvocationsNotify { message AbilityInvocationsNotify {
repeated AbilityInvokeEntry invokes = 2; // enum CmdId {
// option allow_alias = true;
// NONE = 0;
// CMD_ID = 1130;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// IS_ALLOW_CLIENT = 1;
// }
repeated AbilityInvokeEntry invokes = 5;
} }

View File

@ -81,4 +81,5 @@ enum AbilityInvokeArgument {
ABILITY_INVOKE_ARGUMENT_MIXIN_UI_INTERACT = 119; ABILITY_INVOKE_ARGUMENT_MIXIN_UI_INTERACT = 119;
ABILITY_INVOKE_ARGUMENT_MIXIN_SHOOT_FROM_CAMERA = 120; ABILITY_INVOKE_ARGUMENT_MIXIN_SHOOT_FROM_CAMERA = 120;
ABILITY_INVOKE_ARGUMENT_MIXIN_ERASE_BRICK_ACTIVITY = 121; ABILITY_INVOKE_ARGUMENT_MIXIN_ERASE_BRICK_ACTIVITY = 121;
ABILITY_INVOKE_ARGUMENT_MIXIN_BREAKOUT = 122;
} }

View File

@ -24,12 +24,13 @@ import "ForwardType.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityInvokeEntry { message AbilityInvokeEntry {
AbilityInvokeArgument argument_type = 1; ForwardType forward_type = 9;
AbilityInvokeEntryHead head = 2; uint32 event_id = 13;
uint32 forward_peer = 4; uint32 entity_id = 7;
uint32 event_id = 12; uint32 forward_peer = 14;
ForwardType forward_type = 3; double total_tick_time = 10;
bytes ability_data = 15; AbilityInvokeEntryHead head = 3;
double total_tick_time = 14; bytes ability_data = 2;
uint32 entity_id = 9; AbilityInvokeArgument argument_type = 8;
bool is_ignore_auth = 12;
} }

View File

@ -20,11 +20,11 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityInvokeEntryHead { message AbilityInvokeEntryHead {
uint32 instanced_ability_id = 8;
uint32 target_id = 6;
uint32 server_buff_uid = 1;
int32 local_id = 12;
int32 modifier_config_local_id = 7; int32 modifier_config_local_id = 7;
bool is_serverbuff_modifier = 2; bool is_serverbuff_modifier = 15;
uint32 instanced_ability_id = 1; uint32 instanced_modifier_id = 10;
uint32 instanced_modifier_id = 12;
int32 local_id = 10;
uint32 server_buff_uid = 14;
uint32 target_id = 3;
} }

View File

@ -22,5 +22,5 @@ import "AbilityAppliedAbility.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMetaAddAbility { message AbilityMetaAddAbility {
AbilityAppliedAbility ability = 12; AbilityAppliedAbility ability = 5;
} }

View File

@ -22,7 +22,7 @@ import "AbilityString.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMetaAddOrGetAbilityAndTrigger { message AbilityMetaAddOrGetAbilityAndTrigger {
AbilityString ability_name = 13; float trigger_argument = 4;
float trigger_argument = 3; AbilityString ability_name = 12;
AbilityString ability_override = 8; AbilityString ability_override = 13;
} }

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMetaDurabilityIsZero { message AbilityMetaDurabilityIsZero {
bool is_zero = 5; bool is_zero = 6;
} }

View File

@ -20,8 +20,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMetaElementReactionVisual { message AbilityMetaElementReactionVisual {
int32 hit_index = 2; uint32 Unk3300_PHKFGIHELFG = 6;
uint32 element_source_type = 12; uint32 Unk3300_DGBGNEHDODI = 1;
uint32 element_reactor_type = 6; int32 hit_index = 14;
uint32 element_reaction_type = 5; uint32 Unk3300_OGILJCJPHPB = 2;
} }

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMetaLoseHp { message AbilityMetaLoseHp {
uint32 lose_hp_config_idx = 10; uint32 lose_hp_config_idx = 15;
} }

View File

@ -25,15 +25,15 @@ import "ModifierProperty.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMetaModifierChange { message AbilityMetaModifierChange {
AbilityAttachedModifier attached_instanced_modifier = 7; AbilityAttachedModifier attached_instanced_modifier = 3;
uint32 server_buff_uid = 4; bool is_attached_parent_ability = 5;
bool is_attached_parent_ability = 10; repeated ModifierProperty properties = 14;
ModifierAction action = 13; bool Unk3300_NOPKODKOHJK = 12;
int32 modifier_local_id = 2; int32 modifier_local_id = 2;
AbilityString parent_ability_name = 1; bool Unk3300_PBNENPBMNCI = 8;
bool is_mute_remote = 6; AbilityString parent_ability_name = 13;
uint32 apply_entity_id = 5; uint32 server_buff_uid = 9;
repeated ModifierProperty properties = 3; uint32 apply_entity_id = 7;
AbilityString parent_ability_override = 11; AbilityString parent_ability_override = 15;
bool is_durability_zero = 9; ModifierAction action = 4;
} }

View File

@ -20,6 +20,6 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMetaModifierDurabilityChange { message AbilityMetaModifierDurabilityChange {
float reduce_durability = 6; float Unk3300_LDHNFNOGOGF = 13;
float remain_durability = 15; float Unk3300_IFHFHEHDOIO = 1;
} }

View File

@ -22,5 +22,5 @@ import "AbilityScalarValueEntry.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMetaReInitOverrideMap { message AbilityMetaReInitOverrideMap {
repeated AbilityScalarValueEntry override_map = 7; repeated AbilityScalarValueEntry override_map = 10;
} }

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMetaSetAbilityTrigger { message AbilityMetaSetAbilityTrigger {
uint32 trigger_ability_entity_id = 11; uint32 trigger_ability_entity_id = 1;
} }

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMetaSetKilledState { message AbilityMetaSetKilledState {
bool killed = 2; bool killed = 5;
} }

View File

@ -22,5 +22,5 @@ import "AnimatorParameterValueInfoPair.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMetaSetPoseParameter { message AbilityMetaSetPoseParameter {
AnimatorParameterValueInfoPair value = 6; AnimatorParameterValueInfoPair value = 7;
} }

View File

@ -20,6 +20,6 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMetaSpecialFloatArgument { message AbilityMetaSpecialFloatArgument {
float argument_value = 14; float argument_value = 4;
bool is_on = 10; bool is_on = 10;
} }

View File

@ -20,9 +20,9 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMetaTriggerElementReaction { message AbilityMetaTriggerElementReaction {
int32 hit_index = 9; int32 hit_index = 7;
uint32 element_source_type = 7; uint32 trigger_entity_id = 14;
uint32 element_reactor_type = 12; uint32 Unk3300_PHKFGIHELFG = 13;
uint32 trigger_entity_id = 2; uint32 Unk3300_OGILJCJPHPB = 12;
uint32 element_reaction_type = 1; uint32 Unk3300_DGBGNEHDODI = 2;
} }

View File

@ -22,8 +22,8 @@ import "AbilityString.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMetaUpdateBaseReactionDamage { message AbilityMetaUpdateBaseReactionDamage {
uint32 source_caster_id = 15; uint32 Unk3300_OIPAEGAMCLI = 2;
AbilityString ability_name = 1; uint32 Unk3300_CAKEJCJKHOA = 13;
AbilityString global_value_key = 4; AbilityString ability_name = 6;
uint32 reaction_type = 8; AbilityString global_value_key = 14;
} }

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMixinAvatarCombat { message AbilityMixinAvatarCombat {
bool is_enter_combat = 9; bool is_enter_combat = 6;
} }

View File

@ -23,5 +23,5 @@ option java_package = "emu.grasscutter.net.proto";
message AbilityMixinAvatarSteerByCamera { message AbilityMixinAvatarSteerByCamera {
Vector target_dir = 7; Vector target_dir = 7;
Vector target_pos = 6; Vector target_pos = 2;
} }

View File

@ -0,0 +1,48 @@
// Proto has been converted from Sorapointa to Grasscutter format
// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
// Copyright (C) 2022 Sorapointa Team
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
syntax = "proto3";
import "BreakoutSyncAction.proto";
import "BreakoutSyncCreateConnect.proto";
import "BreakoutSyncFinishGame.proto";
import "BreakoutSyncPing.proto";
import "BreakoutSyncSnapShot.proto";
option java_package = "emu.grasscutter.net.proto";
message AbilityMixinBreakout {
enum SyncType {
SYNC_TYPE_NONE = 0;
SYNC_TYPE_CREATE_CONNECT = 1;
SYNC_TYPE_START_GAME = 2;
SYNC_TYPE_PING = 3;
SYNC_TYPE_FINISH_GAME = 4;
SYNC_TYPE_SNAP_SHOT = 5;
SYNC_TYPE_ACTION = 6;
}
int32 retcode = 8;
SyncType sync_type = 4;
oneof sync {
BreakoutSyncCreateConnect sync_create_connect = 2;
BreakoutSyncPing sync_ping = 1;
BreakoutSyncFinishGame sync_finish_game = 5;
BreakoutSyncSnapShot sync_snap_shot = 14;
BreakoutSyncAction sync_action = 3;
}
}

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMixinCostStamina { message AbilityMixinCostStamina {
bool is_swim = 3; bool is_swim = 7;
} }

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMixinDoActionByElementReaction { message AbilityMixinDoActionByElementReaction {
uint32 target_entity_id = 1; uint32 target_entity_id = 5;
} }

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMixinDoActionBySelfModifierElementDurabilityRatio { message AbilityMixinDoActionBySelfModifierElementDurabilityRatio {
float last_durability_ratio = 9; float last_durability_ratio = 14;
} }

View File

@ -20,10 +20,10 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMixinElementShield { message AbilityMixinElementShield {
float sub_shield = 10; uint32 player_num = 9;
float shield = 8; float shield = 5;
uint32 absorb_type = 1; bool is_shield_broken = 8;
uint32 player_num = 4; float sub_shield = 4;
bool is_shield_broken = 9; float max_shield = 13;
float max_shield = 12; uint32 absorb_type = 10;
} }

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMixinEliteShield { message AbilityMixinEliteShield {
float sub_shield = 2; float sub_shield = 9;
} }

View File

@ -0,0 +1,24 @@
// Proto has been converted from Sorapointa to Grasscutter format
// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa.
// Copyright (C) 2022 Sorapointa Team
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
message AbilityMixinEraseBrickActivity {
repeated uint32 data = 15;
}

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMixinFieldEntityCountChange { message AbilityMixinFieldEntityCountChange {
uint32 field_entity_count = 14; uint32 field_entity_count = 8;
} }

View File

@ -20,10 +20,10 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMixinFireworksLauncher { message AbilityMixinFireworksLauncher {
uint32 invoke_type = 2; uint32 Unk3300_FHGLEJNJIHK = 5;
uint32 start_count_down_time = 3; uint32 Unk3300_BFJBDJLAOJL = 4;
uint32 fired_bullet_count = 1; uint32 Unk3300_LPPKOFHKCPH = 7;
uint32 phase = 6; uint32 Unk3300_BDGCGLGNAIB = 3;
repeated uint32 fireworks_config = 4; repeated uint32 fireworks_config = 12;
uint32 turn_index = 7; uint32 phase = 1;
} }

View File

@ -20,10 +20,10 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMixinGlobalShield { message AbilityMixinGlobalShield {
float max_shield = 14;
bool is_create_effect = 4; bool is_create_effect = 4;
float sub_shield = 7; string shield_effect_name = 12;
float height_offset = 5; float sub_shield = 10;
uint32 avatar_id = 11; uint32 avatar_id = 3;
float max_shield = 10; float height_offset = 1;
string shield_effect_name = 2;
} }

View File

@ -17,6 +17,7 @@
syntax = "proto3"; syntax = "proto3";
import "BreakoutSnapShot.proto";
import "MassivePropSyncInfo.proto"; import "MassivePropSyncInfo.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
@ -26,6 +27,7 @@ message AbilityMixinRecoverInfo {
repeated uint32 data_list = 4; repeated uint32 data_list = 4;
bool is_serverbuff_modifier = 5; bool is_serverbuff_modifier = 5;
repeated MassivePropSyncInfo massive_prop_list = 6; repeated MassivePropSyncInfo massive_prop_list = 6;
BreakoutSnapShot breakout_snap_shot = 7;
oneof source { oneof source {
uint32 instanced_ability_id = 1; uint32 instanced_ability_id = 1;
uint32 instanced_modifier_id = 2; uint32 instanced_modifier_id = 2;

View File

@ -22,7 +22,7 @@ import "MassivePropSyncInfo.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMixinScenePropSync { message AbilityMixinScenePropSync {
repeated int64 delete_id_list = 5; repeated MassivePropSyncInfo massive_prop_list = 11;
bool is_clear_all = 12; repeated int64 delete_id_list = 12;
repeated MassivePropSyncInfo massive_prop_list = 15; bool is_clear_all = 3;
} }

View File

@ -20,8 +20,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMixinShieldBar { message AbilityMixinShieldBar {
uint32 player_num = 14; float max_shield = 8;
float max_shield = 15; float shield = 4;
float shield = 12; uint32 player_num = 3;
uint32 element_type = 13; uint32 element_type = 7;
} }

View File

@ -22,6 +22,6 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMixinShootFromCamera { message AbilityMixinShootFromCamera {
Vector init_pos = 13; Vector forward = 13;
Vector forward = 2; Vector init_pos = 9;
} }

View File

@ -20,6 +20,6 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMixinUGCTimeControl { message AbilityMixinUGCTimeControl {
uint64 start_move_time_ms = 13; uint64 start_move_time_ms = 12;
uint32 forward = 3; uint32 start_move_time = 9;
} }

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMixinWidgetMpSupport { message AbilityMixinWidgetMpSupport {
uint32 target_entity_id = 9; uint32 target_entity_id = 2;
} }

View File

@ -22,19 +22,19 @@ import "Vector.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMixinWindSeedSpawner { message AbilityMixinWindSeedSpawner {
oneof cmd {
AddSignal add_signal = 2;
RefreshSeed refresh_seed = 15;
CatchSeed catch_seed = 11;
}
message AddSignal {} message AddSignal {}
message RefreshSeed { message RefreshSeed {
repeated Vector pos_list = 6; repeated Vector pos_list = 10;
} }
message CatchSeed { message CatchSeed {
uint32 entity_id = 8; uint32 entity_id = 13;
}
oneof cmd {
AddSignal add_signal = 8;
RefreshSeed refresh_seed = 12;
CatchSeed catch_seed = 14;
} }
} }

View File

@ -20,6 +20,6 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message AbilityMixinWindZone { message AbilityMixinWindZone {
repeated uint32 entity_ids = 13; repeated uint32 Unk3300_OJPFAIGIBLG = 3;
repeated uint32 zone_id_list = 10; repeated uint32 Unk3300_DJELBGDEDBH = 12;
} }

View File

@ -20,7 +20,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
enum AbilityScalarType { enum AbilityScalarType {
ABILITY_SCALAR_TYPE_UNKNOW = 0; ABILITY_SCALAR_TYPE_UNKNOWN = 0;
ABILITY_SCALAR_TYPE_FLOAT = 1; ABILITY_SCALAR_TYPE_FLOAT = 1;
ABILITY_SCALAR_TYPE_INT = 2; ABILITY_SCALAR_TYPE_INT = 2;
ABILITY_SCALAR_TYPE_BOOL = 3; ABILITY_SCALAR_TYPE_BOOL = 3;

View File

@ -19,11 +19,16 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 2890
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message AcceptCityReputationRequestReq { message AcceptCityReputationRequestReq {
// enum CmdId {
// option allow_alias = true;
// NONE = 0;
// CMD_ID = 2847;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// IS_ALLOW_CLIENT = 1;
// }
uint32 city_id = 14; uint32 city_id = 14;
uint32 request_id = 5; uint32 request_id = 8;
} }

View File

@ -19,11 +19,16 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 2873
// EnetChannelId: 0
// EnetIsReliable: true
message AcceptCityReputationRequestRsp { message AcceptCityReputationRequestRsp {
uint32 request_id = 5; // enum CmdId {
uint32 city_id = 13; // option allow_alias = true;
int32 retcode = 2; // NONE = 0;
// CMD_ID = 2878;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// }
uint32 city_id = 1;
int32 retcode = 9;
uint32 request_id = 10;
} }

View File

@ -20,16 +20,16 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message Achievement { message Achievement {
uint32 finish_timestamp = 11;
Status status = 13;
uint32 cur_progress = 12;
uint32 id = 14;
uint32 total_progress = 8;
enum Status { enum Status {
STATUS_INVALID = 0; STATUS_INVALID = 0;
STATUS_UNFINISHED = 1; STATUS_UNFINISHED = 1;
STATUS_FINISHED = 2; STATUS_FINISHED = 2;
STATUS_REWARD_TAKEN = 3; STATUS_REWARD_TAKEN = 3;
} }
uint32 finish_timestamp = 8;
uint32 cur_progress = 11;
uint32 total_progress = 6;
uint32 id = 14;
Status status = 15;
} }

View File

@ -21,10 +21,15 @@ import "Achievement.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 2676
// EnetChannelId: 0
// EnetIsReliable: true
message AchievementAllDataNotify { message AchievementAllDataNotify {
repeated Achievement achievement_list = 4; // enum CmdId {
repeated uint32 reward_taken_goal_id_list = 2; // option allow_alias = true;
// NONE = 0;
// CMD_ID = 2692;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// }
repeated uint32 reward_taken_goal_id_list = 13;
repeated Achievement achievement_list = 8;
} }

View File

@ -21,9 +21,14 @@ import "Achievement.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 2668
// EnetChannelId: 0
// EnetIsReliable: true
message AchievementUpdateNotify { message AchievementUpdateNotify {
repeated Achievement achievement_list = 14; // enum CmdId {
// option allow_alias = true;
// NONE = 0;
// CMD_ID = 2691;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// }
repeated Achievement achievement_list = 11;
} }

View File

@ -19,10 +19,15 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 8113
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message ActivityAcceptAllGiveGiftReq { message ActivityAcceptAllGiveGiftReq {
uint32 schedule_id = 3; // enum CmdId {
// option allow_alias = true;
// NONE = 0;
// CMD_ID = 8900;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// IS_ALLOW_CLIENT = 1;
// }
uint32 schedule_id = 9;
} }

View File

@ -21,11 +21,16 @@ import "ActivityAcceptGiftResultInfo.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 8132
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityAcceptAllGiveGiftRsp { message ActivityAcceptAllGiveGiftRsp {
repeated ActivityAcceptGiftResultInfo accept_gift_result_info_list = 5; // enum CmdId {
uint32 schedule_id = 10; // option allow_alias = true;
int32 retcode = 9; // NONE = 0;
// CMD_ID = 8771;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// }
repeated ActivityAcceptGiftResultInfo accept_gift_result_info_list = 7;
uint32 schedule_id = 6;
int32 retcode = 12;
} }

View File

@ -20,7 +20,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message ActivityAcceptGiftResultInfo { message ActivityAcceptGiftResultInfo {
map<uint32, uint32> unaccept_gift_num_map = 3; map<uint32, uint32> Unk3300_JFHLEBLOFMA = 1;
uint32 uid = 6; map<uint32, uint32> Unk3300_COCFNBJCFGP = 9;
map<uint32, uint32> accept_gift_num_map = 13; uint32 uid = 12;
} }

View File

@ -19,11 +19,16 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 8095
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message ActivityAcceptGiveGiftReq { message ActivityAcceptGiveGiftReq {
uint32 schedule_id = 3; // enum CmdId {
uint32 uid = 12; // option allow_alias = true;
// NONE = 0;
// CMD_ID = 8827;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// IS_ALLOW_CLIENT = 1;
// }
uint32 uid = 9;
uint32 schedule_id = 12;
} }

View File

@ -21,11 +21,16 @@ import "ActivityAcceptGiftResultInfo.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 8502
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityAcceptGiveGiftRsp { message ActivityAcceptGiveGiftRsp {
ActivityAcceptGiftResultInfo accept_gift_result_info = 4; // enum CmdId {
int32 retcode = 11; // option allow_alias = true;
uint32 schedule_id = 10; // NONE = 0;
// CMD_ID = 8047;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// }
int32 retcode = 4;
ActivityAcceptGiftResultInfo accept_gift_result_info = 2;
uint32 schedule_id = 1;
} }

View File

@ -19,11 +19,16 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 2009
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message ActivityBannerClearReq { message ActivityBannerClearReq {
uint32 schedule_id = 15; // enum CmdId {
uint32 activity_id = 12; // option allow_alias = true;
// NONE = 0;
// CMD_ID = 2147;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// IS_ALLOW_CLIENT = 1;
// }
uint32 activity_id = 14;
uint32 schedule_id = 7;
} }

View File

@ -19,11 +19,16 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 2163
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityBannerClearRsp { message ActivityBannerClearRsp {
uint32 activity_id = 4; // enum CmdId {
int32 retcode = 6; // option allow_alias = true;
uint32 schedule_id = 11; // NONE = 0;
// CMD_ID = 2198;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// }
int32 retcode = 8;
uint32 schedule_id = 5;
uint32 activity_id = 9;
} }

View File

@ -19,10 +19,15 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 2155
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityBannerNotify { message ActivityBannerNotify {
uint32 schedule_id = 1; // enum CmdId {
uint32 activity_id = 3; // option allow_alias = true;
// NONE = 0;
// CMD_ID = 2160;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// }
uint32 activity_id = 1;
uint32 schedule_id = 8;
} }

View File

@ -19,11 +19,16 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 2008
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityCoinInfoNotify { message ActivityCoinInfoNotify {
// enum CmdId {
// option allow_alias = true;
// NONE = 0;
// CMD_ID = 2018;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// }
uint32 schedule_id = 8; uint32 schedule_id = 8;
uint32 activity_id = 10;
map<uint32, uint32> activity_coin_map = 2; map<uint32, uint32> activity_coin_map = 2;
uint32 activity_id = 4;
} }

View File

@ -21,14 +21,19 @@ import "Uint32Pair.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 2140
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityCondStateChangeNotify { message ActivityCondStateChangeNotify {
repeated uint32 activated_sale_id_list = 9; // enum CmdId {
uint32 activity_id = 4; // option allow_alias = true;
uint32 schedule_id = 5; // NONE = 0;
repeated uint32 expire_cond_list = 11; // CMD_ID = 2194;
repeated Uint32Pair disable_transfer_point_interaction_list = 12; // ENET_CHANNEL_ID = 0;
repeated uint32 meet_cond_list = 1; // ENET_IS_RELIABLE = 1;
// }
uint32 activity_id = 5;
uint32 schedule_id = 14;
repeated uint32 Unk3300_HKKNIHNBHAE = 1;
repeated uint32 Unk3300_BGNIBLKCPCA = 4;
repeated uint32 activated_sale_id_list = 8;
repeated Uint32Pair disable_transfer_point_interaction_list = 11;
} }

View File

@ -21,10 +21,15 @@ import "Uint32Pair.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 8982
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityDisableTransferPointInteractionNotify { message ActivityDisableTransferPointInteractionNotify {
bool is_disable = 10; // enum CmdId {
Uint32Pair scene_point_pair = 5; // option allow_alias = true;
// NONE = 0;
// CMD_ID = 8029;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// }
bool is_disable = 13;
Uint32Pair scene_point_pair = 11;
} }

View File

@ -22,9 +22,9 @@ import "ProfilePicture.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message ActivityFriendGiftWishData { message ActivityFriendGiftWishData {
string nickname = 7; map<uint32, uint32> gift_num_map = 5;
string remark_name = 3; uint32 uid = 7;
ProfilePicture profile_picture = 11; ProfilePicture profile_picture = 11;
map<uint32, uint32> gift_num_map = 9; string remark_name = 12;
uint32 uid = 8; string nickname = 2;
} }

View File

@ -19,10 +19,15 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 8559
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message ActivityGetCanGiveFriendGiftReq { message ActivityGetCanGiveFriendGiftReq {
uint32 schedule_id = 8; // enum CmdId {
// option allow_alias = true;
// NONE = 0;
// CMD_ID = 8330;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// IS_ALLOW_CLIENT = 1;
// }
uint32 schedule_id = 2;
} }

View File

@ -19,11 +19,16 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 8848
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityGetCanGiveFriendGiftRsp { message ActivityGetCanGiveFriendGiftRsp {
uint32 schedule_id = 7; // enum CmdId {
int32 retcode = 3; // option allow_alias = true;
map<uint32, uint32> gift_num_map = 14; // NONE = 0;
// CMD_ID = 8374;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// }
map<uint32, uint32> gift_num_map = 7;
int32 retcode = 11;
uint32 schedule_id = 12;
} }

View File

@ -19,10 +19,15 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 8806
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message ActivityGetFriendGiftWishListReq { message ActivityGetFriendGiftWishListReq {
uint32 schedule_id = 6; // enum CmdId {
// option allow_alias = true;
// NONE = 0;
// CMD_ID = 8642;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// IS_ALLOW_CLIENT = 1;
// }
uint32 schedule_id = 2;
} }

View File

@ -21,11 +21,16 @@ import "ActivityFriendGiftWishData.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 8253
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityGetFriendGiftWishListRsp { message ActivityGetFriendGiftWishListRsp {
int32 retcode = 6; // enum CmdId {
repeated ActivityFriendGiftWishData friend_gift_wish_list = 11; // option allow_alias = true;
uint32 schedule_id = 10; // NONE = 0;
// CMD_ID = 8355;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// }
repeated ActivityFriendGiftWishData friend_gift_wish_list = 12;
uint32 schedule_id = 4;
int32 retcode = 2;
} }

View File

@ -19,10 +19,15 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 8725
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message ActivityGetRecvGiftListReq { message ActivityGetRecvGiftListReq {
uint32 schedule_id = 8; // enum CmdId {
// option allow_alias = true;
// NONE = 0;
// CMD_ID = 8995;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// IS_ALLOW_CLIENT = 1;
// }
uint32 schedule_id = 5;
} }

View File

@ -21,11 +21,16 @@ import "ActivityRecvGiftData.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 8120
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityGetRecvGiftListRsp { message ActivityGetRecvGiftListRsp {
int32 retcode = 15; // enum CmdId {
repeated ActivityRecvGiftData recv_gift_list = 11; // option allow_alias = true;
uint32 schedule_id = 6; // NONE = 0;
// CMD_ID = 8844;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// }
uint32 schedule_id = 7;
int32 retcode = 9;
repeated ActivityRecvGiftData recv_gift_list = 10;
} }

View File

@ -19,12 +19,17 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 8233
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message ActivityGiveFriendGiftReq { message ActivityGiveFriendGiftReq {
uint32 uid = 5; // enum CmdId {
uint32 schedule_id = 1; // option allow_alias = true;
map<uint32, uint32> gift_num_map = 4; // NONE = 0;
// CMD_ID = 8178;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// IS_ALLOW_CLIENT = 1;
// }
map<uint32, uint32> gift_num_map = 10;
uint32 schedule_id = 15;
uint32 uid = 1;
} }

View File

@ -19,11 +19,16 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 8696
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityGiveFriendGiftRsp { message ActivityGiveFriendGiftRsp {
repeated uint32 limit_gift_list = 3; // enum CmdId {
uint32 schedule_id = 4; // option allow_alias = true;
int32 retcode = 10; // NONE = 0;
// CMD_ID = 8373;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// }
uint32 schedule_id = 15;
int32 retcode = 8;
repeated uint32 limit_gift_list = 14;
} }

View File

@ -19,9 +19,14 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 8733
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityHaveRecvGiftNotify { message ActivityHaveRecvGiftNotify {
uint32 schedule_id = 7; // enum CmdId {
// option allow_alias = true;
// NONE = 0;
// CMD_ID = 8118;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// }
uint32 schedule_id = 2;
} }

View File

@ -25,10 +25,12 @@ import "BartenderActivityDetailInfo.proto";
import "BlessingActivityDetailInfo.proto"; import "BlessingActivityDetailInfo.proto";
import "BlitzRushActivityDetailInfo.proto"; import "BlitzRushActivityDetailInfo.proto";
import "BounceConjuringActivityDetailInfo.proto"; import "BounceConjuringActivityDetailInfo.proto";
import "BrickBreakerDetailInfo.proto";
import "BuoyantCombatDetailInfo.proto"; import "BuoyantCombatDetailInfo.proto";
import "ChannelerSlabActivityDetailInfo.proto"; import "ChannelerSlabActivityDetailInfo.proto";
import "CharAmusementDetailInfo.proto"; import "CharAmusementDetailInfo.proto";
import "ChessActivityDetailInfo.proto"; import "ChessActivityDetailInfo.proto";
import "CoinCollectDetailInfo.proto";
import "CrucibleActivityDetailInfo.proto"; import "CrucibleActivityDetailInfo.proto";
import "CrystalLinkActivityDetailInfo.proto"; import "CrystalLinkActivityDetailInfo.proto";
import "DeliveryActivityDetailInfo.proto"; import "DeliveryActivityDetailInfo.proto";
@ -76,7 +78,7 @@ import "TreasureMapActivityDetailInfo.proto";
import "TreasureSeelieActivityDetailInfo.proto"; import "TreasureSeelieActivityDetailInfo.proto";
import "TrialAvatarActivityDetailInfo.proto"; import "TrialAvatarActivityDetailInfo.proto";
import "UgcActivityDetailInfo.proto"; import "UgcActivityDetailInfo.proto";
import "VintageDetailInfo.proto"; import "VintageActivityDetailInfo.proto";
import "WaterSpiritActivityDetailInfo.proto"; import "WaterSpiritActivityDetailInfo.proto";
import "WindFieldDetailInfo.proto"; import "WindFieldDetailInfo.proto";
import "WinterCampActivityDetailInfo.proto"; import "WinterCampActivityDetailInfo.proto";
@ -84,90 +86,92 @@ import "WinterCampActivityDetailInfo.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
message ActivityInfo { message ActivityInfo {
bool is_finished = 6; bool Unk3300_MJNPGEKLOCG = 360;
uint32 activity_type = 4; bool is_finished = 8;
uint32 begin_time = 8; uint32 cur_score = 1268;
repeated uint32 taken_reward_list = 329; uint32 schedule_id = 7;
bool is_hidden = 919; uint32 Unk3300_JAEALAIOOID = 1870;
bool is_quick_open = 1449; bool Unk3300_ICNJJKDHPCH = 14;
repeated uint32 meet_cond_list = 10; repeated uint32 Unk3300_BGNIBLKCPCA = 11;
map<uint32, uint32> activity_coin_map = 682; bool Unk3300_NEPKLLBJFKK = 1645;
bool is_banner_cleared = 102; repeated ActivityWatcherInfo watcher_info_list = 6;
uint32 cur_score = 1906; repeated ActivityPushTipsData activity_push_tips_data_list = 1867;
uint32 first_day_start_time = 592; uint32 activity_id = 13;
uint32 activity_id = 12; repeated uint32 taken_reward_list = 1889;
bool is_play_open_anim = 13; uint32 Unk3300_GCEAKEMMJEA = 697;
uint32 end_time = 5; map<uint32, uint32> activity_coin_map = 36;
uint32 score_limit = 1958; uint32 first_day_start_time = 786;
map<uint32, uint32> wish_gift_num_map = 1399; bool Unk3300_ABJKLALKLDG = 1486;
uint32 selected_avatar_reward_id = 1290; uint32 Unk3300_DMILOONBELH = 3;
bool is_common_content_closed = 1963; bool Unk3300_CBCEHLJJOGI = 1375;
repeated uint32 expire_cond_list = 3; uint32 begin_time = 1;
repeated ActivityPushTipsData activity_push_tips_data_list = 864; bool Unk3300_MDBDPIBEGGH = 12;
repeated ActivityWatcherInfo watcher_info_list = 2; map<uint32, uint32> wish_gift_num_map = 939;
uint32 schedule_id = 15; uint32 end_time = 10;
bool is_starting = 9; repeated uint32 Unk3300_HKKNIHNBHAE = 5;
oneof detail { oneof detail {
SeaLampActivityDetailInfo sam_lamp_info = 7; SeaLampActivityDetailInfo sam_lamp_info = 2;
CrucibleActivityDetailInfo crucible_info = 14; CrucibleActivityDetailInfo crucible_info = 15;
SalesmanActivityDetailInfo salesman_info = 11; SalesmanActivityDetailInfo salesman_info = 9;
TrialAvatarActivityDetailInfo trial_avatar_info = 1; TrialAvatarActivityDetailInfo trial_avatar_info = 4;
DeliveryActivityDetailInfo delivery_info = 1092; DeliveryActivityDetailInfo delivery_info = 1141;
AsterActivityDetailInfo aster_info = 557; AsterActivityDetailInfo aster_info = 1977;
FlightActivityDetailInfo flight_info = 1365; FlightActivityDetailInfo flight_info = 2011;
DragonSpineActivityDetailInfo dragon_spine_info = 1727; DragonSpineActivityDetailInfo dragon_spine_info = 1310;
EffigyActivityDetailInfo effigy_info = 391; EffigyActivityDetailInfo effigy_info = 1374;
TreasureMapActivityDetailInfo treasure_map_info = 1114; TreasureMapActivityDetailInfo treasure_map_info = 1925;
BlessingActivityDetailInfo blessing_info = 1869; BlessingActivityDetailInfo blessing_info = 1962;
SeaLampActivityInfo sea_lamp_info = 494; SeaLampActivityInfo sea_lamp_info = 247;
ExpeditionActivityDetailInfo expedition_info = 202; ExpeditionActivityDetailInfo expedition_info = 1752;
ArenaChallengeActivityDetailInfo arena_challenge_info = 859; ArenaChallengeActivityDetailInfo arena_challenge_info = 538;
FleurFairActivityDetailInfo fleur_fair_info = 857; FleurFairActivityDetailInfo fleur_fair_info = 1447;
WaterSpiritActivityDetailInfo water_spirit_info = 1675; WaterSpiritActivityDetailInfo water_spirit_info = 635;
ChannelerSlabActivityDetailInfo channeler_slab_info = 1015; ChannelerSlabActivityDetailInfo channeler_slab_info = 846;
MistTrialActivityDetailInfo mist_trial_activity_info = 156; MistTrialActivityDetailInfo mist_trial_activity_info = 432;
HideAndSeekActivityDetailInfo hide_and_seek_info = 427; HideAndSeekActivityDetailInfo hide_and_seek_info = 839;
FindHilichurlDetailInfo find_hilichurl_info = 1411; FindHilichurlDetailInfo find_hilichurl_info = 378;
SummerTimeDetailInfo summer_time_info = 1372; SummerTimeDetailInfo summer_time_info = 1910;
BuoyantCombatDetailInfo buoyant_combat_info = 1842; BuoyantCombatDetailInfo buoyant_combat_info = 686;
EchoShellDetailInfo echo_shell_info = 1113; EchoShellDetailInfo echo_shell_info = 1162;
BounceConjuringActivityDetailInfo bounce_conjuring_info = 767; BounceConjuringActivityDetailInfo bounce_conjuring_info = 922;
BlitzRushActivityDetailInfo blitz_rush_info = 794; BlitzRushActivityDetailInfo blitz_rush_info = 64;
ChessActivityDetailInfo chess_info = 927; ChessActivityDetailInfo chess_info = 1006;
SumoActivityDetailInfo sumo_info = 1261; SumoActivityDetailInfo sumo_info = 505;
MoonfinTrialActivityDetailInfo moonfin_trial_info = 1588; MoonfinTrialActivityDetailInfo moonfin_trial_info = 766;
LunaRiteDetailInfo luna_rite_info = 814; LunaRiteDetailInfo luna_rite_info = 1545;
PlantFlowerActivityDetailInfo plant_flower_info = 54; PlantFlowerActivityDetailInfo plant_flower_info = 1274;
MusicGameActivityDetailInfo music_game_info = 460; MusicGameActivityDetailInfo music_game_info = 1989;
RoguelikeDungeonActivityDetailInfo roguelike_dungeon_info = 219; RoguelikeDungeonActivityDetailInfo roguelike_dungeon_info = 970;
DigActivityDetailInfo dig_info = 403; DigActivityDetailInfo dig_info = 1862;
HachiActivityDetailInfo hachi_info = 491; HachiActivityDetailInfo hachi_info = 511;
WinterCampActivityDetailInfo winter_camp_info = 1083; WinterCampActivityDetailInfo winter_camp_info = 699;
PotionActivityDetailInfo potion_info = 1273; PotionActivityDetailInfo potion_info = 1567;
TanukiTravelActivityDetailInfo tanuki_travel_activity_info = 1796; TanukiTravelActivityDetailInfo tanuki_travel_activity_info = 1348;
LanternRiteActivityDetailInfo lantern_rite_activity_info = 1876; LanternRiteActivityDetailInfo lantern_rite_activity_info = 237;
MichiaeMatsuriActivityDetailInfo michiae_matsuri_info = 194; MichiaeMatsuriActivityDetailInfo michiae_matsuri_info = 1839;
BartenderActivityDetailInfo bartender_info = 1725; BartenderActivityDetailInfo bartender_info = 551;
UgcActivityDetailInfo ugc_info = 703; UgcActivityDetailInfo ugc_info = 1182;
CrystalLinkActivityDetailInfo crystal_link_info = 1226; CrystalLinkActivityDetailInfo crystal_link_info = 812;
IrodoriActivityDetailInfo irodori_info = 750; IrodoriActivityDetailInfo irodori_info = 1056;
PhotoActivityDetailInfo photo_info = 328; PhotoActivityDetailInfo photo_info = 1822;
SpiceActivityDetailInfo spice_info = 1891; SpiceActivityDetailInfo spice_info = 789;
GachaActivityDetailInfo gacha_info = 825; GachaActivityDetailInfo gacha_info = 1297;
LuminanceStoneChallengeActivityDetailInfo luminance_stone_challenge_info = 1308; LuminanceStoneChallengeActivityDetailInfo luminance_stone_challenge_info = 444;
RogueDiaryActivityDetailInfo rogue_diary_info = 812; RogueDiaryActivityDetailInfo rogue_diary_info = 560;
SummerTimeV2DetailInfo summer_time_v2_info = 622; SummerTimeV2DetailInfo summer_time_v2_info = 411;
IslandPartyDetailInfo island_party_info = 1885; IslandPartyDetailInfo island_party_info = 740;
GearActivityDetailInfo gear_info = 722; GearActivityDetailInfo gear_info = 1482;
GravenInnocenceDetailInfo graven_innocence_info = 1911; GravenInnocenceDetailInfo graven_innocence_info = 1928;
InstableSprayDetailInfo instable_spray_info = 1043; InstableSprayDetailInfo instable_spray_info = 1145;
MuqadasPotionActivityDetailInfo muqadas_potion_info = 1157; MuqadasPotionActivityDetailInfo muqadas_potion_info = 1662;
TreasureSeelieActivityDetailInfo treasure_seelie_info = 966; TreasureSeelieActivityDetailInfo treasure_seelie_info = 1032;
RockBoardExploreDetailInfo rock_board_explore_info = 1078; RockBoardExploreDetailInfo rock_board_explore_info = 1265;
VintageDetailInfo vintage_info = 445; VintageActivityDetailInfo vintage_info = 1308;
WindFieldDetailInfo wind_field_info = 352; WindFieldDetailInfo wind_field_info = 468;
FungusFighterDetailInfo fungus_fighter_info = 490; FungusFighterDetailInfo fungus_fighter_info = 1757;
CharAmusementDetailInfo char_amusement_info = 1496; CharAmusementDetailInfo char_amusement_info = 621;
EffigyChallengeV2DetailInfo effigy_challenge_info = 1025; EffigyChallengeV2DetailInfo effigy_challenge_info = 233;
CoinCollectDetailInfo coin_collect_info = 2002;
BrickBreakerDetailInfo brick_breaker_info = 1522;
} }
} }

View File

@ -21,10 +21,15 @@ import "ActivityInfo.proto";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 2060
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message ActivityInfoNotify { message ActivityInfoNotify {
ActivityInfo activity_info = 9; // enum CmdId {
// option allow_alias = true;
// NONE = 0;
// CMD_ID = 2119;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// IS_ALLOW_CLIENT = 1;
// }
ActivityInfo activity_info = 12;
} }

View File

@ -19,10 +19,15 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto"; option java_package = "emu.grasscutter.net.proto";
// CmdId: 2157
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message ActivityPlayOpenAnimNotify { message ActivityPlayOpenAnimNotify {
uint32 activity_id = 8; // enum CmdId {
// option allow_alias = true;
// NONE = 0;
// CMD_ID = 2059;
// ENET_CHANNEL_ID = 0;
// ENET_IS_RELIABLE = 1;
// IS_ALLOW_CLIENT = 1;
// }
uint32 activity_id = 1;
} }

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