diff --git a/config/Catnip.xlsx b/config/Catnip.xlsx index a40df9fd..c4c2bb28 100644 Binary files a/config/Catnip.xlsx and b/config/Catnip.xlsx differ diff --git a/config/LanguageData.xlsx b/config/LanguageData.xlsx index 7b85cd0f..9df8c3c2 100644 Binary files a/config/LanguageData.xlsx and b/config/LanguageData.xlsx differ diff --git a/config/Playroom.xlsx b/config/Playroom.xlsx index 106f0a1e..bc8e4902 100644 Binary files a/config/Playroom.xlsx and b/config/Playroom.xlsx differ diff --git a/proto/Gameapi.proto b/proto/Gameapi.proto index 782dce6d..19d342b7 100644 --- a/proto/Gameapi.proto +++ b/proto/Gameapi.proto @@ -74,6 +74,7 @@ enum ITEM_POP_LABEL { // item弹窗标签 DecorateReward = 66; // 装饰奖励 CatnipReward = 67; // 猫草大作战奖励 CatnipGrandReward = 68; // 猫草大作战大奖奖励 + CatnipPlay = 69; // 猫草大作战玩法奖励 } enum HANDLE_TYPE { ADD = 0; @@ -2041,6 +2042,7 @@ message ResPlayroom{ int32 InteractNum = 25; // 互动次数 int32 Kiss = 26; // 亲吻次数 int64 Revenge = 27; // 复仇Uid + repeated AdItem AdItem = 28; // 广告奖励信息 } message NotifyPlayroomTask{ @@ -2140,6 +2142,13 @@ message NotifyPlayroomMood{ int32 AllMood = 1; // 总心情 map Mood = 2; // 心情 <位置, 心情> map Physiology = 3; // 生理 <位置, 生理> + repeated AdItem AdItem = 4; // 广告奖励 +} + +message AdItem { + int32 Watch = 1; // 今日观看次数 + int32 LastWatch = 2; // 上次观看时间 + int32 ItemId = 3; // 道具id } message NotifyPlayroomKiss{ diff --git a/tool/cfg/cfg_txt.json b/tool/cfg/cfg_txt.json index d15fab3c..838e2fbb 100644 --- a/tool/cfg/cfg_txt.json +++ b/tool/cfg/cfg_txt.json @@ -56,12 +56,24 @@ "sheet_name":"IndoorProgress", "coloum_type":["int","int","int","string","string","string","string","string"] }, + { + "in_file":"LanguageData.xlsx", + "out_file":"DialogData.txt", + "sheet_name":"DialogData", + "coloum_type":["int","string","int","string","string","string","string","string","string"] + }, { "in_file":"LanguageData.xlsx", "out_file":"LanguageData.txt", "sheet_name":"LanguageData", "coloum_type":["int","string","string","string"] }, + { + "in_file":"LanguageData.xlsx", + "out_file":"LanguageDataTwo.txt", + "sheet_name":"LanguageDataTwo", + "coloum_type":["int","string","string","string"] + }, { "in_file":"LimitedTimeEvent.xlsx", "out_file":"LuckyCatProbability.txt", diff --git a/tool/cfg/cfg_xlsx.json b/tool/cfg/cfg_xlsx.json index 4a93f001..b3c335cc 100644 --- a/tool/cfg/cfg_xlsx.json +++ b/tool/cfg/cfg_xlsx.json @@ -484,7 +484,7 @@ "out_file": "CatnipJackpot.json", "key": "Id", "sheet_name" :"Jackpot", - "fields" :["Items", "Growth"] + "fields" :["Items", "Growth", "Type"] }, { "in_file": "Catnip.xlsx", @@ -603,7 +603,7 @@ "out_file": "PlayroomShop.json", "key": "Id", "sheet_name" :"Shop", - "fields" :["Type", "ItemId", "Cost","Wish"] + "fields" :["Type", "ItemId", "Cost","Wish", "Cooldown", "Dailystorage"] }, { "in_file": "Playroom.xlsx", diff --git a/tool/cfg/tool_cfg_json.py b/tool/cfg/tool_cfg_json.py index 528b4a7f..c02c2dbf 100644 --- a/tool/cfg/tool_cfg_json.py +++ b/tool/cfg/tool_cfg_json.py @@ -1,12 +1,43 @@ import os import json import openpyxl +import csv current_dir = os.getcwd() # 读取配置文件 -with open(os.path.join(current_dir, 'tool/cfg/cfg_xlsx.json'), 'r', encoding='utf-8') as f: +cfg_path = os.path.join(current_dir, 'tool/cfg/cfg_xlsx.json') +with open(cfg_path, 'r', encoding='utf-8') as f: cfg = json.load(f) +def read_table(file_path, sheet_name=None): + if file_path.lower().endswith('.xlsx'): + workbook = openpyxl.load_workbook(file_path) + sheet = workbook[sheet_name] if sheet_name else workbook.active + fieldnames = [cell.value for cell in sheet[1]] + rows = list(sheet.iter_rows(values_only=True))[2:] + elif file_path.lower().endswith('.csv'): + # 尝试多种编码格式 + encodings = ['utf-8', 'gbk', 'gb2312', 'cp936', 'utf-8-sig'] + data = None + + for encoding in encodings: + try: + with open(file_path, 'r', encoding=encoding) as csvfile: + reader = csv.reader(csvfile) + data = list(reader) + break + except UnicodeDecodeError: + continue + + if data is None: + raise ValueError(f"Unable to decode CSV file {file_path} with any of the attempted encodings: {encodings}") + + fieldnames = data[0] + rows = data[2:] + else: + raise ValueError("Unsupported file type") + return fieldnames, rows + file_list = cfg['file_list'] target_dir = cfg['target_dir'] source_dir = cfg['source_dir'] @@ -19,17 +50,10 @@ os.makedirs(target_dir, exist_ok=True) for file_cfg in file_list: source_file_path = os.path.join(current_dir, source_dir, file_cfg["in_file"]) target_file_path = os.path.join(current_dir, target_dir, file_cfg["out_file"]) - sheet_name = file_cfg["sheet_name"] + sheet_name = file_cfg.get("sheet_name") - # 读取XLSX文件 - workbook = openpyxl.load_workbook(source_file_path) - sheet = workbook[sheet_name] if sheet_name else workbook.active - - # 获取字段名 - fieldnames = [cell.value for cell in sheet[1]] - - # 读取数据并去掉第一行 - rows = list(sheet.iter_rows(values_only=True))[2:] + # 使用 read_table 函数读取文件 + fieldnames, rows = read_table(source_file_path, sheet_name) # 以第一列的值作为索引,并移除第一列 indexed_data = {} diff --git a/tool/cfg/tool_cfg_txt.py b/tool/cfg/tool_cfg_txt.py index c4605429..7950a441 100644 --- a/tool/cfg/tool_cfg_txt.py +++ b/tool/cfg/tool_cfg_txt.py @@ -1,13 +1,31 @@ import os import json import openpyxl +import csv current_dir = os.getcwd() print(current_dir) # 读取配置文件 -with open(os.path.join(current_dir, 'tool/cfg/cfg_txt.json'), 'r', encoding='utf-8-sig') as f: +cfg_path = os.path.join(current_dir, 'tool/cfg/cfg_xlsx.json') +with open(cfg_path, 'r', encoding='utf-8') as f: cfg = json.load(f) +def read_table(file_path, sheet_name=None): + if file_path.lower().endswith('.xlsx'): + workbook = openpyxl.load_workbook(file_path) + sheet = workbook[sheet_name] if sheet_name else workbook.active + fieldnames = [cell.value for cell in sheet[1]] + rows = list(sheet.iter_rows(values_only=True))[2:] + elif file_path.lower().endswith('.csv'): + with open(file_path, 'r', encoding='utf-8') as csvfile: + reader = csv.reader(csvfile) + data = list(reader) + fieldnames = data[0] + rows = data[2:] + else: + raise ValueError("Unsupported file type") + return fieldnames, rows + file_list = cfg['file_list'] target_dir = cfg['target_dir'] source_dir = cfg['source_dir']