查看: 3284|回复: 2

[已经解决] 战斗敌人动态脚本

[复制链接]
梦石
0
星屑
1461
在线时间
815 小时
注册时间
2013-8-3
回帖
355
发表于 2015-12-31 21:45:09 | 显示全部楼层 |阅读模式

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

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

×
表示不会用,有谁用过?



[fold]#==============================================================================
# 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
  #--------------------------------------------------------------------------
  # ★ 定义实例变量
  #--------------------------------------------------------------------------
  attr_accessor :zx
  attr_accessor :zy
  #--------------------------------------------------------------------------
  # ☆ 初始化对象
  #--------------------------------------------------------------------------
  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
    @zx = @zy = 0.0
    @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
        @zy += 0.001
        self.zoom_y = 1.0 + @zy
      else
        @zy -= 0.001
        self.zoom_y = 1.0 + @zy
      end
    elsif @behavior_type == 2 # 透明化
      if @re == 0
        self.opacity += 2
      else
        self.opacity -= 2
      end
    end
  end
end[/fold]

【同人游戏】勇者斗恶龙TG
欢迎加入游戏测试群333599798
如有需私聊请加QQ:516425000
梦石
0
星屑
466
在线时间
345 小时
注册时间
2015-10-19
回帖
63
发表于 2015-12-31 22:34:58 | 显示全部楼层
目前用的就是这个,在敌人备注写<动态种类1>(上下拉伸)或者<动态种类2>(一闪一闪的透明)

评分

参与人数 1星屑 +150 收起 理由
VIPArcher + 150 认可答案

查看全部评分

回复 1 0

使用道具 举报

梦石
0
星屑
1737
在线时间
123 小时
注册时间
2023-12-26
回帖
184
发表于 2024-5-19 07:50:10 | 显示全部楼层
55行出错
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部