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

Project1

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

[已经解决] 还是关于快速反应系统

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
38 小时
注册时间
2014-10-28
帖子
94
跳转到指定楼层
1
发表于 2014-11-29 14:17:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
之前有论坛的好心人提供了快速反应系统,不过还是有些东西不明白。
连打反应所产生的伤害效果和键盘敲击的次数的关系是什么样的?
  1.   # ジャストヒットN入力対象
  2.   #   スキルID=>[最低レート,1ヒット加算レート,速さ,ゲージ長]
  3.   JSTHITN_INFO = {
  4.     83=>[0,50,2,60],
  5.     87=>[0,50,2,60]
  6.   }
  7.   # ジャストヒットNヒット位置定義
  8.   #   スキルID=>[ヒット位置1,ヒット位置2,ヒット位置3・・・]
  9.   JSTHITN_HIT_INFO = {
  10.     84=>[10,20,30,50,55],
  11.     88=>[10,20,30,50,55]
复制代码
87号技能的和81号技能又有什么区别?
  1. #==============================================================================
  2. # ★ スペシャルアタック+特殊スキル
  3. # 作成・配布元:misty_rain(http://kilisamenosekai.web.fc2.com/)
  4. # ver:1.3 作成(2014/10/13)
  5. #
  6. # スペシャルアタックに指定されたスキルIDのスキルが使われた時、
  7. # 特殊な入力をさせ、その結果で威力を補正します
  8. #
  9. #   スペシャルアタック1:連打
  10. #     制限時間内に特定のボタンを連打し、その連打回数でダメージを補正します。
  11. #   スペシャルアタック2:ランダムコマンド入力
  12. #     制限時間内に指定されるボタンを入力し、その成否でダメージを補正します。
  13. #   スペシャルアタック3:ジャストヒット
  14. #     ゲージ中に1個ある☆の位置でボタン押下し、その成否でダメージを補正します。
  15. #   ☆からずれていても小当たりとして設定できます。
  16. #   ゲージは制限時間内なら何度も動きます。
  17. #   スペシャルアタック4:ジャストヒットN
  18. #     ゲージ中に複数ある☆の位置でボタン押下し、その成否回数でダメージを補正します。
  19. #   ☆にぴったり合っていないとカウントされません。
  20. #   ゲージは一度通り過ぎたら終わります。
  21. #   ☆の数より多く押下しても無効です(連射対策)。
  22. #
  23. # ver1.0:公開(2011/01/06)
  24. # ver1.1:ダメージへの反映を後から変更しやすく(2012/03/22)
  25. # ver1.2:バグ修正(2012/06/15)
  26. # ver1.3:メニューでヒールすると落ちるバグ修正(2014/10/15)
  27. #
  28. #==============================================================================
  29. # ■ MR_SPECIAL_ATTACK_CUSTOM
  30. #------------------------------------------------------------------------------
  31. #  自由にカスタマイズしてください
  32. #==============================================================================
  33. module MR_SPECIAL_ATTACK_CUSTOM
  34.   # 連打対象技能ID=>[制限時間(秒),最低效率,1打レート,最高レート]
  35.   RENDA_INFO = {
  36.     3=>[5,0,1,20],
  37.     132=>[5,0,1,20]
  38.   }
  39.   # 連打按键
  40.   RENDA_BTN = :Y
  41.   # 連打スキル制限時間表示のメッセージ1
  42.   RENDA_MSG_TIME1 = "S键快速反应! 剩余 "
  43.   # 連打スキル制限時間表示のメッセージ2
  44.   RENDA_MSG_TIME2 = " 秒"
  45.   # 連打回数表示時のメッセージ1
  46.   RENDA_MSG_RET1 = ""
  47.   # 連打回数表示時のメッセージ2
  48.   RENDA_MSG_RET2 = "攻击!"
  49.   
  50.   # 随机抽取了指令输入对象
  51.   #   スキルID=>[制限時間(秒),失敗時レート,成功時レート,入力数]
  52.   RNDCMD_INFO = {
  53.     1=>[3,50,200,4],
  54.     80=>[3,50,200,4],
  55.     81=>[3,50,200,4],
  56.     82=>[3,50,200,4]
  57.   }
  58.   # ランダムコマンド入力キー
  59.   RNDCMD_KEYS = [:DOWN,:LEFT,:RIGHT,:UP,:X,:Y,:Z]
  60.   # ランダムコマンド入力キー表示文字(全角一文字推奨)
  61.   RNDCMD_KEY_OUTS = ["↓","←","→","↑","A","S","D"]
  62.   # ランダムコマンド入力キー表示文字間
  63.   RNDCMD_KEY_OUTS_SPACE = "  "
  64.   # ランダムコマンド入力一つ成功
  65.   RNDCMD_KEY_OUTS_OK = "○"
  66.   # ランダムコマンド入力スキル制限時間表示のメッセージ1
  67.   RNDCMD_MSG_TIME1 = "技能释放! 剩余 "
  68.   # ランダムコマンド入力スキル制限時間表示のメッセージ2
  69.   RNDCMD_MSG_TIME2 = " 秒"
  70.   # ランダムコマンド入力成功時のメッセージ
  71.   RNDCMD_MSG_RET_OK = "全部命中!"
  72.   # ランダムコマンド入力失敗時のメッセージ
  73.   RNDCMD_MSG_RET_NG = "未命中orz..."
  74.   
  75.   # ジャストヒット入力対象
  76.   #   スキルID=>[制限時間(秒),失敗時レート,ヒット時レート,ジャストヒット時レート,
  77.   #               速さ,ゲージ長,ジャストヒット位置,ヒット許可数左,ヒット許可数右]
  78.   JSTHIT_INFO = {
  79.     82=>[5,0,75,100,2,21,11,2,2],
  80.     86=>[5,0,75,100,2,21,11,2,2]
  81.   }
  82.   # ジャストヒットで押下するボタン
  83.   JSTHIT_BTN = :C
  84.   # ジャストヒットスキル制限時間表示のメッセージ1
  85.   JSTHIT_MSG_TIME1 = "☆的位置上决定键! 剩余 "
  86.   # ジャストヒットスキル制限時間表示のメッセージ2
  87.   JSTHIT_MSG_TIME2 = " 秒"
  88.   # ジャストヒットゲージ_ミス_オフ
  89.   JSTHIT_GAGE_MISS_OFF= "・"
  90.   # ジャストヒットゲージ_ミス_オン
  91.   JSTHIT_GAGE_MISS_ON= "|"
  92.   # ジャストヒットゲージ_ヒット_オフ
  93.   JSTHIT_GAGE_HIT_OFF= "○"
  94.   # ジャストヒットゲージ_ヒット_オン
  95.   JSTHIT_GAGE_HIT_ON= "●"
  96.   # ジャストヒットゲージ_ジャストヒット_オフ
  97.   JSTHIT_GAGE_JUSTHIT_OFF= "☆"
  98.   # ジャストヒットゲージ_ジャストヒット_オン
  99.   JSTHIT_GAGE_JUSTHIT_ON= "★"
  100.   # ジャストヒット時のメッセージ
  101.   JSTHIT_JUST_HIT = "Graet!"
  102.   # ヒット時のメッセージ
  103.   JSTHIT_HIT = "OK"
  104.   # ヒット時のメッセージ
  105.   JSTHIT_MISS = "Miss..."
  106.   
  107.   # ジャストヒットN入力対象
  108.   #   スキルID=>[最低レート,1ヒット加算レート,速さ,ゲージ長]
  109.   JSTHITN_INFO = {
  110.     83=>[0,50,2,60],
  111.     87=>[0,50,2,60]
  112.   }
  113.   # ジャストヒットNヒット位置定義
  114.   #   スキルID=>[ヒット位置1,ヒット位置2,ヒット位置3・・・]
  115.   JSTHITN_HIT_INFO = {
  116.     84=>[10,20,30,50,55],
  117.     88=>[10,20,30,50,55]
  118.   }
  119.   # ジャストヒットNで押下するボタン
  120.   JSTHITN_BTN = :C
  121.   # ジャストヒットNスキル制限時間表示のメッセージ
  122.   JSTHITN_MSG_TIME = "基于这一位置~ ~来决定键!"
  123.   # ジャストヒットNゲージ_ミス_オフ
  124.   JSTHITN_GAGE_MISS_OFF = "・"
  125.   # ジャストヒットNゲージ_ミス_オン
  126.   JSTHITN_GAGE_MISS_ON = "□"
  127.   # ジャストヒットNゲージ_ヒット_オフ
  128.   JSTHITN_GAGE_JUSTHIT_OFF = "☆"
  129.   # ジャストヒットNゲージ_ヒット_オン
  130.   JSTHITN_GAGE_JUSTHIT_ON = "■"
  131.   # ヒット数のメッセージ
  132.   JSTHITN_HIT = "Hits!"

  133. end
  134. #==============================================================================
  135. # ■ Scene_Battle
  136. #------------------------------------------------------------------------------
  137. #  バトル画面の処理を行うクラスです。
  138. #==============================================================================
  139. class Scene_Battle < Scene_Base
  140.   #--------------------------------------------------------------------------
  141.   # ● 連打一打
  142.   #--------------------------------------------------------------------------
  143.   def se_renda
  144.     RPG::SE.new("Cursor2", 100, 100).play
  145.   end
  146.   #--------------------------------------------------------------------------
  147.   # ● ランダムコマンド入力OK
  148.   #--------------------------------------------------------------------------
  149.   def se_rndcmd_ok
  150.     RPG::SE.new("Chime2", 100, 100).play
  151.   end
  152.   #--------------------------------------------------------------------------
  153.   # ● ランダムコマンド入力NG
  154.   #--------------------------------------------------------------------------
  155.   def se_rndcmd_ng
  156.     RPG::SE.new("Buzzer1", 100, 100).play
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ● ジャストヒット入力大当たり
  160.   #--------------------------------------------------------------------------
  161.   def se_jsthit_justhit
  162.     RPG::SE.new("Chime2", 100, 100).play
  163.   end
  164.   #--------------------------------------------------------------------------
  165.   # ● ジャストヒット入力小当たり
  166.   #--------------------------------------------------------------------------
  167.   def se_jsthit_hit
  168.     RPG::SE.new("Decision2", 100, 100).play
  169.   end
  170.   #--------------------------------------------------------------------------
  171.   # ● ジャストヒット入力ミス
  172.   #--------------------------------------------------------------------------
  173.   def se_jsthit_miss
  174.     RPG::SE.new("Buzzer1", 100, 100).play
  175.   end
  176.   #--------------------------------------------------------------------------
  177.   # ● ジャストヒットN入力当たり
  178.   #--------------------------------------------------------------------------
  179.   def se_jsthitn_hit
  180.     RPG::SE.new("Decision2", 100, 100).play
  181.   end
  182.   #--------------------------------------------------------------------------
  183.   # ● ジャストヒットN入力ミス
  184.   #--------------------------------------------------------------------------
  185.   def se_jsthitn_miss
  186.     RPG::SE.new("Buzzer1", 100, 100).play
  187.   end
  188. end
  189. #==============================================================================
  190. # ■ MR_SPECIAL_ATTACK
  191. #------------------------------------------------------------------------------
  192. #  定数
  193. #==============================================================================
  194. module MR_SPECIAL_ATTACK
  195.   #
  196.   TYPE_NONE = 0
  197.   TYPE_RENDA = 1
  198.   TYPE_RNDCMD = 2
  199.   TYPE_JSTHIT = 3
  200.   TYPE_JSTHITN = 4
  201.   
  202.   FRAME_RATE = 60
  203. end
  204. #==============================================================================
  205. # ■ Game_Battler
  206. #------------------------------------------------------------------------------
  207. #  スプライトや行動に関するメソッドを追加したバトラーのクラスです。このクラス
  208. # は Game_Actor クラスと Game_Enemy クラスのスーパークラスとして使用されます。
  209. #==============================================================================

  210. class Game_Battler < Game_BattlerBase
  211.   #--------------------------------------------------------------------------
  212.   # ● ダメージ計算 再定義
  213.   #--------------------------------------------------------------------------
  214.   def make_damage_value(user, item, ssr = nil)
  215.     value = item.damage.eval(user, self, $game_variables)
  216.     value *= item_element_rate(user, item)
  217.     value *= pdr if item.physical?
  218.     value *= mdr if item.magical?
  219.     value *= rec if item.damage.recover?
  220.     # ↓追加
  221.     #p "ダメージ = " + value.to_s
  222.     #p " スペシャルアタックレート = " + $special_attack_rate.to_s
  223.     value = sp_attack_to_damage(user,item,value,ssr)
  224.     #p "ダメージ反映結果 = " + value.to_s
  225.     # ↑追加
  226.     value = apply_critical(value) if @result.critical
  227.     value = apply_variance(value, item.damage.variance)
  228.     value = apply_guard(value)
  229.     @result.make_damage(value.to_i, item)
  230.   end
  231.   #--------------------------------------------------------------------------
  232.   # ● ダメージにスペシャルアタック反映
  233.   #--------------------------------------------------------------------------
  234.   def sp_attack_to_damage(user,item,value,ssr)
  235.     ret = value
  236.     # スペシャルアタックの反映
  237.     if $special_attack_rate == nil
  238.       $special_attack_rate = 100
  239.     end
  240.     ret = (ret * $special_attack_rate) / 100
  241.     return ret
  242.   end
  243. end
  244. #==============================================================================
  245. # ■ Scene_Battle
  246. #------------------------------------------------------------------------------
  247. #  バトル画面の処理を行うクラスです。
  248. #==============================================================================
  249. class Scene_Battle < Scene_Base
  250.   #--------------------------------------------------------------------------
  251.   # ● 開始処理
  252.   #--------------------------------------------------------------------------
  253.   alias mr_ac0201_start start
  254.   def start
  255.     mr_ac0201_start
  256.     init_special_attack
  257.     # スペシャルアタックによるアタックレート
  258.     $special_attack_rate = 100
  259.   end
  260.   #--------------------------------------------------------------------------
  261.   # ● スペシャルアタック関連変数(メンバ)の初期化
  262.   #--------------------------------------------------------------------------
  263.   def init_special_attack
  264.     @special_attack = false
  265.     @special_type = MR_SPECIAL_ATTACK::TYPE_NONE
  266.     @special_id = 0
  267.     @special_frm_cnt = 0
  268.     @special_ret = 0
  269.    
  270.     @renda_times = 0
  271.   end
  272.   #--------------------------------------------------------------------------
  273.   # ● 戦闘行動の処理 再定義
  274.   #--------------------------------------------------------------------------
  275.   def process_action
  276.     return if scene_changing?
  277.     # ↓追加
  278.     if @special_attack == true
  279.       process_special_attack
  280.       return
  281.     end
  282.     # ↑追加
  283.     if !@subject || [email protected]_action
  284.       @subject = BattleManager.next_subject
  285.     end
  286.     return turn_end unless @subject
  287.     if @subject.current_action
  288.       @subject.current_action.prepare
  289.       if @subject.current_action.valid?
  290.         # ↓追加
  291.         if @special_attack == false \
  292.          and @subject.current_action.item.is_a?(RPG::Skill )
  293.           id = @subject.current_action.item.id
  294.           chk = MR_SPECIAL_ATTACK_CUSTOM::RENDA_INFO[id]
  295.           if chk != nil
  296.             #p "連打スキル開始"
  297.             @special_id = id
  298.             @special_frm_cnt = 0
  299.             @special_type = MR_SPECIAL_ATTACK::TYPE_RENDA
  300.             @special_attack = true
  301.             process_special_attack
  302.             return
  303.           else
  304.             chk = MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_INFO[id]
  305.             if chk != nil
  306.               #p "ランダムコマンド入力スキル開始"
  307.               @special_id = id
  308.               @special_frm_cnt = 0
  309.               @special_type = MR_SPECIAL_ATTACK::TYPE_RNDCMD
  310.               @special_attack = true
  311.               process_special_attack
  312.               return
  313.             else
  314.               chk = MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[id]
  315.               if chk != nil
  316.                 #p "ジャストヒット入力スキル開始"
  317.                 @special_id = id
  318.                 @special_frm_cnt = 0
  319.                 @special_type = MR_SPECIAL_ATTACK::TYPE_JSTHIT
  320.                 @special_attack = true
  321.                 process_special_attack
  322.                 return
  323.               else
  324.                 chk = MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_INFO[id]
  325.                 if chk != nil
  326.                   #p "ジャストヒットN入力スキル開始"
  327.                   @special_id = id
  328.                   @special_frm_cnt = 0
  329.                   @special_type = MR_SPECIAL_ATTACK::TYPE_JSTHITN
  330.                   @special_attack = true
  331.                   process_special_attack
  332.                   return
  333.                 end
  334.               end
  335.             end
  336.           end
  337.         end
  338.         # ↑追加
  339.         @status_window.open
  340.         execute_action
  341.         # ↓追加
  342.         $special_attack_rate = 100
  343.         # ↑追加
  344.       end
  345.       @subject.remove_current_action
  346.     end
  347.     process_action_end unless @subject.current_action
  348.   end
  349.   #--------------------------------------------------------------------------
  350.   # ● 戦闘行動の実行 再定義
  351.   #--------------------------------------------------------------------------
  352.   def execute_action(flg = true)
  353.     @subject.sprite_effect_type = :whiten
  354.     # ↓変更
  355.     #use_item
  356.     # "○○の攻撃!"はスペシャルアタック後で表示するのは不自然な気がするので消す
  357.     use_item(flg)
  358.     # ↑変更
  359.     @log_window.wait_and_clear
  360.   end
  361.   #--------------------------------------------------------------------------
  362.   # ● スキル/アイテムの使用 再定義
  363.   #--------------------------------------------------------------------------
  364.   def use_item(flg = true)
  365.     item = @subject.current_action.item
  366.     # ↓変更
  367.     #@log_window.display_use_item(@subject, item)
  368.     # "○○の攻撃!"はスペシャルアタック後で表示するのは不自然な気がするので消す
  369.     if flg == true
  370.       @log_window.display_use_item(@subject, item)
  371.     end
  372.     # ↑変更
  373.     @subject.use_item(item)
  374.     refresh_status
  375.     targets = @subject.current_action.make_targets.compact
  376.     show_animation(targets, item.animation_id)
  377.     targets.each {|target| item.repeats.times { invoke_item(target, item) } }
  378.   end
  379.   #--------------------------------------------------------------------------
  380.   # ● スペシャルアタックの処理
  381.   #--------------------------------------------------------------------------
  382.   def process_special_attack
  383.     case(@special_type)
  384.     when MR_SPECIAL_ATTACK::TYPE_NONE
  385.       @special_attack = false
  386.     when MR_SPECIAL_ATTACK::TYPE_RENDA
  387.       process_special_attack_renda
  388.     when MR_SPECIAL_ATTACK::TYPE_RNDCMD
  389.       process_special_attack_rndcmd
  390.     when MR_SPECIAL_ATTACK::TYPE_JSTHIT
  391.       process_special_attack_jsthit
  392.     when MR_SPECIAL_ATTACK::TYPE_JSTHITN
  393.       process_special_attack_jsthitn
  394.     else
  395.       @special_attack = false
  396.     end
  397.     if @special_frm_cnt % MR_SPECIAL_ATTACK::FRAME_RATE == 0
  398.       #p "スペシャルアタック中!:" \
  399.       #  + (@special_frm_cnt / MR_SPECIAL_ATTACK::FRAME_RATE).to_s
  400.     end
  401.     if @special_attack == false
  402.       process_special_attack_end
  403.     end
  404.   end
  405.   #--------------------------------------------------------------------------
  406.   # ● スペシャルアタックの終了処理
  407.   #--------------------------------------------------------------------------
  408.   def process_special_attack_end
  409.     #p "終了"
  410.     init_special_attack
  411.     # 戦闘行動の処理後半と同じ処理
  412.     @status_window.open
  413.     # "○○の攻撃!"はスペシャルアタック後で表示するのは不自然な気がするので消す
  414.     execute_action(false)
  415.     $special_attack_rate = 100
  416.     @subject.remove_current_action
  417.     process_action_end unless @subject.current_action
  418.   end
  419.   #--------------------------------------------------------------------------
  420.   # ▲▲▲スペシャルアタック1:連打▲▲▲
  421.   #--------------------------------------------------------------------------
  422.   #--------------------------------------------------------------------------
  423.   # ● 連打の出力先クリア
  424.   #--------------------------------------------------------------------------
  425.   def renda_output_clear
  426.     @log_window.clear
  427.   end
  428.   #--------------------------------------------------------------------------
  429.   # ● 連打の出力 スキル発動メッセージ
  430.   #--------------------------------------------------------------------------
  431.   def renda_output_display_use_item
  432.     item = @subject.current_action.item
  433.     @log_window.display_use_item(@subject, item)
  434.   end
  435.   #--------------------------------------------------------------------------
  436.   # ● 連打の出力
  437.   #--------------------------------------------------------------------------
  438.   def renda_output(str)
  439.     @log_window.add_text(str)
  440.   end
  441.   #--------------------------------------------------------------------------
  442.   # ● 連打の処理
  443.   #--------------------------------------------------------------------------
  444.   def process_special_attack_renda
  445.     # フレームと残り秒数の取得
  446.     t_limit = MR_SPECIAL_ATTACK_CUSTOM::RENDA_INFO[@special_id][0]
  447.     t_zan = t_limit - @special_frm_cnt / MR_SPECIAL_ATTACK::FRAME_RATE
  448.     # 1秒ごとの処理
  449.     if @special_frm_cnt % MR_SPECIAL_ATTACK::FRAME_RATE == 0
  450.       renda_output_clear
  451.       renda_output_display_use_item
  452.       renda_output(MR_SPECIAL_ATTACK_CUSTOM::RENDA_MSG_TIME1 \
  453.         + t_zan.to_s + MR_SPECIAL_ATTACK_CUSTOM::RENDA_MSG_TIME2)
  454.       renda_output(MR_SPECIAL_ATTACK_CUSTOM::RENDA_MSG_RET1 + \
  455.         @renda_times.to_s + MR_SPECIAL_ATTACK_CUSTOM::RENDA_MSG_RET2)
  456.       # 初回の処理
  457.       if @special_frm_cnt == 0
  458.         @renda_times = 0
  459.       end
  460.     end
  461.     @special_frm_cnt = @special_frm_cnt + 1
  462.     # 一打の処理
  463.     if Input.trigger?(MR_SPECIAL_ATTACK_CUSTOM::RENDA_BTN)
  464.       @renda_times = @renda_times + 1
  465.       se_renda
  466.       renda_output_clear
  467.       renda_output_display_use_item
  468.       renda_output(MR_SPECIAL_ATTACK_CUSTOM::RENDA_MSG_TIME1 \
  469.         + t_zan.to_s + MR_SPECIAL_ATTACK_CUSTOM::RENDA_MSG_TIME2)
  470.       renda_output(MR_SPECIAL_ATTACK_CUSTOM::RENDA_MSG_RET1 + \
  471.         @renda_times.to_s + MR_SPECIAL_ATTACK_CUSTOM::RENDA_MSG_RET2)
  472.       #p "連打!" + @renda_times.to_s
  473.     end
  474.     # 制限時間経過事(終了)の処理
  475.     if (@special_frm_cnt / MR_SPECIAL_ATTACK::FRAME_RATE) == t_limit
  476.       renda_output_clear
  477.       renda_output(MR_SPECIAL_ATTACK_CUSTOM::RENDA_MSG_RET1 + \
  478.         @renda_times.to_s + MR_SPECIAL_ATTACK_CUSTOM::RENDA_MSG_RET2)
  479.       # 最低レート
  480.       @special_ret = MR_SPECIAL_ATTACK_CUSTOM::RENDA_INFO[@special_id][1]
  481.       #p "最低レート:" + @special_ret.to_s
  482.       # 連打数の反映
  483.       a = MR_SPECIAL_ATTACK_CUSTOM::RENDA_INFO[@special_id][2]
  484.       a = a * @renda_times
  485.       @special_ret = @special_ret + a
  486.       #p "連打数反映:" + @special_ret.to_s
  487.       # 最高レート
  488.       b = MR_SPECIAL_ATTACK_CUSTOM::RENDA_INFO[@special_id][3]
  489.       if @special_ret > b
  490.         @special_ret = b
  491.         #p "最高レートを突破した為、修正:" + @special_ret.to_s
  492.       end
  493.       #p "結果:" + @special_ret.to_s
  494.       $special_attack_rate = @special_ret
  495.       @special_attack = false
  496.     end
  497.   end
  498.   #--------------------------------------------------------------------------
  499.   # ▲▲▲スペシャルアタック2:ランダムコマンド▲▲▲
  500.   #--------------------------------------------------------------------------
  501.   #--------------------------------------------------------------------------
  502.   # ● ランコマの出力先クリア
  503.   #--------------------------------------------------------------------------
  504.   def rndcmd_output_clear
  505.     @log_window.clear
  506.   end
  507.   #--------------------------------------------------------------------------
  508.   # ● ランコマの出力 スキル発動メッセージ
  509.   #--------------------------------------------------------------------------
  510.   def rndcmd_output_display_use_item
  511.     item = @subject.current_action.item
  512.     @log_window.display_use_item(@subject, item)
  513.   end
  514.   #--------------------------------------------------------------------------
  515.   # ● ランコマの出力
  516.   #--------------------------------------------------------------------------
  517.   def rndcmd_output(str)
  518.     @log_window.add_text(str)
  519.   end
  520.   #--------------------------------------------------------------------------
  521.   # ● ランダムコマンド決定処理
  522.   #--------------------------------------------------------------------------
  523.   def rndcmd_desc(t)
  524.     @rndcmds = []
  525.     @rndcmds_txt = ""
  526.     for i in 0...t
  527.       j = rand(MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_KEYS.size)
  528.       @rndcmds.push(MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_KEYS[j])
  529.       @rndcmds_txt = @rndcmds_txt + \
  530.         MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_KEY_OUTS[j] + \
  531.         MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_KEY_OUTS_SPACE
  532.     end
  533.   end
  534.   #--------------------------------------------------------------------------
  535.   # ● ランダムコマンド入力状況初期化
  536.   #--------------------------------------------------------------------------
  537.   def rndcmd_input_init
  538.     @rndcmds_input_ok = 0
  539.     @rndcmds_input_txt = ""
  540.   end
  541.   #--------------------------------------------------------------------------
  542.   # ● ランダムコマンド入力状況OK追加
  543.   #--------------------------------------------------------------------------
  544.   def rndcmd_input_ok
  545.     # フレームと残り秒数の取得
  546.     t_limit = MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_INFO[@special_id][0]
  547.     t_zan = t_limit - @special_frm_cnt / MR_SPECIAL_ATTACK::FRAME_RATE
  548.     se_rndcmd_ok
  549.     @rndcmds_input_ok = @rndcmds_input_ok + 1
  550.     @rndcmds_input_txt = @rndcmds_input_txt + \
  551.       MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_KEY_OUTS_OK + \
  552.       MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_KEY_OUTS_SPACE
  553.     rndcmd_output_clear
  554.     rndcmd_output_display_use_item
  555.     rndcmd_output(MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_MSG_TIME1 \
  556.       + t_zan.to_s + MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_MSG_TIME2)
  557.     rndcmd_ret_output
  558.   end
  559.   #--------------------------------------------------------------------------
  560.   # ● ランダムコマンド入力状況NG
  561.   #--------------------------------------------------------------------------
  562.   def rndcmd_input_ng
  563.     # フレームと残り秒数の取得
  564.     t_limit = MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_INFO[@special_id][0]
  565.     t_zan = t_limit - @special_frm_cnt / MR_SPECIAL_ATTACK::FRAME_RATE
  566.     se_rndcmd_ng
  567.     rndcmd_input_init
  568.     rndcmd_output_clear
  569.     rndcmd_output_display_use_item
  570.     rndcmd_output(MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_MSG_TIME1 \
  571.       + t_zan.to_s + MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_MSG_TIME2)
  572.     rndcmd_ret_output
  573.   end
  574.   #--------------------------------------------------------------------------
  575.   # ● ランダムコマンド、成否状況出力処理
  576.   #--------------------------------------------------------------------------
  577.   def rndcmd_ret_output
  578.     rndcmd_output(@rndcmds_txt)
  579.     rndcmd_output(@rndcmds_input_txt)
  580.   end
  581.   #--------------------------------------------------------------------------
  582.   # ● ランコマの処理
  583.   #--------------------------------------------------------------------------
  584.   def process_special_attack_rndcmd
  585.     # フレームと残り秒数の取得
  586.     t_limit = MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_INFO[@special_id][0]
  587.     t_zan = t_limit - @special_frm_cnt / MR_SPECIAL_ATTACK::FRAME_RATE
  588.     # 1秒ごとの処理
  589.     if @special_frm_cnt % MR_SPECIAL_ATTACK::FRAME_RATE == 0
  590.       # 初回の処理
  591.       if @special_frm_cnt == 0
  592.         rndcmd_desc(MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_INFO[@special_id][3])
  593.         rndcmd_input_init
  594.       end
  595.       rndcmd_output_clear
  596.       rndcmd_output_display_use_item
  597.       rndcmd_output(MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_MSG_TIME1 \
  598.         + t_zan.to_s + MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_MSG_TIME2)
  599.       rndcmd_ret_output
  600.     end
  601.     @special_frm_cnt = @special_frm_cnt + 1
  602.     # 一打の処理
  603.     if Input.trigger?(@rndcmds[@rndcmds_input_ok])
  604.       rndcmd_input_ok
  605.       #p "成功!" + @rndcmds_input_ok.to_s
  606.     else
  607.       if Input.trigger?(:DOWN)
  608.         rndcmd_input_ng
  609.         #p "失敗" + @rndcmds_input_ok.to_s
  610.       elsif Input.trigger?(:UP)
  611.         rndcmd_input_ng
  612.         #p "失敗" + @rndcmds_input_ok.to_s
  613.       elsif Input.trigger?(:RIGHT)
  614.         rndcmd_input_ng
  615.         #p "失敗" + @rndcmds_input_ok.to_s
  616.       elsif Input.trigger?(:LEFT)
  617.         rndcmd_input_ng
  618.         #p "失敗" + @rndcmds_input_ok.to_s
  619.       elsif Input.trigger?(:A)
  620.         rndcmd_input_ng
  621.         #p "失敗" + @rndcmds_input_ok.to_s
  622.       elsif Input.trigger?(:B)
  623.         rndcmd_input_ng
  624.         #p "失敗" + @rndcmds_input_ok.to_s
  625.       elsif Input.trigger?(:C)
  626.         rndcmd_input_ng
  627.         #p "失敗" + @rndcmds_input_ok.to_s
  628.       elsif Input.trigger?(:X)
  629.         rndcmd_input_ng
  630.         #p "失敗" + @rndcmds_input_ok.to_s
  631.       elsif Input.trigger?(:Y)
  632.         rndcmd_input_ng
  633.         #p "失敗" + @rndcmds_input_ok.to_s
  634.       elsif Input.trigger?(:Z)
  635.         rndcmd_input_ng
  636.         #p "失敗" + @rndcmds_input_ok.to_s
  637.       elsif Input.trigger?(:L)
  638.         rndcmd_input_ng
  639.         #p "失敗" + @rndcmds_input_ok.to_s
  640.       elsif Input.trigger?(:R)
  641.         rndcmd_input_ng
  642.         #p "失敗" + @rndcmds_input_ok.to_s
  643.       elsif Input.trigger?(:Shift)
  644.         rndcmd_input_ng
  645.         #p "失敗" + @rndcmds_input_ok.to_s
  646.       elsif Input.trigger?(:CTRL)
  647.         rndcmd_input_ng
  648.         #p "失敗" + @rndcmds_input_ok.to_s
  649.       elsif Input.trigger?(:ALT)
  650.         rndcmd_input_ng
  651.         #p "失敗" + @rndcmds_input_ok.to_s
  652.       end
  653.     end
  654.     # 制限時間経過事(終了)、または全部入力終了時の処理
  655.     if (@special_frm_cnt / MR_SPECIAL_ATTACK::FRAME_RATE) == t_limit \
  656.       or @rndcmds_input_ok == @rndcmds.size
  657.       rndcmd_output_clear
  658.       # 成功時
  659.       if @rndcmds_input_ok == @rndcmds.size
  660.         rndcmd_output(MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_MSG_RET_OK)
  661.         # 成功レート
  662.         @special_ret = MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_INFO[@special_id][2]
  663.         #p "成功レート:" + @special_ret.to_s
  664.       else
  665.         # 失敗時  
  666.         rndcmd_output(MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_MSG_RET_NG)
  667.         # 失敗レート
  668.         @special_ret = MR_SPECIAL_ATTACK_CUSTOM::RNDCMD_INFO[@special_id][1]
  669.         #p "失敗レート:" + @special_ret.to_s
  670.       end
  671.       #p "結果:" + @special_ret.to_s
  672.       $special_attack_rate = @special_ret
  673.       @special_attack = false
  674.     end
  675.   end
  676.   #--------------------------------------------------------------------------
  677.   # ▲▲▲スペシャルアタック3:ジャストヒット▲▲▲
  678.   #--------------------------------------------------------------------------
  679.   #--------------------------------------------------------------------------
  680.   # ● ジャスヒの出力先クリア
  681.   #--------------------------------------------------------------------------
  682.   def jsthit_output_clear
  683.     @log_window.clear
  684.   end
  685.   #--------------------------------------------------------------------------
  686.   # ● ジャスヒの出力 スキル発動メッセージ
  687.   #--------------------------------------------------------------------------
  688.   def jsthit_output_display_use_item
  689.     item = @subject.current_action.item
  690.     @log_window.display_use_item(@subject, item)
  691.   end
  692.   #--------------------------------------------------------------------------
  693.   # ● ジャスヒの出力
  694.   #--------------------------------------------------------------------------
  695.   def jsthit_output(str)
  696.     @log_window.add_text(str)
  697.   end
  698.   #--------------------------------------------------------------------------
  699.   # ● ジャストヒット入力状況初期化
  700.   #--------------------------------------------------------------------------
  701.   def jsthit_input_init
  702.     t_limit = MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][0]
  703.     t_zan = t_limit - @special_frm_cnt / MR_SPECIAL_ATTACK::FRAME_RATE
  704.     @jsthit_cnt = 0
  705.     @jsthit_pos = 1
  706.     jsthit_output_clear
  707.     jsthit_output_display_use_item
  708.     jsthit_output(MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_MSG_TIME1 \
  709.       + t_zan.to_s + MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_MSG_TIME2)
  710.     jsthit_gage_output
  711.   end
  712.   #--------------------------------------------------------------------------
  713.   # ● ジャストヒットゲージ進行処理
  714.   #--------------------------------------------------------------------------
  715.   def jsthit_count
  716.     # 速さ
  717.     if @jsthit_cnt == MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][4]
  718.       if @jsthit_pos == MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][5]
  719.         @jsthit_pos = 1
  720.       else
  721.         @jsthit_pos = @jsthit_pos + 1
  722.       end
  723.       @jsthit_cnt = 0
  724.       t_limit = MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][0]
  725.       t_zan = t_limit - @special_frm_cnt / MR_SPECIAL_ATTACK::FRAME_RATE
  726.       jsthit_output_clear
  727.       jsthit_output_display_use_item
  728.       jsthit_output(MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_MSG_TIME1 \
  729.         + t_zan.to_s + MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_MSG_TIME2)
  730.       jsthit_gage_output
  731.     else
  732.       @jsthit_cnt = @jsthit_cnt + 1
  733.     end
  734.   end
  735.   #--------------------------------------------------------------------------
  736.   # ● ジャストヒットゲージ出力処理
  737.   #--------------------------------------------------------------------------
  738.   def jsthit_gage_output
  739.     @jsthits_txt = ""
  740.     # ゲージ長
  741.     for i in 1..MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][5]
  742.       if i == @jsthit_pos
  743.         # ジャストヒット位置
  744.         if i == MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][6]
  745.           @jsthits_txt = @jsthits_txt + MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_GAGE_JUSTHIT_ON
  746.         # ヒット
  747.         elsif (MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][6] \
  748.           - MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][7])  <= i \
  749.         and i <= (MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][6] \
  750.           + MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][8])
  751.           @jsthits_txt = @jsthits_txt + MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_GAGE_HIT_ON
  752.         else
  753.           @jsthits_txt = @jsthits_txt + MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_GAGE_MISS_ON
  754.         end
  755.       else
  756.         # ジャストヒット位置
  757.         if i == MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][6]
  758.           @jsthits_txt = @jsthits_txt + MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_GAGE_JUSTHIT_OFF
  759.         # ヒット
  760.         elsif (MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][6] \
  761.           - MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][7])  <= i \
  762.         and i <= (MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][6] \
  763.           + MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][8])
  764.           @jsthits_txt = @jsthits_txt + MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_GAGE_HIT_OFF
  765.         else
  766.           @jsthits_txt = @jsthits_txt + MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_GAGE_MISS_OFF
  767.         end
  768.       end
  769.         
  770.     end
  771.     jsthit_output(@jsthits_txt)
  772.   end
  773.   #--------------------------------------------------------------------------
  774.   # ● ジャスヒの処理
  775.   #--------------------------------------------------------------------------
  776.   def process_special_attack_jsthit
  777.     # フレームと残り秒数の取得
  778.     t_limit = MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][0]
  779.     t_zan = t_limit - @special_frm_cnt / MR_SPECIAL_ATTACK::FRAME_RATE
  780.     # 1秒ごとの処理
  781.     if @special_frm_cnt % MR_SPECIAL_ATTACK::FRAME_RATE == 0
  782.       # 初回の処理
  783.       if @special_frm_cnt == 0
  784.         jsthit_input_init
  785.       end
  786.     end
  787.     jsthit_count
  788.     @special_frm_cnt = @special_frm_cnt + 1
  789.     # 制限時間経過事(終了)、または全部入力終了時の処理
  790.     if (@special_frm_cnt / MR_SPECIAL_ATTACK::FRAME_RATE) == t_limit \
  791.       or Input.trigger?(MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_BTN)
  792.       jsthit_output_clear
  793.       # ジャストヒット位置
  794.       if @jsthit_pos == MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][6]
  795.         jsthit_output(MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_JUST_HIT)
  796.         se_jsthit_justhit
  797.         # ジャストヒットレート
  798.         @special_ret = MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][3]
  799.         p "ジャストヒットレート:" + @special_ret.to_s
  800.       # ヒット
  801.       elsif (MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][6] \
  802.         - MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][7]) <= @jsthit_pos \
  803.       and @jsthit_pos <= (MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][6] \
  804.         + MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][8])
  805.         jsthit_output(MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_HIT)
  806.         se_jsthit_hit
  807.         # ヒットレート
  808.         @special_ret = MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][2]
  809.         #p "ヒットレート:" + @special_ret.to_s
  810.       else
  811.         se_jsthit_miss
  812.         jsthit_output(MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_MISS)
  813.         # 失敗レート
  814.         @special_ret = MR_SPECIAL_ATTACK_CUSTOM::JSTHIT_INFO[@special_id][1]
  815.         #p "失敗レート:" + @special_ret.to_s
  816.       end
  817.       jsthit_gage_output
  818.       #p "結果:" + @special_ret.to_s
  819.       $special_attack_rate = @special_ret
  820.       @special_attack = false
  821.     end
  822.   end
  823.   
  824.   #--------------------------------------------------------------------------
  825.   # ▲▲▲スペシャルアタック4:ジャストヒットN▲▲▲
  826.   #--------------------------------------------------------------------------
  827.   #--------------------------------------------------------------------------
  828.   # ● ジャスヒNの出力先クリア
  829.   #--------------------------------------------------------------------------
  830.   def jsthitn_output_clear
  831.     @log_window.clear
  832.   end
  833.   #--------------------------------------------------------------------------
  834.   # ● ジャスヒNの出力 スキル発動メッセージ
  835.   #--------------------------------------------------------------------------
  836.   def jsthitn_output_display_use_item
  837.     item = @subject.current_action.item
  838.     @log_window.display_use_item(@subject, item)
  839.   end
  840.   #--------------------------------------------------------------------------
  841.   # ● ジャスヒNの出力
  842.   #--------------------------------------------------------------------------
  843.   def jsthitn_output(str)
  844.     @log_window.add_text(str)
  845.   end
  846.   #--------------------------------------------------------------------------
  847.   # ● ジャストヒットN入力状況初期化
  848.   #--------------------------------------------------------------------------
  849.   def jsthitn_input_init
  850.     @jsthitn_cnt = 0
  851.     @jsthitn_hitcnt = 0
  852.     @jsthitn_pos = 1
  853.     @jsthitn_pushcnt = 0
  854.     @jsthitn_hitted = []
  855.     jsthitn_output_clear
  856.     jsthitn_output_display_use_item
  857.     jsthitn_output(MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_MSG_TIME)
  858.     jsthitn_gage_output
  859.     @jsthitn_next_hit = 999
  860.   end
  861.   #--------------------------------------------------------------------------
  862.   # ● ジャストヒットNゲージ進行処理
  863.   #--------------------------------------------------------------------------
  864.   def jsthitn_count
  865.     # 速さ
  866.     if @jsthitn_cnt == MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_INFO[@special_id][2]
  867.       if @jsthitn_pos != MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_INFO[@special_id][3]
  868.         @jsthitn_pos = @jsthitn_pos + 1
  869.       end
  870.       @jsthitn_cnt = 0
  871.       jsthitn_output_clear
  872.       jsthitn_output_display_use_item
  873.       jsthitn_output(MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_MSG_TIME)
  874.       jsthitn_gage_output
  875.     else
  876.       @jsthitn_cnt = @jsthitn_cnt + 1
  877.     end
  878.   end
  879.   #--------------------------------------------------------------------------
  880.   # ● ジャストヒットNゲージ出力処理
  881.   #--------------------------------------------------------------------------
  882.   def jsthitn_gage_output
  883.     @jsthitns_txt = ""
  884.     # ゲージ長
  885.     j = 999
  886.     for k in 0...MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_HIT_INFO[@special_id].size
  887.       if MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_HIT_INFO[@special_id][k] >= @jsthitn_pos \
  888.         and j > k
  889.         j = k
  890.         #p "#{j.to_s]"
  891.       end
  892.     end
  893.     e = @jsthitn_pos + 29
  894.     if e > MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_INFO[@special_id][3]
  895.       e = MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_INFO[@special_id][3]
  896.     end
  897.     for i in @jsthitn_pos..e
  898.       if i == @jsthitn_pos
  899.         # ヒットN位置
  900.         if i == MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_HIT_INFO[@special_id][j]
  901.           j = j + 1
  902.           @jsthitns_txt = @jsthitns_txt + MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_GAGE_JUSTHIT_ON
  903.         else
  904.           @jsthitns_txt = @jsthitns_txt + MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_GAGE_MISS_ON
  905.         end
  906.       else
  907.         # ヒットN位置
  908.         if i == MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_HIT_INFO[@special_id][j]
  909.           j = j + 1
  910.           @jsthitns_txt = @jsthitns_txt + MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_GAGE_JUSTHIT_OFF
  911.         else
  912.           @jsthitns_txt = @jsthitns_txt + MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_GAGE_MISS_OFF
  913.         end
  914.       end
  915.     end
  916.     jsthitn_output(@jsthitns_txt)
  917.   end
  918.   #--------------------------------------------------------------------------
  919.   # ● ジャスヒNの処理
  920.   #--------------------------------------------------------------------------
  921.   def process_special_attack_jsthitn
  922.     # 1秒ごとの処理
  923.     if @special_frm_cnt % MR_SPECIAL_ATTACK::FRAME_RATE == 0
  924.       # 初回の処理
  925.       if @special_frm_cnt == 0
  926.         jsthitn_input_init
  927.       end
  928.     end
  929.     # 押下時の処理
  930.     if Input.trigger?(MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_BTN)
  931.       #p MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_HIT_INFO[@special_id].size.to_s
  932.       jsthitn_next_hit_time = 999
  933.       jsthitn_next_hit = 999
  934.       for k in 0...MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_HIT_INFO[@special_id].size
  935.         if jsthitn_next_hit_time > MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_HIT_INFO[@special_id][k] \
  936.           and MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_HIT_INFO[@special_id][k] >= @jsthitn_pos
  937.           jsthitn_next_hit = k
  938.           jsthitn_next_hit_time = MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_HIT_INFO[@special_id][k]
  939.         end
  940.       end
  941.       #p "次のヒット:" + MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_HIT_INFO[@special_id][jsthitn_next_hit].to_s
  942.       #p "#{@jsthitn_pos.to_s}"
  943.       if @jsthitn_pos == \
  944.         MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_HIT_INFO[@special_id][jsthitn_next_hit]
  945.         #p "入力成功"
  946.         se_jsthitn_hit
  947.         @jsthitn_hitted.push @jsthitn_pos
  948.         jsthitn_output_clear
  949.         jsthitn_output_display_use_item
  950.         jsthitn_output(MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_MSG_TIME)
  951.         jsthitn_gage_output
  952.         @jsthitn_hitcnt = @jsthitn_hitcnt + 1
  953.         @jsthitn_pushcnt = @jsthitn_pushcnt + 1
  954.       else
  955.         #p "入力失敗"
  956.         @jsthitn_pushcnt = @jsthitn_pushcnt + 1
  957.         se_jsthitn_miss
  958.       end
  959.     end
  960.     jsthitn_count
  961.     @special_frm_cnt = @special_frm_cnt + 1
  962.     # ゲージ終了時、またはヒット数よりたくさん押した場合の処理
  963.     if @jsthitn_pos == MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_INFO[@special_id][3] \
  964.       or @jsthitn_pushcnt >= MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_HIT_INFO[@special_id].size
  965.       @jsthitn_pos = 0
  966.       jsthitn_output_clear
  967.       jsthitn_output(@jsthitn_hitcnt.to_s + MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_HIT)
  968.         
  969.       # 最低レート
  970.       @special_ret = MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_INFO[@special_id][0]
  971.       #p "最低レート:" + @special_ret.to_s
  972.       # 成功数の反映
  973.       a = MR_SPECIAL_ATTACK_CUSTOM::JSTHITN_INFO[@special_id][1]
  974.       a = a * @jsthitn_hitcnt
  975.       @special_ret = @special_ret + a
  976.       #p "成功数反映:" + @special_ret.to_s
  977.       #p "結果:" + @special_ret.to_s
  978.       $special_attack_rate = @special_ret
  979.       @special_attack = false
  980.       
  981.     end
  982.   end
  983. end
复制代码

Lv3.寻梦者

闇吼者の災悪眷族
不気味存在締造者

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
帖子
6491
2
发表于 2014-11-29 18:17:09 | 只看该作者
我大致看了下,这个脚本有4种QTE方法。
并不是全部连打的,如果你说连打的话。
只有3和132号技能是连打效果的,大概是5秒时间内,可以连打20下,令技能威力提高20%(提高值是我猜的)

81=>[3,50,200,4],
81号技能是3秒内输入4个随机按键指令,成功输入伤害加倍,否则减半。

  87=>[0,50,2,60]
87号是在轨道(大概是输入条的长度吧)为60,速度是2(估计是条走的速度),复数次输入正确的指令键。每成功一次增加50%的伤害
未成功没有额外加值(也就是0)

点评

具体的脚本中是说在☆的位置输入正确的按键就可以提高伤害,但是我也不知道它说的☆是个啥。  发表于 2014-11-30 14:39
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
38 小时
注册时间
2014-10-28
帖子
94
3
 楼主| 发表于 2014-11-30 11:07:32 | 只看该作者
本帖最后由 猩红之月 于 2014-11-30 11:08 编辑
三途亚梦 发表于 2014-11-29 18:17
我大致看了下,这个脚本有4种QTE方法。
并不是全部连打的,如果你说连打的话。
只有3和132号技能是连打效果 ...


87号技能没有时间条,而且连打按下去以后技能威力没有提高

点评

具体的脚本中是说在☆的位置输入正确的按键就可以提高伤害,但是我也不知道它说的☆是个啥。  发表于 2014-11-30 14:40
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22948
在线时间
8638 小时
注册时间
2011-12-31
帖子
3367
4
发表于 2014-11-30 11:32:32 | 只看该作者
スペシャルアタック1:連打 
制限時間内に特定のボタンを連打し、
その連打回数でダメージを補正します。
特殊攻撃1:連打 
制限時間内特定按鈕連打、
随連打回数増加補正傷害。


スペシャルアタック2:ランダムコマンド入力
 ランダムで指定されたボタンを制限時間内に入力し、
 その成否でダメージを補正します。
特殊攻撃2:随机指令入力
 在制限時間内輸入随机指定按鈕、
 成功時増加補正傷害。

スペシャルアタック3:ジャストヒット
 ゲージ中に1個ある☆の位置でボタン押下し、
 その成否でダメージを補正します。
特殊攻撃3:適時按下
 在列中☆的位置按下按鈕、
 成功時増加補正傷害。


スペシャルアタック4:適時按下N
 ゲージ中に複数ある☆の位置でボタン押下し、
 その成否回数でダメージを補正します。
特殊攻撃4:ジャストヒットN
 在列中複数☆的位置按下按鈕し、
 随成功次数増加柤応補正傷害。

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
38 小时
注册时间
2014-10-28
帖子
94
5
 楼主| 发表于 2014-11-30 19:13:02 | 只看该作者
本帖最后由 猩红之月 于 2014-11-30 19:20 编辑
tseyik 发表于 2014-11-30 11:32
スペシャルアタック1:連打 
制限時間内に特定のボタンを連打し、
その連打回数でダメージを補正します。 ...


感谢回答
#    特殊攻撃4:ジャストヒットN
#   在列中複数☆的位置按下按鈕し、
#   随成功次数増加柤応補正傷害。
是什么意思?机译不准确。
另外第3种连击方式没有弹出相应节面,直接MISS
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

6
发表于 2014-11-30 19:14:37 | 只看该作者
猩红之月 发表于 2014-11-30 19:13
感谢回答
#    特殊攻撃4:ジャストヒットN
#   在列中複数☆的位置按下按鈕し、

在值槽中多个☆的位置按下按钮,根据成功次数修正伤害

评分

参与人数 1星屑 +150 收起 理由
VIPArcher + 150 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
38 小时
注册时间
2014-10-28
帖子
94
7
 楼主| 发表于 2014-12-5 19:43:14 | 只看该作者
里面还有一些问题,不过想想暂时还是就这样吧。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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