Project1

标题: 永久开关能用事件做的到吗? [打印本页]

作者: shanlong闪龙    时间: 2014-7-24 10:07
标题: 永久开关能用事件做的到吗?
比如说有些开关一旦打开了,就一直是开着的,哪怕再重新开一局游戏这个开关还是开着的,这样的怎么做?需要脚本吗?
作者: 恐惧剑刃    时间: 2014-7-24 10:45
其实我之前想过在不多存贮文件的情况下实现二周目等等

思路,没有试过
利用数据库的剩余价值(反正空着也是空着)……
把默认数据库的角色、物品等等放大一点,找一个你绝对不可能用的到id
名字为0 或者 1
比如当你要打开这个开关时
直接 (以物品为例)$data_items[你选的那个你不会用的到物品的id].name = "1"
如果要关闭开关就是$data_items[你选的那个你不会用的到物品的id].name = "0"
每一次更改名称都要 保存一下  即 save_data($data_items, "Data/Items.rxdata")
并且在新游戏那里分歧一下
if $data_items[你选的那个你不会用的到物品的id].name == "0"
   $game_switches[需要的开关id] = false
elsif $data_items[你选的那个你不会用的到物品的id].name == "1"
   $game_switches[需要的开关id] = true
end

OK!

作者: 小学生    时间: 2014-7-24 10:50
请参考《天亮前的世界》RM版,游戏最后有一个这样的事件。
作者: 楼主是我的女仆    时间: 2014-7-24 11:38
在脚本编辑器最上面插入这些脚本
  1. if FileTest.exist?("Data/Tk.rxdata")
  2. else
  3.   save_data("OFF","Data/Tk.rxdata")#这个永久开关默认是关掉的
  4. end
复制代码
在数据库里放一个事件,内容用脚本这么写

  1.         if load_data("Data/Tk.rxdata").to_s=="OFF"
  2.           save_data("ON","Data/Tk.rxdata")
  3.         else
  4.           save_data("OFF","Data/Tk.rxdata")
  5.         end
复制代码
运行这个公共事件就可以控制开和关
作者: shanlong闪龙    时间: 2014-7-24 14:06
楼主是我的女仆 发表于 2014-7-24 11:38
在脚本编辑器最上面插入这些脚本在数据库里放一个事件,内容用脚本这么写运行这个公共事件就可以控制开和关 ...

{:2_276:}怎么把这个永久开关给条件分歧?
作者: 楼主是我的女仆    时间: 2014-7-24 16:49
shanlong闪龙 发表于 2014-7-24 15:06
怎么把这个永久开关给条件分歧?
  1. if load_data("Data/Tk.rxdata").to_s=="OFF"
  2. p 2
  3. end
复制代码
意思是这个开关的值为OFF(或者说是这个开关没打开)的时候就p 2
作者: shanlong闪龙    时间: 2014-7-25 12:58
楼主是我的女仆 发表于 2014-7-24 16:49
意思是这个开关的值为OFF(或者说是这个开关没打开)的时候就p 2

我在脚本编辑器最上面插了那个脚本结果一开始游戏就说
脚本''的1行发生了NoMethodError
undefined method 'if' for 1:Fixnum
作者: 恐惧剑刃    时间: 2014-7-25 15:11
本帖最后由 恐惧剑刃 于 2014-7-25 22:36 编辑

不完整,没有添加删除方式——不过懂的人就不需要删除方式
仅供参考
  1. # ** 使用方法
  2. # ** $data_system.save_switch(id) 开关
  3. # ** $data_system.save_variable(id) 变量

  4. # ** $data_system.customize(key, value) 自定义
  5. # ** 例——
  6. # ** $data_system.customize("DR", "Dark Ranger")  保存
  7. # ** if not $data_system.customize_keys.nil?
  8. # **   $data_system.customize_keys["DR"]  读取
  9. # ** end


  10. module RPG
  11.   class System
  12.     attr_reader :need_save_switches, :need_save_variables,
  13.     :customize_keys
  14.     # ** 保存开关
  15.     def save_switch(id)
  16.       @need_save_switches = {} if @need_save_switches.nil?
  17.       @need_save_switches[id] = $game_switches[id]
  18.       save_data($data_system, "Data/System.rxdata")
  19.     end
  20.     # ** 保存变量
  21.     def save_variable(id)
  22.       @need_save_variables = {} if @need_save_variables.nil?
  23.       @need_save_variables[id] = $game_variables[id]
  24.       save_data($data_system, "Data/System.rxdata")
  25.     end
  26.     # ** 保存自定义数据
  27.     def customize(key, value)
  28.       @customize_keys = {} if @customize_keys.nil?
  29.       @customize_keys[key] = value
  30.       save_data($data_system, "Data/System.rxdata")
  31.     end
  32.   end
  33. end

  34. # ** 开关
  35. class Game_Switches
  36.   # ** 初始化
  37.   def initialize
  38.     @data = []
  39.     # ** 读取数据
  40.     if not $data_system.need_save_switches.nil?
  41.       $data_system.need_save_switches.keys.sort.each do |id|
  42.         @data[id] = $data_system.need_save_switches[id]
  43.       end
  44.     end
  45.   end
  46. end

  47. # ** 变量
  48. class Game_Variables
  49.   # ** 初始化
  50.   def initialize
  51.     @data = []
  52.     # ** 读取数据
  53.     if not $data_system.need_save_variables.nil?
  54.       $data_system.need_save_variables.keys.sort.each do |id|
  55.         @data[id] = $data_system.need_save_variables[id]
  56.       end
  57.     end
  58.   end
  59. end
复制代码

作者: shanlong闪龙    时间: 2014-7-25 21:36
恐惧剑刃 发表于 2014-7-25 15:11
哈哈或许存档也能这样!!!这难道就是传说中隐藏存档的方法么。。。

这个脚本怎么用?(我是脚本盲看不懂OTZ)




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1