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

Project1

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

[已经过期] RTAB整合公共事件特效脚本具体使用方法

[复制链接]

Lv1.梦旅人

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

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

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

x
原帖地址http://rpg.blue/htm/Topic_19484.htm
先求范例吧……我觉得有范例这个问题就直接解决了……
然后开始问
我觉得RTAB和这个公共事件都是极其强大的系统……拼到一起大部分效果应该都OK的……
(公共事件战斗特效的地址http://rpg.blue/portal.php?mod=view&aid=40019
因为范例是ftp的……所以下载不了,对于这个脚本如何使用有点无法理解(本人脚本盲啊脚本盲)……是直接修改RTAB的某个位置么?还是跟一般的一样插入到main前面就成……
求各位大神指点@@


原帖叶子的代码如下
  1. ==============================================================================
  2. RTAB公共事件战斗特效 v1.1
  3. ==============================================================================

  4. By 叶子

  5. 6-12-2006 v1.0
  6. 先行体验版

  7. 6-16-2006 v1.1
  8. 修正对己方技能二次行动的BUG

  9. --------------------------------------------------------------------------
  10. 使用说明
  11. --------------------------------------------------------------------------

  12. 核心思想来自SailCat的“23种战斗特效的公共事件版”
  13. 地址:http://www.66rpg.com/shownews.asp?id=19
  14. 范例中也附带了一份
  15. 请先阅读并理解“23种战斗特效的公共事件版”,再使用本脚本

  16. 这个脚本是将公共事件实现战斗特效的原理带进RTAB战斗系统,原理是将公共事件的执行
  17. 提前,这与“23种战斗特效的公共事件版”是一样的

  18. 注意:由于RTAB战斗系统比较复杂,所以不保证这个脚本不会出现BUG。如发现BUG,请上
  19. rpg.blue 发贴说明

  20. 具体特效的实现脚本请参考“23种战斗特效的公共事件版”的原文
  21. 不过用在RTAB中的特效脚本将会有一点不同,以下逐一讲解:

  22. 1、所有与hp有关的操作全部删除。因为RTAB中,HP并不是在应用技能效果的同时减去,
  23. 而是在显示伤害的时候减去,所以只需要对伤害进行修改,事件执行完就会自动减去HP

  24. 2、所有target_battlers全部改成active_battler.target

  25. 3、原来的 目标.damage 要改成 目标.damage[使用者] ,因为RTAB的伤害是以Hash表的
  26. 方式储存,主键为造成伤害者

  27. 其实光这样讲比较枯燥,请参考范例工程中的战斗特效公共事件,测试可以用战斗测试
  28. 还有一些需注意的地方写在了公共事件的注释中
  29. =end

  30. #==============================================================================
  31. # ■ Scene_Battle (分割定義 4)
  32. #------------------------------------------------------------------------------
  33. #  バトル画面の処理を行うクラスです。
  34. #==============================================================================

  35. class Scene_Battle
  36. #--------------------------------------------------------------------------
  37. # ● 定义实例变量
  38. #--------------------------------------------------------------------------
  39. attr_accessor :active_battler
  40. attr_reader :skill
  41. #--------------------------------------------------------------------------
  42. # ● フレーム更新 (メインフェーズ ステップ 3 : 行動側アニメーション)
  43. # 行动回合步骤3:行动方动画,插入执行公共事件
  44. #--------------------------------------------------------------------------
  45. alias common_event_effects_update_phase4_step3 update_phase4_step3
  46. def update_phase4_step3(battler)
  47.    # コモンイベント ID が有効の場合
  48.    # 公共事件ID有效的情况下
  49.    if battler.event > 0
  50.      # 战斗者代入实例变量
  51.      @active_battler = battler
  52.      @skill = $data_skills[battler.current_action.skill_id]
  53.      # イベントをセットアップ
  54.      # 设置事件解释器
  55.      common_event = $data_common_events[battler.event]
  56.      $game_system.battle_interpreter.setup(common_event.list, 0)
  57.      # 清除公共事件ID
  58.      battler.event = 0
  59.    end
  60.    common_event_effects_update_phase4_step3(battler)
  61. end
  62. #--------------------------------------------------------------------------
  63. # ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
  64. #--------------------------------------------------------------------------
  65. alias common_event_effects_update_phase4_step5 update_phase4_step5
  66. def update_phase4_step5(battler)
  67.    common_event_effects_update_phase4_step5(battler)
  68.    # 行动者伤害表示
  69.    for target in battler.target
  70.      if battler.damage[target] != nil
  71.        battler.damage_pop[target] = true
  72.      end
  73.    end
  74.    # 刷新全部状态窗口
  75.    status_refresh(0)
  76. end
  77. end
复制代码
厄……
我用的RTAB是很久远的66rpg整合脚本中带的那个,貌似是1.05版本的,如果我没猜错的话应该是改这一部分……
  1. #--------------------------------------------------------------------------
  2.   # ● フレーム更新 (メインフェーズ ステップ 3 : 行動側アニメーション)
  3.   #--------------------------------------------------------------------------
  4.   def update_phase4_step3(battler)
  5.     # ヘルプウィンドウの更新。アクションの種別で分岐
  6.     case battler.current_action.kind
  7.     when 0  # 基本
  8.       if battler.current_action.basic == 1
  9.         @help_window.set_text($data_system.words.guard, 1)
  10.         @help_wait = @help_time
  11.       end
  12.       if battler.is_a?(Game_Enemy) and battler.current_action.basic == 2
  13.         @help_window.set_text("逃げる", 1)
  14.         @help_wait = @help_time
  15.       end
  16.     when 1  # スキル
  17.       skill =  $data_skills[battler.current_action.skill_id]
  18.       @help_window.set_text(skill.name, 1)
  19.       @help_wait = @help_time
  20.     when 2  # アイテム
  21.       item = $data_items[battler.current_action.item_id]
  22.       @help_window.set_text(item.name, 1)
  23.       @help_wait = @help_time
  24.     end
  25.     # 行動側アニメーション (ID が 0 の場合は白フラッシュ)
  26.     if battler.anime1 == 0
  27.       battler.white_flash = true
  28.       battler.wait = 5
  29.       # カメラ設定
  30.       if battler.target[0].is_a?(Game_Enemy)
  31.         camera_set(battler)
  32.       end
  33.     else
  34.       battler.animation.push([battler.anime1, true])
  35.       speller = synthe?(battler)
  36.       if speller != nil
  37.         for spell in speller
  38.           if spell != battler
  39.             if spell.current_action.spell_id == 0
  40.               spell.animation.push([battler.anime1, true])
  41.             else
  42.               skill = spell.current_action.spell_id
  43.               spell.animation.push([$data_skills[skill].animation1_id, true])
  44.               spell.current_action.spell_id = 0
  45.             end
  46.           end
  47.         end
  48.       end
  49.       battler.wait = 2 * $data_animations[battler.anime1].frame_max - 10
  50.     end
  51.     # ステップ 4 に移行
  52.     battler.phase = 4
  53.   end
复制代码
和这一部分
  1. #--------------------------------------------------------------------------
  2.   # ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
  3.   #--------------------------------------------------------------------------
  4.   def update_phase4_step5(battler)
  5.     # ダメージ表示
  6.     for target in battler.target
  7.       if target.damage[battler] != nil
  8.         target.damage_pop[battler] = true
  9.         target.damage_effect(battler, battler.current_action.kind)
  10.         battler.wait = @damage_wait
  11.         # ステータスウィンドウをリフレッシュ
  12.         status_refresh(target)
  13.       end
  14.     end
  15.     # ステップ 6 に移行
  16.     battler.phase = 6
  17.   end
复制代码
不过前面那个class和attr的部分插到哪里呢……还有这两部分是替换还是增加……替换的话那个XXX3少的东西有点太多了吧……
而且根据http://rpg.blue/portal.php?mod=view&aid=40020,是不是那个phase6也要改……
还有那个23种特效主帖里面提到的战斗不能改成无限制啥的还要不要动了……
自己没有试过,因为实在是无从下手……求支援啊!

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2010-7-28
帖子
36
2
 楼主| 发表于 2010-8-2 14:29:45 | 只看该作者
自顶一下……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-29 22:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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