Sujet: Un gestionnaire d'objet Lun 7 Mar 2011 - 14:11
Nature de la demande : Un script pour plusieurs emplacement (Objet,potion,objet de quête)
Description du script voulu : Quand on ouvre la section d'objet plusieurs section sont proposer par dessus. Exemples d'utilisation et schémas :
Dans ce style la.
Spoiler:
Edit: Et il possible d'avoir un menu comme sa avec à la place de fichier mettre statut?Si oui et il possible de mettre le scripte?
PS:J'ai rechercher avec objet,menu et gestionnaire mais pas trouver.
Merci d'avance.
Ice Monkey
Templier Lv.15
Age : 26 Inscrit le : 30/01/2011 Messages : 1273
Sujet: Re: Un gestionnaire d'objet Lun 7 Mar 2011 - 15:05
J'avais ça sur un autre forum :
Auteur : cozziekuns
Screen :
Spoiler:
Script :
Spoiler:
#=============================================================================== # # Cozziekuns Simple Sort Inventory # Last Date Updated: 09/06/10 # # Like in Tales of Phantasia, this inventory allows you to sort your items in # the categories: All, Items, Weapons and Armours. # #=============================================================================== # Updates # ----------------------------------------------------------------------------- # o 06/01/10 - Created Script. # o 06/01/10 - Updated with Modern Algebra's recommendations. # o 06/01/10 - Once again updated with Modern Algebra's recommendations. # o 08/27/10 - Updated with Scrolling support. Thanks kawagiri for the idea, and # Modern Algebra for some help. # o 09/06/10 - Updated with some bugfixing. Thanks Fizzly for finding that out. #=============================================================================== # What's to come? # ----------------------------------------------------------------------------- # o Nothing! Suggest something. #=============================================================================== # Instructions # ----------------------------------------------------------------------------- # To install this script, open up your script editor and copy/paste this script # to an open slot below ? Materials but above ? Main. Remember to save. # # Change the modules to your liking. The "hard" parts have instructions of their # own. #===============================================================================
$imported = {} if $imported == nil $imported["CozSimplSortInvent"] = true
#=============================================================================== # Extra Item Categories (Inspired by Modern Algebra) # ------------------------------------------------------------------------------ # How should I go about explaining something like this? Well, basically, each # item in the hash represents a certain category. For example, the first hash we # see here is: # # 0 => [144, "All", false] # # The syntax of this is: # # Category ID => [Icon Number, Text, Prime] # # Probably the most important part, the category ID is the number you want to # put into the notebox that the item contains. For example, if you wanted to # make the item "World Map" into a key item, simply add the text: # # \item_category[4] # # into the notebox. Note that numbers 0, 1, 2, and 3 are special. They're prime # categories. Sound special right? Not really, this just means you have to have # them in the inventory for this script to work. I could've gotten rid of them, # but that would've just given more work on your part (and mine), so bear with # them, please. Icon Numbers and Text are pretty self explanatory. # # Last, but not least, is the "Prime" function (inspired by Kyraiki). Setting # this to "true" means that anything in the prime category will not show up in # the item, weapon or armour categories. You can set if you want it to show up # in all. #=============================================================================== MOD_ALG_ITEM_CATEGORIES = {
MOD_ALG_ITEM_CATEGORY_WIDTH = 220 # How wide you want your text window. KYRIAKI_ALL_CATEOGRY_PRIME = false # If you want prime key items to show up in the all window. MAX_NUMBER = (544 - MOD_ALG_ITEM_CATEGORY_WIDTH) / 54 # The maximum number of icons that will fit. end end
#============================================================================== # ** RPG::BaseItem #------------------------------------------------------------------------------ # The superclass of all states. #==============================================================================
class RPG::BaseItem #-------------------------------------------------------------------------- # * Cozziekuns Category Index #-------------------------------------------------------------------------- def coz_modalg_category_index @coz_modalg_category_index = 0 if self.note[/\\item_category\[(\d+)]/i] != nil @coz_modalg_category_index = $1.to_i end return @coz_modalg_category_index end end
#============================================================================== # ** Window_Item #------------------------------------------------------------------------------ # This window displays a list of inventory items for the item screen, etc. #==============================================================================
class Window_Item < Window_Selectable #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- alias coz_modalg_ssi_refresh refresh def refresh(sort_index = 0) @sort_index = sort_index coz_modalg_ssi_refresh end #-------------------------------------------------------------------------- # * Whether or not to include in item list # item : item #-------------------------------------------------------------------------- alias coz_modalg_ssi_include? include? def include?(item) val = coz_modalg_ssi_include?(item) return false if !val return case @sort_index when 0 unless COZZIEKUNS::SSI::KYRIAKI_ALL_CATEOGRY_PRIME if COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES[item.coz_modalg_category_index][2] return false else return true end else return true end when 1 if COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES[item.coz_modalg_category_index][2] return false else return item.is_a?(RPG::Item) end when 2 if COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES[item.coz_modalg_category_index][2] return false else return item.is_a?(RPG::Weapon) end when 3 if COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES[item.coz_modalg_category_index][2] return false else return item.is_a?(RPG::Armor) end when 4..999 return item.coz_modalg_category_index == @sort_index end end end
#============================================================================== # ** Window_ItemCategory #------------------------------------------------------------------------------ # This window displays what type of item is being displayed. #==============================================================================
class Window_ItemCategory < Window_Base #-------------------------------------------------------------------------- # * Object Initialization # x : window X coordinate # y : window Y coordinate #-------------------------------------------------------------------------- def initialize(x, y, width) super(x, y, width, WLH + 32) refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh(sort_index = 0) @sort_index = sort_index @item_categories = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES @item_categories_width = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORY_WIDTH @category_string = COZZIEKUNS::SSI::CATEGORY_TEXT self.contents.clear self.contents.font.color = system_color self.contents.draw_text(4, 0, @item_categories_width - 40, WLH, @category_string, 0) self.contents.font.color = normal_color for i in 0...@item_categories.size if @sort_index == i self.contents.draw_text(4, 0, @item_categories_width - 40, WLH, @item_categories[i][1], 2) end end end end
#============================================================================== # ** Window_ItemSort #------------------------------------------------------------------------------ # This window displays what type of item is being displayed. #==============================================================================
class Window_ItemSort < Window_Base #-------------------------------------------------------------------------- # * Object Initialization # x : window X coordinate # y : window Y coordinate #-------------------------------------------------------------------------- def initialize(x, y, width) super(x, y, width, WLH + 32) @ox = 0 if COZZIEKUNS::SSI::MAX_NUMBER < COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES.size self.contents = Bitmap.new(self.width - 32 + ((COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES.size - COZZIEKUNS::SSI::MAX_NUMBER) * 54), self.height - 32) end refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh(sort_index = 0) @sort_index = sort_index @item_categories = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES @item_categories_width = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORY_WIDTH self.contents.clear for i in 0...@item_categories.size @icon_x = 0 + (i * ((544 - @item_categories_width) / @item_categories.size)) if @item_categories.size < COZZIEKUNS::SSI::MAX_NUMBER draw_item(i) else draw_items(i) end if @sort_index == i if @item_categories.size < COZZIEKUNS::SSI::MAX_NUMBER draw_icon(@item_categories[i][0], @icon_x, 0, true) else draw_icon(@item_categories[i][0], i * 54, 0, true) end end end end #-------------------------------------------------------------------------- # * Draw Item # index : item number #-------------------------------------------------------------------------- def draw_item(index) icons_x = (544 - @item_categories_width) / @item_categories.size draw_icon(@item_categories[index][0], index * icons_x, 0, false) end #-------------------------------------------------------------------------- # * Draw Items # index : item number #-------------------------------------------------------------------------- def draw_items(index) draw_icon(@item_categories[index][0], index * 54, 0, false) end end
#============================================================================== # ** Scene_Item #------------------------------------------------------------------------------ # This class performs the item screen processing. #==============================================================================
class Scene_Item < Scene_Base #-------------------------------------------------------------------------- # * Start processing #-------------------------------------------------------------------------- def start super create_menu_background @viewport = Viewport.new(0, 0, 544, 416) @help_window = Window_Help.new @help_window.viewport = @viewport @item_window = Window_Item.new(0, 112, 544, 304) @item_window.viewport = @viewport @item_window.help_window = @help_window @item_window.active = false @category_width = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORY_WIDTH @category_window = Window_ItemCategory.new(544 - @category_width, 56, @category_width) @sort_window = Window_ItemSort.new(0, 56, 544 - @category_width) @target_window = Window_MenuStatus.new(0, 0) @sort_index = 0 @item_categories = COZZIEKUNS::SSI::MOD_ALG_ITEM_CATEGORIES hide_target_window end #-------------------------------------------------------------------------- # * Termination Processing #-------------------------------------------------------------------------- alias coz_ssi_terminate terminate def terminate super coz_ssi_terminate @sort_window.dispose @category_window.dispose end #-------------------------------------------------------------------------- # * Update Frame #-------------------------------------------------------------------------- alias coz_ssi_update update def update super coz_ssi_update @sort_window.update @category_window.update end #-------------------------------------------------------------------------- # * Update Item Selection #-------------------------------------------------------------------------- def update_item_selection if Input.trigger?(Input::B) Sound.play_cancel return_scene elsif Input.trigger?(Input::C) @item = @item_window.item if @item != nil $game_party.last_item_id = @item.id end if $game_party.item_can_use?(@item) Sound.play_decision determine_item else Sound.play_buzzer end elsif Input.trigger?(Input::Y) @sort_index += 1 @sort_index %= @item_categories.size if @sort_index != 0 if @item_categories.size > COZZIEKUNS::SSI::MAX_NUMBER and @sort_index > COZZIEKUNS::SSI::MAX_NUMBER - 1 @sort_window.ox += 54 end else @sort_window.ox = 0 end @category_window.refresh(@sort_index) @sort_window.refresh(@sort_index) @item_window.refresh(@sort_index) @item_window.index = 0 Sound.play_cursor elsif Input.trigger?(Input::A) @sort_index -= 1 @sort_index %= @item_categories.size if @sort_index + 1 == @item_categories.size @sort_window.ox += 54 * (@item_categories.size - COZZIEKUNS::SSI::MAX_NUMBER) else if @item_categories.size > COZZIEKUNS::SSI::MAX_NUMBER and @sort_index > COZZIEKUNS::SSI::MAX_NUMBER - 2 @sort_window.ox -= 54 end end @category_window.refresh(@sort_index) @sort_window.refresh(@sort_index) @item_window.refresh(@sort_index) @item_window.index = 0 Sound.play_cursor end end end
Beowolf
Va-nu-pieds Lv.4
Inscrit le : 26/02/2011 Messages : 72
Sujet: Re: Un gestionnaire d'objet Lun 7 Mar 2011 - 16:24
Merci beaucoup
Edit:Mais on fait comment pour placer des objets dans la bonne section?
kev77320
Poulet trizo Lv.3
Avertissements : 1Inscrit le : 20/07/2010 Messages : 34
Sujet: Re: Un gestionnaire d'objet Dim 13 Mar 2011 - 15:02
Tu prend l'objet ou l'arme ect tu met ên commentaire ceci \item_category [*] *Chiffre de l'emplacement voilà!
Ice Monkey
Templier Lv.15
Age : 26 Inscrit le : 30/01/2011 Messages : 1273
Sujet: Re: Un gestionnaire d'objet Dim 13 Mar 2011 - 19:33
Il y a une traduction à faire pour le nom des emplacements. C'est cette portion de code :
Ou par les noms que tu leur as donné. /!\ ne pas modifier "tous" puisqu'il regroupe tous les objets /!\
"Scroling" veut dire "défiler" et donc pour que ça défile (je ne l'utilise pas encore donc je ne sais pas ce qui défile^^,), tu dois simplement remplacer "false" par "true" et voila.
korou
Poulet carnivore Lv.2
Inscrit le : 16/03/2011 Messages : 20
Sujet: Re: Un gestionnaire d'objet Ven 25 Mar 2011 - 18:31
Bonsoir,
Excusez moi mais je n'arrive pas à mettre mes objets clefs dans la bonne catégorie... Quelqu'un peut m'aider S\'il vous plait ?
kev77320
Poulet trizo Lv.3
Avertissements : 1Inscrit le : 20/07/2010 Messages : 34
Sujet: Re: Un gestionnaire d'objet Ven 25 Mar 2011 - 18:32
Si tu veux un script plus améliorer va ICI! http://acassia.forumpro.fr/ OU là http://acassia.forumpro.fr/t470-script-menu-objet
korou
Poulet carnivore Lv.2
Inscrit le : 16/03/2011 Messages : 20
Sujet: Re: Un gestionnaire d'objet Ven 25 Mar 2011 - 18:38
Je ne peux pas voir les scripts sans être inscrit malheureusement :s
kev77320
Poulet trizo Lv.3
Avertissements : 1Inscrit le : 20/07/2010 Messages : 34
Sujet: Re: Un gestionnaire d'objet Ven 25 Mar 2011 - 18:39
Inscrit toi!
korou
Poulet carnivore Lv.2
Inscrit le : 16/03/2011 Messages : 20
Sujet: Re: Un gestionnaire d'objet Ven 25 Mar 2011 - 18:51
J'ai trouvé le script mais personnellement, je trouve que le script de cozziekuns est plus beau. L'autre est en japonnais.
Il faut écrire quelque chose dans le commentaire de l'objet pour qu'il soit classé ?
thérapie
Aventurier Lv.16
Age : 28 Inscrit le : 03/08/2009 Messages : 1399
Sujet: Re: Un gestionnaire d'objet Lun 28 Mar 2011 - 19:21
Je tiens à signaler qu'il est incompatible avec l'abs v9
Bye
korou
Poulet carnivore Lv.2
Inscrit le : 16/03/2011 Messages : 20
Sujet: Re: Un gestionnaire d'objet Lun 28 Mar 2011 - 20:08
J'utilise le SBS. Personne ne peut m'aider ?
EDIT : Désolé j'ai trouvé en fait.
Je n'avais pas compris qu'il fallait mettre \item_category[numéro de la catégorie souhaité] dans le grand cadre commentaire en bas à droite de la base de donnée. Moi je mettais \item_category dans la description de l'arme.
Donc c'est bon, ça marche nikel et c'est super beau merci