Project1

标题: 如何实现动态敌人? [打印本页]

作者: 仙芋    时间: 2011-1-18 17:16
标题: 如何实现动态敌人?
如何将GIF敌人放进战斗中?
GIF 播放器都不能在战斗中使用 :(
作者: 阿夏依岚    时间: 2011-1-18 17:57
本帖最后由 阿夏依岚 于 2011-1-18 18:06 编辑

= =阿拉,雖然我不知道G IF怎麼放進戰鬥,不過這裡有一個敵人呼吸腳本,可以使敵人一動一動的(大霧
發上來你看下。實際效果還是蠻不錯的。配合敵人入場腳本和影子、浮空腳本效果更好。
  1. #◆◇◆◇◆  息遣いスクリプト ver 1・01  ◇◆◇◆◇
  2. # 全マスタースクリプト共通スクリプト
  3. #  サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/
  4. #   by みんと

  5. =begin

  6. 導入場所の注意
  7. エイリアスで構成されていますので、
  8. 出来るだけ下のほうに導入してください。

  9. ■ 更新履歴

  10. ○ ver 1.01(2009/03/10)
  11.   一部の挙動と仕様を変更

  12. 説明

  13. フロントビューのバトラーは静止画のため、
  14. ただ立ってるだけという感じが否めず、
  15. これまでは虚しいものでした。

  16. そこに、息遣いを擬似表現します。

  17. ゆっくりと微妙にバトラーが縦方向に小さくなって
  18. またゆっくり元に戻ることで息遣いを再現しました。

  19. =end

  20. #==============================================================================
  21. # ☆ MINTO
  22. #------------------------------------------------------------------------------
  23. #   様々なフラグを扱うメインモジュールです。
  24. #==============================================================================

  25. module MINTO
  26.   
  27.   # 息遣いクリプトを有効化 ( true で有効 / false で無効 )
  28. #  RGSS["息遣い"] = true
  29.   
  30.   # アクターの息遣いフラグ(ON : true / OFF : false)
  31. # Actor_Standby = false
  32.   
  33. end

  34. #if MINTO::RGSS["息遣い"] == true then

  35. #==============================================================================
  36. # ■ Sprite_Battler
  37. #------------------------------------------------------------------------------
  38. #  バトラー表示用のスプライトです。Game_Battler クラスのインスタンスを監視し、
  39. # スプライトの状態を自動的に変化させます。
  40. #==============================================================================

  41. class Sprite_Battler < RPG::Sprite
  42.   #--------------------------------------------------------------------------
  43.   # ● オブジェクト初期化
  44.   #    viewport : ビューポート
  45.   #    battler  : バトラー (Game_Battler)
  46.   #    alias    : initialize_MINTO_Standby
  47.   #--------------------------------------------------------------------------
  48.   alias :initialize_MINTO_Standby :initialize
  49.   def initialize(viewport, battler = nil)
  50.     # 元の処理を実行
  51.     initialize_MINTO_Standby(viewport, battler)
  52.     # 息遣い用のデータを設定
  53.     @zoom_turn = 0.1875 / 2
  54.     @zoom_count = 0
  55.     @zoom_puls = 100
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   # ● フレーム更新(息遣い)
  59.   #--------------------------------------------------------------------------
  60.   def update_standby
  61.     # バトラーが無効な場合
  62.     if @battler == nil then
  63.       # メソッドを返す
  64.       return
  65.     end
  66.     # バトラーがアクターで、且つ息遣いが不可能な場合
  67.     if @battler.is_a?(Game_Actor) #and MINTO::Actor_Standby == false then
  68.       # メソッドを返す
  69.       return
  70.     end
  71.     # アニメ表示中の場合
  72.     if @_animation_duration >= 1 then
  73.       # メソッドを返す
  74.       return
  75.     end
  76.     # コラプス実行中の場合
  77.     if @_collapse_duration >= 1 then
  78.       # メソッドを返す
  79.       return
  80.     end
  81.     # 初期更新の場合
  82.     unless @setup_standby
  83.       # ランダムに繰り返す
  84.       rand(16).times do
  85.         update_standby_zoom
  86.       end
  87.       # セットアップ済みフラグをオン
  88.       @setup_standby = true
  89.     end
  90.     # 息遣いズームを更新
  91.     update_standby_zoom
  92.   end
  93.   #--------------------------------------------------------------------------
  94.   # ● フレーム更新(息遣いズーム)
  95.   #--------------------------------------------------------------------------
  96.   def update_standby_zoom
  97.     # 息遣いカウントを加算
  98.     @zoom_count += 1
  99.     # カウントが 16 になった場合
  100.     if @zoom_count == 16 then
  101.       # カウントを初期化
  102.       @zoom_count = 0
  103.       # 息遣いターンを反転
  104.       @zoom_turn *= -1
  105.     end
  106.     # 息遣い用の補正値を設定
  107.     @zoom_puls -= @zoom_turn
  108.     # 縦のズームを更新する
  109.     self.zoom_y = (1.0 * @zoom_puls) / 100
  110.   end
  111.   #--------------------------------------------------------------------------
  112.   # ● フレーム更新
  113.   #    alias : update_MINTO_Standby
  114.   #--------------------------------------------------------------------------
  115.   alias :update_MINTO_Standby :update
  116.   def update
  117.     # 息遣いを更新
  118.     update_standby
  119.     # 元の処理を実行
  120.     update_MINTO_Standby
  121.   end
  122. end
复制代码
搜索了一下,發現RM是不支持GIF戰鬥圖的,目前還沒有GIF戰鬥圖的腳本。不過有方法稱,可以將GIF用flash拆成一幀一幀的,然後在來用動畫播放,在用全動畫腳本就可以了。不過全動畫腳本真的很累人,美工會被煩死的防禦死亡攻擊技能受傷全部都要設置。。
作者: 仙芋    时间: 2011-1-18 18:44
回复 阿夏依岚 的帖子

全动画脚本不是只能用在特技上吗?
如何用在敌人?
作者: 阿夏依岚    时间: 2011-1-18 20:03
本帖最后由 阿夏依岚 于 2011-1-18 20:11 编辑

回复 仙芋 的帖子

全动画脚本定义是
所有敌人和我方成员的待机(也就是战斗图乱动【什么?】)、攻击、防守、吟唱、死亡。
你肯定是下错了。

全动画发布地址:http://rpg.blue/forum.php?mod=vi ... 8%E5%8A%A8%E7%94%BB
作者: 仙芋    时间: 2011-1-19 13:02
回复 阿夏依岚 的帖子

脚本哪个部份是关于敌人的?
作者: 阿夏依岚    时间: 2011-1-19 14:25
回复 仙芋 的帖子

你是只需 要我方或敌方的全动画?
在脚本里搜索enemy,凡是有关Game_enemy的都是关于敌人全动画的设定。
同理,凡是有关Game_actor的就是我方的了,
如果是battler就是大家(什么?)的战斗图设置了。
作者: 仙芋    时间: 2011-1-19 14:55
回复 阿夏依岚 的帖子

如果只需敌方的全动画
是留下 if target.is_a?(Game_Enemy) 相关的脚本就可以了?
其他的可以删去?
作者: 阿夏依岚    时间: 2011-1-19 19:47
应该是的,你可以尝试一下。
如果不行,肯定有人会来有偿整合-w-
喵,记得要保留Battler的类。
作者: 萌萌发    时间: 2011-1-19 21:55
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1