| 
 
| 赞 | 12 |  
| VIP | 54 |  
| 好人卡 | 19 |  
| 积分 | 81 |  
| 经验 | 33991 |  
| 最后登录 | 2020-4-22 |  
| 在线时间 | 334 小时 |  
 Lv4.逐梦者 
	梦石7 星屑1113 在线时间334 小时注册时间2008-1-28帖子1566 | 
| 本帖最后由 未命名 于 2013-12-10 22:42 编辑 
 很容易的,对于纯事件(脚本)A·RPG来说。
 首先,我码字先……
 
 1.虽然可以代替,但最好需要这个(XP,要移植VA):
 2.   在事件中用的脚本:复制代码只需要一行脚本,就可以将独立开关变成我所需要的独立变量:
Game_SelfSwitches第20行:
原文:    return @data[key] == true ? true : false
改为:    return @data[key] == nil ? false : @data[key]
即可。
之后可以用事件脚本的方式操作独立变量:
$game_self_switches[[$game_map.map_id, @event_id, "E"]]=4
$game_self_switches[[$game_map.map_id, @event_id, "E"]]+=5
条件分岐:脚本:$game_self_switches[[$game_map.map_id, @event_id, "E"]]==9
      blabla
分歧结束
几点说明:
1. 在将开关当变量操作运算(包括作为条件分歧中的比较)前,需要先进行变量赋值,否则会有FalseClass的NoMethodError
2. 但如果是直接当开关操作则不用,比如
$game_self_switches[[$game_map.map_id, @event_id, "E"]]=!$game_self_switches[[$game_map.map_id, @event_id, "E"]]
3. 原来的独立开关逻辑仍然保留,不受任何影响,不过还是建议用到独立变量时,编号从E开始设置比较好
4. 注意引用下标的写法,双层方括号,不要写漏了。
5. 引用其他事件的独立开关:$game_self_switches[[$game_map.map_id, 那个事件的ID, 开关编号]]
3.运用独立开关可以判定事件哪个是怪物什么的。复制代码# 循环全部事件
$game_map.events.values.each do |event|#VA
#此处可获取事件各种事件的信息
#例如event.x获得监测到的事件的地图X坐标。
#例如 如果事件X=角色X,事件Y=角色Y
if event.x == $game_player.x  and event.y == $game_player.y
  # 如果那个事件的独立开关A打开,则……
  if $game_self_switches[[$game_map.map_id, event.id, "A"]] == true
    ……
  end
end
然后赋予什么效果……
 
 啊啊啊啊啊,好麻烦,我直接给范例算了!
 
  VA射击范例(事件脚本).rar
(1.42 MB, 下载次数: 169) 总之实现这个效果对新手是很麻烦的。
 
 子弹显示啊,如果是以前的我,包括数字我都会用图片显示的,脚本的话,要先见窗口,有时间我再发范例吧。你先用图显示片解决吧。
 | 
 评分
查看全部评分
 |