设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2216|回复: 8
打印 上一主题 下一主题

[已经解决] 永久开关能用事件做的到吗?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
41 小时
注册时间
2014-2-17
帖子
218
跳转到指定楼层
1
发表于 2014-7-24 10:07:40 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
比如说有些开关一旦打开了,就一直是开着的,哪怕再重新开一局游戏这个开关还是开着的,这样的怎么做?需要脚本吗?

点评

需要。把指定的永久开关另外储存,每次打开游戏都读取它。  发表于 2014-7-24 10:19

Lv1.梦旅人

梦石
0
星屑
50
在线时间
41 小时
注册时间
2014-2-17
帖子
218
9
 楼主| 发表于 2014-7-25 21:36:56 | 只看该作者
恐惧剑刃 发表于 2014-7-25 15:11
哈哈或许存档也能这样!!!这难道就是传说中隐藏存档的方法么。。。

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

点评

好像只讲到了保存角色能力什么什么的,好像没讲到开关啊……能不能弄个脚本,比如X号开关是永久开关,其他都是普通开关,永久开关开了就关不了  发表于 2014-7-26 15:45
http://www.66rpg.com/articles/3057  发表于 2014-7-26 15:08
能不能设置一个脚本,那个脚本设置某某号开关一旦打开就是永久打开……这种能办到吗?还有,求那个视频的网址,谢谢  发表于 2014-7-26 15:00
……………………那个脚本很不完整,建议用比较常规的方法吧?柳柳有一录像教程专门是讲 “永久保存”文件的你可以看下  发表于 2014-7-26 10:27
只能1号开关吗?其他号码的开关行不行?是不是灵异事件就是指哪个开关永久打开了?  发表于 2014-7-26 09:42
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
8
发表于 2014-7-25 15:11:26 | 只看该作者
本帖最后由 恐惧剑刃 于 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
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
41 小时
注册时间
2014-2-17
帖子
218
7
 楼主| 发表于 2014-7-25 12:58:00 | 只看该作者
楼主是我的女仆 发表于 2014-7-24 16:49
意思是这个开关的值为OFF(或者说是这个开关没打开)的时候就p 2

我在脚本编辑器最上面插了那个脚本结果一开始游戏就说
脚本''的1行发生了NoMethodError
undefined method 'if' for 1:Fixnum

点评

额,突然发现我复制脚本的时候复制错了  发表于 2014-7-25 12:59
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
60 小时
注册时间
2014-7-12
帖子
539
6
发表于 2014-7-24 16:49:39 | 只看该作者
shanlong闪龙 发表于 2014-7-24 15:06
怎么把这个永久开关给条件分歧?
  1. if load_data("Data/Tk.rxdata").to_s=="OFF"
  2. p 2
  3. end
复制代码
意思是这个开关的值为OFF(或者说是这个开关没打开)的时候就p 2

点评

哦!!!!解决了!可以了!  发表于 2014-7-27 14:49
如果要打开某号开关,用脚本怎么写???  发表于 2014-7-27 12:40
@楼主是我的女仆  发表于 2014-7-27 11:03
这个开关可以永久打开,我也测试过可以用,但是我不会分歧……你说的那个方法只是测试有没有打开的而已吧……  发表于 2014-7-26 21:23
还是一样的做法啊  发表于 2014-7-26 20:03

传送门:https://rpg.blue/thread-368721-1-1.html
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
41 小时
注册时间
2014-2-17
帖子
218
5
 楼主| 发表于 2014-7-24 14:06:33 | 只看该作者
楼主是我的女仆 发表于 2014-7-24 11:38
在脚本编辑器最上面插入这些脚本在数据库里放一个事件,内容用脚本这么写运行这个公共事件就可以控制开和关 ...

{:2_276:}怎么把这个永久开关给条件分歧?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
60 小时
注册时间
2014-7-12
帖子
539
4
发表于 2014-7-24 11:38:28 | 只看该作者
在脚本编辑器最上面插入这些脚本
  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
复制代码
运行这个公共事件就可以控制开和关

点评

加上!的方法我一直没搞清楚是开还是关  发表于 2014-7-25 09:10
用if是好习惯 但可以这样 if !FileTest.exist?("Data/Tk.rxdata")  发表于 2014-7-24 23:06
觉得新手用if来做比较好,另外第二段脚本怎么我发出来变成这个样子了?  发表于 2014-7-24 17:32
吐槽第一个if为什么不用unless以便省略一个else  发表于 2014-7-24 17:19

评分

参与人数 1星屑 +150 收起 理由
怪蜀黍 + 150 常规方法,但缺点是可以删文件改开关.

查看全部评分


传送门:https://rpg.blue/thread-368721-1-1.html
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
654
在线时间
336 小时
注册时间
2012-2-4
帖子
1767
3
发表于 2014-7-24 10:50:24 | 只看该作者
请参考《天亮前的世界》RM版,游戏最后有一个这样的事件。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
2
发表于 2014-7-24 10:45:26 | 只看该作者
其实我之前想过在不多存贮文件的情况下实现二周目等等

思路,没有试过
利用数据库的剩余价值(反正空着也是空着)……
把默认数据库的角色、物品等等放大一点,找一个你绝对不可能用的到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-25 13:10
好深奥啊看不太懂OTZ  发表于 2014-7-24 14:06
存文件不多的话也可以几乎无视所占内存吧?  发表于 2014-7-24 11:39

评分

参与人数 2星屑 +33 梦石 +1 收起 理由
芯☆淡茹水 + 33 这个想法很新颖~。
怪蜀黍 + 1 可以防止删文件修改开关,学到一条思路.

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-19 01:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表