Addon pour Limiteur d'objet de vincent_26
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://rpgmakervx.1fr1.net/t15697-limiteur-d-objet-et-coffre-de-stockage
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:
Voilà, si vous avez un problème ou une idée, n'hésiter pas a poster!
Bonne soirée!
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://rpgmakervx.1fr1.net/t15697-limiteur-d-objet-et-coffre-de-stockage
- Screen Menu:
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!
Bonne soirée!
- vincent26Membre
- Nombre de messages : 766
Age : 28
Localisation : baume de transit le village paumé
Distinction : aucune
Date d'inscription : 17/08/2010
Re: Addon pour Limiteur d'objet de vincent_26
Jeu 5 Mar 2015 - 17:56
Très bien tout ça j'aime
- SpytjeAdministrateur
- Nombre de messages : 5935
Localisation : La terre
Distinction : Spiraliste [Korn']
Forestia : Projet du mois juillet 2014
Papy Pulkigrat [Yama']
Date d'inscription : 16/03/2008
Re: Addon pour Limiteur d'objet de vincent_26
Jeu 5 Mar 2015 - 21:55
Script très utile et belle modif merci du partage.
+3 points de participation.
+3 points de participation.
Re: Addon pour Limiteur d'objet de vincent_26
Ven 6 Mar 2015 - 11:42
Merci beaucoup !
Je commence à avoir goût de scripter !
Je commence à avoir goût de scripter !
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|