Project1

标题: 如何设定事件接近主角一定范围就自动打开独立开关 [打印本页]

作者: 277297575    时间: 2010-7-17 23:34
标题: 如何设定事件接近主角一定范围就自动打开独立开关
def move_type_toward_player
    # 求得与主角坐标的差
    sx = @x - $game_player.x
    sy = @y - $game_player.y
    # 求得差的绝对值
    abs_sx = sx > 0 ? sx : -sx
    abs_sy = sy > 0 ? sy : -sy
    # 如果纵横共计离开 20 个元件
    if abs_sx + abs_sy >= 20
      # 随机
      $game_self_switches[[1,20,"A"]] = false
      $game_self_switches[[1,21,"A"]] = false
      $game_self_switches[[1,22,"A"]] = false
      $game_self_switches[[1,23,"A"]] = false
      move_random
      return
    end
      $game_self_switches[[1,20,"A"]] = true
      $game_self_switches[[1,21,"A"]] = true
      $game_self_switches[[1,22,"A"]] = true
      $game_self_switches[[1,23,"A"]] = true
      move_toward_player
  end
我这样设定不对,假设20号事件在范围内,23号不在,这个脚本也会打开23号的独立开关A,请问该怎么设定?
作者: wang782367914    时间: 2010-7-18 00:21
呃···本人不怎么懂脚本,但我觉得,既然有纠结,那,脚本就应该设为并联的形式,而不是。。。那啥。。串联!
作者: 云心    时间: 2010-7-18 00:37
$game_self_switches[[1,20,"A"]] = true
的1是什么意思?
还有可能问题出在
sx = @x - $game_player.x
sy = @y - $game_player.y
那个你这个函数是放在哪的?
作者: moy    时间: 2010-7-18 00:40
表示事件可以用并行+变量操作作出来.
但是脚本的话我就不知道了.
作者: 村纱水蜜    时间: 2010-7-18 00:55
不知道私理解的对不对,LZ这个好像是只要某个事件进入限定范围内就20-23号事件的独立开关A一起打开?是不是用事件编号来控制一下到底打开哪个事件的开关就好了?
作者: 277297575    时间: 2010-7-18 00:59
本帖最后由 277297575 于 2010-7-18 01:02 编辑

回复 云心 的帖子
1,是地图ID
@X和@Y都是默认脚本里面的

    如果这个效果能实现,那么NPC发现主角了就可以以另一张行走图来接近..............离开范围了就恢复到原来的行走图。
作者: wang782367914    时间: 2010-7-18 01:21
那样的话可以建立两个分支类的公共事件来处理呀。。。




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