灭世轮回
# ------------------------------------------------------------------ # 脚本名称: CheckLevelAndReset.rb # 功能: 检查队伍等级,若有人大于10级,则记录TXT,删档,退出 # 使用方法: 在事件中使用 "脚本" 命令,输入: check_level_and_reset # ------------------------------------------------------------------ def check_level_and_reset # 1. 遍历角色,检查等级 level_check_passed = false for actor in $game_party.actors if actor.level > 10 level_check_passed = true break end end # 2. 如果条件满足 if level_check_passed # 设置全局变量1为10 (虽然马上要退出,但为了保险起见先设置,尽管存档会被删) $game_variables = 10 # 3. 记录到 TXT 文件 (使用 Game 目录下的 data 文件夹,或者根目录) # 注意:RMXP 默认工作目录是游戏根目录 file_path = "./persistent_var1.txt" File.open(file_path, "w") do |f| f.write("10") end # 4. 销毁所有存档 for i in 1..4 # RMXP 通常有4个存档位 Save1.rxdata 到 Save4.rxdata save_file = "Save#{i}.rxdata" if FileTest.exist?(save_file) File.delete(save_file) end end # 5. 提示用户 (可选,因为马上退出) # $game_message.add("检测到高等级角色,正在重置游戏...") # 6. 退出游戏 # 使用 exit 会直接关闭进程,是最彻底的退出方式 exit else # 如果没满足条件,可以做其他处理,这里留空 end end
# ------------------------------------------------------------------
# 脚本名称: CheckLevelAndReset.rb
# 功能: 检查队伍等级,若有人大于10级,则记录TXT,删档,退出
# 使用方法: 在事件中使用 "脚本" 命令,输入: check_level_and_reset
# ------------------------------------------------------------------
def check_level_and_reset
# 1. 遍历角色,检查等级
level_check_passed = false
for actor in $game_party.actors
if actor.level > 10
level_check_passed = true
break
end
end
# 2. 如果条件满足
if level_check_passed
# 设置全局变量1为10 (虽然马上要退出,但为了保险起见先设置,尽管存档会被删)
$game_variables = 10
# 3. 记录到 TXT 文件 (使用 Game 目录下的 data 文件夹,或者根目录)
# 注意:RMXP 默认工作目录是游戏根目录
file_path = "./persistent_var1.txt"
File.open(file_path, "w") do |f|
f.write("10")
end
# 4. 销毁所有存档
for i in 1..4 # RMXP 通常有4个存档位 Save1.rxdata 到 Save4.rxdata
save_file = "Save#{i}.rxdata"
if FileTest.exist?(save_file)
File.delete(save_file)
end
end
# 5. 提示用户 (可选,因为马上退出)
# $game_message.add("检测到高等级角色,正在重置游戏...")
# 6. 退出游戏
# 使用 exit 会直接关闭进程,是最彻底的退出方式
exit
else
# 如果没满足条件,可以做其他处理,这里留空
end
end
脚本2,添加全局变量存储文本
# ------------------------------------------------------------------ # 脚本名称: AutoLoadVarFromTxt.rb # 功能: 在新游戏开始时,检查是否存在 persistent_var1.txt,如有则读取并赋值给变量1 # 安装: 放在主脚本列表的底部,确保在 Scene_Title 之后 # ------------------------------------------------------------------ class Scene_Title # 别名原有的 new_game 命令,以便插入我们的逻辑 alias :original_command_new_game :command_new_game def command_new_game # 执行原有的新游戏初始化逻辑 original_command_new_game # --- 自定义逻辑开始 --- # 尝试读取持久化变量文件 file_path = "./persistent_var1.txt" if FileTest.exist?(file_path) begin content = File.read(file_path).strip if content != "" # 将读取到的字符串转换为整数并赋值给全局变量1 $game_variables = Integer(content) # 可选:读取后删除文件,防止下次新游戏再次覆盖(根据需求决定) # 如果希望每次新游戏都重置,则保留删除;如果希望永久保留直到再次被脚本覆盖,则注释掉下一行 File.delete(file_path) end rescue => e # 如果读取失败(如格式错误),忽略错误,避免游戏崩溃 print("读取持久化变量失败: #{e.message}") end end # --- 自定义逻辑结束 --- end end
# ------------------------------------------------------------------
# 脚本名称: AutoLoadVarFromTxt.rb
# 功能: 在新游戏开始时,检查是否存在 persistent_var1.txt,如有则读取并赋值给变量1
# 安装: 放在主脚本列表的底部,确保在 Scene_Title 之后
# ------------------------------------------------------------------
class Scene_Title
# 别名原有的 new_game 命令,以便插入我们的逻辑
alias :original_command_new_game :command_new_game
def command_new_game
# 执行原有的新游戏初始化逻辑
original_command_new_game
# --- 自定义逻辑开始 ---
# 尝试读取持久化变量文件
file_path = "./persistent_var1.txt"
if FileTest.exist?(file_path)
begin
content = File.read(file_path).strip
if content != ""
# 将读取到的字符串转换为整数并赋值给全局变量1
$game_variables = Integer(content)
# 可选:读取后删除文件,防止下次新游戏再次覆盖(根据需求决定)
# 如果希望每次新游戏都重置,则保留删除;如果希望永久保留直到再次被脚本覆盖,则注释掉下一行
File.delete(file_path)
end
rescue => e
# 如果读取失败(如格式错误),忽略错误,避免游戏崩溃
print("读取持久化变量失败: #{e.message}")
end
end
# --- 自定义逻辑结束 ---
end
end
如果通关等级高于10级,则删除存档,重新开始,记录全局变量为10,当全局变量为10,则出生给一个提示道具,
这个道具可以降低等级一级,然后通关时再次进入地狱轮回场景,接受审判,直到等级不高于10,则进入下一场游戏正常场景,
还不知道怎么使用这个全局变量 |