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

Project1

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

[已经解决] 一个简单的问题,没在资源贴内找到

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
192 小时
注册时间
2010-8-23
帖子
161
跳转到指定楼层
1
发表于 2010-8-24 20:44:08 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
我想设置明怪,而不是踩雷似的。
所以只能让怪接近主角触发战斗,不过那样的话全屏的怪都跑主角这里来了。:funk:
有没有什么脚本,让主角走到怪的几行内(7行最好),怪才跑过来。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
192 小时
注册时间
2010-8-23
帖子
161
8
 楼主| 发表于 2010-8-25 14:24:53 | 只看该作者
回复 后知后觉 的帖子
谢谢了,帮了大忙。其实界限的问题和远离主角就返回只要解决一个就行了。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6860
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

7
发表于 2010-8-25 11:32:50 | 只看该作者
本帖最后由 后知后觉 于 2010-8-25 13:01 编辑

回复 512195574 的帖子


更正一下.那一行应该是这样写
  1. if sx.abs > 7 or sy.abs > 7
复制代码
一般来说.主角的移动速度是比怪物快的.
怪物靠近的时候.迅速把主角远离怪物7格以外.
怪物就不会追过来了.而是随机移动.
至于怪物不能越过某个 界限.
这个的制作思路目前没想好.
就我见过的RM制作的游戏.其实一般都不会把野外和城镇放在同一个地图上.
都是靠 场所移动 来连接的.
地图事件正常情况下是不可能跨地图执行的.

==========================================================

把下面这段放到脚本编辑器的 Main 脚本的上面...别的地方就不用改了...
主角在远离怪物 7 格的时候. 怪物如果远离了自己的出生地 7 格的话就会向着出生地的方向移动.
不过怪物不能越过某个界限还是没有做.这个你自己想办法吧.
做了个范例.范例里还有你问的那个 计时器.自己对照下吧.
Project2.rar (187.08 KB, 下载次数: 29)

  1. #==============================================================================
  2. # ■ Game_Character
  3. #==============================================================================

  4. class Game_Character
  5.   #--------------------------------------------------------------------------
  6.   # ● 移动类型 : 接近
  7.   #--------------------------------------------------------------------------
  8.   def move_type_toward_player
  9.     sx = @x - $game_player.x
  10.     sy = @y - $game_player.y
  11.     if sx.abs > 7 or sy.abs > 7
  12.       sxs = @x - (@event.nil? ? $game_player.x : @event.x)
  13.       sys = @y - (@event.nil? ? $game_player.y : @event.y)
  14.       if sxs.abs > 7 or sys.abs > 7
  15.         # 靠近自己的出生地
  16.         move_toward_self_birthplace
  17.         return
  18.       end
  19.       # 随机移动
  20.       move_random
  21.       return
  22.     end
  23.     case rand(6)
  24.     when 0..3  # 接近主角
  25.       move_toward_player
  26.     when 4  # 随机
  27.       move_random
  28.     when 5  # 前进一步
  29.       move_forward
  30.     end
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● 接近自己的出生地
  34.   #--------------------------------------------------------------------------
  35.   def move_toward_self_birthplace
  36.     sx = @x - (@event.nil? ? $game_player.x : @event.x)
  37.     sy = @y - (@event.nil? ? $game_player.y : @event.y)
  38.     if sx == 0 and sy == 0
  39.       return
  40.     end
  41.     abs_sx = sx.abs
  42.     abs_sy = sy.abs
  43.     if abs_sx == abs_sy
  44.       rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
  45.     end
  46.     if abs_sx > abs_sy
  47.       sx > 0 ? move_left : move_right
  48.       if not moving? and sy != 0
  49.         sy > 0 ? move_up : move_down
  50.       end
  51.     else
  52.       sy > 0 ? move_up : move_down
  53.       if not moving? and sx != 0
  54.         sx > 0 ? move_left : move_right
  55.       end
  56.     end
  57.   end
  58. end
复制代码











你知道得太多了

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
192 小时
注册时间
2010-8-23
帖子
161
6
 楼主| 发表于 2010-8-25 10:29:42 | 只看该作者
回复 后知后觉 的帖子
多问一下,如果这样的话,那野怪确实不走到他的7步之内他不过来,不过,只要怪发现了主角,他就会一直执行靠近命令到底,有什么办法让他再次离开主角就不执行靠近命令呢。
也可以就是他有自己的一定的活动范围,超出了就返回,类似网游中的怪物。总不至于追到城里来

   
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2151
在线时间
812 小时
注册时间
2009-2-4
帖子
579

开拓者

5
发表于 2010-8-24 22:26:57 | 只看该作者
........

点评

我终于知道我负分的原因了  发表于 2010-8-25 12:53

评分

参与人数 1星屑 -60 收起 理由
六祈 -60 水帖奖励

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
192 小时
注册时间
2010-8-23
帖子
161
4
 楼主| 发表于 2010-8-24 22:15:56 | 只看该作者
本帖最后由 512195574 于 2010-8-24 22:18 编辑

谢谢2L了,怎么设置满意答案?
其实我是个三流的画师  ←_←
回复 支持 反对

使用道具 举报

Lv1.梦旅人

水土火风重逢处

梦石
0
星屑
234
在线时间
691 小时
注册时间
2010-7-17
帖子
3042
3
发表于 2010-8-24 21:34:15 | 只看该作者
LZ是想接触怪物了后进入战斗吧
独坐望城,望断天涯
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6860
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

2
发表于 2010-8-24 21:28:31 | 只看该作者
本帖最后由 后知后觉 于 2010-8-24 21:41 编辑

打开脚本编辑器.找到 Game_Character 2
默认情况下是这样的内容.第 157 行
  1. if sx + sy >= 20
复制代码
这就是默认的算法.x.y.差值之和在 20 以上才 随机移动.
把这一行改成你要的 7 行.就是这样
  1. if sx > 7 or sy > 7
复制代码
这样就可以了.
然后把
事件的 移动规则 -> 类型
设置为 接近
事件的 事件开始条件.
设置为 与事件接触

评分

参与人数 1星屑 +200 收起 理由
六祈 + 200 认可答案

查看全部评分












你知道得太多了

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-28 01:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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