AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



Le Deal du moment : -29%
DYSON V8 Origin – Aspirateur balai sans fil
Voir le deal
269.99 €

Partagez
 

 [VX] EquipExtension

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Invité
Invité
avatar



[VX] EquipExtension Empty
MessageSujet: [VX] EquipExtension   [VX] EquipExtension Icon_minitimeVen 18 Avr 2008 - 1:03

Voici un script que j'adore!
Vous pouvez avoir plusieur equipement.
Regardez le Screen ci-dessous.

[VX] EquipExtension Equip_10

INSTRUCTION:
Placez le script au dessus de main.

A la ligne 28 vous pouvez choisir quelle equipement ajouté. (EXTRA_EQUIP_KIND = ["Shoulder", "Feet"])

A la ligne 35 vous placez l'ordre que vous voulez vos équipement. (EQUIP_TYPE = [0, 1, 2, 4, 5, 3, 3])

A la ligne 53 et 55 vous choisisez le maximum et Minimum de Equipement points.
(EP_MAX = 20, EP_MIN = 4 )

Allez a la ligne 59 pour choisir combien de EP que tu gagne par Level. (EP_CALC_EXP = "level * 0.2 + 3")

Pour choisir combien de EP qu' un equipement vaux vous devez écrire dans Notes.
Voici un screen pour vous aider.


[VX] EquipExtension Equip10
Revenir en haut Aller en bas
Invité
Invité
avatar



[VX] EquipExtension Empty
MessageSujet: Re: [VX] EquipExtension   [VX] EquipExtension Icon_minitimeVen 18 Avr 2008 - 1:05

Code:
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#_/    ◆ 装備拡張 - KGC_EquipExtension ◆ VX ◆
#_/    ◇ Last update : 2008/03/02 ◇
#_/----------------------------------------------------------------------------
#_/  装備関連の機能を拡張します。
#_/============================================================================
#_/ 【メニュー】≪拡張装備画面≫ より下に導入してください。
#It sets EP to the equipment, when total EP of the equipment exceeds one fixed-command,
 #try not to be able to equip.
#It is equipment edition of the ≪ skill CP system ≫.
#The # & expansion equipment classification
 #EXTRA_EQUIP_KIND = [“foot” and “technical skill book”]
# the equipment classification which in this part of customization item, newly is drawn up is appointed.
#With example the classification, “foot” and the “technical skill book” is drawn up.
#Number of the classification which it drew up, from the first 4, 5 and 6, becomes with… in order.
#(In case of example, “the foot” 4, the “technical skill book” 6)
 #after setting with customization item, < equipment classification name > adds to the memo column of the guard.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#==============================================================================
# ★ カスタマイズ項目 - Customize ★
#==============================================================================
module KGC
module EquipExtension
  # ◆ From the extended equipment
  #classification  first in order 4, 5 and 6,… Is allotted.
  EXTRA_EQUIP_KIND = ["Shoulder", "Feet"]
  # ◆ After
  #the equipment place list # weapon, it lines up in the order which is appointed here.
  #Unless the # * equipment place is minimum of one, two swords style is a bug [ru] possibility.
  #  * Equipment classification summary &
  # 0. Shield 1. Head 2. Body 3. Ornament 4~. It defines with the ↑
  EQUIP_TYPE = [0, 1, 2, 4, 5, 3, 3]
  # ◆ EP (Equip Point) 制を使用する
  USE_EP_SYSTEM = true
  # ◆ EP の名前
  VOCAB_EP  = "EP"
  # ◆ EP の名前 (略)
  VOCAB_EP_A = "E"
  # ◆ ステータス画面に EP を表示する
  SHOW_STATUS_EP = true
  # ◆ 消費 EP 既定値
  #  消費 EP が指定されていない装備品で使用。
  DEFAULT_EP_COST  = 1
  # ◆ 消費 EP 0 は表示しない
  HIDE_ZERO_EP_COST = true
  # ◆ EP 上限
  EP_MAX = 20
  # ◆ EP 下限
  EP_MIN = 4
  # ◆ 最大 EP 算出式
  #  level..アクターのレベル
  #  Because integer it is converted automatically, the result becoming in decimal, OK.
  EP_CALC_EXP = "level * 0.2 + 3"
  # ◆ 消費 EP 値の色 (アイテム名の末尾に付く数値)
  #  数値  : \C[n] と同じ色。
  #  Color : 指定した色。 ( Color.new(128, 255, 255) など )
  EP_COST_COLOR        = 23
  # ◆ EP ゲージの開始色
  EP_GAUGE_START_COLOR = 28
  # ◆ EP ゲージの終了色
  EP_GAUGE_END_COLOR  = 29
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
$imported = {} if $imported == nil
$imported["EquipExtension"] = true
module KGC::EquipExtension
  # EP 制を使用しない場合の設定
  unless USE_EP_SYSTEM
    SHOW_STATUS_EP = false
    HIDE_ZERO_EP_COST = true
  end
  # 正規表現
  module Regexp
    # ベースアイテム
    module BaseItem
      # 消費 EP
      EP_COST = /<EP\s*(\d+)>/i
      # 装備タイプ
      EQUIP_TYPE = /<(?:EQUIP_TYPE|装備タイプ)\s*(\d+(?:\s*,\s*\d+)*)>/
    end
    # 防具
    module Armor
      # 装備種別
      EQUIP_KIND = /<(?:EQUIP_KIND|装備種別)\s*(.+)>/i
    end
  end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# □ KGC::Commands
#==============================================================================
module KGC::Commands
  module_function
  #--------------------------------------------------------------------------
  # ○ アクターの装備を修復
  #--------------------------------------------------------------------------
  def restore_equip
    (1...$data_actors.size).each { |i|
      actor = $game_actors[i]
      actor.restore_equip
    }
  end
  #--------------------------------------------------------------------------
  # ○ アクターの装備タイプを設定
  #    actor_id  : アクター ID
  #    equip_type : 装備タイプ
  #--------------------------------------------------------------------------
  def set_actor_equip_type(actor_id, equip_type = nil)
    actor = $game_actors[actor_id]
    return if actor == nil
    actor.equip_type = equip_type
  end
  #--------------------------------------------------------------------------
  # ○ アクターの装備を変更
  #    actor_id  : アクター ID
  #    index      : 装備部位 (0~)
  #    item_id    : 武器 or 防具 ID (0 で解除)
  #--------------------------------------------------------------------------
  def change_actor_equipment(actor_id, index, item_id)
    actor = $game_actors[actor_id]
    return if actor == nil
    actor.change_equip_by_id(index, item_id)
  end
end
class Game_Interpreter
  include KGC::Commands
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Vocab
#==============================================================================
module Vocab
  # EP
  def self.ep
    return KGC::EquipExtension::VOCAB_EP
  end
  # EP (略)
  def self.ep_a
    return KGC::EquipExtension::VOCAB_EP_A
  end
  # 拡張防具欄
  def self.extra_armor(index)
    return KGC::EquipExtension::EXTRA_EQUIP_KIND[index]
  end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ RPG::BaseItem
#==============================================================================
class RPG::BaseItem
  #--------------------------------------------------------------------------
  # ○ 装備拡張のキャッシュを作成
  #--------------------------------------------------------------------------
  def create_equip_extension_cache
    @__ep_cost = KGC::EquipExtension::DEFAULT_EP_COST
    @__equip_type = []
    self.note.split(/[\r\n]+/).each { |line|
      case line
      when KGC::EquipExtension::Regexp::BaseItem::EP_COST
        # 消費 EP
        @__ep_cost = $1.to_i
      when KGC::EquipExtension::Regexp::BaseItem::EQUIP_TYPE
        # 装備タイプ
        @__equip_type = []
        $1.scan(/\d+/) { |num|
          @__equip_type << num.to_i
        }
      end
    }
    # EP 制を使用しない場合は消費 EP = 0
    @__ep_cost = 0 unless KGC::EquipExtension::USE_EP_SYSTEM
  end
  #--------------------------------------------------------------------------
  # ○ 消費 EP
  #--------------------------------------------------------------------------
  def ep_cost
    create_equip_extension_cache if @__ep_cost == nil
    return @__ep_cost
  end
  #--------------------------------------------------------------------------
  # ○ 装備タイプ
  #--------------------------------------------------------------------------
  def equip_type
    create_equip_extension_cache if @__equip_type == nil
    return @__equip_type
  end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ RPG::Armor
#==============================================================================
class RPG::Armor < RPG::BaseItem
  #--------------------------------------------------------------------------
  # ○ 装備拡張のキャッシュを作成
  #--------------------------------------------------------------------------
  def create_equip_extension_cache
    super
    @__kind = -1
    self.note.split(/[\r\n]+/).each { |line|
      if line =~ KGC::EquipExtension::Regexp::Armor::EQUIP_KIND
        # 装備種別
        e_index = KGC::EquipExtension::EXTRA_EQUIP_KIND.index($1)
        next if e_index == nil
        @__kind = e_index + 4
      end
    }
  end
unless $@
  #--------------------------------------------------------------------------
  # ○ 種別
  #--------------------------------------------------------------------------
  alias kind_KGC_EquipExtension kind
  def kind
    create_equip_extension_cache if @__kind == nil
    return (@__kind == -1 ? kind_KGC_EquipExtension : @__kind)
  end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_writer  :equip_type              # 装備タイプ
  #--------------------------------------------------------------------------
  # ● セットアップ
  #    actor_id : アクター ID
  #--------------------------------------------------------------------------
  alias setup_KGC_EquipExtension setup
  def setup(actor_id)
    actor = $data_actors[actor_id]
    @extra_armor_id = []
    setup_KGC_EquipExtension(actor_id)
    restore_equip
  end
  #--------------------------------------------------------------------------
  # ○ MaxEP 取得
  #--------------------------------------------------------------------------
  def maxep
    n = Integer(eval(KGC::EquipExtension::EP_CALC_EXP))
    return [[n, ep_limit].min, KGC::EquipExtension::EP_MIN].max
  end
  #--------------------------------------------------------------------------
  # ○ EP 取得
  #--------------------------------------------------------------------------
  def ep
    n = 0
    equips.compact.each { |item| n += item.ep_cost }
    return [maxep - n, 0].max
  end
  #--------------------------------------------------------------------------
  # ○ EP 上限取得
  #--------------------------------------------------------------------------
  def ep_limit
    return KGC::EquipExtension::EP_MAX
  end
  #--------------------------------------------------------------------------
  # ○ 防具欄の取得
  #--------------------------------------------------------------------------
 
Revenir en haut Aller en bas
Invité
Invité
avatar



[VX] EquipExtension Empty
MessageSujet: Re: [VX] EquipExtension   [VX] EquipExtension Icon_minitimeVen 18 Avr 2008 - 1:05

Code:
def equip_type
    if @equip_type.is_a?(Array)
      return @equip_type
    else
      return KGC::EquipExtension::EQUIP_TYPE
    end
  end
  #--------------------------------------------------------------------------
  # ○ 防具欄の数
  #--------------------------------------------------------------------------
  def armor_number
    return equip_type.size
  end
  #--------------------------------------------------------------------------
  # ○ 拡張防具欄の数
  #--------------------------------------------------------------------------
  def extra_armor_number
    return [armor_number - 4, 0].max
  end
  #--------------------------------------------------------------------------
  # ○ 防具 ID リストの取得
  #--------------------------------------------------------------------------
  def extra_armor_id
    @extra_armor_id = [] if @extra_armor_id == nil
    return @extra_armor_id
  end
  #--------------------------------------------------------------------------
  # ● 防具オブジェクトの配列取得
  #--------------------------------------------------------------------------
  alias armors_KGC_EquipExtension armors
  def armors
    result = armors_KGC_EquipExtension
    # 5番目以降の防具を追加
    extra_armor_number.times { |i|
      armor_id = extra_armor_id[i]
      result << (armor_id == nil ? nil : $data_armors[armor_id])
    }
    return result
  end
  #--------------------------------------------------------------------------
  # ● 装備の変更 (オブジェクトで指定)
  #    equip_type : 装備部位
  #    item      : If weapon or guard (nil equipment cancellation)
  #    test      : テストフラグ (戦闘テスト、または装備画面での一時装備)
  #--------------------------------------------------------------------------
  alias change_equip_KGC_EquipExtension change_equip
  def change_equip(equip_type, item, test = false)
    change_equip_KGC_EquipExtension(equip_type, item, test)
    # When there is an extended guard column only,
    if extra_armor_number > 0
      item_id = item == nil ? 0 : item.id
      case equip_type
      when 5..armor_number  # Extended guard column
        @extra_armor_id = [] if @extra_armor_id == nil
        @extra_armor_id[equip_type - 5] = item_id
      end
    end
    restore_battle_skill if $imported["SkillCPSystem"]
    restore_passive_rev  if $imported["PassiveSkill"]
  end
  #--------------------------------------------------------------------------
  # ● 装備の破棄
  #    item : 破棄する武器 or 防具
  #    武器/防具の増減で「装備品も含める」のとき使用する。
  #--------------------------------------------------------------------------
  alias discard_equip_KGC_EquipExtension discard_equip
  def discard_equip(item)
    last_armors = [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
    discard_equip_KGC_EquipExtension(item)
    curr_armors = [@armor1_id, @armor2_id, @armor3_id, @armor4_id]
    return unless item.is_a?(RPG::Armor)  # 防具でない
    return if last_armors != curr_armors  # 既に破棄された
    # 拡張防具欄を検索
    extra_armor_number.times { |i|
      if extra_armor_id[i] == item.id
        @extra_armor_id[i] = 0
        break
      end
    }
    restore_battle_skill if $imported["SkillCPSystem"]
    restore_passive_rev  if $imported["PassiveSkill"]
  end
  #--------------------------------------------------------------------------
  # ● 職業 ID の変更
  #    class_id : 新しい職業 ID
  #--------------------------------------------------------------------------
  alias class_id_equal_KGC_EquipExtension class_id=
  def class_id=(class_id)
    class_id_equal_KGC_EquipExtension(class_id)
    return if extra_armor_number == 0  # 拡張防具欄がない
    # 装備できない拡張防具を外す
    for i in 5..armor_number
      change_equip(i, nil) unless equippable?(equips[i])
    end
  end
  #--------------------------------------------------------------------------
  # ○ EP 条件クリア判定
  #    equip_type : 装備部位
  #    item      : 武器 or 防具
  #--------------------------------------------------------------------------
  def ep_condition_clear?(equip_type, item)
    return true if item == nil  # nil は解除なので OK
    curr_item = equips[equip_type]
    offset = (curr_item != nil ? curr_item.ep_cost : 0)
    return false if self.ep < (item.ep_cost - offset)  # EP 不足
    return true
  end
  #--------------------------------------------------------------------------
  # ○ 装備を修復
  #--------------------------------------------------------------------------
  def restore_equip
    return if @__last_equip_type == equip_type
    # 以前の装備品・パラメータを退避
    last_equips = equips
    last_hp = self.hp
    last_mp = self.mp
    if $imported["SkillCPSystem"]
      last_battle_skill_ids = battle_skill_ids.clone
    end
    # 全装備解除
    last_equips.each_index { |i| change_equip(i, nil) }
    # 装備品・パラメータを復元
    last_equips.compact.each { |item| equip_legal_slot(item) }
    self.hp = last_hp
    self.mp = last_mp
    if $imported["SkillCPSystem"]
      last_battle_skill_ids.each_with_index { |s, i| set_battle_skill(i, s) }
    end
    @__last_equip_type = equip_type.clone
    Graphics.frame_reset
  end
  #--------------------------------------------------------------------------
  # ○ 装備品を正しい箇所にセット
  #    item : 武器 or 防具
  #--------------------------------------------------------------------------
  def equip_legal_slot(item)
    if item.is_a?(RPG::Weapon)
      if @weapon_id == 0
        # 武器 1
        change_equip(0, item)
      elsif two_swords_style && @armor1_id == 0
        # 武器 2 (二刀流の場合)
        change_equip(1, item)
      end
    elsif item.is_a?(RPG::Armor)
      if !two_swords_style && item.kind == equip_type[0] && @armor1_id == 0
        # 先頭の防具 (二刀流でない場合)
        change_equip(1, item)
      else
        # 装備箇所リストを作成
        list = [-1, @armor2_id, @armor3_id, @armor4_id]
        list += extra_armor_id
        # You set to the place where it is correct, at the same time has been less crowded
        equip_type.each_with_index { |kind, i|
          if kind == item.kind && list[i] == 0
            change_equip(i + 1, item)
            break
          end
        }
      end
    end
  end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_Base
#==============================================================================
class Window_Base < Window
  #--------------------------------------------------------------------------
  # ○ EP の文字色を取得
  #    actor : アクター
  #--------------------------------------------------------------------------
  def ep_color(actor)
    return knockout_color if actor.maxep > 0 && actor.ep == 0
    return normal_color
  end
  #--------------------------------------------------------------------------
  # ○ EP ゲージの色 1 の取得
  #--------------------------------------------------------------------------
  def ep_gauge_color1
    color = KGC::EquipExtension::EP_GAUGE_START_COLOR
    return (color.is_a?(Integer) ? text_color(color) : color)
  end
  #--------------------------------------------------------------------------
  # ○ EP ゲージの色 2 の取得
  #--------------------------------------------------------------------------
  def ep_gauge_color2
    color = KGC::EquipExtension::EP_GAUGE_END_COLOR
    return (color.is_a?(Integer) ? text_color(color) : color)
  end
  #--------------------------------------------------------------------------
  # ○ EP の描画
  #    actor : アクター
  #    x    : 描画先 X 座標
  #    y    : 描画先 Y 座標
  #    width : 幅
  #--------------------------------------------------------------------------
  def draw_actor_ep(actor, x, y, width = 120)
    draw_actor_ep_gauge(actor, x, y, width)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 30, WLH, Vocab::ep_a)
    self.contents.font.color = ep_color(actor)
    xr = x + width
    if width < 120
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.ep, 2)
    else
      self.contents.draw_text(xr - 90, y, 40, WLH, actor.ep, 2)
      self.contents.font.color = normal_color
      self.contents.draw_text(xr - 50, y, 10, WLH, "/", 2)
      self.contents.draw_text(xr - 40, y, 40, WLH, actor.maxep, 2)
    end
    self.contents.font.color = normal_color
  end
  #--------------------------------------------------------------------------
  # ○ EP ゲージの描画
  #    actor : アクター
  #    x    : 描画先 X 座標
  #    y    : 描画先 Y 座標
  #    width : 幅
  #--------------------------------------------------------------------------
  def draw_actor_ep_gauge(actor, x, y, width = 120)
    gw = width * actor.ep / [actor.maxep, 1].max
    gc1 = ep_gauge_color1
    gc2 = ep_gauge_color2
    self.contents.fill_rect(x, y + WLH - 8, width, 6, gauge_back_color)
    self.contents.gradient_fill_rect(x, y + WLH - 8, gw, 6, gc1, gc2)
  end
  #--------------------------------------------------------------------------
  # ○ 消費 EP の描画
  #    item    : 武器 or 防具
  #    rect    : 描画する領域
  #    enabled : 許可状態
  #--------------------------------------------------------------------------
  def draw_equipment_ep_cost(item, rect, enabled = true)
    return if item == nil
    # 消費 EP 0 を表示しない場合
    return if KGC::EquipExtension::HIDE_ZERO_EP_COST && item.ep_cost == 0
    color = KGC::EquipExtension::EP_COST_COLOR
    self.contents.font.color = (color.is_a?(Integer) ?
      text_color(color) : color)
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(rect, item.ep_cost, 2)
  end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_Equip
#==============================================================================
class Window_Equip < Window_Selectable
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @data = @actor.equips.clone
    @item_max = [@data.size, @actor.armor_number + 1].min
    create_contents
    # 装備箇所を描画
    self.contents.font.color = system_color
    if @actor.two_swords_style
      self.contents.draw_text(4, WLH * 0, 92, WLH, Vocab::weapon1)
      self.contents.draw_text(4, WLH * 1, 92, WLH, Vocab::weapon2)
    else
      self.contents.draw_text(4, WLH * 0, 92, WLH, Vocab::weapon)
      name = armor_slot_name(@actor.equip_type[0])
      self.contents.draw_text(4, WLH * 1, 92, WLH, name)
    end
    for i in [url=http://rpg-maker-vx.bbactif.com/mailto:1...@actor.armor_number]1...@actor.armor_number[/url]
      name = armor_slot_name(@actor.equip_type[i])
      self.contents.draw_text(4, WLH * (i + 1), 92, WLH, name)
    end
    # 装備品を描画
    rect = Rect.new(92, 0, self.width - 128, WLH)
    @item_max.times { |i|
      rect.y = WLH * i
      draw_item_name(@data[i], rect.x, rect.y)
      draw_equipment_ep_cost(@data[i], rect)
    }
  end
Revenir en haut Aller en bas
Invité
Invité
avatar



[VX] EquipExtension Empty
MessageSujet: Re: [VX] EquipExtension   [VX] EquipExtension Icon_minitimeVen 18 Avr 2008 - 1:06

Code:
#--------------------------------------------------------------------------
  # ○ 防具欄の名称を取得
  #    kind : 種別
  #--------------------------------------------------------------------------
  def armor_slot_name(kind)
    case kind
    when 0..3
      return eval("Vocab.armor#{kind + 1}")
    else
      return Vocab.extra_armor(kind - 4)
    end
  end
unless $imported["ExtendedEquipScene"]
  #--------------------------------------------------------------------------
  # ● カーソルを 1 ページ後ろに移動
  #--------------------------------------------------------------------------
  def cursor_pagedown
    return if Input.repeat?(Input::R)
    super
  end
  #--------------------------------------------------------------------------
  # ● カーソルを 1 ページ前に移動
  #--------------------------------------------------------------------------
  def cursor_pageup
    return if Input.repeat?(Input::L)
    super
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    super
    return unless self.active
    if Input.repeat?(Input::RIGHT)
      cursor_pagedown
    elsif Input.repeat?(Input::LEFT)
      cursor_pageup
    end
  end
end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_EquipItem
#==============================================================================
class Window_EquipItem < Window_Item
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    @item_enabled = []
    super
    @data.each { |item| @item_enabled << enable?(item) }
  end
  #--------------------------------------------------------------------------
  # ● アイテムをリストに含めるかどうか
  #    item : アイテム
  #--------------------------------------------------------------------------
  def include?(item)
    return true if item == nil
    if @equip_type == 0
      return false unless item.is_a?(RPG::Weapon)
    else
      return false unless item.is_a?(RPG::Armor)
      return false unless item.kind == @equip_type - 1
    end
    return @actor.equippable?(item)
  end
  #--------------------------------------------------------------------------
  # ● アイテムを許可状態で表示するかどうか
  #    item : アイテム
  #--------------------------------------------------------------------------
  def enable?(item)
    return false unless @actor.equippable?(item)                      # 装備不可
    return false unless @actor.ep_condition_clear?(@equip_type, item)  # EP 不足
    return true
  end
  #--------------------------------------------------------------------------
  # ● 項目の描画
  #    index : 項目番号
  #--------------------------------------------------------------------------
  def draw_item(index)
    super(index)   
    rect = item_rect(index)
    item = @data[index]
    # 個数表示分の幅を削る
    cw = self.contents.text_size(sprintf(":%2d", 0)).width
    rect.width -= cw + 4
    draw_equipment_ep_cost(item, rect, enable?(item))
  end
  #--------------------------------------------------------------------------
  # ○ 簡易リフレッシュ
  #    equip_type : 装備部位
  #--------------------------------------------------------------------------
  def simple_refresh(equip_type)
    # Modifying the equipment region temporarily
    last_equip_type = @equip_type
    @equip_type = equip_type
    @data.each_with_index { |item, i|
      # 許可状態が変化した項目のみ再描画
      if enable?(item) != @item_enabled[i]
        draw_item(i)
        @item_enabled[i] = enable?(item)
      end
    }
    # 装備部位を戻す
    @equip_type = last_equip_type
  end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_EquipStatus
#==============================================================================
class Window_EquipStatus < Window_Base
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  alias refresh_KGC_EquipExtension refresh
  def refresh
    refresh_KGC_EquipExtension
    draw_actor_ep(@actor, 120, 0, 56) if KGC::EquipExtension::USE_EP_SYSTEM
  end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_Status
#==============================================================================
class Window_Status < Window_Base
if KGC::EquipExtension::SHOW_STATUS_EP
  #--------------------------------------------------------------------------
  # ● 基本情報の描画
  #    x : 描画先 X 座標
  #    y : 描画先 Y 座標
  #--------------------------------------------------------------------------
  alias draw_basic_info_KGC_EquipExtension draw_basic_info
  def draw_basic_info(x, y)
    draw_basic_info_KGC_EquipExtension(x, y)
    draw_actor_ep(@actor, x + 160, y + WLH * 4)
  end
end
  #--------------------------------------------------------------------------
  # ● 装備品の描画
  #    x : 描画先 X 座標
  #    y : 描画先 Y 座標
  #--------------------------------------------------------------------------
  def draw_equipments(x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 120, WLH, Vocab::equip)
    item_number = [@actor.equips.size, @actor.armor_number + 1].min
    item_number.times { |i|
      draw_item_name(@actor.equips[i], x + 16, y + WLH * (i + 1))
    }
  end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Window_ShopStatus
#==============================================================================
class Window_ShopStatus < Window_Base
  #--------------------------------------------------------------------------
  # ● アクターの現装備と能力値変化の描画
  #    actor : アクター
  #    x    : 描画先 X 座標
  #    y    : 描画先 Y 座標
  #--------------------------------------------------------------------------
  def draw_actor_parameter_change(actor, x, y)
    return if @item.is_a?(RPG::Item)
    enabled = actor.equippable?(@item)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(x, y, 200, WLH, actor.name)
    if @item.is_a?(RPG::Weapon)
      item1 = weaker_weapon(actor)
    elsif actor.two_swords_style and @item.kind == 0
      item1 = nil
    else
      index = actor.equip_type.index(@item.kind)
      item1 = (index != nil ? actor.equips[1 + index] : nil)
    end
    if enabled
      if @item.is_a?(RPG::Weapon)
        atk1 = item1 == nil ? 0 : item1.atk
        atk2 = @item == nil ? 0 : @item.atk
        change = atk2 - atk1
      else
        def1 = item1 == nil ? 0 : item1.def
        def2 = @item == nil ? 0 : @item.def
        change = def2 - def1
      end
      self.contents.draw_text(x, y, 200, WLH, sprintf("%+d", change), 2)
    end
    draw_item_name(item1, x, y + WLH, enabled)
  end
end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_Equip
#==============================================================================
class Scene_Equip < Scene_Base
  #--------------------------------------------------------------------------
  # ● 定数
  #--------------------------------------------------------------------------
  EQUIP_TYPE_MAX = KGC::EquipExtension::EXTRA_EQUIP_KIND.size + 5
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #    actor_index : アクターインデックス
  #    equip_index : 装備インデックス
  #--------------------------------------------------------------------------
  alias initialize_KGC_EquipExtension initialize
  def initialize(actor_index = 0, equip_index = 0)
    initialize_KGC_EquipExtension(actor_index, equip_index)
    unit = ($imported["LargeParty"] ?
      $game_party.all_members : $game_party.members)
    actor = unit[actor_index]
    @equip_index = [@equip_index, actor.armor_number].min
  end
  #--------------------------------------------------------------------------
  # ● アイテムウィンドウの作成
  #--------------------------------------------------------------------------
  alias create_item_windows_KGC_EquipExtension create_item_windows
  def create_item_windows
    create_item_windows_KGC_EquipExtension
    kind = equip_kind(@equip_index)
    EQUIP_TYPE_MAX.times { |i|
      @item_windows[i].visible = (kind == i)
    }
  end
  #--------------------------------------------------------------------------
  # ● アイテムウィンドウの更新
  #--------------------------------------------------------------------------
  def update_item_windows
    kind = equip_kind(@equip_window.index)
    for i in 0...EQUIP_TYPE_MAX
      @item_windows[i].visible = (kind == i)
      @item_windows[i].update
    end
    @item_window = @item_windows[kind]
    @item_window.simple_refresh(@equip_window.index)
  end
  #--------------------------------------------------------------------------
  # ○ 装備欄の種別を取得
  #    index : Equipment column index
  #--------------------------------------------------------------------------
  def equip_kind(index)
    if index == 0
      return 0
    else
      return @actor.equip_type[index - 1] + 1
    end
  end
unless $imported["ExtendedEquipScene"]
  #--------------------------------------------------------------------------
  # ● ステータスウィンドウの更新
  #--------------------------------------------------------------------------
  def update_status_window
    if @equip_window.active
      @status_window.set_new_parameters(nil, nil, nil, nil)
    elsif @item_window.active
      temp_actor = Marshal.load(Marshal.dump(@actor))
      temp_actor.change_equip(@equip_window.index, @item_window.item, true)
      new_atk = temp_actor.atk
      new_def = temp_actor.def
      new_spi = temp_actor.spi
      new_agi = temp_actor.agi
      @status_window.set_new_parameters(new_atk, new_def, new_spi, new_agi)
    end
    @status_window.update
  end
end
  #--------------------------------------------------------------------------
  # ● アイテム選択の更新
  #--------------------------------------------------------------------------
  alias update_item_selection_KGC_EquipExtension update_item_selection
  def update_item_selection
    if Input.trigger?(Input::C)
      # 装備不可能な場合
      index = @equip_window.index
      item = @item_window.item
      unless item == nil ||
          (@actor.equippable?(item) && @actor.ep_condition_clear?(index, item))
        Sound.play_buzzer
        return
      end
    end
    update_item_selection_KGC_EquipExtension
  end
end
Revenir en haut Aller en bas
Invité
Invité
avatar



[VX] EquipExtension Empty
MessageSujet: Re: [VX] EquipExtension   [VX] EquipExtension Icon_minitimeVen 18 Avr 2008 - 1:06

Code:
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#==============================================================================
# ■ Scene_File
#==============================================================================
class Scene_File < Scene_Base
  #--------------------------------------------------------------------------
  # ● セーブデータの読み込み
  #    file : 読み込み用ファイルオブジェクト (オープン済み)
  #--------------------------------------------------------------------------
  alias read_save_data_KGC_EquipExtension read_save_data
  def read_save_data(file)
    read_save_data_KGC_EquipExtension(file)
    KGC::Commands.restore_equip
    Graphics.frame_reset
  end
end



Enjoy!!
Revenir en haut Aller en bas
lesims100
Citadin Lv.7
Citadin Lv.7
avatar


Masculin Age : 31
Inscrit le : 06/04/2008
Messages : 167

[VX] EquipExtension Empty
MessageSujet: Re: [VX] EquipExtension   [VX] EquipExtension Icon_minitimeVen 18 Avr 2008 - 3:19

Woaw tu es en feu ce soir, tu en post des scripts ! Very Happy
Revenir en haut Aller en bas
fabY
dYeu retraité prématurément
dYeu retraité prématurément
fabY


Masculin Age : 29
Inscrit le : 09/02/2008
Messages : 5357

[VX] EquipExtension Empty
MessageSujet: Re: [VX] EquipExtension   [VX] EquipExtension Icon_minitimeVen 18 Avr 2008 - 9:14

lesims100 a écrit:
Woaw tu es en feu ce soir, tu en post des scripts ! Very Happy

Je te réctifie : Le matin xD.
Il vit en Amérique, c'est pour ça qu'il est si actif la nuit x).
Merci beaucoup =D, bonne nuit ^^.
Revenir en haut Aller en bas
https://rpg-maker-vx.bbactif.com/
lesims100
Citadin Lv.7
Citadin Lv.7
avatar


Masculin Age : 31
Inscrit le : 06/04/2008
Messages : 167

[VX] EquipExtension Empty
MessageSujet: Re: [VX] EquipExtension   [VX] EquipExtension Icon_minitimeMer 14 Mai 2008 - 3:17

ahah, moi aussi je vie au Québec.


Dernière édition par lesims100 le Mer 23 Juil 2008 - 23:07, édité 1 fois
Revenir en haut Aller en bas
Invité
Invité
avatar



[VX] EquipExtension Empty
MessageSujet: Re: [VX] EquipExtension   [VX] EquipExtension Icon_minitimeMer 14 Mai 2008 - 12:27

Les script de "KGC" (je sais pas si c'est un groupe, ou une seule personne) sont vraiment très bien, seule chose c'est que ceux-ci soit en japonais, mais à la limite c'est pas plus mal, ça permet de bien voir la maniere dont est fait le script pour reussir a le traduire, puis on apprend toujours des mots nouveau comme ça :p
(Par contre, les script sont vraiment long, a la limite, peut-etre faudrait-il le mettre dans un seul fichier texte qu'il faudrait heberger ensuite, -- a la rigueur une démo ?-- )
Revenir en haut Aller en bas
MirainoHikari
Ex-Admin-Script
Ex-Admin-Script
MirainoHikari


Masculin Age : 42
Inscrit le : 26/05/2008
Messages : 2360

[VX] EquipExtension Empty
MessageSujet: Re: [VX] EquipExtension   [VX] EquipExtension Icon_minitimeJeu 5 Juin 2008 - 0:36

Juste un petit update que plusieurs connaissent de toute façon maintenant... Ceci répondra à toute vos questions.
Revenir en haut Aller en bas
http://mirainohikari.deviantart.com
Felix12
Habitant Lv.6
Habitant Lv.6
avatar


Masculin Age : 28
Avertissements : 2
Inscrit le : 12/10/2008
Messages : 116

[VX] EquipExtension Empty
MessageSujet: Re: [VX] EquipExtension   [VX] EquipExtension Icon_minitimeDim 12 Oct 2008 - 3:52

J'ai un probleme , dans le script 3 , il me dise que la ligne 41 a une erreur
Revenir en haut Aller en bas
http://felix1232515.skyrock.com
Gothor
Chevalier Lv.17
Chevalier Lv.17
Gothor


Masculin Age : 31
Inscrit le : 27/04/2008
Messages : 1835

[VX] EquipExtension Empty
MessageSujet: Re: [VX] EquipExtension   [VX] EquipExtension Icon_minitimeDim 12 Oct 2008 - 8:18

Le code qu'il a donné n'est qu'un seul et unique script, seulement il l'a mis en plusieurs parties parce que les admins ont la flemme de modifier le nombre maximum de caractères dans un message ><
Mais sinon tu prends tous les codes et les mets les uns après les autres... c'est peut-être pour ça Wink

Mais quel culot =O !
Revenir en haut Aller en bas
Contenu sponsorisé




[VX] EquipExtension Empty
MessageSujet: Re: [VX] EquipExtension   [VX] EquipExtension Icon_minitime

Revenir en haut Aller en bas
 

[VX] EquipExtension

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» Script EquipExtension (Résolu)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Scripts VX - RGSS2 :: Objets et compétences-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Cookies | Forum gratuit