VX 스크립트

#==========================================================================
=====
#--------------------------=�€� Skill Cooldown �€�=---------------------------------
#---------------------------=�€� by: DrDhoom �€�=-----------------------------------
# Version: 1.1
# Date Published: 05 - 04 - 2011
# Battle Addon
# RPGMakerID Community
#-------------------------------------------------------------------------------
# Introduction:
# This script make a skill have cooldown.
#-------------------------------------------------------------------------------
# Compatibility:
# - Tankentai Sideview Battle System
# - Wij's Battle Macros
# Note: not tested in other battle system
#-------------------------------------------------------------------------------
# How to use:
#  - Insert this script above Main
#  - Insert under all Battle System Core Script
#===============================================================================

module Dhoom
  module SkillCooldown
  
    SHOW_COOLDOWN_NUMBER = true #true = cooldown number of skill show
                                #      at the end of skill name  
  
    #RGB Color
    COOLDOWN_COLOR = Color.new(255,0,0,128)  
  
    SKILL_CD = []        #<----Don't delete this line # 괄호에 쿨타임이 될 숫자를 삽입합니다.
  
    #SKILL_CD[skill id] = number of cooldown (1 is minimum number) # 첫번째 괄호에 스킬번호를 넣습니다.

    SKILL_CD[1] = 1 # 쿨타임 1, 해당 주석은 문제가 되면 삭제해주세요.
    SKILL_CD[2] = 9 # 쿨타임 9, 해당 주석은 문제가 되면 삭제해주세요.
  end
end

#===============================================================================
# Start
#===============================================================================

#-------------------------------------------------------------------------------
# Window Base
#-------------------------------------------------------------------------------

class Window_Base

  def draw_skill_cooldown_name(item, x, y, enabled = true)
    if item != nil
      if @actor.skill_cooldown(item.id) != nil
        if @actor.skill_cooldown(item.id)!= 0
          cd_color = Dhoom::SkillCooldown::COOLDOWN_COLOR
          draw_icon(item.icon_index, x, y, enabled)
          self.contents.font.color = cd_color
          if Dhoom::SkillCooldown::SHOW_COOLDOWN_NUMBER
            self.contents.draw_text(x + 24, y, 172, WLH, item.name + '(' +@actor.skill_cooldown(item.id).to_s + ')')
          else
            self.contents.draw_text(x + 24, y, 172, WLH, item.name)
          end
        else
          draw_icon(item.icon_index, x, y, enabled)
          self.contents.font.color = normal_color
          self.contents.font.color.alpha = enabled ? 255 : 128
          self.contents.draw_text(x + 24, y, 172, WLH, item.name)
        end
      else
        draw_icon(item.icon_index, x, y, enabled)
        self.contents.font.color = normal_color
        self.contents.font.color.alpha = enabled ? 255 : 128
        self.contents.draw_text(x + 24, y, 172, WLH, item.name)
      end
    end
  end
end

#-------------------------------------------------------------------------------
# Window Skill
#-------------------------------------------------------------------------------

class Window_Skill < Window_Selectable

  def draw_item(index)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    skill = @data[index]
    if skill != nil
      rect.width -= 4
      enabled = @actor.skill_can_use?(skill)
      draw_skill_cooldown_name(skill, rect.x, rect.y, enabled)
      self.contents.draw_text(rect, @actor.calc_mp_cost(skill), 2)
    end
  end
end

#-------------------------------------------------------------------------------
# Game Actor
#-------------------------------------------------------------------------------

class Game_Actor

  alias dsc_actor_setup setup
  alias dsc_skill_can_use? skill_can_use?

  def setup(actor_id)
    dsc_actor_setup(actor_id)
    @skill_cooldown = []
  end

  def make_cooldown_value(id)
    @skill_cooldown[id] = Dhoom::SkillCooldown::SKILL_CD[id]
    if $imported == nil
      @skill_cooldown[id] += 1
    elsif $imported["TankentaiATB"]
      @skill_cooldown[id] -= 0
    elsif $imported["TankentaiSideview"]
      @skill_cooldown[id] += 1
    else
      @skill_cooldown[id] += 1
    end
  end

  def skill_cooldown(id)
    return @skill_cooldown[id]
  end

  def decrease_cooldown(id)
    @skill_cooldown[id] -= 1
  end
  
  def reset_cooldown(id)
    @skill_cooldown[id] = 0
  end

  def skill_can_use?(skill)
    if skill_cooldown(skill.id) != nil
      return false if skill_cooldown(skill.id) != 0
    end
    dsc_skill_can_use?(skill)
  end
end

#-------------------------------------------------------------------------------
# Scene Battle
#-------------------------------------------------------------------------------

class Scene_Battle < Scene_Base
  
  alias dsc_battle_end battle_end
  alias dsc_execute_action_skill execute_action_skill
  alias dsc_start_actor_command_selection start_actor_command_selection
  
  def battle_end(result)
    for actor in $game_party.members
      for skill in actor.skills
        actor.reset_cooldown(skill.id)
      end
    end
    dsc_battle_end(result)
  end

  def execute_action_skill
    dsc_execute_action_skill
    skill = @active_battler.action.skill
    if Dhoom::SkillCooldown::SKILL_CD[skill.id] != nil
      @active_battler.make_cooldown_value(skill.id)
    end
  end

  def start_actor_command_selection
    dsc_start_actor_command_selection
    if @active_battler != nil and @active_battler.actor?    
      for skill in @active_battler.skills
        if @active_battler.skill_cooldown(skill.id) != nil
          if @active_battler.skill_cooldown(skill.id) != 0
            @active_battler.decrease_cooldown(skill.id)
          end
        end
      end
    elsif @commander !=nil
      for skill in @commander.skills
        if @commander.skill_cooldown(skill.id) != nil
          if @commander.skill_cooldown(skill.id) != 0
            @commander.decrease_cooldown(skill.id)
          end
        end
      end
    end
  end
end

#===============================================================================
# End
#===============================================================================

 

 

현재 학교라서 구체적인 실험은 하지 못했습니다.

다른 쿨타임 관련 스크립트는 http://rmrk.net/index.php?topic=47726.0 [ 겸 출처 ]

Who's 스리아씨

?
뺘라뺘뺘
Comment '3'
  • ?
    스리아씨님 축하합니다.^^ 2013.12.05 14:42
    포인트 팡팡!에 당첨되셨습니다.
    스리아씨님은 7포인트를 보너스로 받으셨습니다.
  • ?
    듀란테 2015.07.25 23:19
    처음에 좀 안되는거같더니, 2번정도 수정좀해주니까 다시됬내요. ㄳㄳ
  • ?
    듀란테 2015.08.18 20:34
    여러분, 이 스크립트는 문제점이있어서 사용을 못함.
    제가올린 [RPG VX]턴알 스킬 쿨타임 스크립트! (잘돌아감)
    게시글에서 가져가는걸 추천드림.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 3 습작 2012.12.24 5408
37 전투 사이드뷰 스크립트 [2003 전투 방식] 39 아방스 2008.03.09 8406
36 아이템 KGC]아이템 합성 29 file 찌나 2008.03.08 5124
35 전투 KGC]전투형태 오버드라이브(턴알) 13 찌나 2008.03.08 5656
34 전투 Actor Battler Graphics 13 아방스 2008.03.07 3065
33 그래픽 Multiple Fogs 1.0 4 아방스 2008.03.05 2886
32 메시지 Quick Face Border 12 아방스 2008.03.05 4161
31 상점 스킬 샾 스크립트 2.0 48 아방스 2008.03.05 6628
30 기타 텍스트 파일 읽어 오는 스크립트 11 아방스 2008.03.04 2878
29 액터 캐릭터에 다양한 효과주기 투명도 조절 9 아방스 2008.03.04 2943
28 상태/속성 상태 메뉴 변경 스크립트 45 죄송해욧! 2008.03.01 4284
27 전투 VX 사이드 뷰 전투 (2003 방식) 16 드로드맨 2008.02.24 4996
26 전투 rpgvx 간단액알 스크립트 제작: 41 *PS 2008.02.07 9824
25 타이틀/게임오버 메인 화면을 건너뛰고 시작하는 스크립트 14 아방스 2008.02.01 3064
24 그래픽 밤낮 변환 스크립트 18 kram3 2008.01.31 3762
23 이동 및 탈것 점프를 제한 하는 스크립트 15 아방스 2008.01.31 4605
22 이동 및 탈것 vx 걸을때 소리가 나도도록 하는 스크립트 33 아방스 2008.01.31 3948
21 기타 VX에서 포그 그래픽을 사용하자 16 아방스 2008.01.31 3895
20 메뉴 윈도우창 크기 조절 스크립트 0.3 5 아방스 2008.01.30 3038
19 맵/타일 ◆ 타일 세트 확장 스크립트 [업데이트 수정] 24 file 아방이 2008.01.30 4386
18 변수/스위치 특정 키눌러서 스위치 온 시키는 스크립트 7 아방이 2008.01.30 2608
Board Pagination Prev 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 Next
/ 32