查看: 6855|回复: 19

[已经过期] 使用特技时执行的公共事件中怎么获取被使用者

[复制链接]
梦石
0
星屑
1442
在线时间
328 小时
注册时间
2016-4-4
回帖
126

开拓者

发表于 2016-12-10 15:37:05 | 显示全部楼层 |阅读模式

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

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

×
想要实现一个角色使用了一个技能 然后用公共事件附加效果强制该角色强制行动使用另一个技能 的效果  如何实现?
梦石
0
星屑
606
在线时间
797 小时
注册时间
2014-7-1
回帖
501

开拓者

发表于 2016-12-10 16:25:20 | 显示全部楼层
本帖最后由 jiushiainilip19 于 2016-12-10 16:26 编辑

不是有强制行动的选择么,应该很容易就看得到啊。。。公共事件之间是可以连接的。。。!
事件指令第三页有一个强制行动,里面可以选择的

技能选项里面也有个调用公共事件的选择啊,所以连起来就OK 了!
学习使我疲劳,打工使我疲惫,恋爱使我伤身,吸烟伤我肺腑,饮酒损我形象,旅游使我破费,月底不见铜板,只有在论坛里面看看各种大佬才能使我进去
回复

使用道具 举报

梦石
0
星屑
1442
在线时间
328 小时
注册时间
2016-4-4
回帖
126

开拓者

 楼主| 发表于 2016-12-10 17:00:37 | 显示全部楼层
jiushiainilip19 发表于 2016-12-10 16:25
不是有强制行动的选择么,应该很容易就看得到啊。。。公共事件之间是可以连接的。。。!
事件指令第三页有 ...

我当然知道这玩意 我的意思是  怎么指定角色再次行动   强制行动里面只有第1位-第4位  没办法详细指定上一次使用技能的人  我需要的是指定使用该技能的使用者再次行动 的效果
回复

使用道具 举报

梦石
0
星屑
2457
在线时间
912 小时
注册时间
2014-10-14
回帖
1155

开拓者

发表于 2016-12-10 23:55:13 | 显示全部楼层
这个脚本 跟你说的差不多[pre lang="ruby"]#==============================================================================
# 本脚本来自www.66rpg.com,转载与使用请保留此内容。
#==============================================================================
# ■ 追加攻击    Ver. 3.2.3                  by Claimh
#------------------------------------------------------------------------------
# http://www.k3.dion.ne.jp/~claimh/
#------------------------------------------------------------------------------
# ·普通攻击时,如果时机很好地输按键(默认的回车),追加攻击发动。
# ·自动发动,连续尾随回数也可设定
# ·critical发动时动画不同…………总之看下面的自定义内容就可以了。
#==============================================================================

module Add_attack
#==============================================================================
# □ 自定义内容开始
#==============================================================================
  # 启动追加攻击的按键(也就是说,默认情况下,攻击动画发动的时候按下回车键就会
  # 发动追加攻击,类似FF8的枪刀)
  ADD_ATK_KEY = Input::C

  # 伤害概括(?)
  ADD_ATK_DMG_ALL = true            # 不需要的时候就false
  
  # 等待时间
  ADD_ATK_WAIT = 4                  # 数值输入

  # 通常攻击如果Miss了就无法追加
  ADD_ATK_MISS = true               # 如果Miss仍然可以追加,就 = true
  
  # Critical发生时动画发生变化
  ADD_ATK_CRITICAL = true           # 不需要的话就 = false

  # 追加攻击成功时播放的声效
  ADD_ATK_SE = "020-Teleport03"     # 不需要的话就 = nil

  # 追加攻击设定举例
  # [武器ID, 追加攻击力(%), 追加动画ID,自动发生标志, 追加成功率,
  #   连续回数, Criticle时的动画编号]
  ADD1 = [1, 80, 30, false, 100, 5, 31]
  ADD2 = [5, 150, 33, false, 50, 8, 34]
  ADD3 = [25, 80, 42, false, 100, 8, 43]
  ADD4 = [29, 150, 48, false, 20, 6, 49]

  # 将所有正确定义的内容添加进来
  ADD_ATK = [ADD1, ADD2, ADD3, ADD4]
#==============================================================================
# □ 自定义内容结束
#==============================================================================
end

class Scene_Battle
  include Add_attack
  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  alias update_phase4_step1_add_atk update_phase4_step1
  def update_phase4_step1
    update_phase4_step1_add_atk
    @add_atk_flg = false          # 追加攻击开始
    $add_atk_exercise = false     # 追加攻击执行中
    $add_atk_end = false          # 追加攻击终了
    @add_atk_check_key = false    # 追加判定执行中
    @add_atk_success = false      # 追加成功
    @add_atk_count = 0            # 追加数
    $add_atk_first = true         # 初期设定
  end

  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  alias update_phase4_step3_add_atk update_phase4_step3
  def update_phase4_step3
    if $add_atk_exercise
      @phase4_step = 4
      return
    elsif @active_battler.current_action.basic == 0
      if @active_battler.is_a?(Game_Actor)
        add_atk_check(@active_battler)
      end
    end
    update_phase4_step3_add_atk
  end

  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  def add_atk_check(actor)
    for i in 0..ADD_ATK.size-1
      $add_atk_set = ADD_ATK
      if actor.weapon_id  == $add_atk_set[0]
        @add_atk_flg = true
        return
      end
    end
  end

  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  alias update_phase4_step4_add_atk update_phase4_step4
  def update_phase4_step4
    # 追加攻击
    if @add_atk_flg
      @add_atk_check_key = true
      if $add_atk_exercise
        @animation2_id = $add_atk_set[2]
      end
      for target in @target_battlers
        if ADD_ATK_CRITICAL and target.critical and $add_atk_first
          target.animation_id = $add_atk_set[6]
        else
          if target.one_critical and ADD_ATK_DMG_ALL
            target.critical = true
          end
          target.animation_id = @animation2_id
        end
        target.animation_hit = (target.damage != "Miss")
      end
      if ADD_ATK_WAIT != nil
        @wait_count = ADD_ATK_WAIT
      end
      @phase4_step = 5
      return
    end
    update_phase4_step4_add_atk     # 原内容
  end

  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  alias update_phase4_step5_add_atk update_phase4_step5
  def update_phase4_step5
    @add_atk_check_key = false
    # 追加成功
    if @add_atk_success
      $add_atk_exercise = true
    end
    if ADD_ATK_DMG_ALL and $add_atk_exercise
      # 追加终了 or 追加失败
      if $add_atk_end or !@add_atk_success
        $add_atk_exercise = false
        @add_atk_flg = false
        $add_atk_end = false
        @help_window.visible = false
        @status_window.refresh
        for target in @target_battlers
          if target.add_atk_all_dmg != nil
            target.damage = target.add_atk_all_dmg
            target.damage_pop = true
            target.add_atk_all_dmg = nil
            if target.add_atk_dead_end
              target.hp = 0
              target.add_atk_dead_end = false
            end
          end
        end
        @phase4_step = 6
        return
      end
    else
      update_phase4_step5_add_atk
    end
    if $add_atk_end or !@add_atk_success
      $add_atk_exercise = false
      @add_atk_flg = false
      $add_atk_end = false
      if ADD_ATK_DMG_ALL
        for target in @target_battlers
          target.add_atk_all_dmg = nil
          if target.add_atk_dead_end
            target.hp = 0
          end
        end
      end
    end
    if $add_atk_exercise
      @add_atk_success = false
      @phase4_step = 2
    end
  end

  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  alias update_add_atk update
  def update
    if @add_atk_check_key and @add_atk_flg
      if (Input.trigger?(ADD_ATK_KEY) or $add_atk_set[3])
        if rand(100) <= $add_atk_set[4]
          @add_atk_success = true
          @add_atk_check_key = false
          @add_atk_count += 1
          if @add_atk_count >= $add_atk_set[5] or $add_atk_end
            $add_atk_end = true
          else
            if ADD_ATK_SE != nil and !$add_atk_end
              Audio.se_play("Audio/SE/" + ADD_ATK_SE)
            end
          end
        end
      end
    end
    update_add_atk
  end

  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  alias update_phase4_step6_add_atk update_phase4_step6
  def update_phase4_step6
    @add_atk_flg = false         
    $add_atk_exercise = false     
    $add_atk_end = false         
    @add_atk_check_key = false   
    @add_atk_success = false      
    @add_atk_count = 0            
    $add_atk_first = false        
    update_phase4_step6_add_atk
  end
end


#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler
  include Add_attack
  attr_accessor :add_atk_all_dmg           
  attr_accessor :add_atk_dead_end         
  attr_accessor :one_critical              
  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  alias initialize_skill_add_atk initialize
  def initialize
    initialize_skill_add_atk
    @add_atk_all_dmg = nil
    @add_atk_dead_end = false
    @one_critical = false
  end

  #--------------------------------------------------------------------------
  #--------------------------------------------------------------------------
  alias attack_effect_addition attack_effect
  def attack_effect(attacker)
    if $add_atk_exercise
      self.critical = false
      atk = [attacker.atk * $add_atk_set[1]/100 - self.pdef / 2, 0].max
      self.damage = atk * (20 + attacker.str) / 20
      self.damage *= elements_correct(attacker.element_set)
      self.damage /= 100
      if self.damage > 0
        if rand(100) < 4 * attacker.dex / self.agi
          self.damage *= 2
          self.critical = true
          self.one_critical = true
        end
        if self.guarding?
          self.damage /= 2
        end
      end
      if self.damage.abs > 0
        amp = [self.damage.abs * 15 / 100, 1].max
        self.damage += rand(amp+1) + rand(amp+1) - amp
      end
      eva = 8 * self.agi / attacker.dex + self.eva
      hit = self.damage < 0 ? 100 : 100 - eva
      hit = self.cant_evade? ? 100 : hit
      hit_result = (rand(100) < hit)
      if hit_result == true
        remove_states_shock
        self.hp -= self.damage
        @state_changed = false
        states_plus(attacker.plus_state_set)
        states_minus(attacker.minus_state_set)
      else
        self.damage = "Miss"
        self.critical = false
      end
    else
      attack_effect_addition(attacker)  
    end
    if self.dead?
      @add_atk_dead_end = true
      if ADD_ATK_DMG_ALL and ($add_atk_exercise or $add_atk_first)
        self.hp = 1
      else
        $add_atk_end = true
      end
    end
    if ADD_ATK_DMG_ALL and self.damage != "Miss" and $add_atk_exercise
      @add_atk_all_dmg = (@add_atk_all_dmg == nil ? 0 : @add_atk_all_dmg)
      @add_atk_all_dmg += self.damage
      self.damage = nil
    elsif ADD_ATK_DMG_ALL and self.damage != "Miss" and $add_atk_first
      @add_atk_all_dmg = (@add_atk_all_dmg == nil ? 0 : @add_atk_all_dmg)
      @add_atk_all_dmg += self.damage
      $add_atk_first = false
    else
      if ADD_ATK_MISS and self.damage == "Miss"
        $add_atk_end = true
        if ADD_ATK_DMG_ALL and @add_atk_all_dmg == nil
          @add_atk_all_dmg = "Miss"
        end
      end
    end
    return true
  end
end




2、特技的追加攻击:

#==============================================================================
# 本脚本来自www.66rpg.com,转载与使用请保留此内容。
#==============================================================================
# ■ 技能连击追加    Ver. 3.2.3                  by Claimh
#------------------------------------------------------------------------------
# http://www.k3.dion.ne.jp/~claimh/
#------------------------------------------------------------------------------

module Skill_chase
  #==============================================================================
  # □ 自定义内容开始
  #==============================================================================
  # 追加攻击按键
  SKILL_CHASE_KEY = Input::C

  # 导入技艺水平制(?)
  USE_SKILL_LEVEL = false      # 不要的话就false

  # 损伤表示
  SKILL_CHASE_DMG_ALL = true          # 不要的话就false
  
  # 等待时间
  SKILL_CHASE_WAIT = 4                # 输入一个数值

  # 要是Miss就不追加攻击。true/false
  SKILL_CHASE_MISS = true
  
  # CRITICAL动画变化。true/false
  SKILL_CHASE_CRITICAL = true

  # 物理攻击系特技的属性ID
  CHASE_WEAPON = 19
  
  # 魔法攻击系特技的属性ID  #——这两个要注意。
  CHASE_MAGIC = 20

  # 成功时发出的SE声音
  SKILL_CHASE_SE = "020-Teleport03"     # 不需要的话就nil

  # 设定举例
  # [特技ID,追加攻击的攻击力(%),连锁动画ID,成功率,
  #  连续回数,critical时候动画ID]
  CHASE1 = [57, 100, 31, false, 100, 5, 32]
  CHASE2 = [61, 100, 42, false, 100, 4, 43]

  # 将以上内容拿下来
  SKILL_CHASE = [CHASE1, CHASE2]
  #==============================================================================
  # □ 自定义内容结束
  #==============================================================================
end

class Scene_Battle
  include Skill_chase
  #--------------------------------------------------------------------------
  # ● フレーム更新 (メインフェーズ ステップ 1 : アクション準備)
  #--------------------------------------------------------------------------
  alias update_phase4_step1_skill_chase update_phase4_step1
  def update_phase4_step1
    update_phase4_step1_skill_chase
    @skill_chase_flg = false          # 追加攻撃開始
    $skill_chase_exercise = false     # 追加攻撃実行中
    $skill_chase_end = false          # 追加攻撃終了
    @skill_chase_check_key = false    # 追加攻撃判定実行中
    @skill_chase_success = false      # 追加攻撃成功
    @skill_chase_count = 0            # 追加攻撃数カウント
    $skill_chase_first = true         # 初期フラグ
  end

  #--------------------------------------------------------------------------
  # ● フレーム更新 (メインフェーズ ステップ 3 : 行動側アニメーション)
  #--------------------------------------------------------------------------
  alias update_phase4_step3_skill_chase update_phase4_step3
  def update_phase4_step3
    # 追加攻撃実行中ならステップ4に強制移行
    if $skill_chase_exercise
      # ステップ 4 に移行
      @phase4_step = 4
      return
    elsif @active_battler.current_action.kind == 1
      if @active_battler.is_a?(Game_Actor)
        # 追加攻撃チェック
        skill_chase_check(@skill)
      end
    end
    update_phase4_step3_skill_chase       # 原物
  end


  #--------------------------------------------------------------------------
  # ● 判定・設定
  #--------------------------------------------------------------------------
  def skill_chase_check(skill)
    for i in 0..SKILL_CHASE.size-1
      $skill_chase_set = SKILL_CHASE
      if skill.id  == $skill_chase_set[0]
        @skill_chase_flg = true
        return
      end
    end
  end

  #--------------------------------------------------------------------------
  # ● フレーム更新 (メインフェーズ ステップ 4 : 対象側アニメーション)
  #--------------------------------------------------------------------------
  alias update_phase4_step4_skill_chase update_phase4_step4
  def update_phase4_step4
    # 追加攻撃
    if @skill_chase_flg
      # キーチェックを開始する
      @skill_chase_check_key = true
      # 追加攻撃実行中ならアニメーション再セット
      if $skill_chase_exercise
        @animation2_id = $skill_chase_set[2]
      end
      # 対象側アニメーション
      for target in @target_battlers
        # クリティカルでアニメーション変化
        if SKILL_CHASE_CRITICAL and target.critical and $skill_chase_first
          target.animation_id = $skill_chase_set[6]
        else
          # 一度でもクリティカルがあった
          if target.once_critical and SKILL_CHASE_DMG_ALL
            target.critical = true
          end
          target.animation_id = @animation2_id
        end
        target.animation_hit = (target.damage != "Miss")
      end
      # ウェイトを入れる
      if SKILL_CHASE_WAIT != nil
        @wait_count = SKILL_CHASE_WAIT
      end
      # ステップ 5 に移行
      @phase4_step = 5
      return
    end
    update_phase4_step4_skill_chase     # 原物
  end

  #--------------------------------------------------------------------------
  # ● 追加攻撃力設定
  #--------------------------------------------------------------------------
  def skill_chase_atk
    # 物理攻撃系
    if @skill.element_set.include?(CHASE_WEAPON)
      $chase_skill_type = 1
      $skill_atk_f = @skill.atk_f/100
    # 魔法攻撃系
    elsif @skill.element_set.include?(CHASE_MAGIC)
      $chase_skill_type = 2
      $skill_atk_f = @skill.int_f/100
    else
      p "設定ミス"
    end
    $skill_chase_set[1] = @skill.power * $skill_chase_set[1]/100
  end

  #--------------------------------------------------------------------------
  # ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
  #--------------------------------------------------------------------------
  alias update_phase4_step5_skill_chase update_phase4_step5
  def update_phase4_step5
    # キーチェック終了
    @skill_chase_check_key = false
    # 追加攻撃成功
    if @skill_chase_success
      skill_chase_atk
      # 追加攻撃実行中に移行
      $skill_chase_exercise = true
    end
    # ダメージ一括表示
    if SKILL_CHASE_DMG_ALL and $skill_chase_exercise
      # 追加攻撃終了or追加攻撃失敗
      if $skill_chase_end or !@skill_chase_success
        $skill_chase_exercise = false
        @skill_chase_flg = false
        $skill_chase_end = false
        # ヘルプウィンドウを隠す
        @help_window.visible = false
        # ステータスウィンドウをリフレッシュ
        @status_window.refresh
        # 積算ダメージの描写
        for target in @target_battlers
          if target.skill_chase_all_dmg != nil
            target.damage = target.skill_chase_all_dmg
            target.damage_pop = true
            target.skill_chase_all_dmg = nil
            # 途中で死んでたらトドメをさす
            if target.skill_chase_dead_end
              target.hp = 0
              target.skill_chase_dead_end = false
            end
          end
        end
        # ステップ 6 に移行
        @phase4_step = 6
        return
      end
    else
      update_phase4_step5_skill_chase       # 原物
    end
    # 追加攻撃終了or追加攻撃失敗
    if $skill_chase_end or !@skill_chase_success
      $skill_chase_exercise = false
      @skill_chase_flg = false
      $skill_chase_end = false
      if SKILL_CHASE_DMG_ALL
        for target in @target_battlers
          target.skill_chase_all_dmg = nil
          if target.skill_chase_dead_end
            target.hp = 0
          end
        end
      end
    end
    if $skill_chase_exercise
      @skill_chase_success = false
      # 追加攻撃開始
      @phase4_step = 2
      @active_battler.current_action.kind = 0
      @active_battler.current_action.basic = 0
    end
  end

  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias update_skill_chase update
  def update
    if @skill_chase_check_key and @skill_chase_flg
      # 追加攻撃発動チェック
      if (Input.trigger?(SKILL_CHASE_KEY) or $skill_chase_set[3])
        # 確率チェック
        if rand(100) <= $skill_chase_set[4]
          @skill_chase_success = true
          @skill_chase_check_key = false
          @skill_chase_count += 1
          # 追加攻撃回数チェック
          if @skill_chase_count >= $skill_chase_set[5] or $skill_chase_end
            $skill_chase_end = true
          else
            # 追加攻撃成功SEを鳴らしてみる
            if SKILL_CHASE_SE != nil or !$skill_chase_end
              Audio.se_play("Audio/SE/" + SKILL_CHASE_SE)
            end
          end
        end
      end
    end
    update_skill_chase              # 原物
  end

  #--------------------------------------------------------------------------
  # ● スキルレベル取得
  #--------------------------------------------------------------------------
  def get_skill_level
    return $game_actors[@activ_battler.eid].skill_level[@skill.id]
  end
end


#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler
  include Skill_chase
  attr_accessor :skill_chase_all_dmg           # 積算ダメージ
  attr_accessor :skill_chase_dead_end          # 死亡フラグ
  attr_accessor :once_critical           # クリティカルフラグ(一括表示用)
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias initialize_skill_chase initialize
  def initialize
    initialize_skill_chase
    @skill_chase_all_dmg = nil
    @skill_chase_dead_end = false
    @once_critical = false
  end

  #--------------------------------------------------------------------------
  # ● 通常攻撃の効果適用
  #     attacker : 攻撃者 (バトラー)
  #--------------------------------------------------------------------------
  alias attack_effect_skill_chase attack_effect
  def attack_effect(attacker)
    if $skill_chase_exercise
      # クリティカルフラグをクリア
      self.critical = false
      # 基本ダメージを計算
      if $chase_skill_type == 1
        atk_skill = (attacker.atk * $skill_atk_f + $skill_chase_set[1])/1.2
      elsif $chase_skill_type == 2
        atk_skill = (attacker.int * $skill_atk_f + $skill_chase_set[1])/1.2
      else
        p "設定ミス2"
      end
      atk = [atk_skill.to_int - self.pdef / 2, 0].max
      self.damage = atk * (20 + attacker.str) / 20
      # 属性修正
      self.damage *= elements_correct(attacker.element_set)
      self.damage /= 100
      # ダメージの符号が正の場合
      if self.damage > 0
        # クリティカル修正
        if rand(100) < 4 * attacker.dex / self.agi
          self.damage *= 2
          self.critical = true
          self.once_critical = true
        end
        # 防御修正
        if self.guarding?
          self.damage /= 2
        end
      end
      # 分散
      if self.damage.abs > 0
        amp = [self.damage.abs * 15 / 100, 1].max
        self.damage += rand(amp+1) + rand(amp+1) - amp
      end
      # 第二命中判定
      eva = 8 * self.agi / attacker.dex + self.eva
      hit = self.damage < 0 ? 100 : 100 - eva
      hit = self.cant_evade? ? 100 : hit
      hit_result = (rand(100) < hit)
      # 命中の場合
      if hit_result == true
        # ステート衝撃解除
        remove_states_shock
        # HP からダメージを減算
        self.hp -= self.damage
        # ステート変化
        @state_changed = false
        states_plus(attacker.plus_state_set)
        states_minus(attacker.minus_state_set)
      # ミスの場合
      else
        # ダメージに "Miss" を設定
        self.damage = "Miss"
        # クリティカルフラグをクリア
        self.critical = false
      end
    else
      attack_effect_skill_chase(attacker)      # 原物
    end
    if self.dead?
      # こいつはもう死んでいる
      @skill_chase_dead_end = true
      # ダメージ一括表示
      if SKILL_CHASE_DMG_ALL and $skill_chase_exercise
        # とりあえず生かしておく
        self.hp = 1
      else
        $skill_chase_end = true
      end
    end
    # ダメージ一括表示ならダメージの蓄積
    if SKILL_CHASE_DMG_ALL and self.damage != "Miss" and $skill_chase_exercise
      @skill_chase_all_dmg = (@skill_chase_all_dmg == nil ? 0 : @skill_chase_all_dmg)
      @skill_chase_all_dmg += self.damage
      self.damage = nil
    elsif SKILL_CHASE_DMG_ALL and self.damage != "Miss" and $skill_chase_first
      @skill_chase_all_dmg = (@skill_chase_all_dmg == nil ? 0 : @skill_chase_all_dmg)
      @skill_chase_all_dmg += self.damage
      $skill_chase_first = false
    else
      # ダメージミスなら終了
      if SKILL_CHASE_MISS and self.damage == "Miss"
        $skill_chase_end = true
        if SKILL_CHASE_DMG_ALL and @skill_chase_all_dmg == nil
          @skill_chase_all_dmg = "Miss"
        end
      end
    end
    # メソッド終了
    return true
  end

  #--------------------------------------------------------------------------
  # ● スキルの効果適用
  #     user  : スキルの使用者 (バトラー)
  #     skill : スキル
  #--------------------------------------------------------------------------
  alias skill_effect_skill_chase skill_effect
  def skill_effect(user, skill)
    ret = skill_effect_skill_chase(user, skill)
    if self.dead?
      # こいつはもう死んでいる
      @skill_chase_dead_end = true
      # ダメージ一括表示
      if SKILL_CHASE_DMG_ALL and ($skill_chase_exercise or $skill_chase_first)
        # とりあえず生かしておく
        self.hp = 1
      else
        $skill_chase_end = true
      end
    end
    # ダメージ一括表示ならダメージの蓄積
    if SKILL_CHASE_DMG_ALL and self.damage != "Miss" and $skill_chase_exercise
      @skill_chase_all_dmg = (@skill_chase_all_dmg == nil ? 0 : @skill_chase_all_dmg)
      @skill_chase_all_dmg += self.damage
      self.damage = nil
    elsif SKILL_CHASE_DMG_ALL and self.damage != "Miss" and $skill_chase_first
      @skill_chase_all_dmg = (@skill_chase_all_dmg == nil ? 0 : @skill_chase_all_dmg)
      @skill_chase_all_dmg = self.damage
      $skill_chase_first = false
    else
      # ダメージミスなら終了
      if SKILL_CHASE_MISS and self.damage == "Miss"
        $skill_chase_end = true
        if SKILL_CHASE_DMG_ALL and @skill_chase_all_dmg == nil
          @skill_chase_all_dmg = "Miss"
        end
      end
    end
    return ret
  end
end





[/pre]
------落尽红樱君不见,轻绘梨花泪沾衣。~~~
回复

使用道具 举报

梦石
0
星屑
1442
在线时间
328 小时
注册时间
2016-4-4
回帖
126

开拓者

 楼主| 发表于 2016-12-11 16:19:49 | 显示全部楼层
j296196585 发表于 2016-12-10 23:55
这个脚本 跟你说的差不多#============================================================================ ...

不... 感觉差的有点远...   我想要的效果是  这个角色用完一个技能后 自动释放另一个技能   并不是手动控制的 用公共事件的强制行动的话 又不知道判定条件怎么写  

点评

好吧  发表于 2016-12-11 21:53
回复

使用道具 举报

梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
回帖
5038

贵宾

发表于 2016-12-12 11:24:16 | 显示全部楼层
你可以说的再具体些,比如一开始释放的技能是单体对敌技能还是什么,然后后续自动释放的技能又是什么样的技能。

点评

就是一个人使用一个技能后通过公共事件或是脚本来让这个人自动再用一次别的技能  发表于 2016-12-16 22:40
我觉得他想表达的是技能之间的自动连续对接技能1-2-3-4结束!  发表于 2016-12-12 15:16
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

梦石
0
星屑
1442
在线时间
328 小时
注册时间
2016-4-4
回帖
126

开拓者

 楼主| 发表于 2016-12-24 11:55:48 | 显示全部楼层
好吧  终于找到了  在公共事件的条件分歧里写入$game_party.actors[0].id == 角色id  (“[0]”中的0是队伍中排头的人 以此类推 将里面的“0”换成“1”,“2”,“3”,分别对应 第 2 ,第3 ,第4人 ) 就行了   

点评

另外 我找到了一个插件 以后可以在==后面写@attacker代表使用者 @targets代表被选中的对象  发表于 2016-12-24 21:37
这个 由于目前这种技能不是很常见 所以 特别指定只有某个角色才能使用 所以 可以用这个 id特别指定  发表于 2016-12-24 21:36
问题不应该是怎么判断是0123哪个人在使用吗  发表于 2016-12-24 18:12
回复

使用道具 举报

梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 2016-12-28 20:53:05 | 显示全部楼层
本帖最后由 guoxiaomi 于 2016-12-28 22:34 编辑

占坑晚上回去写~

=== === ===
如何获取特技的使用者和被使用者
一个快速的方法是在脚本里添加:
[pre lang="ruby"]class Scene_Battle
  attr_reader     :active_battler
  attr_reader     :target_battlers
end[/pre]
然后技能调用公共事件,事件脚本里用'$scene.active_battler'就是使用者的Game_Actor/Game_Enemy对象。
事件脚本里用'$scene.target_battlers[0]'就是第一个目标的Game_Actor/Game_Enemy对象。
如果技能是单目标的话就是唯一的那个目标。

如何紧接着使用技能:
技能调用公共事件,公共事件里添加事件脚本:
[pre lang="ruby"]@a = $scene.active_battler
@action = @a.current_action
@action.kind = 1
@action.skill_id = 10
@action.target_index = 0
$game_temp.forcing_battler = @a
[/pre]
这样就会紧接着使用第10号特技,目标编号是第0个敌人/队友。如果第10号特技的目标不是单体,target_index无需设置。

关于action的各属性的设置方法,可以参见Game_BattleAction类的第8-18行,如果设置了forcing属性为true,技能会无视SP强制触发。
[pre lang="ruby" line="8"]class Game_BattleAction
  #--------------------------------------------------------------------------
  # ● 定义实例变量
  #--------------------------------------------------------------------------
  attr_accessor :speed                    # 速度
  attr_accessor :kind                     # 种类 (基本 / 特技 / 物品)
  attr_accessor :basic                    # 基本 (攻击 / 防御 / 逃跑)
  attr_accessor :skill_id                 # 特技 ID
  attr_accessor :item_id                  # 物品 ID
  attr_accessor :target_index             # 对像索引
  attr_accessor :forcing                  # 强制标志[/pre]

使用物品也是一样的。
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复

使用道具 举报

梦石
0
星屑
9160
在线时间
466 小时
注册时间
2015-5-8
回帖
704
发表于 2019-7-21 19:34:24 | 显示全部楼层
guoxiaomi 发表于 2016-12-28 20:53
占坑晚上回去写~

=== === ===

请教大神这段:
“然后技能调用公共事件,事件脚本里用'$scene.active_battler'就是使用者的Game_Actor/Game_Enemy对象。
事件脚本里用'$scene.target_battlers[0]'就是第一个目标的Game_Actor/Game_Enemy对象。
如果技能是单目标的话就是唯一的那个目标。”

咱还是不太懂,尤其是那两个“就是”...

点评

每个敌人和队友都是一个对象(Object),大概这么去理解吧  发表于 2019-7-24 21:56
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-7-21 19:48:46 | 显示全部楼层
taeckle 发表于 2019-7-21 19:34
请教大神这段:
“然后技能调用公共事件,事件脚本里用'$scene.active_battler'就是使用者的Game_Actor/G ...

有你这样问问题的吗..大神都没法答你..
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部