Partagez
Aller en bas
Dany
Dany
Membre

Nombre de messages : 773
Age : 23
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

Addon pour Limiteur d'objet de vincent_26 Empty Addon pour Limiteur d'objet de vincent_26

le Mer 4 Mar 2015 - 22:19
Le script Limiteur d'objet de vincent26, je l'est modifier, afin d'avoir plus de possibilité qui offre ce script!
Pourquoi ce script?
Tout simplement, c'était le seul qui fonctionner, j'avais trouvé un, mais on pouvais dépasser la limite.

Qu'est ce que sa rajoute?
Une petite fenêtre ajouter dans le menu, comme celle de l'argent, avec le nombre d'objet et le nombre max d'objet que vous pouvez porter.

Alors les screens, rien a changer, a part le menu.
https://www.rpgmakervx-fr.com/t15697-limiteur-d-objet-et-coffre-de-stockage
Screen Menu:
Addon pour Limiteur d'objet de vincent_26 Menu_i10

Ce qui a de nouveau, c'est que maintenant, vous pouvez modifier la taille de l'inventaire en modifiant la variable, bien sûr, faut mettre l'ID de la variable dans ID_INTER.

Voici la bête:
Code:
=begin
 ╔=════════════════════════════════════════════════════════════════════════=╗
 ║                    Script: Limiteur d'Objet                            ║
 ╚══════════════════════════════════════════════════════════════════════════╝
 ╔════════════════════╗      ╔════════════════╗      ╔════════════════════╗
 ║ Crédit: Vincent_26 ║      ║ Modif': Dany  ║      ║  Version: 1.0.1    ║
 ╚════════════════════╝      ╚════════════════╝      ╚════════════════════╝

Description:
  Ce script, permet d'avoir un limiteur d'objet dans votre inventaire,
  qui rajoute en plus un menu de coffre simpliste.
 
BUG & MAJ:
  -Ajout un menu d'indicateur d'inventaire dans le menu du jeu.
 
CODE:
  -$game_party.max_item_number_total permet de savoir le nombre d'item
                                    total du héros.
=end
#~ NBR_MX_ITEM = 10
module Vincent26
  ID_INTER = 1
  TEXTE_INVENTAIRE_PLEIN = "Inventaire plein"
end

################################################################################
#                              Limiteur nbr d'objet                          #
################################################################################

class Game_Party < Game_Unit
  alias max_item_number_2 max_item_number
  def max_item_number(item)
    return ($game_variables[Vincent26::ID_INTER] - max_item_number_total)
  end
 
  def max_item_number_total
    total = 0
    for i in 0..(all_items.length-1)
      test = true
      test = !all_items[i].key_item? if all_items[i].class == RPG::Item
      a = item_number(all_items[i]) if test
      a = 0 if !test
      total = total + a
    end
    return total
  end
 
  alias gain_item_2 gain_item
  def gain_item(item, amount, include_equip = false)
    container = item_container(item.class)
    return unless container
    last_number = item_number(item)
    new_number = last_number + amount
    a = [amount,max_item_number(item)].min
    container[item.id] = [last_number + a,0].max
    test = false
    test = item.key_item? if item.class == RPG::Item
    container[item.id] = new_number if test
    container.delete(item.id) if container[item.id] == 0
    if include_equip && new_number < 0
      discard_members_equip(item, -new_number)
    end
    $game_message.add(Vincent26::TEXTE_INVENTAIRE_PLEIN) if (max_item_number_total == $game_variables[Vincent26::ID_INTER])&&(!$game_message.has_text?)&&!test
  $game_map.need_refresh = true
 end
end
# =============================================================================
# ▼ Nouvelle Class : Scene_Item ajout de la possibilité de jeter un objet
# =============================================================================
class Scene_Item < Scene_ItemBase
  alias on_item_ok_inventaire on_item_ok
  def on_item_ok
    a = @item_window.item
    b = @item_window.index - @item_window.top_row*2
    c = [@item_window.item_rect(b).x,@item_window.item_rect(b).y]
    c[1] = @item_window.item_rect(b-2).ye if (@item_window.index - @item_window.top_row*2) >= 18
    c[1] = @item_window.item_rect(b-4).y if (@item_window.index - @item_window.top_row*2) >= 20
    puts @category_window.index
    @command_item_window = Window_Command_Item.new(c[0]+@item_window.x+24,c[1]+@item_window.y+12,@item_window.enable_inventaire?(a),@category_window.index)
    @command_item_window.viewport = @viewport
    @command_item_window.set_handler(:utiliser,    method(:on_item_utiliser))
    @command_item_window.set_handler(:jeter, method(:on_item_jeter))
    @command_item_window.set_handler(:cancel, method(:on_item_command_cancel))
  end
  def on_item_utiliser
    on_item_ok_inventaire
  end
  def on_item_command_cancel
    @command_item_window.close
    @item_window.activate
  end
  def on_item_jeter
    a = @item_window.item
    if $game_party.item_number(a)>=2
      b = @item_window.index - @item_window.top_row*2
      c = [@item_window.item_rect(b).x,@item_window.item_rect(b).y]
      c[1] = @item_window.item_rect(b-2).y if (@item_window.index - @item_window.top_row*2) >= 18
      c[1] = @item_window.item_rect(b-4).y if (@item_window.index - @item_window.top_row*2) >= 20
      @number_window = Window_Number_Inventaire.new(a,c[0]+@item_window.x+24,c[1]+@item_window.y+24)
      @number_window.viewport = @viewport
      @number_window.set_handler(:ok,    method(:on_item_number_ok))
      @number_window.set_handler(:cancel, method(:on_item_number_cancel))
      @number_window.activate
    else
      $game_party.gain_item(@item_window.item,-1)
      @item_window.refresh
      @item_window.activate
      @command_item_window.close
    end
  end
  def on_item_number_ok
    $game_party.gain_item(@item_window.item,-$number_item_to_coffre)
    @item_window.refresh
    @item_window.activate
    @command_item_window.close
    @number_window.close
  end
  def on_item_number_cancel
    @number_window.close
    @command_item_window.activate
  end
end

class Window_ItemList < Window_Selectable
  alias enable_inventaire? enable?
  def enable?(item)
    return true
  end
end
# =============================================================================
# ▼ Nouvelle Class : Scene_ItemBase ajout de la possibilité de jeter un objet
# =============================================================================
class Scene_ItemBase < Scene_MenuBase
  alias activate_item_window_inventaire activate_item_window
  def activate_item_window
    @item_window.refresh
    @item_window.activate
    @command_item_window.close
  end
end
# =============================================================================
# ▼ Nouvelle Class : Window_Number_Inventaire selecteur nbr a jeter
# =============================================================================
class Window_Number_Inventaire < Window_Selectable
  def initialize(item,x,y)
    super(x+20, y-12,48,48)
    $number_item_to_coffre = 1
    @item_coffre = item
    refresh
  end
  def update
    super
    refresh
  end
  def refresh
    contents.clear
    contents.draw_text(0, 0, 24, 24, $number_item_to_coffre,1)
    $number_item_to_coffre = $number_item_to_coffre + 1 if Input.trigger?(:UP)
    $number_item_to_coffre = $number_item_to_coffre - 1 if Input.trigger?(:DOWN)
    $number_item_to_coffre = $number_item_to_coffre - 10 if Input.trigger?(:LEFT)
    $number_item_to_coffre = $number_item_to_coffre + 10 if Input.trigger?(:RIGHT)
    $number_item_to_coffre = 1 if $game_party.item_number(@item_coffre) < $number_item_to_coffre
    $number_item_to_coffre = $game_party.item_number(@item_coffre) if $number_item_to_coffre <1
  end
end
# =============================================================================
# ▼ Nouvelle Class : Window_Command_Item intégre les commandes "Utiliser/Jeter"
# =============================================================================
class Window_Command_Item < Window_Command
  def initialize(x,y,utilisable,jetable)
    @utilisable = utilisable
    @jetable = false if (jetable == 3)
    @jetable = true if (jetable != 3)
    puts @jetable
    super(x, y)
  end
  def window_width
    return 160
  end
  def make_command_list
    add_command("Utiliser", :utiliser, @utilisable)
    add_command("Jeter", :jeter, @jetable)
  end
end
#==============================================================================
# ╔=══════════════════════════════════════════════════════════════════════════╗
# ║                                  Ajout                                  ║
# ╚═══════════════════════════════════════════════════════════════════════════╝
# =============================================================================
# ▼ Nouvelle Class : Window_MenuTextInv
# =============================================================================
class Window_MenuTextInv < Window_Base
  def initialize(width)
    super(0,0,width,fitting_height(1))
    refresh
  end
  def refresh
    contents.clear
    change_color(system_color)
    txt = "Inv.: "
    draw_text(0,0,contents.width,line_height,txt)
    change_color(normal_color)
    text1 = $game_party.max_item_number_total.to_s + "/" + $game_variables[Vincent26::ID_INTER].to_s
    draw_text(60,0,contents.width,line_height, text1)
  end
end
# =============================================================================
# Intégre notre Window dans le menu
# =============================================================================
# =============================================================================
# ▼ Scene_Menu
# =============================================================================
class Scene_Menu < Scene_MenuBase
  alias menu_ex_dany_start start
  def start
    menu_ex_dany_start
    create_liminv_window
  end
  def create_liminv_window
    @text_inv = Window_MenuTextInv.new(@gold_window.width)
    @text_inv.x = @command_window.x
    @text_inv.y = @command_window.height
  end
end

Voilà, si vous avez un problème ou une idée, n'hésiter pas a poster! Smile
Bonne soirée!
vincent26
vincent26
Membre

Nombre de messages : 766
Age : 24
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010

Addon pour Limiteur d'objet de vincent_26 Empty Re: Addon pour Limiteur d'objet de vincent_26

le Jeu 5 Mar 2015 - 17:56
Très bien tout ça j'aime Smile
Spytje
Spytje
Administrateur

Nombre de messages : 5933
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008

Addon pour Limiteur d'objet de vincent_26 Empty Re: Addon pour Limiteur d'objet de vincent_26

le Jeu 5 Mar 2015 - 21:55
Script très utile et belle modif merci du partage.

+3 points de participation.

_________________
Addon pour Limiteur d'objet de vincent_26 911

LE PROJET SUR FACEBOOK

N'hésitez pas à suivre la page  Addon pour Limiteur d'objet de vincent_26 344805
Dany
Dany
Membre

Nombre de messages : 773
Age : 23
Distinction : aucune
Date d'inscription : 16/11/2010
http://gamers-studio.forumofficiel.fr/

Addon pour Limiteur d'objet de vincent_26 Empty Re: Addon pour Limiteur d'objet de vincent_26

le Ven 6 Mar 2015 - 11:42
Merci beaucoup !
Je commence à avoir goût de scripter ! Smile
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum