F12 - 动态敌人
热度 6已有 1958 次阅读2013-3-9 13:12
|个人分类:脚本
#==============================================================================
# F12 - 动态敌人 - By芙蕾娅
#------------------------------------------------------------------------------
# ★ - 新增 ☆ - 修改 ■ - 删除 ● - 无变更
#==============================================================================
module Freya
# 控制显示当前进度的变量ID
EnemyBehaviorType = /<(?:BehaviorType|动态种类)\s*(\d+)>/i
end
#==============================================================================
# ■ Game_Enemy
#------------------------------------------------------------------------------
# 管理敌人的类。本类在 Game_Troop 类 ($game_troop) 的内部使用。
#==============================================================================
class Game_Enemy < Game_Battler
def behavior_type
@bt = 0
enemy.note.each_line { |line|
if line =~ Freya::EnemyBehaviorType ; @bt = $1.to_i ; end}
return @bt
end
end
#==============================================================================
# ■ Sprite_Battler
#------------------------------------------------------------------------------
# 显示战斗者的精灵。根据 Game_Battler 类的实例自动变化。
#==============================================================================
class Sprite_Battler < Sprite_Base
alias enemy_behavior_type_initialize initialize
def initialize(viewport, battler = nil)
enemy_behavior_type_initialize(viewport, battler)
return if battler.nil? or battler.is_a?(Game_Actor)
@behavior_type = @battler.behavior_type
@max = rand(30) + 100
@count = rand(@max)
@re = rand(1)
end
alias enemy_behavior_type_update update
def update
enemy_behavior_type_update
return if @behavior_type == 0 or @count.nil?
@count += 1
if @count >= @max
@count = 0
if @re == 1
@re = 0
else
@re = 1
end
end
if @behavior_type == 1 # 呼吸
if @re == 0
self.zoom_y += 0.001
else
self.zoom_y -= 0.001
end
elsif @behavior_type == 2 # 透明化
if @re == 0
self.opacity += 2
else
self.opacity -= 2
end
end
end
end