SEPHICLOUD
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

SEPHICLOUD

LE FORUM SUR LES MAKERS DE RPG
 
AccueilPortailRechercherDernières imagesS'enregistrerConnexion
Le deal à ne pas rater :
Funko POP! Jumbo One Piece Kaido Dragon Form : où l’acheter ?
Voir le deal

 

 (script)Un Petit ajout pour le menu equiper

Aller en bas 
3 participants
AuteurMessage
polm
HEROS
HEROS
polm


Nombre de messages : 68
Age : 122
ou tu est ? : je suis sur msn en train de parler a l'FBI
Date d'inscription : 02/07/2006

(script)Un Petit ajout pour le menu equiper Empty
MessageSujet: (script)Un Petit ajout pour le menu equiper   (script)Un Petit ajout pour le menu equiper EmptyLun 3 Juil - 17:25

salut a tous voici un autre script qui permet de faire un petit ajout interressant s'appellant auto equip

c'est quoi auto equip?;

au fait c'est une option permettant de faire equiper le personnage des meilleurs objets qu'ils peux equiper en un seul appui

Je Pense qu'un screen n'est pas necessaire il ya juste auto-equip dans le menu equiper

script:

Creer un script au dessu de main nommez le comme voulez et inserez ce code dedans

Code:

#==============================================================================
# ■ Harts_Window_EquipTitle
#------------------------------------------------------------------------------
#  装備画面で、タイトルを表示するウィンドウ。
#==============================================================================

class Harts_Window_EquipTitle < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 160, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.clear
    self.contents.font.color = normal_color
    self.contents.draw_text(4, 0, 120, 32, $data_system.words.equip, 1)
  end
end

#==============================================================================
# ■ Harts_Window_EquipCommand
#------------------------------------------------------------------------------
#  装備の選択を行うウィンドウです。
#==============================================================================

class Harts_Window_EquipCommand < Window_Selectable
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(160, 0, 480, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    @item_max = 3
    @column_max = 3
    @commands = ["Equiper", "Auto-Equip", "Annuler"]
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    for i in 0...@item_max
      draw_item(i, normal_color)
    end
  end
  #--------------------------------------------------------------------------
  # ● 項目の描画
  #    index : 項目番号
  #    color : 文字色
  #--------------------------------------------------------------------------
  def draw_item(index, color)
    self.contents.font.color = color
    x = index * 160 + 4
    self.contents.draw_text(x, 0, 128, 32, @commands[index], 1)
  end
end

#==============================================================================
# ■ Harts_Window_EquipItem
#------------------------------------------------------------------------------
#  装備画面で、装備変更の候補となるアイテムの一覧を表示するウィンドウです。
#==============================================================================

class Harts_Window_EquipItem < Window_Selectable
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #    actor      : アクター
  #    equip_type : 装備部位 (0~3)
  #--------------------------------------------------------------------------
  def initialize(actor, equip_type)
    super(272, 256, 368, 160)
    @actor = actor
    @equip_type = equip_type
    @column_max = 1
    refresh
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  # ● アイテムの取得
  #--------------------------------------------------------------------------
  def item
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # ● 最強アイテムのid取得
  #--------------------------------------------------------------------------
  def max_item_id
    if @equip_type == 0
      if @actor.weapon_id == 0
        max = 0
      else
        max = $data_weapons[@actor.weapon_id].atk
      end
    elsif @equip_type == 1
      if @actor.armor1_id == 0
        max = 0
      else
        max = $data_armors[@actor.armor1_id].pdef
      end
    elsif @equip_type == 2
      if @actor.armor2_id == 0
        max = 0
      else
        max = $data_armors[@actor.armor2_id].pdef
      end
    elsif @equip_type == 3
      if @actor.armor3_id == 0
        max = 0
      else
        max = $data_armors[@actor.armor3_id].pdef
      end
    end
    for i in 0...@data.size-1
      if @equip_type == 0
        if max <= $data_weapons[@data[i].id].atk
          max = $data_weapons[@data[i].id].atk
          item_id = @data[i].id
        end
      elsif @equip_type >= 1
        if max <= $data_armors[@data[i].id].pdef
          max = $data_armors[@data[i].id].pdef
          item_id = @data[i].id
        end
      end
    end
    return item_id
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    # 装備可能な武器を追加
    if @equip_type == 0
      weapon_set = $data_classes[@actor.class_id].weapon_set
      for i in 1...$data_weapons.size
        if $game_party.weapon_number(i) > 0 and weapon_set.include?(i)
          @data.push($data_weapons[i])
        end
      end
    end
    # 装備可能な防具を追加
    if @equip_type >= 1
      armor_set = $data_classes[@actor.class_id].armor_set
      for i in 1...$data_armors.size
        if $game_party.armor_number(i) > 0 and armor_set.include?(i)
          if $data_armors[i].kind == @equip_type-1
            @data.push($data_armors[i])
          end
        end
      end
    end
    # 空白を追加
    @data.push(nil)
    # ビットマップを作成し、全項目を描画
    @item_max = @data.size
    self.contents = Bitmap.new(width - 32, row_max * 32)
    for i in 0...@item_max-1
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  # ● 項目の描画
  #    index : 項目番号
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    x = 4
    y = index * 32
    case item
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    bitmap = RPG::Cache.icon(item.icon_name)
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
    self.contents.font.color = normal_color
    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
    self.contents.draw_text(x + 280, y, 16, 32, ":", 1)
    self.contents.draw_text(x + 296, y, 24, 32, number.to_s, 2)
  end
  #--------------------------------------------------------------------------
  # ● ヘルプテキスト更新
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(self.item == nil ? "" : self.item.description)
  end
end

#==============================================================================
# ■ Harts_Window_EquipLeft
#------------------------------------------------------------------------------
#  装備画面で、アクターのパラメータ変化を表示するウィンドウです。
#==============================================================================

class Harts_Window_EquipLeft < Window_Base
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #    actor : アクター
  #--------------------------------------------------------------------------
  def initialize(actor)
    super(0, 64, 272, 352)
    self.contents = Bitmap.new(width - 32, height - 32)
    @actor = actor
    refresh
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    draw_actor_graphic(@actor, 32, 64)
    draw_actor_name(@actor, 4 + 96, 0)
    draw_actor_level(@actor, 4 + 96, 32)
    draw_actor_parameter(@actor, 4, 80, 0)
    draw_actor_parameter(@actor, 4, 112, 1)
    draw_actor_parameter(@actor, 4, 144, 2)
    draw_actor_parameter(@actor, 4, 192, 3)
    draw_actor_parameter(@actor, 4, 224, 4)
    draw_actor_parameter(@actor, 4, 256, 5)
    draw_actor_parameter(@actor, 4, 288, 6)
    if @new_atk != nil and @new_atk != @actor.atk
      if @new_atk > @actor.atk
        self.contents.font.color = system_color
      else
        self.contents.font.color = disabled_color
      end
      self.contents.draw_text(160, 80, 40, 32, "→", 1)
      self.contents.draw_text(200, 80, 36, 32, @new_atk.to_s, 2)
    end
    if @new_pdef != nil and @new_pdef != @actor.pdef
      if @new_pdef > @actor.pdef
        self.contents.font.color = system_color
      else
        self.contents.font.color = disabled_color
      end
      self.contents.draw_text(160, 112, 40, 32, "→", 1)
      self.contents.draw_text(200, 112, 36, 32, @new_pdef.to_s, 2)
    end
    if @new_mdef != nil and @new_mdef != @actor.mdef
      if @new_mdef > @actor.mdef
        self.contents.font.color = system_color
      else
        self.contents.font.color = disabled_color
      end
      self.contents.draw_text(160, 144, 40, 32, "→", 1)
      self.contents.draw_text(200, 144, 36, 32, @new_mdef.to_s, 2)
    end
    if @new_str != nil and @new_str != @actor.str
      if @new_str > @actor.str
        self.contents.font.color = system_color
      else
        self.contents.font.color = disabled_color
      end
      self.contents.draw_text(160, 192, 40, 32, "→", 1)
      self.contents.draw_text(200, 192, 36, 32, @new_str.to_s, 2)
    end
    if @new_dex != nil and @new_dex != @actor.dex
      if @new_dex > @actor.dex
        self.contents.font.color = system_color
      else
        self.contents.font.color = disabled_color
      end
      self.contents.draw_text(160, 224, 40, 32, "→", 1)
      self.contents.draw_text(200, 224, 36, 32, @new_dex.to_s, 2)
    end
    if @new_agi != nil and @new_agi != @actor.agi
      if @new_agi > @actor.agi
        self.contents.font.color = system_color
      else
        self.contents.font.color = disabled_color
      end
      self.contents.draw_text(160, 256, 40, 32, "→", 1)
      self.contents.draw_text(200, 256, 36, 32, @new_agi.to_s, 2)
    end
    if @new_int != nil and @new_int != @actor.int
      if @new_int > @actor.int
        self.contents.font.color = system_color
      else
        self.contents.font.color = disabled_color
      end
      self.contents.draw_text(160, 288, 40, 32, "→", 1)
      self.contents.draw_text(200, 288, 36, 32, @new_int.to_s, 2)
    end
  end
  #--------------------------------------------------------------------------
  # ● 装備変更後のパラメータ設定
  #    new_atk  : 装備変更後の攻撃力
  #    new_pdef : 装備変更後の物理防御
  #    new_mdef : 装備変更後の魔法防御
  #--------------------------------------------------------------------------
  def set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex, new_agi, new_int)
    if @new_atk != new_atk or @new_pdef != new_pdef or @new_mdef != new_mdef or @new_str != new_str or @new_dex != new_dex or @new_agi != new_agi or @new_int != new_int
      @new_atk = new_atk
      @new_pdef = new_pdef
      @new_mdef = new_mdef
      @new_str = new_str
      @new_dex = new_dex
      @new_agi = new_agi
      @new_int = new_int
      refresh
    end
  end
end

#==============================================================================
# ■ Harts_Scene_Equip
#------------------------------------------------------------------------------
#  装備画面の処理を行うクラスです。
#==============================================================================

class Scene_Equip
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #    actor_index : アクターインデックス
  #    equip_index : 装備インデックス
  #--------------------------------------------------------------------------
  def initialize(actor_index = 0, equip_index = -1, command_index = 0, equip_active = false, command_active = true)
    @actor_index = actor_index
    @equip_index = equip_index
    @command_index = command_index
    @equip_active = equip_active
    @command_active = command_active
  end
  #--------------------------------------------------------------------------
  # ● メイン処理
  #--------------------------------------------------------------------------
  def main
    # アクターを取得
    @actor = $game_party.actors[@actor_index]
 

suite du code au prochain post
Revenir en haut Aller en bas
polm
HEROS
HEROS
polm


Nombre de messages : 68
Age : 122
ou tu est ? : je suis sur msn en train de parler a l'FBI
Date d'inscription : 02/07/2006

(script)Un Petit ajout pour le menu equiper Empty
MessageSujet: Re: (script)Un Petit ajout pour le menu equiper   (script)Un Petit ajout pour le menu equiper EmptyLun 3 Juil - 17:33

suite du code precedent a collez juste apres l'autre
Code:

    # カーソル位置を設定
    @command_window.index = @command_index
    @right_window.index = @equip_index
    # アクティブウィンドウを設定
    @command_window.active = @command_active
    @right_window.active = @equip_active
    refresh
    # トランジション実行
    Graphics.transition
    # メインループ
    loop do
      # ゲーム画面を更新
      Graphics.update
      # 入力情報を更新
      Input.update
      # フレーム更新
      update
      # 画面が切り替わったらループを中断
      if $scene != self
        break
      end
    end
    # トランジション準備
    Graphics.freeze
    # ウィンドウを解放
    @title_window.dispose
    @command_window.dispose
    @help_window.dispose
    @left_window.dispose
    @right_window.dispose
    @item_window0.dispose
    @item_window1.dispose
    @item_window2.dispose
    @item_window3.dispose
    @item_window4.dispose
    @item_window5.dispose
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    # アイテムウィンドウの可視状態設定
    @item_window0.visible = (@right_window.index == -1)
    @item_window1.visible = (@right_window.index == 0)
    @item_window2.visible = (@right_window.index == 1)
    @item_window3.visible = (@right_window.index == 2)
    @item_window4.visible = (@right_window.index == 3)
    @item_window5.visible = (@right_window.index == 4)
    # 現在装備中のアイテムを取得
    item1 = @right_window.item
    # 現在のアイテムウィンドウを @item_window に設定
    case @right_window.index
    when -1
      @item_window = @item_window0
    when 0
      @item_window = @item_window1
    when 1
      @item_window = @item_window2
    when 2
      @item_window = @item_window3
    when 3
      @item_window = @item_window4
    when 4
      @item_window = @item_window5
    end
    # ライトウィンドウがアクティブの場合
    if @right_window.active
      # 装備変更後のパラメータを消去
      @left_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil)
    end
    # アイテムウィンドウがアクティブの場合
    if @item_window.active
      # 現在選択中のアイテムを取得
      item2 = @item_window.item
      # 装備を変更
      last_hp = @actor.hp
      last_sp = @actor.sp
      @actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)
      # 装備変更後のパラメータを取得
      new_atk = @actor.atk
      new_pdef = @actor.pdef
      new_mdef = @actor.mdef
      new_str = @actor.str
      new_dex = @actor.dex
      new_agi = @actor.agi
      new_int = @actor.int
      # 装備を戻す
      @actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
      @actor.hp = last_hp
      @actor.sp = last_sp
      # レフトウィンドウに描画
      @left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex, new_agi, new_int)
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    # ウィンドウを更新
    @title_window.update
    @command_window.update
    @left_window.update
    @right_window.update
    @item_window.update
    refresh
    # コマンドウィンドウがアクティブの場合: update_command を呼ぶ
    if @command_window.active
      update_command
      return
    end
    # ライトウィンドウがアクティブの場合: update_right を呼ぶ
    if @right_window.active
      update_right
      return
    end
    # アイテムウィンドウがアクティブの場合: update_item を呼ぶ
    if @item_window.active
      update_item
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新 (コマンドウィンドウがアクティブの場合)
  #--------------------------------------------------------------------------
  def update_command
    # B ボタンが押された場合
    if Input.trigger?(Input::B)
      # キャンセル SE を演奏
      $game_system.se_play($data_system.cancel_se)
      # メニュー画面に切り替え
      $scene = Scene_Menu.new(2)
      return
    end
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      case @command_window.index
      # 装備の場合
      when 0
        # 決定 SE を演奏
        $game_system.se_play($data_system.decision_se)
        # ライトウィンドウをアクティブ化
        @right_window.active = true
        @command_window.active = false
        @right_window.index = 0
        @command_window.index = -1
        return
      # 最強装備の場合 
      when 1
        # 装備 SE を演奏
        $game_system.se_play($data_system.equip_se)
        # 最強装備の取得
        max_weapon_id = @item_window1.max_item_id
        max_armor1_id = @item_window2.max_item_id
        max_armor2_id = @item_window3.max_item_id
        max_armor3_id = @item_window4.max_item_id
        # 最強装備実行
        @actor.equip(0, max_weapon_id)
        @actor.equip(1, max_armor1_id)
        @actor.equip(2, max_armor2_id)
        @actor.equip(3, max_armor3_id)
        # ライトウィンドウ、アイテムウィンドウの内容を再作成
        @right_window.refresh
        @left_window.refresh
        @item_window1.refresh
        @item_window2.refresh
        @item_window3.refresh
        @item_window4.refresh
        return
      #終わるの場合
      when 2
        # キャンセル SE を演奏
        $game_system.se_play($data_system.cancel_se)
        # メニュー画面に切り替え
        $scene = Scene_Menu.new(2)
        return
      end
    end
    # R ボタンが押された場合
    if Input.trigger?(Input::R)
      # カーソル SE を演奏
      $game_system.se_play($data_system.cursor_se)
      # 次のアクターへ
      @actor_index += 1
      @actor_index %= $game_party.actors.size
      # 別の装備画面に切り替え
      $scene = Scene_Equip.new(@actor_index, @right_window.index, @command_window.index)
      return
    end
    # L ボタンが押された場合
    if Input.trigger?(Input::L)
      # カーソル SE を演奏
      $game_system.se_play($data_system.cursor_se)
      # 前のアクターへ
      @actor_index += $game_party.actors.size - 1
      @actor_index %= $game_party.actors.size
      # 別の装備画面に切り替え
      $scene = Scene_Equip.new(@actor_index, @right_window.index, @command_window.index)
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新 (ライトウィンドウがアクティブの場合)
  #--------------------------------------------------------------------------
  def update_right
    # B ボタンが押された場合
    if Input.trigger?(Input::B)
      # キャンセル SE を演奏
      $game_system.se_play($data_system.cancel_se)
      # コマンドウィンドウをアクティブ化
      @right_window.active = false
      @command_window.active = true
      @right_window.index = -1
      @command_window.index = 0
      return
    end
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      # 装備固定の場合
      if @actor.equip_fix?(@right_window.index)
        # ブザー SE を演奏
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # 決定 SE を演奏
      $game_system.se_play($data_system.decision_se)
      # アイテムウィンドウをアクティブ化
      @right_window.active = false
      @item_window.active = true
      @item_window.index = 0
      return
    end
    # R ボタンが押された場合
    if Input.trigger?(Input::R)
      # カーソル SE を演奏
      $game_system.se_play($data_system.cursor_se)
      # 次のアクターへ
      @actor_index += 1
      @actor_index %= $game_party.actors.size
      # 別の装備画面に切り替え
      $scene = Scene_Equip.new(@actor_index, @right_window.index, @command_window.index, true, false)
      return
    end
    # L ボタンが押された場合
    if Input.trigger?(Input::L)
      # カーソル SE を演奏
      $game_system.se_play($data_system.cursor_se)
      # 前のアクターへ
      @actor_index += $game_party.actors.size - 1
      @actor_index %= $game_party.actors.size
      # 別の装備画面に切り替え
      $scene = Scene_Equip.new(@actor_index, @right_window.index, @command_window.index, true, false)
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新 (アイテムウィンドウがアクティブの場合)
  #--------------------------------------------------------------------------
  def update_item
    # B ボタンが押された場合
    if Input.trigger?(Input::B)
      # キャンセル SE を演奏
      $game_system.se_play($data_system.cancel_se)
      # ライトウィンドウをアクティブ化
      @right_window.active = true
      @item_window.active = false
      @item_window.index = -1
      return
    end
    # C ボタンが押された場合
    if Input.trigger?(Input::C)
      # 装備 SE を演奏
      $game_system.se_play($data_system.equip_se)
      # アイテムウィンドウで現在選択されているデータを取得
      item = @item_window.item
      # 装備を変更
      @actor.equip(@right_window.index, item == nil ? 0 : item.id)
      # ライトウィンドウをアクティブ化
      @right_window.active = true
      @item_window.active = false
      @item_window.index = -1
      # ライトウィンドウ、アイテムウィンドウの内容を再作成
      @right_window.refresh
      @item_window.refresh
      return
    end
  end
end
Voila c'est termine c'est pas moi l'auteur je l'ai seulement traduit
Revenir en haut Aller en bas
sephicloud
Administrateur SÉPHICLOUD
Administrateur SÉPHICLOUD
sephicloud


Nombre de messages : 133
Age : 122
ou tu est ? : dans le CAYON COSMOS en train de chasser nanaki^^
Date d'inscription : 15/02/2006

(script)Un Petit ajout pour le menu equiper Empty
MessageSujet: Re: (script)Un Petit ajout pour le menu equiper   (script)Un Petit ajout pour le menu equiper EmptyLun 3 Juil - 19:08

et encore un merveilleux script a mettre dans la base de donnée


Dernière édition par le Jeu 6 Juil - 23:20, édité 1 fois
Revenir en haut Aller en bas
https://sephicloud-rpg.1fr1.net
Ranger-Gandalf
HEROS
HEROS
Ranger-Gandalf


Nombre de messages : 58
Age : 32
ou tu est ? : loin...dans mes plaines a brasser de l'air avec mes dagues...^^
Date d'inscription : 28/06/2006

(script)Un Petit ajout pour le menu equiper Empty
MessageSujet: Re: (script)Un Petit ajout pour le menu equiper   (script)Un Petit ajout pour le menu equiper EmptyLun 3 Juil - 20:51

cheers cheers cheers cheers cheers cheers

Ouauuaaiiiis ! A tu est un dieux, polm !
Merci ! cheers
Revenir en haut Aller en bas
Contenu sponsorisé





(script)Un Petit ajout pour le menu equiper Empty
MessageSujet: Re: (script)Un Petit ajout pour le menu equiper   (script)Un Petit ajout pour le menu equiper Empty

Revenir en haut Aller en bas
 
(script)Un Petit ajout pour le menu equiper
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» (script)joli menu
» (script)Hp Ennemi
» (script)Curseur
» (script) Sauvegarde Ameliore
» (script) Magasin Ameliore

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
SEPHICLOUD :: BASE DE DONNÉES :: SCRIPTS-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser