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

Project1

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

[通用发布] 【RMXP/RMVX/RMVA】地图事件独立开关效果增强

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

跳转到指定楼层
1
发表于 2014-10-19 17:23:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
有时候我们的游戏里面需要给NPC增加好感度这个属性,然后根据好感度,NPC会给角色派发任务什么的···但是用变量什么又觉得复杂麻烦,在EVENT里面加一个新定义是个不错的选择,但不排除和其他脚本抽风冲突什么的乱七八糟的情况,而该教程可以有效解决你的问题···

首先我们按下F11打开脚本编辑器(图片以RMVX为参考)
找到Game_SelfSwitches
然后找到图片中圈出来的语句
  1. return @data[key] == true ? true : false
复制代码
(如图,RMVA里面你需要找到的那一句是
  1. @data[key] == true
复制代码



接下来使用
  1. return @data[key] == nil ? false : @data[key]
复制代码
将这一句换掉


确定保存F12测试,事件指令里面的开关可以自由调用,很好···可以开始调教了
让我们来一段脚本测试,用脚本指令调用地图上的事件的开关,在这里我调用的是打开1号地图上的2号事件的独立开关A(想要用脚本调用的前提是那个地图和那个地图上的事件存在)的脚本指令
  1. $game_self_switches[[1, 2, "A"]]=true
复制代码
如果你的1号地图上的2号事件有独立开关A打开时显示的事件页或者执行的指令,就能看到明显的效果,但是还没有结束,我们继续调教!
顺带一提,如果把
  1. $game_self_switches[[1, 2, "A"]]=true
复制代码
改成
  1. $game_self_switches[[1, 2, "A"]]=false
复制代码
就是关闭了(true是开false是关)

那么,脚本调用没问题,再来试试下面一段脚本,依然是处理我们的1号地图的2号事件的独立开关A
  1. $game_self_switches[[1, 2, "A"]]=1
  2. p $game_self_switches[[1, 2, "A"]]
复制代码
你会得到p的结果1(RMVA需要打开控制台再测试才能看到p的结果)
我们还可以干得更加丧心病狂
漂亮
  1. $game_self_switches[[1, 2, "A"]]+=1
  2. $game_self_switches[[1, 2, "A"]]*=2
  3. $game_self_switches[[1, 2, "A"]]+=2
  4. $game_self_switches[[1, 2, "A"]]/=3
  5. p $game_self_switches[[1, 2, "A"]]
复制代码
这个时候的独立开关可以当成一个变量来用了!


不过你需要注意,如果没有给独立开关先下一个定义(或者说是赋值),那就会出错(RMVA不会,但是也没任何效果)
也可以说是想要把
  1. $game_self_switches[[1, 2, "A"]]
复制代码
当成变量运算的前提是
  1. $game_self_switches[[1, 2, "A"]]
复制代码
已经是一个可以用来进行运算的东西···

当然你还可以写成数组
  1. $game_self_switches[[1, 2, "A"]]=[]
  2. $game_self_switches[[1, 2, "A"]][0]=1
  3. p $game_self_switches[[1, 2, "A"]]
复制代码
如此一来,我们就可以利用独立开关来做爱做的事情
了!
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-10-19 17:40:42 | 只看该作者
本帖最后由 taroxd 于 2014-10-19 17:44 编辑

整个脚本页可以用一句话来代替
RUBY 代码复制
  1. Game_SelfSwitches = Hash


如果是VA的话:
RUBY 代码复制
  1. class Game_SelfSwitches < Hash
  2.  
  3.   def []=(_, _)
  4.     super
  5.     on_change
  6.   end
  7.  
  8.   def on_change
  9.     $game_map.need_refresh = true
  10.   end
  11.  
  12. end

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

3
 楼主| 发表于 2014-10-23 22:03:08 | 只看该作者
taroxd 发表于 2014-10-19 00:40
整个脚本页可以用一句话来代替
Game_SelfSwitches = Hash[/pre]

开关也能直接用吗?0.0
  1. Game_SelfSwitches = Hash
复制代码
是通用的?
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1293
在线时间
995 小时
注册时间
2014-12-14
帖子
3016

开拓者

4
发表于 2016-4-28 15:01:06 | 只看该作者
本帖最后由 Vortur 于 2016-4-28 15:29 编辑
taroxd 发表于 2014-10-19 17:40
整个脚本页可以用一句话来代替
Game_SelfSwitches = Hash[/pre]

@taroxd
你好!
  不知为什么,该脚本报错。在新开的工程中也是如此!


但是在原脚本处添加,则无报错
@A@


发现除了可以存储 数字 之外,还能存储任意东西!~~不过当数组中,存储的信息不是【数字】的话,p的结果是nil,但是变量依旧可以被调用!




谢谢!


  

点评

>A<.。喵大跟我说话啦~~  发表于 2016-4-28 16:47
因为本来就必须彻底覆盖原脚本,不要问为什么,解释之后你能懂的话你就不会问这个问题了  发表于 2016-4-28 16:40
【RMVA教程】
---------------------
欲买桂花同载酒,终不似,少年游.
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 20:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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