- 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
Objet clé [résolu]
Mar 11 Déc 2012 - 20:06
Je suis devant un petit soucis que je n'arrive pas à régler...
J'aimerais que les "objet clé" ne soit plus comptabilisé dans l'inventaire mais quand même visible, y a t'il une solution à cella ?
Par objet clé je parle bien du "type" de l'objet réglable dans l'onglet objets de la base de données.
J'utilise ce script pour gérer la place dans mon inventaire mais je ne pense pas que la solution soit dans celui ci mais plutôt dans le Game_BaseItem ou autres...
Merci pour votre aide
J'aimerais que les "objet clé" ne soit plus comptabilisé dans l'inventaire mais quand même visible, y a t'il une solution à cella ?
Par objet clé je parle bien du "type" de l'objet réglable dans l'onglet objets de la base de données.
J'utilise ce script pour gérer la place dans mon inventaire mais je ne pense pas que la solution soit dans celui ci mais plutôt dans le Game_BaseItem ou autres...
- Code:
=begin
#==============================================================================
** Inventory Size
Author: Tsukihime
Date: Nov 25, 2012
------------------------------------------------------------------------------
** Change log
Nov 25, 2012
- initial release
------------------------------------------------------------------------------
** Terms of Use
* Free to use in commercial/non-commercial projects
* No real support. The script is provided as-is
* Will do bug fixes, but no compatibility patches
* Features may be requested but no guarantees, especially if it is non-trivial
* Preserve this header
------------------------------------------------------------------------------
** Compatibility
This script replaces one method
Scene_Shop#max_buy
------------------------------------------------------------------------------
** Description
This script allows you to limit the size of an inventory by item count.
When you have exceeded the limit:
-items will not be added to your inventory.
-equips cannot be removed, only exchanged
-cannot purchase additional items from the shop
This script does not define how extra items should be handled, nor does it
handle what happens when your inventory size decreases and you have extra
items.
------------------------------------------------------------------------------
** Usage
Set the initial inventory size in the configuration.
Augmenter la taille de l'inventaire ou la diminuer
$game_party.change_inventory_size(n)
n peut être positif ou négatif
Check if the inventory is full using script calls
$game_party.inventory_full?
Other useful script calls:
$game_party.inventory_size Retourne la taille de l'inventaire
$game_party.inventory_full? Retourne true or false si l'inventaire est remplie ou pas
$game_party.inventory_space Retourne l'espace disponible
$game_party.inventory_count Retourne le nombre d'objets dans l'inventaire
#==============================================================================
=end
$imported = {} if $imported.nil?
$imported["Tsuki_InventorySize"] = true
#==============================================================================
# ** Configuration
#==============================================================================
module Tsuki
module Inventory_Size
# Starting limit
Start_Size = 10
end
end
#==============================================================================
# ** Rest of the script
#==============================================================================
class Game_Party < Game_Unit
alias :th_inventory_size_init :initialize
def initialize
th_inventory_size_init
@inventory_size = Tsuki::Inventory_Size::Start_Size
end
# Replaced. Change the stack limit based on the item's individual limits.
def inventory_size
return @inventory_size
end
def inventory_full?
return inventory_count >= inventory_size
end
# Get the total count for the bag
def item_count(bag)
return bag.values.inject(:+) || 0
end
def inventory_count
item_count(@items) + item_count(@weapons) + item_count(@armors)
end
def inventory_space
inventory_size - inventory_count
end
# Calculate how many we can add
alias :th_inventory_size_gain_item :gain_item
def gain_item(item, amount, include_equip = false)
return if amount > 0 && inventory_full?
can_add_amount = amount > 0 ? [inventory_size - inventory_count, amount].min : amount
th_inventory_size_gain_item(item, can_add_amount, include_equip)
end
def change_inventory_size(amount)
@inventory_size += amount
end
end
class Window_ShopBuy < Window_Selectable
alias :th_inventory_size_enable? :enable?
def enable?(item)
return false if $game_party.inventory_full?
return th_inventory_size_enable?(item)
end
end
class Scene_Shop < Scene_MenuBase
# take into consideration inventory space
alias :th_inventory_size_max_buy :max_buy
def max_buy
max = $game_party.max_item_number(@item) - $game_party.item_number(@item)
# whichever is smaller
max = [$game_party.inventory_space, max].min
buying_price == 0 ? max : [max, money / buying_price].min
end
end
Merci pour votre aide
- PharazonStaffeux retraité
- Nombre de messages : 1701
Age : 38
Localisation : Au Pays des Bisounours
Distinction : Super distinction!
[Coco' ]
Date d'inscription : 14/04/2010
Re: Objet clé [résolu]
Mar 11 Déc 2012 - 21:51
Alors, si je comprend bien, ce script permet juste de limiter le nombre d'items dans l'inventaire, c'est ça ?
Mais il comptabilise juste le nb, et non pas le "poids". Ce qui est dommage, car ça aurait pu changer la donne.
Là, il faudrait qu'un scripteur te fasse une ligne en plus à ajouter en commentaire dans l'objet clé (et d'autre si tu veux) permettant de ne pas comptabiliser l'objet en question dans la limite maxi.
A voir si c'est faisable et si j'ai raison.
Mais il comptabilise juste le nb, et non pas le "poids". Ce qui est dommage, car ça aurait pu changer la donne.
Là, il faudrait qu'un scripteur te fasse une ligne en plus à ajouter en commentaire dans l'objet clé (et d'autre si tu veux) permettant de ne pas comptabiliser l'objet en question dans la limite maxi.
A voir si c'est faisable et si j'ai raison.
- 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: Objet clé [résolu]
Mar 11 Déc 2012 - 22:02
Oui le script permet de faire un inventaire limité, un peu comme si tu avais un sac à dos avec 10 places, donc 10 objets peuvent y rentrer
J'aime pas trop le système de poids pour un inventaire...
Oui il faut un vrai scripteur la parce que ça m'a assez compliqué à régler comme problème je ne sais même pas si c'est possible, je n'ai rien trouvé dans les scripts présent qui peux différiencier un "objet normal" et un "objet clé".
...
J'aime pas trop le système de poids pour un inventaire...
Oui il faut un vrai scripteur la parce que ça m'a assez compliqué à régler comme problème je ne sais même pas si c'est possible, je n'ai rien trouvé dans les scripts présent qui peux différiencier un "objet normal" et un "objet clé".
...
- 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: Objet clé [résolu]
Mer 12 Déc 2012 - 0:10
Un grand merci je sais pas si c'est possible ça fais trois jours que je cherche...
Re: Objet clé [résolu]
Mer 12 Déc 2012 - 11:44
pour savoir si un objet est un objet clef, il faut d'abord vérifier que l'objet (de classe) que l'on manipule soit une instance de RPG::Item, et ensuite utiliser la méthode key_item? qui renverra vrai si c'est un objet clef.
- 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: Objet clé [résolu]
Mer 12 Déc 2012 - 11:52
J'avoue que je suis un peu perdu avec cette histoire d'objet clé, mais je comprendrai surement beaucoup mieux quand tu auras réussi à me mettre ça dans mon script plus haut ou à part.
J'ai tenté tellement de chose déjà pour rendre ça possible, d'habitude je trouve mais la... pourtant le fait de chercher à comprendre aide beaucoup et ça m'aide à apprendre.
J'ai réussis déjà à supprimer l'ajout des objets clé dans mon inventaire mais du coup je les voyais plus du tout, après j'ai tenté avec des conditions et toutes sorte de lignes de code pour arriver à mes fins mais sans succès.
PS : Je comprends plus ou moins ce que tu m'expliques plus haut mais je ne vois pas du tout comment et par ou commencer, pour ajouter quoi que ce soit dans mon script.
J'ai tenté tellement de chose déjà pour rendre ça possible, d'habitude je trouve mais la... pourtant le fait de chercher à comprendre aide beaucoup et ça m'aide à apprendre.
J'ai réussis déjà à supprimer l'ajout des objets clé dans mon inventaire mais du coup je les voyais plus du tout, après j'ai tenté avec des conditions et toutes sorte de lignes de code pour arriver à mes fins mais sans succès.
PS : Je comprends plus ou moins ce que tu m'expliques plus haut mais je ne vois pas du tout comment et par ou commencer, pour ajouter quoi que ce soit dans mon script.
Re: Objet clé [résolu]
Mer 12 Déc 2012 - 12:41
essaie en remplaçant :
par
J'ai pas test, j'ai fait ça sans RPGmaker de lancé, dit moi, ce que ça donne
- Code:
def inventory_count
item_count(@items) + item_count(@weapons) + item_count(@armors)
end
par
- Code:
def inventory_count
item_count(@items) + item_count(@weapons) + item_count(@armors) - key_item_number
end
def key_item_number
nbr = 0
@items.each do |key, value|
nbr += ($data_items[key].key_item? ? value : 0)
end
return nbr
end
J'ai pas test, j'ai fait ça sans RPGmaker de lancé, dit moi, ce que ça donne
- 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: Objet clé [résolu]
Mer 12 Déc 2012 - 12:51
Ben voila, ça donne exactement ce qu'il faut, je te remercie grandement !!!
Les objets sont bien ramassés, mais seul les objets normaux sont comptabilisé dans l'inventaire.
Encore merci pour ton aide
EDIT :
Juste une petite question que signifie les "each" dans ce bout de code ?
Les objets sont bien ramassés, mais seul les objets normaux sont comptabilisé dans l'inventaire.
Encore merci pour ton aide
EDIT :
Juste une petite question que signifie les "each" dans ce bout de code ?
Re: Objet clé [résolu]
Mer 12 Déc 2012 - 13:09
@items est une liste (Hash) qui est structuré de la sorte :
ID objet 1 => Quantité 1
...
ID objet N => Quantité 1
le each (chaque en français) renvoie la clef (ID de l'objet) et la valeur (la quantité de l'objet) pour chaque entité de la liste. |key, value| , le code qui suit est exécuté pour chaque entité.
ID objet 1 => Quantité 1
...
ID objet N => Quantité 1
le each (chaque en français) renvoie la clef (ID de l'objet) et la valeur (la quantité de l'objet) pour chaque entité de la liste. |key, value| , le code qui suit est exécuté pour chaque entité.
- 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: Objet clé [résolu]
Mer 12 Déc 2012 - 13:23
Ok merci pour ces précisions
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|