Project1

标题: 如何用脚本实现拥有无限独立开关? [打印本页]

作者: 永远の路克酱    时间: 2012-1-25 17:37
标题: 如何用脚本实现拥有无限独立开关?
如何用脚本实现可以拥有无限的独立开关,或者可以把独立开关增加至26个,也就是独立开关A~Z。dsu_plus_rewardpost_czw
作者: 忧雪の伤    时间: 2012-1-25 17:42
本帖最后由 忧雪の伤 于 2012-1-25 17:46 编辑
  1. $game_self_switches[[map_id, event_id, switch_name]] = true / false
复制代码

switch_name 可以是随意的字符串,所以其实就是无限的。
eg:
  1. $game_self_switches[[1, 1, 'foo']] = true
复制代码

以上就是打开 1 号地图 的 1 号事件的名称为 'foo' 的独立开关。
作者: 认真的学    时间: 2012-1-25 17:44
本帖最后由 认真的学 于 2012-1-25 18:06 编辑

设置:$game_self_switches[[地图号,事件ID,独立开关名称]]=true/false
读取:$game_self_switches[[地图号,事件ID,独立开关名称]]
可参考Game_SelfSwitches
-------------------------------------
回答迟了= =
作者: 永远の路克酱    时间: 2012-1-25 17:49
忧雪の伤 发表于 2012-1-25 19:42


开关名称可以随意打,所以其实是无限的。

即使是这样,就等于一个事件用一个变量得意思,我的意思是那种可以事件页的开启条件【当独立开关Z为ON时】。你那样的话实现不了一个事件可以无限复制为新事件。

或许我说的根本不可能实现吧,因为事件页开启条件里是不可能实现【当独立开关(除ABCD以外)为ON时】。

但是不知道可不可以像【把数据库动画最大值改为9999的脚本】那样强制更改系统。
作者: 忧雪の伤    时间: 2012-1-25 17:50
本帖最后由 忧雪の伤 于 2012-1-25 18:00 编辑
永远の路克酱 发表于 2012-1-25 17:49
即使是这样,就等于一个事件用一个变量得意思,我的意思是那种可以事件页的开启条件【当独立开关Z为ON时 ...

你完全可以通过修改 load_data(sprintf("Data/Map%03d.rxdata", map_id)).events 来实现。
作者: 永远の路克酱    时间: 2012-1-25 17:51
忧雪の伤 发表于 2012-1-25 19:50
你完全可以通过修改 $data_map[map_id].events 来实现。

我不懂脚本,请赐教。
作者: 认真的学    时间: 2012-1-25 18:06
本帖最后由 认真的学 于 2012-1-25 18:06 编辑
永远の路克酱 发表于 2012-1-25 17:49
即使是这样,就等于一个事件用一个变量得意思,我的意思是那种可以事件页的开启条件【当独立开关Z为ON时 ...


如果是为了无限复制为新事件的话,我觉得可以在条件分歧里写$game_self_switches[[$game_map.map_id,@event_id,独立开关名称]]
作者: 忧雪の伤    时间: 2012-1-25 18:07
本帖最后由 忧雪の伤 于 2012-1-25 18:08 编辑


请根据 红框 提示阅读本教材。(真累啊——






作者: 永远の路克酱    时间: 2012-1-25 18:12
认真的学 发表于 2012-1-25 20:06
如果是为了无限复制为新事件的话,我觉得可以在条件分歧里写$game_self_switches[[$game_map.map_id,@eve ...

条件分歧没用吧,我要的是事件页左边的判断,不是判断是否打开。你那个的功能是当本事件独立开关打开时吗?但是要是本事件页本身没启动如何进行判断。我的意思还是【事件页左边的判断】。
作者: 忧雪の伤    时间: 2012-1-25 18:17
话说回来,是要在进入那个地图之前就要修改好哦。
作者: 永远の路克酱    时间: 2012-1-25 18:22
本帖最后由 永远の路克酱 于 2012-1-25 20:26 编辑
忧雪の伤 发表于 2012-1-25 20:07

请根据 红框 提示阅读本教材。(真累啊——







你这样事件页左边的判断是实现了。你的那个是写在自动执行完后再消失的事件里吗?如果是,无限复制没有实现吧。每个事件都要一段脚本。
你的那个X号事件,还是每个事件都要判断,而且我的事件有21页,要有21判断,我有35个同样的事件,就要735个判断对吧。那样不是当成普通开关用了。这样的话还是变量更好吧!还是我没理解清除。抱歉添麻烦了。


其实我的用处是:http://rpg.blue/thread-220562-1-1.html



作者: 忧雪の伤    时间: 2012-1-25 18:26
永远の路克酱 发表于 2012-1-25 18:22
你这样事件页左边的判断是实现了。你的那个是写在自动执行完后再消失的事件里吗?如果是,无限复制没有实 ...

这是要在游戏还没开始前就要执行的,也就是在一个一个读取脚本的时候,也就是说可以专门分出一个脚本页,而不是使用在事件脚本中。
作者: 认真的学    时间: 2012-1-25 18:27
永远の路克酱 发表于 2012-1-25 18:22
你这样事件页左边的判断是实现了。你的那个是写在自动执行完后再消失的事件里吗?如果是,无限复制没有实 ...

如果事件都是相同的话,使用循环为它们加上独立开关条件就可以了
作者: 永远の路克酱    时间: 2012-1-25 18:33
忧雪の伤 发表于 2012-1-25 20:26
这是要在游戏还没开始前就要执行的,也就是在一个一个读取脚本的时候,也就是说可以专门分出一个脚本页, ...

虽然还是不知道加了一页脚本后要怎么使用,但是谢谢你,我以后研究研究吧。临场学习脚本效果肯定不好的。用变量的话35个,700多次操作,但是至少比开关好,开关要700多个,2000多次操作。

不过,辛苦了,有时间我会把脚本看完的。目前我才看到【精灵】这一段。




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