Project1

标题: 请教一下连击脚本的写法 [打印本页]

作者: cmbljsw    时间: 2008-6-30 01:25
标题: 请教一下连击脚本的写法
汗……我完全放弃自己写了,看得我都晕了……

搞了半天一点也看不明白,变量之类的完全看不出计算,显示之类的内容。

站上的连击系统太多多余系统了。

所以想请人写个类似彩虹神剑的那样连击。

有个要求,注释一下,方便我以后解决一些冲突……谢啦……{/cy}


作者: yangff    时间: 2008-6-30 01:25
多次攻击某个敌人?
作者: yangff    时间: 2008-6-30 01:27
VX是这样:
  1. class Scene_Battle < Scene_Base
  2.   def execute_action_skill
  3.     skill = @active_battler.action.skill   
  4.     ####################################################3
  5.     name = skill.name
  6.     if name.split(/,/)[0]
  7.       if name != nil
  8.          kill = name.split(/X/)[1]
  9.          if kill == nil or kill == ""
  10.            kill = 1
  11.          end
  12.          #p kill
  13.          #p name
  14.        end
  15.     end
  16.     for ii in 1..kill.to_i
  17.     ####################################################3333
  18.     skill = @active_battler.action.skill
  19.     text = @active_battler.name + skill.message1
  20.     @message_window.add_instant_text(text)
  21.     unless skill.message2.empty?
  22.       wait(10)
  23.       @message_window.add_instant_text(skill.message2)
  24.     end
  25.     targets = @active_battler.action.make_targets
  26.     display_animation(targets, skill.animation_id)
  27.     @active_battler.mp -= @active_battler.calc_mp_cost(skill)
  28.     $game_temp.common_event_id = skill.common_event_id
  29.     for target in targets
  30.       target.skill_effect(@active_battler, skill)
  31.       display_action_effects(target, skill)
  32.     end
  33.     end
  34.   end
  35. end
复制代码

其实很好理解
循环
作者: yangff    时间: 2008-6-30 01:30
XP:
  1.   #--------------------------------------------------------------------------
  2.   # ● 生成特技行动结果
  3.   #--------------------------------------------------------------------------
  4.   def make_skill_action_result
  5.    
  6.    
  7.     # 获取特技
  8.     @skill = $data_skills[@active_battler.current_action.skill_id]
  9.    ####################################################3
  10.    name = skill.name
  11.    if name.split(/,/)[0]
  12.      if name != nil
  13.         kill = name.split(/X/)[1]
  14.         if kill == nil or kill == ""
  15.           kill = 1
  16.         end
  17.         #p kill
  18.         #p name
  19.       end
  20.    end
  21.    for ii in 1..kill.to_i
  22.    ####################################################3333
  23.     # 如果不是强制行动
  24.     unless @active_battler.current_action.forcing
  25.       # 因为 SP 耗尽而无法使用的情况下
  26.       unless @active_battler.skill_can_use?(@skill.id)
  27.         # 清除强制行动对像的战斗者
  28.         $game_temp.forcing_battler = nil
  29.         # 移至步骤 1
  30.         @phase4_step = 1
  31.         return
  32.       end
  33.     end
  34.     # 消耗 SP
  35.     @active_battler.sp -= @skill.sp_cost
  36.     # 刷新状态窗口
  37.     @status_window.refresh
  38.     # 在帮助窗口显示特技名
  39.     @help_window.set_text(@skill.name, 1)
  40.     # 设置动画 ID
  41.     @animation1_id = @skill.animation1_id
  42.     @animation2_id = @skill.animation2_id
  43.     # 设置公共事件 ID
  44.     @common_event_id = @skill.common_event_id
  45.     # 设置对像侧战斗者
  46.     set_target_battlers(@skill.scope)
  47.     # 应用特技效果
  48.     for target in @target_battlers
  49.       target.skill_effect(@active_battler, @skill)
  50.     end
  51.     end
  52.   end
复制代码

作者: cmbljsw    时间: 2008-6-30 03:37
XP的……

不单单是技能,还有那个   name = skill.name

错误耶……没法测试……
作者: yangff    时间: 2008-6-30 17:52
以下引用cmbljsw于2008-6-29 19:37:22的发言:

XP的……

不单单是技能,还有那个   name = skill.name

错误耶……没法测试……

我不是故意的 {/gg}
  #--------------------------------------------------------------------------
  # ● 生成特技行动结果
  #--------------------------------------------------------------------------
  def make_skill_action_result
   
   
    # 获取特技
    @skill = $data_skills[@active_battler.current_action.skill_id]
   ####################################################3
   name = @skill.name
   if name.split(/,/)[0]
     if name != nil
        kill = name.split(/X/)[1]
        if kill == nil or kill == ""
          kill = 1
        end
        #p kill
        #p name
      end
   end
   for ii in 1..kill.to_i
   ####################################################3333
    # 如果不是强制行动
    unless @active_battler.current_action.forcing
      # 因为 SP 耗尽而无法使用的情况下
      unless @active_battler.skill_can_use?(@skill.id)
        # 清除强制行动对像的战斗者
        $game_temp.forcing_battler = nil
        # 移至步骤 1
        @phase4_step = 1
        return
      end
    end
    # 消耗 SP
    @active_battler.sp -= @skill.sp_cost
    # 刷新状态窗口
    @status_window.refresh
    # 在帮助窗口显示特技名
    @help_window.set_text(@skill.name, 1)
    # 设置动画 ID
    @animation1_id = @skill.animation1_id
    @animation2_id = @skill.animation2_id
    # 设置公共事件 ID
    @common_event_id = @skill.common_event_id
    # 设置对像侧战斗者
    set_target_battlers(@skill.scope)
    # 应用特技效果
    for target in @target_battlers
      target.skill_effect(@active_battler, @skill)
    end
    end
  end

作者: cmbljsw    时间: 2008-6-30 19:01
完全米有效果耶……{/gg}
作者: yangff    时间: 2008-6-30 19:22
以下引用cmbljsw于2008-6-30 11:01:12的发言:

完全米有效果耶……

技能名的后面+“,连击次数”
作者: 越前リョーマ    时间: 2008-6-30 23:09
以下引用yangff于2008-6-30 11:22:09的发言:


以下引用cmbljsw于2008-6-30 11:01:12的发言:

完全米有效果耶……


技能名的后面+“,连击次数”

话说你哪那个VX的根本没有连击数字出现……
作者: cmbljsw    时间: 2008-6-30 23:56
真的米效果呀……{/gg}

对了,我要的是那个利用动画闪烁。

不是那个单体连技。
是连击{/ll}
作者: dbshy    时间: 2008-7-1 00:15
http://rpg.blue/web/htm/news259.htm
作者: cmbljsw    时间: 2008-7-5 05:13
谢谢各位帮忙……虽然没找到满意的,但是嘿嘿……还是将就一下吧……




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1