幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2945|回复: 16

[RMVX] [求助]如何限制NPC的随机行动?

[复制链接]

18

主题

147

帖子

2279

积分

⑥精研

混沌ing~~

积分
2279
发表于 2006-4-22 18:25:01 | 显示全部楼层 |阅读模式
比如说:一只青蛙只好在水里跳,不能跳上岸
               蝴蝶只好在花丛里飞,不能飞上路.
开学了...潜水潜水....... 游戏制作暂时停摆...........
回复

使用道具 举报

121

主题

957

帖子

214748万

积分

超级版主

完全的小受

Rank: 8Rank: 8

积分
2147483647

声命组铜赏

发表于 2006-4-22 23:54:34 | 显示全部楼层
用事件封边,这样NPC就不会跨越了。
回复 支持 反对

使用道具 举报

88

主题

4889

帖子

38万

积分

版主

年度最佳拖稿王

Rank: 7Rank: 7Rank: 7

积分
386227

声命组铜赏

QQ
发表于 2006-4-23 00:05:23 | 显示全部楼层
青蛙如何在水上跳...........- -

在F10-图块里面,把不能走的地方X掉好了
(不要说你的主角会在水上走的哦....) [s:5]
回复 支持 反对

使用道具 举报

38

主题

3468

帖子

1

积分

超级版主

传说中的Bunny火神~!

Rank: 8Rank: 8

积分
1
发表于 2006-4-23 01:15:56 | 显示全部楼层
引用第2楼XTLCME2006-04-23 00:05发表的“”:
青蛙如何在水上跳...........- -

在F10-图块里面,把不能走的地方X掉好了
(不要说你的主角会在水上走的哦....) [s:5]

那花丛呢?角色也不能进入么。。。 [s:5]

XT语:要爱护花花草草~~~~~XD
我突然发现,我是一个很幸运的好人。老婆真好~ 点我进入JQ(激情)教程范例收集!
回复 支持 反对

使用道具 举报

88

主题

5419

帖子

214748万

积分

版主

S素世上最伟大最华丽

Rank: 7Rank: 7Rank: 7

积分
2147483647
QQ
发表于 2006-4-23 10:00:49 | 显示全部楼层
蝴蝶也不只会在花丛里边飞吧..... [s:5]
回复 支持 反对

使用道具 举报

255

主题

7092

帖子

330

积分

版主

人类总是重复同样的悲

Rank: 7Rank: 7Rank: 7

积分
330
QQ
发表于 2006-4-23 10:49:31 | 显示全部楼层
花丛打上挑就行了
我是化可能为不可能的男人!
回复 支持 反对

使用道具 举报

26

主题

217

帖子

1万

积分

⑧专业

极地の夜

积分
11895
QQ
发表于 2006-4-23 17:53:47 | 显示全部楼层
用穿透开启,就能走了,然后用事件把水呀花丛呀的周围围一圈
回复 支持 反对

使用道具 举报

91

主题

3188

帖子

83986万

积分

荣誉群

传说中的Bunny大神~!

积分
839861514
QQ
发表于 2006-4-23 19:03:44 | 显示全部楼层
理论上来说,是可以改改那个Game_Character 2来达到效果。。。

  #--------------------------------------------------------------------------
  # ● 移动类型 : 接近
  #--------------------------------------------------------------------------
  def move_type_toward_player(sight = 20, ai = 6)
    # 求得与主角坐标的差
      sx = @x - $game_player.x
      sy = @y - $game_player.y
    # 求得差的绝对值
      abs_sx = sx > 0 ? sx : -sx
      abs_sy = sy > 0 ? sy : -sy
    # 如果方圆超过了视野
  if abs_sx ** 2 + abs_sy ** 2 >= sight ** 2
    # 随机
     move_random
     return
    end
    # 随机 0~5 的分支
    case rand(ai)
    when 0..3 # 接近主角
      move_toward_player
    when 4 # 随机
      move_random
    when 5 # 前进一步
      move_forward
    end
  end

先把这段复制一份,然后做一个新的段。。。

  #--------------------------------------------------------------------------
  # ● 移动类型 : 接近(伪)
  #--------------------------------------------------------------------------
  def move_type_toward_event(event_id, sight = 20, ai = 6)
    # 求得与主角坐标的差
    sx = @x - $game_map.events[event_id].x
      sy = @y - $game_map.events[event_id].y
    # 求得差的绝对值
      abs_sx = sx > 0 ? sx : -sx
      abs_sy = sy > 0 ? sy : -sy
    # 如果方圆超过了视野
  if abs_sx ** 2 + abs_sy ** 2 >= sight ** 2
    # 随机
     move_random
     return
    end
    # 随机 0~5 的分支
    case rand(ai)
    when 0..3 # 接近主角
      move_toward_player
    when 4 # 随机
      move_random
    when 5 # 前进一步
      move_forward
    end
  end

这样应该可以达到让某个事件向着某个事件移动,就是你可以做一个看不到的事件(或者是看得到的),然后让某个事件(比如说青蛙),向着那个事件移动。。。只要自定义那个青蛙的移动路线为脚本move_type_toward_event(你想要青蛙接近的事件在地图上的编号,20,6),这样应该就可以了。。。

以上方法为纯理论推断制作,未经任何实验,如有不测。。。纯属自然现象。。。 [s:5]
其他所有的Bunny神都素我的部下XD~ 小教程范例收集 Orz感谢邪恶萝卜联盟!!!(原因自己去猜)
回复 支持 反对

使用道具 举报

122

主题

4962

帖子

74

积分

超级版主

Rank: 8Rank: 8

积分
74

声命组银赏

QQ
发表于 2006-4-23 19:43:45 | 显示全部楼层

还脚本
封边就好了
回复 支持 反对

使用道具 举报

113

主题

866

帖子

7004

积分

⑦老手

pliskin

积分
7004
发表于 2006-4-25 08:51:20 | 显示全部楼层
用个空白的事件(是说空白,且不能通行的图块做事件),把边封印就可以了。
最近,迷上八云紫大婶了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-6-10 22:52 , Processed in 0.024195 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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