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";
message AISnapshotEntityData {
float tick_time = 5;
uint32 tactic = 2;
repeated AISnapshotEntitySkillCycle finished_skill_cycles = 9;
float moved_distance = 4;
uint32 ai_target_id = 13;
uint32 threat_target_id = 3;
uint32 threat_list_size = 1;
uint32 entity_id = 15;
map<uint32, uint32> hitting_avatars = 7;
float distance_to_player = 11;
uint32 attack_target_id = 10;
float real_time = 14;
repeated AISnapshotEntitySkillCycle finished_skill_cycles = 14;
uint32 attack_target_id = 2;
uint32 entity_id = 6;
float Unk3300_ALBMEMMJEJA = 13;
uint32 Unk3300_IADJCDJOKND = 5;
uint32 Unk3300_FNCIDLDKANO = 7;
float Unk3300_GPCFOCIFHCD = 15;
float Unk3300_FMBBEIHCCJO = 12;
float Unk3300_LIJIDJOLLEB = 11;
uint32 Unk3300_GNBOAJHMNJO = 9;
map<uint32, uint32> hitting_avatars = 4;
uint32 Unk3300_FIKEAEPLOHJ = 3;
}

View File

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

View File

@ -22,5 +22,5 @@ import "AISnapshotEntityData.proto";
option java_package = "emu.grasscutter.net.proto";
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";
message AbilityActionBlink {
Vector rot = 11;
Vector pos = 10;
Vector rot = 8;
Vector pos = 3;
}

View File

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

View File

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

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
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";
message AbilityActionDestroyTile {
Vector rot = 3;
Vector pos = 1;
Vector pos = 13;
Vector rot = 5;
}

View File

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

View File

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

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
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";
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";
message AbilityActionSetCrashDamage {
Vector hit_pos = 2;
float damage = 15;
float damage = 2;
Vector hit_pos = 8;
}

View File

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

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
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";
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 {
oneof arg {
uint32 int_arg = 5;
float float_arg = 15;
string str_arg = 11;
uint32 int_arg = 14;
float float_arg = 7;
string str_arg = 9;
}
}

View File

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

View File

@ -21,10 +21,15 @@ import "AbilityControlBlock.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 1131
// EnetChannelId: 0
// EnetIsReliable: true
message AbilityChangeNotify {
uint32 entity_id = 1;
AbilityControlBlock ability_control_block = 15;
// enum CmdId {
// 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";
message AbilityIdentifier {
uint32 modifier_owner_id = 2;
uint32 instanced_modifier_id = 9;
uint32 instanced_ability_id = 10;
bool is_serverbuff_modifier = 6;
uint32 ability_caster_id = 15;
int32 local_id = 3;
uint32 instanced_ability_id = 4;
uint32 Unk3300_IHCKJKLCICI = 10;
bool is_serverbuff_modifier = 14;
int32 local_id = 7;
uint32 Unk3300_OOOLELPBDHJ = 1;
uint32 instanced_modifier_id = 5;
}

View File

@ -21,11 +21,16 @@ import "AbilityInvokeEntry.proto";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 1107
// EnetChannelId: 0
// EnetIsReliable: true
message AbilityInvocationFailNotify {
string reason = 7;
uint32 entity_id = 13;
AbilityInvokeEntry invoke = 3;
// enum CmdId {
// option allow_alias = true;
// 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";
// CmdId: 1172
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message AbilityInvocationFixedNotify {
AbilityInvokeEntry invoke6th = 14;
AbilityInvokeEntry invoke5th = 8;
AbilityInvokeEntry invoke4th = 1;
AbilityInvokeEntry invoke2nd = 5;
AbilityInvokeEntry invoke1st = 10;
AbilityInvokeEntry invoke3rd = 12;
// enum CmdId {
// option allow_alias = true;
// NONE = 0;
// CMD_ID = 1179;
// ENET_CHANNEL_ID = 0;
// 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";
// CmdId: 1198
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
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_SHOOT_FROM_CAMERA = 120;
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";
message AbilityInvokeEntry {
AbilityInvokeArgument argument_type = 1;
AbilityInvokeEntryHead head = 2;
uint32 forward_peer = 4;
uint32 event_id = 12;
ForwardType forward_type = 3;
bytes ability_data = 15;
double total_tick_time = 14;
uint32 entity_id = 9;
ForwardType forward_type = 9;
uint32 event_id = 13;
uint32 entity_id = 7;
uint32 forward_peer = 14;
double total_tick_time = 10;
AbilityInvokeEntryHead head = 3;
bytes ability_data = 2;
AbilityInvokeArgument argument_type = 8;
bool is_ignore_auth = 12;
}

View File

@ -20,11 +20,11 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
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;
bool is_serverbuff_modifier = 2;
uint32 instanced_ability_id = 1;
uint32 instanced_modifier_id = 12;
int32 local_id = 10;
uint32 server_buff_uid = 14;
uint32 target_id = 3;
bool is_serverbuff_modifier = 15;
uint32 instanced_modifier_id = 10;
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -22,5 +22,5 @@ import "AbilityScalarValueEntry.proto";
option java_package = "emu.grasscutter.net.proto";
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";
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";
message AbilityMetaSetKilledState {
bool killed = 2;
bool killed = 5;
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -20,5 +20,5 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
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";
message AbilityMixinWindSeedSpawner {
oneof cmd {
AddSignal add_signal = 2;
RefreshSeed refresh_seed = 15;
CatchSeed catch_seed = 11;
}
message AddSignal {}
message RefreshSeed {
repeated Vector pos_list = 6;
repeated Vector pos_list = 10;
}
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";
message AbilityMixinWindZone {
repeated uint32 entity_ids = 13;
repeated uint32 zone_id_list = 10;
repeated uint32 Unk3300_OJPFAIGIBLG = 3;
repeated uint32 Unk3300_DJELBGDEDBH = 12;
}

View File

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

View File

@ -19,11 +19,16 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 2890
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
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 request_id = 5;
uint32 request_id = 8;
}

View File

@ -19,11 +19,16 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 2873
// EnetChannelId: 0
// EnetIsReliable: true
message AcceptCityReputationRequestRsp {
uint32 request_id = 5;
uint32 city_id = 13;
int32 retcode = 2;
// enum CmdId {
// option allow_alias = true;
// 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";
message Achievement {
uint32 finish_timestamp = 11;
Status status = 13;
uint32 cur_progress = 12;
uint32 id = 14;
uint32 total_progress = 8;
enum Status {
STATUS_INVALID = 0;
STATUS_UNFINISHED = 1;
STATUS_FINISHED = 2;
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";
// CmdId: 2676
// EnetChannelId: 0
// EnetIsReliable: true
message AchievementAllDataNotify {
repeated Achievement achievement_list = 4;
repeated uint32 reward_taken_goal_id_list = 2;
// enum CmdId {
// 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";
// CmdId: 2668
// EnetChannelId: 0
// EnetIsReliable: true
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";
// CmdId: 8113
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
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";
// CmdId: 8132
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityAcceptAllGiveGiftRsp {
repeated ActivityAcceptGiftResultInfo accept_gift_result_info_list = 5;
uint32 schedule_id = 10;
int32 retcode = 9;
// enum CmdId {
// option allow_alias = true;
// 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";
message ActivityAcceptGiftResultInfo {
map<uint32, uint32> unaccept_gift_num_map = 3;
uint32 uid = 6;
map<uint32, uint32> accept_gift_num_map = 13;
map<uint32, uint32> Unk3300_JFHLEBLOFMA = 1;
map<uint32, uint32> Unk3300_COCFNBJCFGP = 9;
uint32 uid = 12;
}

View File

@ -19,11 +19,16 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 8095
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message ActivityAcceptGiveGiftReq {
uint32 schedule_id = 3;
uint32 uid = 12;
// enum CmdId {
// 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";
// CmdId: 8502
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityAcceptGiveGiftRsp {
ActivityAcceptGiftResultInfo accept_gift_result_info = 4;
int32 retcode = 11;
uint32 schedule_id = 10;
// enum CmdId {
// option allow_alias = true;
// 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";
// CmdId: 2009
// EnetChannelId: 0
// EnetIsReliable: true
// IsAllowClient: true
message ActivityBannerClearReq {
uint32 schedule_id = 15;
uint32 activity_id = 12;
// enum CmdId {
// 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";
// CmdId: 2163
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityBannerClearRsp {
uint32 activity_id = 4;
int32 retcode = 6;
uint32 schedule_id = 11;
// enum CmdId {
// option allow_alias = true;
// 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";
// CmdId: 2155
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityBannerNotify {
uint32 schedule_id = 1;
uint32 activity_id = 3;
// enum CmdId {
// 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";
// CmdId: 2008
// EnetChannelId: 0
// EnetIsReliable: true
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 activity_id = 10;
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";
// CmdId: 2140
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityCondStateChangeNotify {
repeated uint32 activated_sale_id_list = 9;
uint32 activity_id = 4;
uint32 schedule_id = 5;
repeated uint32 expire_cond_list = 11;
repeated Uint32Pair disable_transfer_point_interaction_list = 12;
repeated uint32 meet_cond_list = 1;
// enum CmdId {
// option allow_alias = true;
// NONE = 0;
// CMD_ID = 2194;
// ENET_CHANNEL_ID = 0;
// 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";
// CmdId: 8982
// EnetChannelId: 0
// EnetIsReliable: true
message ActivityDisableTransferPointInteractionNotify {
bool is_disable = 10;
Uint32Pair scene_point_pair = 5;
// enum CmdId {
// 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";
message ActivityFriendGiftWishData {
string nickname = 7;
string remark_name = 3;
map<uint32, uint32> gift_num_map = 5;
uint32 uid = 7;
ProfilePicture profile_picture = 11;
map<uint32, uint32> gift_num_map = 9;
uint32 uid = 8;
string remark_name = 12;
string nickname = 2;
}

View File

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