|
发表于 2023-6-10 16:51:21
|
显示全部楼层
#用py自动获取lua文件中的icon和model
import re
def extract_numbers_from_lua_file(file_path):
numbers = set() # 使用集合来存储不重复的数字
with open(file_path, 'r', encoding="utf-8") as file:
lua_content = file.read()
# 使用正则表达式匹配数字字段
matches = re.findall(r'icon=(\d+)', lua_content)
# 将匹配到的数字添加到集合中
for match in matches:
numbers.add(int(match))
return numbers
def extract_numbers_from_lua_file2(file_path):
numbers = set() # 使用集合来存储不重复的数字
with open(file_path, 'r', encoding="utf-8") as file:
lua_content = file.read()
# 使用正则表达式匹配数字字段
matches = re.findall(r'model=(\d+)', lua_content)
# 将匹配到的数字添加到集合中
for match in matches:
numbers.add(int(match))
return numbers
def process_lua_files_in_directory(directory):
all_numbers = set() # 用于存储所有 Lua 文件中的数字字段
# 遍历目录下的所有文件和文件夹
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith(".lua"):
file_path = os.path.join(root, file)
numbers = extract_numbers_from_lua_file(file_path)
all_numbers.update(numbers)
return all_numbers
def process_lua_files_in_directory2(directory):
all_numbers = set() # 用于存储所有 Lua 文件中的数字字段
# 遍历目录下的所有文件和文件夹
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith(".lua"):
file_path = os.path.join(root, file)
numbers = extract_numbers_from_lua_file2(file_path)
all_numbers.update(numbers)
return all_numbers
# 请将下面的路径替换为你的 script 文件夹的路径
script_directory = 'script'
numbers= process_lua_files_in_directory(script_directory)
# 打印提取到的数字列表
s="RES_IDS = {}\nRES_IDS['entity_id'] = {}\nRES_IDS['ability_id'] = {}\nRES_IDS['modifier_id'] = {}\nRES_IDS['projectile_id'] = {}\nRES_IDS['item_id'] = {}\nRES_IDS['sound_id'] = {}\n"
s=s+"RES_IDS['icon_id'] = {"
for number in numbers:
s=s+str(number)+",\n"
s=s+"}\n"
numbers= process_lua_files_in_directory2(script_directory)
s=s+"RES_IDS['model_id'] = {"
for number in numbers:
s=s+str(number)+",\n"
s=s+"}\n"
# 将字符串 s 写入 resource.lua 文件
with open('script\\resource.lua', 'w', encoding='utf-8') as file:
file.write(s)
print("resource.lua 文件已生成") |
|