查看: 4551|回复: 11

[已经解决] 脚本中有没有“事件是否被消除”的判断?

[复制链接]
梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-2-2
回帖
49
发表于 2013-7-28 12:36:35 | 显示全部楼层 |阅读模式

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

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

×
我有一个怪物视野的脚本,里面有一段是这样的,如果主角接近怪物,就将随机移动形态改为接近形态,然后显示气泡心情里面的叹号。

      @move_type = 2
      @move_speed = 5
      @balloon_id = 1


然后如果怪物被杀死,我就将怪物的事件改成“暂时消除事件”,但是我再次走近这个事件的时候,这个@balloon_id=1还会声效,一片空白的地方出现一个叹号,感觉可奇怪了。

所以我想再@balloon_id=1的前面加一个判断,如果事件被消除的时候不要显示,脚本应该怎么写?有这种判断吗?
梦石
0
星屑
1564
在线时间
209 小时
注册时间
2013-6-19
回帖
123
发表于 2013-7-28 12:55:22 | 显示全部楼层

@balloon_id=1

本帖最后由 a0936459772 于 2013-7-28 18:27 编辑

可以自己在Game_Event的184行加一段
消除?.jpg

[pre lang="ruby" line="1"]  #--------------------------------------------------------------------------
  # ● 判定事件是否消除
  #--------------------------------------------------------------------------
  def erased?
    @erased == true
  end[/pre]

$game_map.events[1].erased? 的真假值做判断
[]的数字为事件ID

把
@balloon_id=1
改成
@balloon_id=1 if !$game_map.events[事件ID].erased?

主要是我不会呼叫区域变数...
回复

使用道具 举报

梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-2-2
回帖
49
 楼主| 发表于 2013-7-28 14:31:59 | 显示全部楼层
a0936459772 发表于 2013-7-28 12:55
可以自己加一段

在事件页中怎么获取事件自身的ID?
回复

使用道具 举报

梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-2-2
回帖
49
 楼主| 发表于 2013-7-28 14:59:09 | 显示全部楼层
a0936459772 发表于 2013-7-28 12:55
可以自己加一段

怎么在事件中的脚本里获取当前事件的ID?
回复

使用道具 举报

梦石
0
星屑
1564
在线时间
209 小时
注册时间
2013-6-19
回帖
123
发表于 2013-7-28 15:03:58 | 显示全部楼层
本帖最后由 a0936459772 于 2013-7-28 15:22 编辑
xiaoxin3357 发表于 2013-7-28 14:59
怎么在事件中的脚本里获取当前事件的ID?


剛剛在編輯器裡看到
-1 則玩家、0 則本事件、其他 則是指定的事件ID


試試看 !$game_map.events[0].erased?

(無視掉吧...測試過了會報錯
回复

使用道具 举报

梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-2-2
回帖
49
 楼主| 发表于 2013-7-28 15:12:21 | 显示全部楼层
a0936459772 发表于 2013-7-28 15:03
你的腳本有沒有給事件ID參數阿?
@balloon_id 這行之前找找看

没,我那个脚本是自动读取地图内名称包含“怪物”两字的事件,找到了如果距离主角近了就触发那段

然后我又想了一下,还有一个实现功能的方法就是怪物死亡后给事件的位置移动到角落,这样重进地图时事件会回到原位,事件消除状态也接触了。

点评

腳本貼上來看看  发表于 2013-7-28 15:21
回复

使用道具 举报

梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-2-2
回帖
49
 楼主| 发表于 2013-7-28 15:30:48 | 显示全部楼层
xiaoxin3357 发表于 2013-7-28 15:12
没,我那个脚本是自动读取地图内名称包含“怪物”两字的事件,找到了如果距离主角近了就触发那段

然后我 ...
  1. #-------------------------怪物追跡-------------------------------------------------------
  2. #------------------[url]http://blog.sina.com.cn/rpgs---------------------------------------[/url]

  3. #使用方法,在事件的名称上加怪物
  4. #在运动规则 类型——随机
  5. #            速度——自己选(别太快,别高过反应后的速度)
  6. #            频率——最高
  7. #与事件接触
  8. #然后在内容加个战斗就OK了
  9. #不知道怎么用的可以跟我拿范例
  10. #animation_id =怪物反应动画 57,82行
  11. #move_speed =怪物反应后的速度 1为最低,5为最高
  12. #名字可以自己改在53,54行。
  13. #============================================================================
  14. # ■ Game_Character
  15. #==============================================================================
  16. class Game_Character
  17.   #--------------------------------------------------------------------------
  18.   # ● 更新
  19.   #--------------------------------------------------------------------------
  20.   alias update_n03 update
  21.   def update
  22.     update_n03
  23.     seek_player
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ●用追跡判定
  27.   #--------------------------------------------------------------------------
  28.   def distance_player
  29.     return false if (@x - $game_player.x).abs > 3
  30.     return false if (@y - $game_player.y).abs > 3
  31.     return true
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ●用追跡判定
  35.   #--------------------------------------------------------------------------
  36.   def distance_player2
  37.     return true if (@y - $game_player.y) == 0
  38.     return false
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● 用追跡判定
  42.   #--------------------------------------------------------------------------
  43.   def sight_out
  44.     return false if (@x - $game_player.x).abs < 5
  45.     return false if (@y - $game_player.y).abs < 5
  46.     return true
  47.   end
  48.   #--------------------------------------------------------------------------
  49.   # ● 用追跡判定
  50.   #--------------------------------------------------------------------------
  51.   def seek_player
  52.     return if @event == nil
  53.     return special_seek if @event.name == "怪物2"
  54.     return if @event.name != "怪物"
  55.     return if @transparent
  56.     if !@seeking && distance_player
  57.       @animation_id = 93
  58.       @remain = [@move_type, @move_speed]
  59.       @seeking = true
  60.       @move_type = 2
  61.       @move_speed = 5
  62.       @balloon_id = 1
  63.       $game_variables[2]+=1
  64.     elsif @seeking && sight_out
  65.       @seeking = false
  66.       if @remain != nil
  67.         @move_type = @remain[0]
  68.         @move_speed = @remain[1]
  69.       end
  70.     end
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● 特殊追跡
  74.   #--------------------------------------------------------------------------
  75.   def special_seek
  76.     if !@seeking && distance_player2
  77.       @animation_id = 93
  78.       @remain = [@move_type, @move_speed]
  79.       @seeking = true
  80.       @move_type = 2
  81.       @move_speed = 5
  82.     end
  83.   end

  84. end
复制代码
60多行是触发移动速度、模式、气泡的地方

果然还是把事件移走比较简单吧?在事件脚本里就能写,就是我不知道移动事件的脚本函数是什么
回复

使用道具 举报

梦石
0
星屑
1564
在线时间
209 小时
注册时间
2013-6-19
回帖
123
发表于 2013-7-28 15:48:05 | 显示全部楼层
本帖最后由 a0936459772 于 2013-7-28 15:51 编辑
xiaoxin3357 发表于 2013-7-28 15:30
60多行是触发移动速度、模式、气泡的地方

果然还是把事件移走比较简单吧?在事件脚本里就能写,就是我不 ...


把
@balloon_id=1
改成
@balloon_id = 1 if !$game_map.events[@event.id].erased?
回复

使用道具 举报

梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-2-2
回帖
49
 楼主| 发表于 2013-7-28 16:21:33 | 显示全部楼层
a0936459772 发表于 2013-7-28 15:48
把
@balloon_id=1
改成

报错...

所以还是告诉我,怎么在脚本里把一个事件移动到某个XY坐标上的函数吧

点评

还是会提示没有方法erased?的错误  发表于 2013-7-28 17:43
要事件移动的话,用事件指令的"设定事件位置"  发表于 2013-7-28 16:53
試過沒問題的,檢查def erased?的那段代碼有沒有貼上  发表于 2013-7-28 16:46
回复

使用道具 举报

梦石
0
星屑
70
在线时间
1083 小时
注册时间
2013-3-29
回帖
2158
发表于 2013-7-28 16:45:54 | 显示全部楼层
不如在事件消除之前加上一个开关把。。。

坑的进度如上                                                                                                        点击↑
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部