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

Project1

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

[已经解决] 寻找VX的技能冷却脚本~要回合冷却的那种....

[复制链接]

Lv1.梦旅人

梦石
0
星屑
75
在线时间
6 小时
注册时间
2009-4-20
帖子
27
跳转到指定楼层
1
发表于 2010-7-7 14:06:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 DeathKing 于 2010-7-25 00:33 编辑

= =搜索什么的...我都用了....都没有...
话说怎么定做啊?.....哎....要不大技能一直用就没有意思了...
地下城与勇士 传说,紧张制作中。
想知道更多请到:http://hi.baidu.com/fglong

Lv1.梦旅人

梦石
0
星屑
50
在线时间
416 小时
注册时间
2006-10-21
帖子
1245
2
发表于 2010-7-7 14:33:00 | 只看该作者
还真的就是定制的
Game_Battler
skill_can_use?
return false unless movable?前插入
return false if skill.id == 技能編號 and state?(狀態編號)

如果技能的目标不是自己 无法附加冷却的状态的话

在skill_effect里
    if skill.id == 技能編號
       user.add_state(狀態編號)
    end
这样就算 目标不是使用者 也能给自己加上CD冷却状态了
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
帖子
840
3
发表于 2010-7-7 21:36:58 | 只看该作者
这个是技能延迟,就是咏唱的意思...我似乎有你要的 但...找不到
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/    ◆ 遅延スキル - KGC_DelaySkill ◆ VX ◆
#_/    ◇ Last update : 2009/09/13 ◇
#_/----------------------------------------------------------------------------
#_/  発動までにタイムラグが発生するスキルを作成します。
#_/============================================================================
#_/ 【戦闘画面】≪テイルズ式演出≫ より下に導入してください。
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

$imported = {} if $imported == nil
$imported["DelaySkill"] = true

module KGC
module DelaySkill
  module Regexp
    module Skill
      # 遅延スキル
      DELAY_SKILL = /<(?:DELAY_SKILL|遅延スキル)\s*(\d+)\s*,\s*(\d+)>/i
    end
  end
end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ RPG::Skill
#==============================================================================

class RPG::Skill < RPG::UsableItem
  #--------------------------------------------------------------------------
  # ○ 遅延スキルのキャッシュを生成
  #--------------------------------------------------------------------------
  def create_delay_skill_cache
    @__delay_skill_id = 0
    @__delay_skill_turn = 0

    self.note.each_line { |line|
      case line
      when KGC::DelaySkill::Regexp::Skill::DELAY_SKILL
        # 遅延スキル
        @__delay_skill_id = $1.to_i
        @__delay_skill_turn = $2.to_i
      end
    }
  end
  #--------------------------------------------------------------------------
  # ○ 遅延スキルか
  #--------------------------------------------------------------------------
  def delay_skill?
    create_delay_skill_cache if @__delay_skill_id == nil
    return (@__delay_skill_id > 0)
  end
  #--------------------------------------------------------------------------
  # ○ 遅延スキル ID
  #--------------------------------------------------------------------------
  def delay_skill_id
    create_delay_skill_cache if @__delay_skill_id == nil
    return @__delay_skill_id
  end
  #--------------------------------------------------------------------------
  # ○ 遅延スキル発動ターン数
  #--------------------------------------------------------------------------
  def delay_skill_turn
    create_delay_skill_cache if @__delay_skill_turn == nil
    return @__delay_skill_turn
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# □ Game_DelaySkillInfo
#------------------------------------------------------------------------------
#   遅延スキルの情報を保持するクラスです。
#==============================================================================

class Game_DelaySkillInfo
  #--------------------------------------------------------------------------
  # ○ 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :skill_id                 # 発動スキルID
  attr_accessor :turn_count               # 遅延ターン数
  attr_accessor :user                     # 発動者
  #--------------------------------------------------------------------------
  # ○ オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    @skill_id = 0
    @turn_count = 0
    @user = nil
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Game_Battler
#==============================================================================

class Game_Battler
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :delay_skills             # 遅延スキルリスト
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias initialize_KGC_DelaySkill initialize
  def initialize
    initialize_KGC_DelaySkill

    @delay_skills = []
  end
  #--------------------------------------------------------------------------
  # ● スキルの適用可能判定
  #     user  : スキルの使用者
  #     skill : スキル
  #--------------------------------------------------------------------------
  alias skill_effective_KGC_DelaySkill? skill_effective?
  def skill_effective?(user, skill)
    @delay_skill_effect = false

    result = skill_effective_KGC_DelaySkill?(user, skill)

    if result && skill.delay_skill?
      @delay_skill_effect = true
      result = false
    end
    return result
  end
  #--------------------------------------------------------------------------
  # ● スキルの効果適用
  #     user  : スキルの使用者
  #     skill : スキル
  #--------------------------------------------------------------------------
  alias skill_effect_KGC_DelaySkill skill_effect
  def skill_effect(user, skill)
    skill_effect_KGC_DelaySkill(user, skill)

    make_delay_skill_result(user, skill)
  end
  #--------------------------------------------------------------------------
  # ○ 遅延スキル効果
  #     user  : スキルの使用者
  #     skill : スキル
  #--------------------------------------------------------------------------
  def make_delay_skill_result(user, skill)
    return unless @skipped             # 遅延スキルなら @skipped == true
    return unless skill.delay_skill?   # 遅延スキルでない
    return unless @delay_skill_effect
    return if @missed || @evaded       # 効果なし

    ds = Game_DelaySkillInfo.new
    ds.turn_count = skill.delay_skill_turn
    ds.skill_id   = skill.delay_skill_id
    ds.user       = user
    self.delay_skills << ds
  end
end

#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

#==============================================================================
# ■ Scene_Battle
#==============================================================================

class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # ● 戦闘開始の処理
  #--------------------------------------------------------------------------
  alias process_battle_start_KGC_DelaySkill process_battle_start
  def process_battle_start
    clear_delay_skills

    process_battle_start_KGC_DelaySkill
  end
  #--------------------------------------------------------------------------
  # ○ 遅延スキルのクリア
  #--------------------------------------------------------------------------
  def clear_delay_skills
    actors = []
    (1...$data_actors.size).each { |i| actors << $game_actors }
    (actors + $game_troop.members).each { |battler|
      battler.delay_skills = []
    }
  end
  #--------------------------------------------------------------------------
  # ● 戦闘行動の処理
  #--------------------------------------------------------------------------
  alias process_action_KGC_DelaySkill process_action
  def process_action
    process_action_KGC_DelaySkill

    update_delay_skill if @active_battler != nil
  end
  #--------------------------------------------------------------------------
  # ○ 遅延スキルの更新
  #--------------------------------------------------------------------------
  def update_delay_skill
    @message_window.clear

    # 存在しなければ全解除
    unless @active_battler.exist?
      @active_battler.delay_skills = []
      return
    end

    # 各スキルの発動判定
    @active_battler.delay_skills.each_with_index { |ds, i|
      ds.turn_count -= 1
      if ds.turn_count <= 0
        @active_battler.delay_skills = nil
        execute_delay_skill(ds)
        @message_window.clear
      end
    }
    @active_battler.delay_skills.compact!
  end
  #--------------------------------------------------------------------------
  # ○ 遅延スキルの実行
  #     delay_skill : 実行する遅延スキル
  #--------------------------------------------------------------------------
  def execute_delay_skill(delay_skill)
    skill = $data_skills[delay_skill.skill_id]
    text  = @active_battler.name + skill.message1
    @message_window.add_instant_text(text)
    unless skill.message2.empty?
      wait(10)
      @message_window.add_instant_text(skill.message2)
    end
    display_animation([@active_battler], skill.animation_id)
    if $game_temp.common_event_id == 0
      $game_temp.common_event_id = skill.common_event_id
    end
    @active_battler.skill_effect(delay_skill.user, skill)
    display_action_effects(@active_battler, skill)
  end
end
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
75
在线时间
6 小时
注册时间
2009-4-20
帖子
27
4
 楼主| 发表于 2010-7-7 23:45:47 | 只看该作者
但是话说怎么用啊?我想要那种回合冷却的那种....

点评

我给的不就是啊?  发表于 2010-7-7 23:46
地下城与勇士 传说,紧张制作中。
想知道更多请到:http://hi.baidu.com/fglong
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
75
在线时间
6 小时
注册时间
2009-4-20
帖子
27
5
 楼主| 发表于 2010-7-8 12:07:53 | 只看该作者
那怎么设置回合数啊?

点评

状态持续几回合就几回合啊  发表于 2010-7-8 12:48
地下城与勇士 传说,紧张制作中。
想知道更多请到:http://hi.baidu.com/fglong
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
148 小时
注册时间
2009-10-4
帖子
5
6
发表于 2010-7-9 08:46:17 | 只看该作者
技能冷卻.rar (262.25 KB, 下载次数: 399)

出處:http://blog.yam.com/a870053jjkj/
看看能不能用

评分

参与人数 1星屑 +700 收起 理由
DeathKing + 700 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
75
在线时间
6 小时
注册时间
2009-4-20
帖子
27
7
 楼主| 发表于 2010-7-9 22:23:22 | 只看该作者
看看...能用就谢谢了
地下城与勇士 传说,紧张制作中。
想知道更多请到:http://hi.baidu.com/fglong
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 10:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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