Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

[RMVX] ziifee's spin command question(s)

hey guys ^_^,i am using ziifee's spin command script and i have a question,2 too be exact!


Question 1:
how do i change the location of the spin commands hud??

Question 2:
how would i add commands too it??

heres the script
Code:
=begin ========================================================================

 * ziifee's Spin Command for RPG Tankentai Sideview Battle System with ATB

   <ATB Only>

   ã€€-This script is only for the Tankentai SBS with the ATB installed.

   <Image Required>

     Spin40 : Spin40.png is required in the Graphics/System folder.

=end # ========================================================================

 

module ZiiN7

  

  # â–¼ Spin Command/Icon Index Number

  ATTACK = 1                                # Attack (Default)

  GUARD = 52                                # Guard

  SKILL = 128                              # Skill

  ITEM = 144                                # Item

  ESCAPE = 143                            # Escape

 

  

  # â–¼ Spin Command/Direction of Rotation ( "normal" or "reverse" )

  #   Determines how Spin Command rotates according to left/right key press.

  TURN = "normal"

  

  # â–¼ Spin Command/Switch Actor Command Button

  #   Define input button used to switch between actors with full ATB gauges.

  SWITCH_COMMAND_BUTTON = Input::X

  

  #--------------------------------------------------------------------------

  # ● 通常回転 の判定 (スピンコマンド) Ignore this.

  #--------------------------------------------------------------------------

  def self.turn_normal?

    return false if TURN == "reverse"

    return true

  end

end

 

#==============================================================================

# â–  module N02   for ATB Ver1.1

#==============================================================================

module N02

  # ATB Gauge Positions.  Overwrites ATB_PARTY_POSITION defined in ATB Config.

  ATB_PARTY_POSITION = [[64,306],[160,306],[256,306],[352,306]] 

end

 

 

#******************************************************************************

# ★ ベース

#******************************************************************************

#==============================================================================

# â–  Window_SpinCommand

#------------------------------------------------------------------------------

#  回転用コマンド選択を行うウィンドウです。

#==============================================================================

 

class Window_SpinCommand < Window_Base

  #--------------------------------------------------------------------------

  # ● 公開インスタンス変数

  #--------------------------------------------------------------------------

  attr_reader   :index                  # カーソル位置

  attr_reader   :help_window              # ヘルプウィンドウ

  #--------------------------------------------------------------------------

  # ● オブジェクト初期化

  #  cx / cy  : 中心の X座標 / Y座標

  #  commands : コマンド配列 (内容 は [name, kind, pull, enabled?])

  #  setting  : 設定ハッシュ ("R"=>半径 "S"=>速さ "G"=>背景 "L"=>文字)

  #--------------------------------------------------------------------------

  def initialize(cx, cy, commands, setting = {})

    @radius = setting.has_key?("R") ? setting["R"] : 40  # 描画半径

    @speed   = setting.has_key?("S") ? setting["S"] : 36  # 回転速さ

    @spin_back = setting.has_key?("G") ? setting["G"] : ""  # 背景画像

    @spin_line = setting.has_key?("L") ? setting["L"] : nil # 文字位置

    x, y = cx - @radius - 28, cy - @radius - 28

    width = height = @radius * 2 + 56

    super(x, y, width, height)

    self.opacity = 0

    @index = 0

    @commands = commands                                    # コマンド

    @spin_right = true

    @spin_count = 0

    update_cursor

  end

  #--------------------------------------------------------------------------

  # â–½ スピン画像を描画する (描画内容 強化用)

  #  i  : インデックス

  #  cx : 表示 中心位置 X座標

  #  cy : 表示 中心位置 Y座標

  #--------------------------------------------------------------------------

  def draw_spin_graphic(i, cx, cy)

    case command_kind(i)

    when "icon"

      draw_icon(command_pull(i), cx - 12, cy - 12, command_enabled?(i))

    end

  end

  #--------------------------------------------------------------------------

  # ★ リフレッシュ バグ回避用

  #--------------------------------------------------------------------------

  def refresh

    set_spin

  end

  #--------------------------------------------------------------------------

  # ★ 項目の描画 バグ回避用

  #--------------------------------------------------------------------------

  def draw_item(index, enabled = true)

    @commands[index][3] = enabled

    set_spin

  end

  #--------------------------------------------------------------------------

  # ● 現在のコマンド名を取得する

  #--------------------------------------------------------------------------

  def command_name(index = @index)

    return "" if index < 0

    name = @commands[index][0]

    return name != nil ? name : ""

  end

  #--------------------------------------------------------------------------

  # ● コマンドの種類を取得

  #--------------------------------------------------------------------------

  def command_kind(index)

    result = @commands[index][1]

    return result != nil ? result : ""

  end

  #--------------------------------------------------------------------------

  # ● コマンドの引数 を取得

  #--------------------------------------------------------------------------

  def command_pull(index)

    result = @commands[index][2]

    return result != nil ? result : ""

  end

  #--------------------------------------------------------------------------

  # ● コマンドの有効フラグを取得

  #--------------------------------------------------------------------------

  def command_enabled?(index)

    result = @commands[index][3]

    return result != nil ? result : true

  end

  #--------------------------------------------------------------------------

  # ● 名前の位置に index を設定する

  #--------------------------------------------------------------------------

  def set_index(name)

    n = -1

    for i in [email=0...@commands.size]0...@commands.size[/email]

      n = i if @commands[i][0] == name

    end

    @index = n if n >= 0

    update_cursor

    call_update_help

    set_spin

  end

  #--------------------------------------------------------------------------

  # ● カーソル位置の設定

  #  index : 新しいカーソル位置

  #--------------------------------------------------------------------------

  def index=(index)

    @index = index

    update_cursor

    call_update_help

    set_spin

  end

  #--------------------------------------------------------------------------

  # ● 中心のX座標を取得

  #--------------------------------------------------------------------------

  def center_x

    return contents.width / 2

  end

  #--------------------------------------------------------------------------

  # ● 中心のY座標を取得

  #--------------------------------------------------------------------------

  def center_y

    return contents.height / 2

  end

  #--------------------------------------------------------------------------

  # ● 項目数の取得

  #--------------------------------------------------------------------------

  def item_max

    return @commands.size

  end

  #--------------------------------------------------------------------------

  # ● 背景の設定 (再定義 向き)

  #--------------------------------------------------------------------------

  def set_background

    return if @spin_back == ""

    bitmap = Cache.system(@spin_back)

    rect = Rect.new(0, 0, bitmap.width, bitmap.height)

    self.contents.blt(12, 12, bitmap, rect)

  end

  #--------------------------------------------------------------------------

  # ● 文章の設定 (再定義 向き)

  #--------------------------------------------------------------------------

  def set_text

    return if @spin_line == nil

    y = center_y - WLH / 2 + @spin_line

    self.contents.draw_text(center_x - 48, y, 96, WLH, command_name, 1)

  end

  #--------------------------------------------------------------------------

  # ● スピンアイコンの角度の差を取得する

  #--------------------------------------------------------------------------

  def angle_size

    return (Math::PI * 2 / item_max)

  end

  #--------------------------------------------------------------------------

  # ● スピンアイコン回転時のカウント を設定する

  #--------------------------------------------------------------------------

  def set_spin_count

    @spin_count = angle_size * 360 / @speed

    set_spin(true)

  end

  #--------------------------------------------------------------------------

  # ● スピン設定 の実行

  #  spin : 回転フラグ (true の時回転中)

  #--------------------------------------------------------------------------

  def set_spin(spin = false)

    self.contents.clear

    set_background

    angle = spin ? @speed * @spin_count / 360 : 0

    angle = @spin_right ? angle : -angle

    for i in 0...item_max

      n = (i - @index) * angle_size + angle

      cx = @radius * Math.sin(n) + center_x

      cy = - @radius * Math.cos(n) + center_y

      draw_spin_graphic(i, cx, cy)

    end

    set_text

  end

  #--------------------------------------------------------------------------

  # ● フレーム更新

  #--------------------------------------------------------------------------

  def update

    super

    update_cursor

    if @spin_count > 0

      @spin_count -= 1

      set_spin(@spin_count >= 1)

      return

    end

    update_command

  end

  #--------------------------------------------------------------------------

  # ● コマンドの移動可能判定

  #--------------------------------------------------------------------------

  def command_movable?

    return false if @spin_count > 0

    return false if (not visible or not active)

    return false if (index < 0 or index > item_max or item_max == 0)

    return false if (@opening or @closing)

    return true

  end

  #--------------------------------------------------------------------------

  # ● コマンドを右に移動

  #--------------------------------------------------------------------------

  def command_right

    @index = (@index + 1) % item_max

    @spin_right = true

    set_spin_count

  end

  #--------------------------------------------------------------------------

  # ● コマンドを左に移動

  #--------------------------------------------------------------------------

  def command_left

    @index = (@index - 1 + item_max) % item_max

    @spin_right = false

    set_spin_count

  end

  #--------------------------------------------------------------------------

  # ● コマンド選択の更新

  #--------------------------------------------------------------------------

  def update_command

    if command_movable?

      if Input.press?(Input::RIGHT)

        Sound.play_cursor

        ZiiN7.turn_normal? ? command_right : command_left

      end

      if Input.press?(Input::LEFT)

        Sound.play_cursor

        ZiiN7.turn_normal? ? command_left : command_right

      end

    end

    call_update_help

  end

  #--------------------------------------------------------------------------

  # ● カーソルの更新

  #--------------------------------------------------------------------------

  def update_cursor

    if @index < 0

      self.cursor_rect.empty

    else

      rect = Rect.new(0, 0, 24, 24)

      rect.x = center_x - rect.width / 2

      rect.y = center_y - rect.height / 2 - @radius

      self.cursor_rect = rect

    end

  end

  #--------------------------------------------------------------------------

  # ● ヘルプウィンドウの設定

  #  help_window : 新しいヘルプウィンドウ

  #--------------------------------------------------------------------------

  def help_window=(help_window)

    @help_window = help_window

    call_update_help

  end

  #--------------------------------------------------------------------------

  # ● ヘルプウィンドウ更新メソッドの呼び出し

  #--------------------------------------------------------------------------

  def call_update_help

    if self.active and @help_window != nil

       update_help

    end

  end

  #--------------------------------------------------------------------------

  # ● ヘルプウィンドウの更新 (内容は継承先で定義する)

  #--------------------------------------------------------------------------

  def update_help

  end

end

 

#******************************************************************************

# ★ 本作成

#******************************************************************************

 

#==============================================================================

# â–  Window_ActorCommand

#==============================================================================

 

class Window_ActorCommand < Window_SpinCommand

  #--------------------------------------------------------------------------

  # ● オブジェクト初期化

  #--------------------------------------------------------------------------

  def initialize

    set = []

    set.push([Vocab::attack, "icon", ZiiN7::ATTACK, true])

    set.push([Vocab::skill,  "icon", ZiiN7::SKILL,  true])

    set.push([Vocab::guard,  "icon", ZiiN7::GUARD,  true])

    set.push([Vocab::item,   "icon", ZiiN7::ITEM,   true])

    super(64, 64, set, {"R"=>40, "S"=>52, "L"=>-12, "G"=>"Spin40"})

    self.active = false

    set_spin

  end

  #-------------------------------------------------------------------------

 

  #--------------------------------------------------------------------------

  # ● セットアップ

  #  actor : アクター

  #--------------------------------------------------------------------------

  def setup(actor)

    @commands[0][2] = ZiiN7::ATTACK

    @commands[1][0] = Vocab::skill

    if actor.weapons[0] != nil

      n = actor.weapons[0].icon_index

      @commands[0][2] = n if n > 0

    end

    @commands[1][0] = actor.class.skill_name if actor.class.skill_name_valid

    self.index = 0

    set_spin

  end

end

 

#==============================================================================

# â–  Window_BattleStatus

#==============================================================================

 

class Window_BattleStatus

  #--------------------------------------------------------------------------

  # ● オブジェクト初期化 改

  #--------------------------------------------------------------------------

  def initialize

    super(128, 0, 416, 128)

    @column_max = 4

    refresh

    self.active = false

    self.opacity = 0

  end

  #--------------------------------------------------------------------------

  # ● 項目の描画 改

  #--------------------------------------------------------------------------

  def draw_item(index)

    x = index * 96

    rect = Rect.new(x, 0, 96, 96)

    self.contents.clear_rect(rect)

    self.contents.font.color = normal_color

    actor = $game_party.members[index]

    draw_actor_face(actor, x + 2, 2, 92)

    draw_actor_state(actor, x + 72, WLH * 3)

    self.contents.font.color = hp_color(actor)

    size = 14

    self.contents.font.size = size

    self.contents.draw_text(x, WLH * 1 + 20 - size, 80, WLH, actor.name)

    self.contents.font.size = 20

    draw_actor_hp(actor, x, WLH * 2, 80)

    draw_actor_mp(actor, x, WLH * 3, 70)

  end

  #--------------------------------------------------------------------------

  # ● カーソルの更新

  #--------------------------------------------------------------------------

  def update_cursor

    self.cursor_rect.empty

  end

end

 

#******************************************************************************

# ★ アクティブタイム改造部

#******************************************************************************

 

#==============================================================================

# â–  Scene_Battle

#==============================================================================

class Scene_Battle

  #--------------------------------------------------------------------------

  # ★ コマンド更新  â€»å†å®šç¾©

  #--------------------------------------------------------------------------

  def update_actor_command_selection

    # コマンド入力できる状態でなくなればキャンセル

    return reset_command unless commanding?

    if Input.trigger?(Input::B)

      Input.update

      Sound.play_decision

      start_party_command

    elsif Input.trigger?(Input::C)

      Input.update

      case @actor_command_window.index

      when 0  # 攻撃

        Sound.play_decision

        @commander.action.set_attack

        start_target_enemy_selection

      when 1  # スキル

        Sound.play_decision

        $in_select = true

        start_skill_selection

      when 2  # 防御

        Sound.play_decision

        @commander.action.set_guard

        end_command

      when 3

        Sound.play_decision

        call_partyform      

      when 4  # アイテム

        Sound.play_decision

        $in_select = true

        start_item_selection

      end

      

    # シフトキーでコマンドキャラ送り ************************************

    elsif Input.trigger?(ZiiN7::SWITCH_COMMAND_BUTTON)

      next_commander

    #********************************************************************

    

    end

  end

end

i really need this helpT_T
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top