| 赞 | 0 |
| VIP | |
| 好人卡 | |
| 积分 | 1 |
| 经验 | |
| 最后登录 | 2017-3-15 |
| 在线时间 | 168 小时 |
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 168 小时
- 注册时间
- 2007-7-26
- 回帖
- 427
|
发表于 2016-9-23 15:23:31
|
显示全部楼层
我看你需要这个
[pre lang="ruby"]#==============================================================================
# ■ XP敌人视野脚本 BY 万兽熊最高
# http://bearrpg.weebly.com
#==============================================================================
module SEEK
#定义敌人事件的标记,把敌人事件的名字改成下面设定的字符串就成。
ENE_TAG = "enemy"
#定义敌人的视野距离,默认为5格
SEEK_DIS = 5
#定义逃出视野距离,默认为7格
ESP_DIS = 7
#定义发现目标时播放的动画ID,默认98
ANI_ID = 98
end
class Game_Character
alias bearrpg update
def update
seek_player
bearrpg
end
#--------------------------------------------------------------------------
# ● 敌人追击范围判定
#--------------------------------------------------------------------------
def viewrange
if ($game_player.x-@x)**2 + ($game_player.y-@y)**2 < SEEK::SEEK_DIS**2
case @direction
when 2
return false if $game_player.y < @y
when 4
return false if $game_player.x > @x
when 6
return false if $game_player.x < @x
when 8
return false if $game_player.y > @y
end
return true
else
return false
end
end
#--------------------------------------------------------------------------
# ● 逃出视野范围
#--------------------------------------------------------------------------
def viewout
return false if ($game_player.x-@x)**2 + ($game_player.y-@y)**2 < SEEK::ESP_DIS**2
return true
end
#--------------------------------------------------------------------------
# ● 发现玩家
#--------------------------------------------------------------------------
def seek_player
return if @event == nil
return if @move_type == 0
for event in $game_map.events.values
if events = $game_map.events
if @event.name == SEEK::ENE_TAG
if !@seeking && viewrange
@animation_id = SEEK::ANI_ID
@remain = [@move_type, @move_speed]
@seeking = true
@move_type = 2
@move_speed = @remain[1] += 1
elsif @seeking && viewout
@seeking = false
if @remain != nil
@move_type = @remain[0]
@move_speed -= 1
end
end
end
end
end
end
end[/pre] |
评分
-
查看全部评分
|