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

Project1

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

[已经过期] 连携技发生NameError

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
43 小时
注册时间
2016-12-15
帖子
3
跳转到指定楼层
1
发表于 2017-2-11 14:11:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
从外站搞了一套脚本,打开后显示其244行出现了NameError
求教大神该怎么处理




代码

RUBY 代码复制
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ 連繋スキル - KGC_CooperationSkill ◆
  3. #_/    ◇ Last update : 2007/11/30 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  複数のスキルを組み合わせ、別のスキルを発動させる機能です。
  6. #_/  It is a function to combine some skills, and to execute another skill.
  7. #_/============================================================================
  8. #_/  ≪個別戦闘コマンド[SeparationCommand]≫より下
  9. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  10.  
  11. #==============================================================================
  12. # ★ カスタマイズ項目 - Customize ★
  13. #==============================================================================
  14.  
  15. module KGC
  16.   # ◆連繋スキル配列
  17.   #  ≪[発動スキルID, [必要スキルID1, 必要スキルID2, ...]]≫
  18.   #  配列なので、忘れずに , で区切ってください。
  19.   CS_SKILLS = [
  20.     # スパイラルフレア
  21.     [101, [7, 60]],
  22.     [101, [8, 60]],
  23.     [101, [9, 60]],
  24.   ]  # -- Don't delete this line! --
  25.  
  26.   # ◆敵連繋スキル許可
  27.   #  true にすると、敵も連繋スキル判定を行う。
  28.   CS_PERMIT_ENEMY = true
  29.  
  30.   # ◆連繋元スキル発動許可
  31.   #  true にすると、連繋元となるスキルもすべて発動する。
  32.   #  false にすると、連繋スキルのみ発動する。
  33.   #  (≪Active Count Battle≫では、最後の連繋元スキルにのみ影響)
  34.   CS_EXECUTE_ORIGIN_SKILL = false
  35.  
  36.   # ◆ターゲットが同じ場合のみ連繋を許可
  37.   #  元のスキルがすべて同じターゲット(または全体)の場合のみ発動許可。
  38.   #   ※ ランダムターゲットとは相性が良くありません。
  39.   CS_ONLY_SAME_TARGET = true
  40. end
  41.  
  42. #### CS_SKILLS
  43. ### Array of "Cooperation Skill".
  44. #  << ["Cooperation Skill" ID, [Necessary skill ID 1, ID 2, ...]] >>
  45.  
  46. #### CS_PERMIT_ENEMY
  47. ### Enables enemy to execute "Cooperation Skill".
  48.  
  49. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  50.  
  51. $imported = {} if $imported == nil
  52. $imported["CooperationSkill"] = true
  53.  
  54. #==============================================================================
  55. # ■ Game_Battler (分割定義 3)
  56. #==============================================================================
  57.  
  58. class Game_Battler
  59.   #--------------------------------------------------------------------------
  60.   # ● 連繋スキルの効果適用
  61.   #     user_list : スキルの使用者リスト (バトラー)
  62.   #     skill     : スキル
  63.   #     is_actor  : 使用者がアクター
  64.   #--------------------------------------------------------------------------
  65.   def cooperation_skill_effect(user_list, skill, is_actor)
  66.     # クリティカルフラグをクリア
  67.     self.critical = false
  68.     # スキルの効果範囲が HP 1 以上の味方で、自分の HP が 0、
  69.     # またはスキルの効果範囲が HP 0 の味方で、自分の HP が 1 以上の場合
  70.     if ((skill.scope == 3 or skill.scope == 4) and self.hp == 0) or
  71.        ((skill.scope == 5 or skill.scope == 6) and self.hp >= 1)
  72.       # メソッド終了
  73.       return false
  74.     end
  75.     # 有効フラグをクリア
  76.     effective = false
  77.     # コモンイベント ID が有効の場合は有効フラグをセット
  78.     effective |= skill.common_event_id > 0
  79.     # 第一命中判定
  80.     hit2 = 100 * user_list.size
  81.     if skill.atk_f > 0
  82.       user_list.each { |user|
  83.         hit2 += user.hit * skill.atk_f / 100
  84.       }
  85.     end
  86.     hit2 /= user_list.size * 0.75
  87.     hit = Integer(skill.hit * hit2 / 100)
  88.     hit_result = (rand(100) < hit)
  89.     # 不確実なスキルの場合は有効フラグをセット
  90.     effective |= hit < 100
  91.     # 命中の場合
  92.     if hit_result
  93.       # 威力を計算
  94.       power = 0
  95.       user_list.each { |user|
  96.         power += user.atk * skill.atk_f / 100
  97.       }
  98.       power /= user_list.size * 0.75
  99.       power = Integer(power + skill.power)
  100.       if power > 0
  101.         power -= self.pdef * skill.pdef_f / 200
  102.         power -= self.mdef * skill.mdef_f / 200
  103.         power = [power, 0].max
  104.       end
  105.       # 倍率を計算
  106.       rate = 0
  107.       user_list.each { |user|
  108.         rate += (user.str * skill.str_f / 100)
  109.         rate += (user.dex * skill.dex_f / 100)
  110.         rate += (user.agi * skill.agi_f / 100)
  111.         rate += (user.int * skill.int_f / 100)
  112.       }
  113.       rate /= user_list.size * 0.75
  114.       rate = Integer(rate + 20)
  115.       # 基本ダメージを計算
  116.       self.damage = power * rate / 20
  117.       # 属性修正
  118.       self.damage *= elements_correct(skill.element_set)
  119.       self.damage /= 100
  120.       # ダメージの符号が正の場合
  121.       if self.damage > 0
  122.         # 防御修正
  123.         if self.guarding?
  124.           self.damage /= 2
  125.         end
  126.       end
  127.       # 分散
  128.       if skill.variance > 0 and self.damage.abs > 0
  129.         amp = [self.damage.abs * skill.variance / 100, 1].max
  130.         self.damage += rand(amp+1) + rand(amp+1) - amp
  131.       end
  132.       # 第二命中判定
  133.       eva = 0
  134.       user_dex = 0
  135.       user_list.each { |user|
  136.         user_dex += user.dex
  137.       }
  138.       user_dex /= user_list.size
  139.       eva += 8 * self.agi / user_dex
  140.       eva += self.eva
  141.       hit = self.damage < 0 ? 100 : 100 - eva * skill.eva_f / 100
  142.       hit = self.cant_evade? ? 100 : hit
  143.       hit_result = (rand(100) < hit)
  144.       # 不確実なスキルの場合は有効フラグをセット
  145.       effective |= hit < 100
  146.     end
  147.     # 命中の場合
  148.     if hit_result
  149.       # 威力 0 以外の物理攻撃の場合
  150.       if skill.power != 0 and skill.atk_f > 0
  151.         # ステート衝撃解除
  152.         remove_states_shock
  153.         # 有効フラグをセット
  154.         effective = true
  155.       end
  156.       # HP からダメージを減算
  157.       last_hp = self.hp
  158.       self.hp -= self.damage
  159.       effective |= self.hp != last_hp
  160.       # ステート変化
  161.       @state_changed = false
  162.       effective |= states_plus(skill.plus_state_set)
  163.       effective |= states_minus(skill.minus_state_set)
  164.       # 威力が 0 の場合
  165.       if skill.power == 0
  166.         # ダメージに空文字列を設定
  167.         self.damage = ""
  168.         # ステートに変化がない場合
  169.         unless @state_changed
  170.           # ダメージに "Miss" を設定
  171.           self.damage = "Miss"
  172.         end
  173.       end
  174.     # ミスの場合
  175.     else
  176.       # ダメージに "Miss" を設定
  177.       self.damage = "Miss"
  178.     end
  179.     # 戦闘中でない場合
  180.     unless $game_temp.in_battle
  181.       # ダメージに nil を設定
  182.       self.damage = nil
  183.     end
  184.     # メソッド終了
  185.     return effective
  186.   end
  187. end
  188.  
  189. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  190.  
  191. #==============================================================================
  192. # ■ Game_Actor
  193. #==============================================================================
  194.  
  195. class Game_Actor < Game_Battler
  196.   #--------------------------------------------------------------------------
  197.   # ● スキルの使用可能判定
  198.   #     skill_id : スキル ID
  199.   #--------------------------------------------------------------------------
  200.   def skill_can_use?(skill_id)
  201.     return super(skill_id)
  202.   end
  203. end
  204.  
  205. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  206.  
  207. #==============================================================================
  208. # ■ Game_CooperationSkillUser
  209. #==============================================================================
  210.  
  211. class Game_CooperationSkillUser
  212.   attr_reader   :index, :skill_id, :target_battlers
  213.   #--------------------------------------------------------------------------
  214.   # ● オブジェクト初期化
  215.   #--------------------------------------------------------------------------
  216.   def initialize(index, skill_id, target_battlers = [])
  217.     @index = index
  218.     @skill_id = skill_id
  219.     @target_battlers = []
  220.     target_battlers.each { |t|
  221.       @target_battlers << t.index
  222.     }
  223.   end
  224.   #--------------------------------------------------------------------------
  225.   # ● 同値判定
  226.   #--------------------------------------------------------------------------
  227.   def equal?(obj)
  228.     return (obj.is_a?(Game_CooperationSkillUser) &&
  229.       @index == obj.index && @skill_id == obj.skill_id &&
  230.       @target_battlers == obj.target_battlers)
  231.   end
  232. end
  233.  
  234. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  235.  
  236. #==============================================================================
  237. # ■ Scene_Battle (分割定義 1)
  238. #==============================================================================
  239.  
  240. class Scene_Battle
  241.   #--------------------------------------------------------------------------
  242.   # ● メイン処理
  243.   #--------------------------------------------------------------------------
  244.   alias main_KGC_CooperationSkill main
  245.   def main
  246.     # 連繋スキル発動フラグを解除
  247.     @cooperation_skill_exec = false
  248.     @cooperation_skill_id = 0
  249.     # 連繋判定用配列を初期化
  250.     @cooperate_actors = []
  251.     @cooperate_enemies = []
  252.  
  253.     main_KGC_CooperationSkill
  254.   end
  255. end
  256.  
  257. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  258.  
  259. #==============================================================================
  260. # ■ Scene_Battle (分割定義 2)
  261. #==============================================================================
  262.  
  263. class Scene_Battle
  264.   #--------------------------------------------------------------------------
  265.   # ● パーティコマンドフェーズ開始
  266.   #--------------------------------------------------------------------------
  267.   alias start_phase2_KGC_CooperationSkill start_phase2
  268.   def start_phase2
  269.     # 連繋スキル発動フラグを解除
  270.     @cooperation_skill_exec = false
  271.     @cooperation_skill_id = 0
  272.     # 連繋判定用配列を初期化
  273.     @cooperate_actors = []
  274.     @cooperate_enemies = []
  275.  
  276.     start_phase2_KGC_CooperationSkill
  277.   end
  278. end
  279.  
  280. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
  281.  
  282. #==============================================================================
  283. # ■ Scene_Battle (分割定義 4)
  284. #==============================================================================
  285.  
  286. class Scene_Battle
  287.   unless KGC::CS_EXECUTE_ORIGIN_SKILL || $imported["ActiveCountBattle"]
  288.   #--------------------------------------------------------------------------
  289.   # ● メインフェーズ開始
  290.   #--------------------------------------------------------------------------
  291.   alias start_phase4_KGC_CooperationSkill start_phase4
  292.   def start_phase4
  293.     start_phase4_KGC_CooperationSkill
  294.  
  295.     # 判定用データ作成
  296.     @cooperate_actors = []
  297.     @cooperate_enemies = []
  298.     init_cooperate_battler_list(0)
  299.     init_cooperate_battler_list(1)
  300.   end
  301.   #--------------------------------------------------------------------------
  302.   # ● 判定用データ初期化
  303.   #--------------------------------------------------------------------------
  304.   def init_cooperate_battler_list(type)
  305.     case type
  306.     when 0  # Actor
  307.       cooperate_battlers = @cooperate_actors
  308.       battler_list = $game_party.actors
  309.     when 1  # Enemy
  310.       cooperate_battlers = @cooperate_actors
  311.       battler_list = $game_troop.enemies
  312.     end
  313.     # 対象側バトラーを設定
  314.     battler_list.each { |battler|
  315.       if battler.current_action.kind == 1
  316.         @active_battler = battler
  317.         skill = $data_skills[battler.current_action.skill_id]
  318.         @target_battlers = []
  319.         set_target_battlers(skill.scope)
  320.         user = Game_CooperationSkillUser.new(battler.index,
  321.           battler.current_action.skill_id,
  322.           @target_battlers.clone)
  323.         cooperate_battlers << user
  324.       end
  325.     }
  326.     @active_battler = nil
  327.   end
  328.   end
  329.   #--------------------------------------------------------------------------
  330.   # ● フレーム更新 (メインフェーズ ステップ 2 : アクション開始)
  331.   #--------------------------------------------------------------------------
  332.   alias update_phase4_step2_KGC_CooperationSkill update_phase4_step2
  333.   def update_phase4_step2
  334.     @judged = false
  335.     unless KGC::CS_EXECUTE_ORIGIN_SKILL
  336.       # 行動がスキルの場合
  337.       if @active_battler.current_action.kind == 1
  338.         # 対象側バトラーを設定
  339.         skill = $data_skills[@active_battler.current_action.skill_id]
  340.         @target_battlers = []
  341.         set_target_battlers(skill.scope)
  342.       end
  343.       # 発動判定
  344.       judge_cooperation_skill(@active_battler)
  345.       if @cooperation_skill_exec
  346.         @phase4_step = 6
  347.         return
  348.       end
  349.     end
  350.  
  351.     update_phase4_step2_KGC_CooperationSkill
  352.   end
  353.   #--------------------------------------------------------------------------
  354.   # ● フレーム更新 (メインフェーズ ステップ 6 : リフレッシュ)
  355.   #--------------------------------------------------------------------------
  356.   alias update_phase4_step6_KGC_CooperationSkill update_phase4_step6
  357.   def update_phase4_step6
  358.     if @cooperation_skill_exec && !@judged
  359.       # 連繋スキル終了
  360.       @cooperation_skill_exec = false
  361.       @cooperation_skill_id = 0
  362.       @exec_battlers = []
  363.     # 発動判定
  364.     elsif KGC::CS_EXECUTE_ORIGIN_SKILL
  365.       judge_cooperation_skill(@active_battler)
  366.     end
  367.     if @cooperation_skill_exec
  368.       execute_cooperation_skill
  369.       @judged = false
  370.       return
  371.     end
  372.  
  373.     update_phase4_step6_KGC_CooperationSkill
  374.   end
  375.   #--------------------------------------------------------------------------
  376.   # ● 連繋スキル第一発動判定
  377.   #     battler : 判定対象
  378.   #--------------------------------------------------------------------------
  379.   def judge_cooperation_skill(battler)
  380.     if @judged
  381.       return false
  382.     end
  383.     @judged = true
  384.  
  385.     # 行動がスキルの場合
  386.     if battler.current_action.kind == 1
  387.       # 敵全滅判定
  388.       target_all_dead = true
  389.       target_list = battler.is_a?(Game_Actor) ?
  390.         $game_troop.enemies : $game_party.actors
  391.       target_list.each { |t|
  392.         if t.exist?
  393.           target_all_dead = false
  394.           break
  395.         end
  396.       }
  397.       # 対象が残っていれば第二発動判定
  398.       unless target_all_dead
  399.         return judge_cooperation_skill_second(battler)
  400.       end
  401.     else
  402.       # 判定用配列から削除
  403.       if battler.is_a?(Game_Actor)
  404.         remove_cooperate_battler(0, battler)
  405.       elsif battler.is_a?(Game_Enemy)
  406.         remove_cooperate_battler(1, battler)
  407.       end
  408.     end
  409.     return false
  410.   end
  411.   #--------------------------------------------------------------------------
  412.   # ● 連繋スキル第二発動判定
  413.   #--------------------------------------------------------------------------
  414.   def judge_cooperation_skill_second(battler)
  415.     # 判定用データ作成
  416.     user = Game_CooperationSkillUser.new(battler.index,
  417.       battler.current_action.skill_id,
  418.       @target_battlers.clone)
  419.     @current_cooperate_battler = user
  420.     if battler.is_a?(Game_Actor)
  421.       remove_cooperate_battler(0, battler)
  422.       @cooperate_actors << user
  423.     elsif battler.is_a?(Game_Enemy) && KGC::CS_PERMIT_ENEMY
  424.       remove_cooperate_battler(1, battler)
  425.       @cooperate_enemies << user
  426.     end
  427.     # 連繋スキル発動判定
  428.     KGC::CS_SKILLS.each { |cs|
  429.       # アクター判定
  430.       if battler.is_a?(Game_Actor)
  431.         check_cooperation_exec_battlers(0, cs)
  432.       # エネミー判定
  433.       elsif battler.is_a?(Game_Enemy) && KGC::CS_PERMIT_ENEMY
  434.         check_cooperation_exec_battlers(1, cs)
  435.       end
  436.       if @cooperation_skill_exec
  437.         break
  438.       end
  439.     }
  440.     return @cooperation_skill_exec
  441.   end
  442.   #--------------------------------------------------------------------------
  443.   # ● 連繋スキル発動バトラー判定
  444.   #     type        : 0..Actor  1..Enemy
  445.   #     cs_data : Cooperation skill data
  446.   #--------------------------------------------------------------------------
  447.   def check_cooperation_exec_battlers(type, cs_data)
  448.     @cooperation_skill_exec = false
  449.     case type
  450.     when 0  # Actor
  451.       cooperate_battlers = @cooperate_actors
  452.       battler_list = $game_party.actors
  453.     when 1  # Enemy
  454.       cooperate_battlers = @cooperate_enemies
  455.       battler_list = $game_troop.enemies
  456.     end
  457.  
  458.     # 行動者が発動者に含まれるか判定
  459.     @exec_battlers = []
  460.     need_skills = cs_data[1].clone
  461.     cs_data[1].each_with_index { |skill_id, i|
  462.       if @current_cooperate_battler.skill_id == skill_id
  463.         @exec_battlers << @current_cooperate_battler
  464.         need_skills.delete_at(i)
  465.         break
  466.       end
  467.     }
  468.     # 行動者が加担していなければ戻る
  469.     if @exec_battlers.size == 0
  470.       return
  471.     end
  472.  
  473.     # 発動者リストを作成
  474.     need_skills.each { |skill_id|
  475.       user = cooperate_battlers.find { |cb|
  476.         skill_id == cb.skill_id && !@exec_battlers.include?(cb)
  477.       }
  478.       if user == nil
  479.         return
  480.       end
  481.       @exec_battlers << user
  482.     }
  483.  
  484.     # 発動者全員が発動条件を満たすか判定
  485.     duplicate_battlers = (0..99).to_a
  486.     @exec_battlers.each { |eb|
  487.       if !battler_list[eb.index].exist? ||
  488.           !battler_list[eb.index].skill_can_use?(cs_data[0])
  489.         return
  490.       end
  491.       duplicate_battlers &= eb.target_battlers
  492.     }
  493.     # 同じターゲットを指定しているか判定
  494.     if KGC::CS_ONLY_SAME_TARGET && duplicate_battlers.size == 0
  495.       return
  496.     end
  497.  
  498.     # 発動フラグを立てる
  499.     @cooperation_skill_exec = true
  500.     @cooperation_skill_id = cs_data[0]
  501.     @cooperation_skill_user = type
  502.     # 発動者を削除
  503.     cooperate_battlers.each_with_index { |cb, i|
  504.       if @exec_battlers.include?(cb)
  505.         @action_battlers.delete(battler_list[cb.index])
  506.         cooperate_battlers[i] = nil
  507.       end
  508.     }
  509.     cooperate_battlers.compact!
  510.   end
  511.   #--------------------------------------------------------------------------
  512.   # ● 連繋加担者削除
  513.   #     type    : 0..アクター  1..エネミー
  514.   #     battler : 削除対象
  515.   #--------------------------------------------------------------------------
  516.   def remove_cooperate_battler(type, battler)
  517.     case type
  518.     when 0  # アクター
  519.       if @cooperate_actors.size > 1
  520.         @cooperate_actors.each_index { |i|
  521.           if @cooperate_actors[i].index == battler.index
  522.             @cooperate_actors[i] = nil
  523.           end
  524.         }
  525.         @cooperate_actors.compact!
  526.       end
  527.     when 1  # エネミー
  528.       if KGC::CS_PERMIT_ENEMY && @cooperate_enemies.size > 1
  529.         @cooperate_enemies.each_index { |i|
  530.           if @cooperate_enemies[i].index == battler.index
  531.             @cooperate_enemies[i] = nil
  532.           end
  533.         }
  534.         @cooperate_enemies.compact!
  535.       end
  536.     end
  537.   end
  538.   #--------------------------------------------------------------------------
  539.   # ● 連繋スキル発動
  540.   #--------------------------------------------------------------------------
  541.   def execute_cooperation_skill
  542.     # スキル取得
  543.     skill = $data_skills[@cooperation_skill_id]
  544.     # ヘルプウィンドウにスキル名を表示
  545.     @help_window.set_text(skill.name, 1)
  546.     if $imported["SkillMessage"]
  547.       # スキル使用メッセージ表示
  548.       show_skill_message(@active_battler, skill)
  549.     end
  550.     # アニメーション ID を設定
  551.     @animation1_id = skill.animation1_id
  552.     @animation2_id = skill.animation2_id
  553.     # コモンイベント ID を設定
  554.     @common_event_id = skill.common_event_id
  555.     # 攻撃対象取得
  556.     @target_battlers = []
  557.     set_target_battlers(skill.scope)
  558.  
  559.     user_list = []
  560.     case @cooperation_skill_user
  561.     when 0  # アクター
  562.       @exec_battlers.each { |eb|
  563.         user_list << $game_party.actors[eb.index]
  564.       }
  565.       if $imported["ActiveCountBattle"] && @input_battler != nil
  566.         user_list.each { |user|
  567.           if user == @input_battler
  568.             # コマンド入力を解除
  569.             cancel_command_input
  570.           end
  571.         }
  572.       end
  573.       @status_window.refresh
  574.     when 1  # エネミー
  575.       @exec_battlers.each { |eb|
  576.         user_list << $game_troop.enemies[eb.index]
  577.       }
  578.     end
  579.     user_list.each { |user|
  580.       # SP消費
  581.       user.sp -= skill.sp_cost
  582.       # 発動アニメを表示
  583.       user.animation_id = @animation1_id
  584.       user.animation_hit = true
  585.       # OverDrive ゲージ消費
  586.       if $imported["OverDrive2"] && skill.overdrive?
  587.         user.overdrive -= skill.od_cost
  588.       elsif $imported["OverDrive"] &&
  589.           skill.element_set.include?($game_special_elements["overdrive"])
  590.         user.overdrive = 0
  591.       end
  592.     }
  593.     # スキル適用
  594.     @target_battlers.each { |target|
  595.       target.cooperation_skill_effect(user_list, skill,
  596.         @cooperation_skill_user == 0)
  597.     }
  598.     # ステップ 4 に移行
  599.     @phase4_step = 4
  600.   end
  601.   #--------------------------------------------------------------------------
  602.   # ● 連繋スキル加担判定
  603.   #     battler : 判定するバトラー
  604.   #--------------------------------------------------------------------------
  605.   def cooperation_exec?(battler)
  606.     if @cooperation_skill_exec
  607.       if !battler.is_a?(Game_Enemy) || KGC::CS_PERMIT_ENEMY
  608.         # 発動者に含まれているか判定
  609.         @exec_battlers.each_index { |i|
  610.           if @exec_battlers[i].index == battler.index
  611.             return true
  612.           end
  613.         }
  614.       end
  615.     end
  616.     return false
  617.   end
  618. end

Lv5.捕梦者 (版主)

梦石
1
星屑
23999
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

2
发表于 2017-2-11 15:00:52 | 只看该作者
你是不是把这个脚本插在了 Scene_Battle之前了?插在main前面试试?
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
43 小时
注册时间
2016-12-15
帖子
3
3
 楼主| 发表于 2017-2-11 15:27:20 | 只看该作者
guoxiaomi 发表于 2017-2-11 15:00
你是不是把这个脚本插在了 Scene_Battle之前了?插在main前面试试?

解决了,但又出了BUG.....麻烦一并解决了吧........
  1. [code][code][code][code]#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ ダッシュ&8方向移動 - KGC_Dash_8DirMove ◆
  3. #_/    ◇ Last update : 2007/04/28 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  マップ移動時のダッシュ&8方向移動機能を追加します。
  6. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  7. #==============================================================================
  8. # ★ カスタマイズ項目 ★
  9. #==============================================================================

  10. module KGC
  11.   # ◆ダッシュボタン
  12.   D8DM_DASH_BUTTON = Input::A
  13.   # ◆ダッシュ速度
  14.   D8DM_DASH_SPEED = 5
  15.   # ◆歩行速度
  16.   D8DM_WALK_SPEED = 4
  17. end

  18. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  19. $imported = {} if $imported == nil
  20. $imported["Dash_8DirMove"] = true

  21. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  22. module Dash
  23.   #--------------------------------------------------------------------------
  24.   # ● 一時ダッシュ速度指定
  25.   #--------------------------------------------------------------------------
  26.   def self.dash_speed=(value)
  27.     $game_system.temp_dash_speed = value
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 一時歩行速度指定
  31.   #--------------------------------------------------------------------------
  32.   def self.walk_speed=(value)
  33.     $game_system.temp_walk_speed = value
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● 一時ダッシュ/歩行速度設定を解除
  37.   #--------------------------------------------------------------------------
  38.   def self.reset_speed
  39.     $game_system.temp_dash_speed = nil
  40.     $game_system.temp_walk_speed = nil
  41.   end
  42. end

  43. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  44. #==============================================================================
  45. # ■ Game_System
  46. #==============================================================================

  47. class Game_System
  48.   #--------------------------------------------------------------------------
  49.   # ● 公開インスタンス変数
  50.   #--------------------------------------------------------------------------
  51.   attr_accessor :dash_permit              # ダッシュ許可フラグ
  52.   attr_accessor :dir8_permit              # 8方向移動許可フラグ
  53.   attr_accessor :temp_dash_speed          # ダッシュ速度(一時)
  54.   attr_accessor :temp_walk_speed          # 歩行速度(一時)
  55.   #--------------------------------------------------------------------------
  56.   # ● オブジェクト初期化
  57.   #--------------------------------------------------------------------------
  58.   alias initialize_KGC_Dash_8DirMove initialize
  59.   def initialize
  60.     initialize_KGC_Dash_8DirMove

  61.     @dash_permit = true
  62.     @dir8_permit = true
  63.     @temp_dash_speed = nil
  64.     @temp_walk_speed = nil
  65.   end
  66. end

  67. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  68. #==============================================================================
  69. # ■ Game_Player
  70. #==============================================================================

  71. class Game_Player < Game_Character
  72.   #--------------------------------------------------------------------------
  73.   # ● フレーム更新
  74.   #--------------------------------------------------------------------------
  75.   def update
  76.     # ローカル変数に移動中かどうかを記憶
  77.     last_moving = moving?
  78.     # 移動中、イベント実行中、移動ルート強制中、
  79.     # メッセージウィンドウ表示中のいずれでもない場合
  80.     unless moving? or $game_system.map_interpreter.running? or
  81.            @move_route_forcing or $game_temp.message_window_showing
  82.       # 向きを保存
  83.       direction = @direction
  84.       # 方向ボタンが押されていれば、その方向へプレイヤーを移動
  85.       if $game_system.dir8_permit
  86.         case Input.dir8
  87.         when 1  # 左下
  88.           move_left
  89.           move_down
  90.           # 向き固定でない場合
  91.           unless @direction_fix
  92.             # 右向きだった場合は左を、上向きだった場合は下を向く
  93.             @direction = (direction == 6 ? 4 : direction == 8 ? 2 : direction)
  94.           end
  95.         when 2  # 下
  96.           move_down
  97.         when 3  # 右下
  98.           move_down
  99.           move_right
  100.           # 向き固定でない場合
  101.           unless @direction_fix
  102.             # 左向きだった場合は右を、上向きだった場合は下を向く
  103.             @direction = (direction == 4 ? 6 : direction == 8 ? 2 : direction)
  104.           end
  105.         when 4  # 左
  106.           move_left
  107.         when 6  # 右
  108.           move_right
  109.         when 7  # 左上
  110.           move_up
  111.           move_left
  112.           # 向き固定でない場合
  113.           unless @direction_fix
  114.             # 右向きだった場合は左を、下向きだった場合は上を向く
  115.             @direction = (direction == 6 ? 4 : direction == 2 ? 8 : direction)
  116.           end
  117.         when 8  # 上
  118.           move_up
  119.         when 9  # 右上
  120.           move_right
  121.           move_up
  122.           # 向き固定でない場合
  123.           unless @direction_fix
  124.             # 左向きだった場合は右を、下向きだった場合は上を向く
  125.             @direction = (direction == 4 ? 6 : direction == 2 ? 8 : direction)
  126.           end
  127.         end
  128.       else
  129.         case Input.dir4
  130.         when 2
  131.           move_down
  132.         when 4
  133.           move_left
  134.         when 6
  135.           move_right
  136.         when 8
  137.           move_up
  138.         end
  139.       end

  140.       # 歩行速度調整
  141.       if $game_system.dash_permit && Input.press?(KGC::D8DM_DASH_BUTTON)
  142.         if $game_system.temp_dash_speed == nil
  143.           @move_speed = KGC::D8DM_DASH_SPEED
  144.         else
  145.           @move_speed = $game_system.temp_dash_speed
  146.         end
  147.       else
  148.         if $game_system.temp_walk_speed == nil
  149.           @move_speed = KGC::D8DM_WALK_SPEED
  150.         else
  151.           @move_speed = $game_system.temp_walk_speed
  152.         end
  153.       end
  154.     end
  155.     # ローカル変数に座標を記憶
  156.     last_real_x = @real_x
  157.     last_real_y = @real_y
  158.     super
  159.     # キャラクターが下に移動し、かつ画面上の位置が中央より下の場合
  160.     if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
  161.       # マップを下にスクロール
  162.       $game_map.scroll_down(@real_y - last_real_y)
  163.     end
  164.     # キャラクターが左に移動し、かつ画面上の位置が中央より左の場合
  165.     if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
  166.       # マップを左にスクロール
  167.       $game_map.scroll_left(last_real_x - @real_x)
  168.     end
  169.     # キャラクターが右に移動し、かつ画面上の位置が中央より右の場合
  170.     if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
  171.       # マップを右にスクロール
  172.       $game_map.scroll_right(@real_x - last_real_x)
  173.     end
  174.     # キャラクターが上に移動し、かつ画面上の位置が中央より上の場合
  175.     if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
  176.       # マップを上にスクロール
  177.       $game_map.scroll_up(last_real_y - @real_y)
  178.     end
  179.     # 移動中ではない場合
  180.     unless moving?
  181.       # 前回プレイヤーが移動中だった場合
  182.       if last_moving
  183.         # 同位置のイベントとの接触によるイベント起動判定
  184.         result = check_event_trigger_here([1,2])
  185.         # 起動したイベントがない場合
  186.         if result == false
  187.           # デバッグモードが ON かつ CTRL キーが押されている場合を除き
  188.           unless $DEBUG and Input.press?(Input::CTRL)
  189.             # エンカウント カウントダウン
  190.             if @encounter_count > 0
  191.               @encounter_count -= 1
  192.             end
  193.           end
  194.         end
  195.       end
  196.       # C ボタンが押された場合
  197.       if Input.trigger?(Input::C)
  198.         # 同位置および正面のイベント起動判定
  199.         check_event_trigger_here([0])
  200.         check_event_trigger_there([0,1,2])
  201.       end
  202.     end
  203.   end
  204. end
复制代码
[/code][/code][/code]
[/code]

捕获26.PNG (12.77 KB, 下载次数: 23)

捕获26.PNG

捕获27.PNG (52.66 KB, 下载次数: 24)

捕获27.PNG

点评

把脚本插在main前,以及其他所有的脚本后面……  发表于 2017-2-11 16:54
把脚本插在main前……把脚本插在main前……把脚本插在main前……把脚本插在main前……把脚本插在main前……  发表于 2017-2-11 16:53
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-30 14:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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