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

Project1

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

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-2-2
帖子
75
跳转到指定楼层
1
发表于 2013-7-28 12:36:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

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

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


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

所以我想再@balloon_id=1的前面加一个判断,如果事件被消除的时候不要显示,脚本应该怎么写?有这种判断吗?

Lv3.寻梦者

梦石
0
星屑
1184
在线时间
209 小时
注册时间
2013-6-19
帖子
138
2
发表于 2013-7-28 12:55:22 | 只看该作者

@balloon_id=1

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

可以自己在Game_Event的184行加一段


RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 判定事件是否消除
  3.   #--------------------------------------------------------------------------
  4.   def erased?
  5.     @erased == true
  6.   end


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


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

主要是我不会呼叫区域变数...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-2-2
帖子
75
3
 楼主| 发表于 2013-7-28 14:31:59 | 只看该作者
a0936459772 发表于 2013-7-28 12:55
可以自己加一段

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-2-2
帖子
75
4
 楼主| 发表于 2013-7-28 14:59:09 | 只看该作者
a0936459772 发表于 2013-7-28 12:55
可以自己加一段

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

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1184
在线时间
209 小时
注册时间
2013-6-19
帖子
138
5
发表于 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?

(無視掉吧...測試過了會報錯
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-2-2
帖子
75
6
 楼主| 发表于 2013-7-28 15:12:21 | 只看该作者
a0936459772 发表于 2013-7-28 15:03
你的腳本有沒有給事件ID參數阿?
@balloon_id 這行之前找找看

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

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

点评

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-2-2
帖子
75
7
 楼主| 发表于 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多行是触发移动速度、模式、气泡的地方

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

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1184
在线时间
209 小时
注册时间
2013-6-19
帖子
138
8
发表于 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?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
39 小时
注册时间
2013-2-2
帖子
75
9
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
70
在线时间
1083 小时
注册时间
2013-3-29
帖子
2394
10
发表于 2013-7-28 16:45:54 | 只看该作者
不如在事件消除之前加上一个开关把。。。

坑的进度如上                                                                                                        点击↑
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-18 02:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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