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

Project1

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

[RM脚本] 战斗中召喚队员(RTAB对应版)ver1.23

 关闭 [复制链接]

Lv1.梦旅人

Pumpkin

梦石
0
星屑
50
在线时间
4 小时
注册时间
2006-12-29
帖子
1342
跳转到指定楼层
1
发表于 2007-7-11 06:10:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
原站地址:http://zenith.ifdef.jp/rgss/rgss12.html
          ↑ 07/6/8 RTAB对应版的修正版本。 ver1.23
★ 说明:
   貌似主站上有一召唤兽的范例工程,高手过目看下两者的区别吧~OTZ……


戦闘中に特定のアクターを召喚します。微妙にFF10チック。

召喚コモンイベントを設定したスキルを発動!<<--发动召唤技能..(?) =.=

フェリックスが召喚されました。<<--恩..某队员被召唤了.

<解説·使用方法>
 戦闘中にイベントの「スクリプト」で
 $scene.summon(actor_id, type)
 と記述することでアクターを召喚します。
 スキルやアイテムのコモンイベントに設定しましょう。
 ※actor_id → 召喚するアクターのID
 ※type → 召喚タイプ(召喚後のメンバー)
   0:召喚アクターのみ 
   1:召喚者+召喚アクター
   2:パーティーメンバー+召喚アクター
   3:召喚者と召喚アクターを入れ替える

 例:$scene.summon(6, 1)
  →ID6のアクターを召喚し、
    パーティーメンバーは召喚者と召喚アクターのみになる。
 
 召喚されたアクターが戦闘不能になるか戦闘が終了すると
 召喚状態が終了し、パーティーメンバーは召喚前と同じメンバーに戻ります。
 ちなみに、戦闘不能状態のアクターを召喚しようとしても何も起きません。

 また、同様に
 $game_party.summon_end
 と記述することで強制的に召喚状態が終了し、
 パーティーメンバーは召喚前と同じメンバーに戻ります。
 スキルやアイテムのコモンイベントに設定しましょう。
[中文版]
<解说·使用方法>
战斗中用活动的「脚本」
$scene.由于与summon(acto
r_id, type) 记述的事传唤actor。
 技艺和条款的common活动设定吧。
 ※只actor_id →传唤的ac
tor的ID ※type →传唤类型(传
唤后的成员)0:传唤a
ctor与 1:传唤者+传
唤actor2:聚会成员+传唤actor
3:传唤者更换传唤actor的 例
子:$scene.summon
(传唤6,1)→ID6acto
r、 聚会成员与传唤者成为只传唤actor。
 
 传唤了的actor是不是战斗不能变成战斗结
束的话 传唤状态结束,聚会成员返回与传唤前同样的成员。
 顺便,什么都也不起来打算传唤战斗不能状态的actor。

 同时,同样
$game_party.由于与s
ummon_end 记述的事强制地传唤状态
结束、 聚会成员返回与传唤前同样的成员。
 技艺和条款的common活动设定吧。

RGSS脚本部分:

  1. #==============================================================================
  2. # Zenith RGSS12 召喚  ver1.23  RTAB対応版
  3. #   by 水夜
  4. #  http://zenith.ifdef.jp/
  5. #
  6. #    RTAB・・・歯車の城(ショウ様)http://members.jcom.home.ne.jp/cogwheel/
  7. #------------------------------------------------------------------------------
  8. # 戦闘中に特定のアクターを召喚する。
  9. #==============================================================================

  10. #==============================================================================
  11. # □ カスタマイズポイント
  12. #==============================================================================
  13. module ZENITH12

  14.   # 召喚されたアクターの自動全回復タイミング
  15.   #  0:自動全回復しない 1:召喚終了時に全回復 2:戦闘終了時に全回復
  16.   RECOVER_TYPE = 1
  17.   
  18.   # 召喚中は、召喚に使用したスキル・アイテムをリストから消す
  19.   #   (ただし、スキルの場合、リストからスキルが消えるのは使用者のみです)
  20.   SKILL_ITEM_LOSE = false

  21. end

  22. #==============================================================================
  23. # Sprite_Battler修正
  24. #    戦闘中のアクター入れ替えで
  25. #    「アクターを外す→再度加える」とするとバトラーが消えるバグを修正
  26. #==============================================================================
  27. class Sprite_Battler < RPG::Sprite
  28.   alias zenith_debug_update update
  29.   def update
  30.     # バトラーが nil の場合
  31.     if @battler == nil
  32.       @battler_name = nil
  33.       @battler_hue = nil
  34.     end
  35.     zenith_debug_update
  36.   end
  37. end

  38. class Game_Party
  39.   attr_accessor :summon_member       # 召喚前のメンバー
  40.   attr_accessor :summon_skill        # 召喚に使用したスキル
  41.   attr_accessor :summon_item         # 召喚に使用したアイテム
  42.   #--------------------------------------------------------------------------
  43.   # ● 召喚によるアクター入れ替え
  44.   #--------------------------------------------------------------------------
  45.   def summon_change(actor_id, type, summoner)
  46.     # 召喚タイプによって分岐
  47.     case type
  48.     # 召喚アクターのみ
  49.     when 0
  50.       @actors = [$game_actors[actor_id]]
  51.     # 召喚者+召喚アクター
  52.     when 1
  53.       @actors = [summoner, $game_actors[actor_id]]
  54.     # パーティーメンバー+召喚アクター
  55.     when 2
  56.       add_actor(actor_id)
  57.     # 召喚者と召喚アクターを入れ替え
  58.     when 3
  59.       index = @actors.index(summoner)
  60.       @actors[index] = $game_actors[actor_id]
  61.     end
  62.     $game_actors[actor_id].at = 0
  63.     $game_actors[actor_id].atp = 0
  64.     $game_actors[actor_id].wait = 0
  65.     $scene.spell_reset($game_actors[actor_id])
  66.     $game_actors[actor_id].damage_pop = {}
  67.     $game_actors[actor_id].damage = {}
  68.     $game_actors[actor_id].damage_sp = {}
  69.     $game_actors[actor_id].critical = {}
  70.     $game_actors[actor_id].recover_hp = {}
  71.     $game_actors[actor_id].recover_sp = {}
  72.     $game_actors[actor_id].state_p = {}
  73.     $game_actors[actor_id].state_m = {}
  74.     $game_actors[actor_id].animation = []
  75.     # 召喚されたアクターを記憶
  76.     @summon_actor = $game_actors[actor_id]
  77.     if $game_temp.in_battle
  78.       $scene.status_window.update
  79.     end
  80.   end
  81.   #--------------------------------------------------------------------------
  82.   # ● 召喚終了によるメンバー復帰
  83.   #--------------------------------------------------------------------------
  84.   def summon_end
  85.     if @summon_member != nil
  86.       if ZENITH12::RECOVER_TYPE == 1
  87.         @summon_actor.recover_all
  88.       end
  89.       if @summon_skill != []
  90.         @summon_skill[0].learn_skill(@summon_skill[1])
  91.       end
  92.       if @summon_item != []
  93.         $game_party.gain_item(@summon_item[0], @summon_item[1])
  94.       end
  95.       size = @actors.size
  96.       @actors = @summon_member
  97.       if $game_temp.in_battle
  98.         $scene.status_window.update
  99.         $scene.status_window.refresh if size == @actors.size
  100.         $scene.command_delete if $scene.active_actor == @summon_actor
  101.       end
  102.       @summon_member = nil
  103.       @summon_actor = nil
  104.     end
  105.   end
  106. end

  107. class Scene_Battle
  108.   attr_reader   :active_actor
  109.   #--------------------------------------------------------------------------
  110.   # ● アクション更新 (メインフェーズ)
  111.   #--------------------------------------------------------------------------
  112.   alias zenith12_action_phase action_phase
  113.   def action_phase(battler)
  114.     @active_battler = battler
  115.     zenith12_action_phase(battler)
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● 召喚
  119.   #--------------------------------------------------------------------------
  120.   def summon(actor_id, type)
  121.     unless $game_party.actors.include?($game_actors[actor_id])
  122.       # 多重召喚を防止
  123.       if @summon_actor != nil
  124.         $game_party.summon_end
  125.       end
  126.       $game_party.summon_member = []
  127.       # 召喚前のメンバー記憶
  128.       for i in 0...$game_party.actors.size
  129.         $game_party.summon_member[i] = $game_party.actors[i]
  130.       end
  131.       # アクター入れ替え
  132.       $game_party.summon_change(actor_id, type, @active_battler)
  133.       # 召喚されたアクターを記憶
  134.       @summon_actor = $game_actors[actor_id]
  135.       if @summon_actors == nil
  136.         @summon_actors = []
  137.       end
  138.       @summon_actors.push(@summon_actor)
  139.       @summon_actors.uniq!
  140.       $game_party.summon_skill = []
  141.       $game_party.summon_item = []
  142.       if ZENITH12::SKILL_ITEM_LOSE
  143.         case @active_battler.current_action.kind
  144.         when 1  # スキル
  145.           $game_party.summon_skill[0] = @active_battler
  146.           $game_party.summon_skill[1] = @skill.id
  147.           @active_battler.forget_skill(@skill.id)
  148.         when 2  # アイテム
  149.           $game_party.summon_item[0] = @item.id
  150.           $game_party.summon_item[1] = $game_party.item_number(@item.id)
  151.           $game_party.lose_item(@item.id, $game_party.summon_item[1])
  152.         end
  153.       end
  154.     end
  155.   end
  156.   #--------------------------------------------------------------------------
  157.   # ● メイン処理
  158.   #--------------------------------------------------------------------------
  159.   alias zenith12_main main
  160.   def main
  161.     $game_party.summon_skill = []
  162.     $game_party.summon_item = []
  163.     zenith12_main
  164.     $game_party.summon_end
  165.     if ZENITH12::RECOVER_TYPE == 2 and @summon_actors != nil
  166.       for i in @summon_actors
  167.         i.recover_all
  168.       end
  169.     end
  170.     @summon_actor = nil
  171.     @summon_actors = nil
  172.   end
  173.   #--------------------------------------------------------------------------
  174.   # ● 勝敗判定
  175.   #--------------------------------------------------------------------------
  176.   alias zenith12_fin? fin?
  177.   def fin?
  178.     if @summon_actor != nil and @summon_actor.dead?
  179.       $game_party.summon_end
  180.       $game_party.summon_skill = []
  181.       $game_party.summon_item = []
  182.       @summon_actor = nil
  183.     end
  184.     zenith12_fin?
  185.   end
  186. end

复制代码



TXT文档下载地址:
http://rpg.blue/upload_program/files/zenith_rgss12rtab1.txt

Lv1.梦旅人

Pumpkin

梦石
0
星屑
50
在线时间
4 小时
注册时间
2006-12-29
帖子
1342
2
 楼主| 发表于 2007-7-11 06:10:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
原站地址:http://zenith.ifdef.jp/rgss/rgss12.html
          ↑ 07/6/8 RTAB对应版的修正版本。 ver1.23
★ 说明:
   貌似主站上有一召唤兽的范例工程,高手过目看下两者的区别吧~OTZ……


戦闘中に特定のアクターを召喚します。微妙にFF10チック。

召喚コモンイベントを設定したスキルを発動!<<--发动召唤技能..(?) =.=

フェリックスが召喚されました。<<--恩..某队员被召唤了.

<解説·使用方法>
 戦闘中にイベントの「スクリプト」で
 $scene.summon(actor_id, type)
 と記述することでアクターを召喚します。
 スキルやアイテムのコモンイベントに設定しましょう。
 ※actor_id → 召喚するアクターのID
 ※type → 召喚タイプ(召喚後のメンバー)
   0:召喚アクターのみ 
   1:召喚者+召喚アクター
   2:パーティーメンバー+召喚アクター
   3:召喚者と召喚アクターを入れ替える

 例:$scene.summon(6, 1)
  →ID6のアクターを召喚し、
    パーティーメンバーは召喚者と召喚アクターのみになる。
 
 召喚されたアクターが戦闘不能になるか戦闘が終了すると
 召喚状態が終了し、パーティーメンバーは召喚前と同じメンバーに戻ります。
 ちなみに、戦闘不能状態のアクターを召喚しようとしても何も起きません。

 また、同様に
 $game_party.summon_end
 と記述することで強制的に召喚状態が終了し、
 パーティーメンバーは召喚前と同じメンバーに戻ります。
 スキルやアイテムのコモンイベントに設定しましょう。
[中文版]
<解说·使用方法>
战斗中用活动的「脚本」
$scene.由于与summon(acto
r_id, type) 记述的事传唤actor。
 技艺和条款的common活动设定吧。
 ※只actor_id →传唤的ac
tor的ID ※type →传唤类型(传
唤后的成员)0:传唤a
ctor与 1:传唤者+传
唤actor2:聚会成员+传唤actor
3:传唤者更换传唤actor的 例
子:$scene.summon
(传唤6,1)→ID6acto
r、 聚会成员与传唤者成为只传唤actor。
 
 传唤了的actor是不是战斗不能变成战斗结
束的话 传唤状态结束,聚会成员返回与传唤前同样的成员。
 顺便,什么都也不起来打算传唤战斗不能状态的actor。

 同时,同样
$game_party.由于与s
ummon_end 记述的事强制地传唤状态
结束、 聚会成员返回与传唤前同样的成员。
 技艺和条款的common活动设定吧。

RGSS脚本部分:

  1. #==============================================================================
  2. # Zenith RGSS12 召喚  ver1.23  RTAB対応版
  3. #   by 水夜
  4. #  http://zenith.ifdef.jp/
  5. #
  6. #    RTAB・・・歯車の城(ショウ様)http://members.jcom.home.ne.jp/cogwheel/
  7. #------------------------------------------------------------------------------
  8. # 戦闘中に特定のアクターを召喚する。
  9. #==============================================================================

  10. #==============================================================================
  11. # □ カスタマイズポイント
  12. #==============================================================================
  13. module ZENITH12

  14.   # 召喚されたアクターの自動全回復タイミング
  15.   #  0:自動全回復しない 1:召喚終了時に全回復 2:戦闘終了時に全回復
  16.   RECOVER_TYPE = 1
  17.   
  18.   # 召喚中は、召喚に使用したスキル・アイテムをリストから消す
  19.   #   (ただし、スキルの場合、リストからスキルが消えるのは使用者のみです)
  20.   SKILL_ITEM_LOSE = false

  21. end

  22. #==============================================================================
  23. # Sprite_Battler修正
  24. #    戦闘中のアクター入れ替えで
  25. #    「アクターを外す→再度加える」とするとバトラーが消えるバグを修正
  26. #==============================================================================
  27. class Sprite_Battler < RPG::Sprite
  28.   alias zenith_debug_update update
  29.   def update
  30.     # バトラーが nil の場合
  31.     if @battler == nil
  32.       @battler_name = nil
  33.       @battler_hue = nil
  34.     end
  35.     zenith_debug_update
  36.   end
  37. end

  38. class Game_Party
  39.   attr_accessor :summon_member       # 召喚前のメンバー
  40.   attr_accessor :summon_skill        # 召喚に使用したスキル
  41.   attr_accessor :summon_item         # 召喚に使用したアイテム
  42.   #--------------------------------------------------------------------------
  43.   # ● 召喚によるアクター入れ替え
  44.   #--------------------------------------------------------------------------
  45.   def summon_change(actor_id, type, summoner)
  46.     # 召喚タイプによって分岐
  47.     case type
  48.     # 召喚アクターのみ
  49.     when 0
  50.       @actors = [$game_actors[actor_id]]
  51.     # 召喚者+召喚アクター
  52.     when 1
  53.       @actors = [summoner, $game_actors[actor_id]]
  54.     # パーティーメンバー+召喚アクター
  55.     when 2
  56.       add_actor(actor_id)
  57.     # 召喚者と召喚アクターを入れ替え
  58.     when 3
  59.       index = @actors.index(summoner)
  60.       @actors[index] = $game_actors[actor_id]
  61.     end
  62.     $game_actors[actor_id].at = 0
  63.     $game_actors[actor_id].atp = 0
  64.     $game_actors[actor_id].wait = 0
  65.     $scene.spell_reset($game_actors[actor_id])
  66.     $game_actors[actor_id].damage_pop = {}
  67.     $game_actors[actor_id].damage = {}
  68.     $game_actors[actor_id].damage_sp = {}
  69.     $game_actors[actor_id].critical = {}
  70.     $game_actors[actor_id].recover_hp = {}
  71.     $game_actors[actor_id].recover_sp = {}
  72.     $game_actors[actor_id].state_p = {}
  73.     $game_actors[actor_id].state_m = {}
  74.     $game_actors[actor_id].animation = []
  75.     # 召喚されたアクターを記憶
  76.     @summon_actor = $game_actors[actor_id]
  77.     if $game_temp.in_battle
  78.       $scene.status_window.update
  79.     end
  80.   end
  81.   #--------------------------------------------------------------------------
  82.   # ● 召喚終了によるメンバー復帰
  83.   #--------------------------------------------------------------------------
  84.   def summon_end
  85.     if @summon_member != nil
  86.       if ZENITH12::RECOVER_TYPE == 1
  87.         @summon_actor.recover_all
  88.       end
  89.       if @summon_skill != []
  90.         @summon_skill[0].learn_skill(@summon_skill[1])
  91.       end
  92.       if @summon_item != []
  93.         $game_party.gain_item(@summon_item[0], @summon_item[1])
  94.       end
  95.       size = @actors.size
  96.       @actors = @summon_member
  97.       if $game_temp.in_battle
  98.         $scene.status_window.update
  99.         $scene.status_window.refresh if size == @actors.size
  100.         $scene.command_delete if $scene.active_actor == @summon_actor
  101.       end
  102.       @summon_member = nil
  103.       @summon_actor = nil
  104.     end
  105.   end
  106. end

  107. class Scene_Battle
  108.   attr_reader   :active_actor
  109.   #--------------------------------------------------------------------------
  110.   # ● アクション更新 (メインフェーズ)
  111.   #--------------------------------------------------------------------------
  112.   alias zenith12_action_phase action_phase
  113.   def action_phase(battler)
  114.     @active_battler = battler
  115.     zenith12_action_phase(battler)
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● 召喚
  119.   #--------------------------------------------------------------------------
  120.   def summon(actor_id, type)
  121.     unless $game_party.actors.include?($game_actors[actor_id])
  122.       # 多重召喚を防止
  123.       if @summon_actor != nil
  124.         $game_party.summon_end
  125.       end
  126.       $game_party.summon_member = []
  127.       # 召喚前のメンバー記憶
  128.       for i in 0...$game_party.actors.size
  129.         $game_party.summon_member[i] = $game_party.actors[i]
  130.       end
  131.       # アクター入れ替え
  132.       $game_party.summon_change(actor_id, type, @active_battler)
  133.       # 召喚されたアクターを記憶
  134.       @summon_actor = $game_actors[actor_id]
  135.       if @summon_actors == nil
  136.         @summon_actors = []
  137.       end
  138.       @summon_actors.push(@summon_actor)
  139.       @summon_actors.uniq!
  140.       $game_party.summon_skill = []
  141.       $game_party.summon_item = []
  142.       if ZENITH12::SKILL_ITEM_LOSE
  143.         case @active_battler.current_action.kind
  144.         when 1  # スキル
  145.           $game_party.summon_skill[0] = @active_battler
  146.           $game_party.summon_skill[1] = @skill.id
  147.           @active_battler.forget_skill(@skill.id)
  148.         when 2  # アイテム
  149.           $game_party.summon_item[0] = @item.id
  150.           $game_party.summon_item[1] = $game_party.item_number(@item.id)
  151.           $game_party.lose_item(@item.id, $game_party.summon_item[1])
  152.         end
  153.       end
  154.     end
  155.   end
  156.   #--------------------------------------------------------------------------
  157.   # ● メイン処理
  158.   #--------------------------------------------------------------------------
  159.   alias zenith12_main main
  160.   def main
  161.     $game_party.summon_skill = []
  162.     $game_party.summon_item = []
  163.     zenith12_main
  164.     $game_party.summon_end
  165.     if ZENITH12::RECOVER_TYPE == 2 and @summon_actors != nil
  166.       for i in @summon_actors
  167.         i.recover_all
  168.       end
  169.     end
  170.     @summon_actor = nil
  171.     @summon_actors = nil
  172.   end
  173.   #--------------------------------------------------------------------------
  174.   # ● 勝敗判定
  175.   #--------------------------------------------------------------------------
  176.   alias zenith12_fin? fin?
  177.   def fin?
  178.     if @summon_actor != nil and @summon_actor.dead?
  179.       $game_party.summon_end
  180.       $game_party.summon_skill = []
  181.       $game_party.summon_item = []
  182.       @summon_actor = nil
  183.     end
  184.     zenith12_fin?
  185.   end
  186. end

复制代码



TXT文档下载地址:
http://rpg.blue/upload_program/files/zenith_rgss12rtab1.txt

Lv1.梦旅人

梦石
0
星屑
50
在线时间
15 小时
注册时间
2007-2-18
帖子
2464
3
发表于 2007-7-11 15:50:02 | 只看该作者
<解说·使用方法>
战斗中用活动的「脚本」
$scene.由于与summon(acto
r_id, type) 记述的事传唤actor。
 技艺和条款的common活动设定吧。
 ※只actor_id →传唤的ac
tor的ID ※type →传唤类型(传
唤后的成员)0:传唤a
ctor与 1:传唤者+传
唤actor2:聚会成员+传唤actor
3:传唤者更换传唤actor的 例
子:$scene.summon
(传唤6,1)→ID6acto
r、 聚会成员与传唤者成为只传唤actor。
 
 传唤了的actor是不是战斗不能变成战斗结
束的话 传唤状态结束,聚会成员返回与传唤前同样的成员。
 顺便,什么都也不起来打算传唤战斗不能状态的actor。

 同时,同样
$game_party.由于与s
ummon_end 记述的事强制地传唤状态
结束、 聚会成员返回与传唤前同样的成员。
 技艺和条款的common活动设定吧。



PS:顶一个
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-4-8
帖子
277
4
发表于 2007-7-11 17:05:50 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

传奇

梦石
0
星屑
50
在线时间
4 小时
注册时间
2007-4-10
帖子
427
5
发表于 2007-7-16 02:23:46 | 只看该作者
用事件加入队伍就好拉更简单
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-21 21:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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