- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Questions Script craft
Mar 5 Mai 2015 - 23:14
Coucou, j'aurais besoin d'un coup de main au sujet d'un script que j'utilise pour faire des crafts.
Le script en question se trouve ici :
Avec ce script, on peut afficher soit une catégorie de craft (Alchimie, Forgeron...), soit toutes les catégories de craft. Je voulais savoir s'il était possible d'afficher une partie seulement de ces catégories, c'est-à-dire plusieurs mais pas toutes.
Egalement, il y a un bug d'affichage lorsqu'on va dans l'écran avec toutes les catégories. Quand on sélectionne une catégorie, le curseur se place automatiquement sur le premier objet à crafter et on peut bouger le curseur de façon normale. Mais quand on annule pour revenir dans le choix des catégories, la description de l'objet sur lequel on a passé le curseur en dernier reste affiché en haut de l'écran. C'est possible de corriger ça, s\'il vous plaît ?
J'ai une démo si ça peut vous aider : http://www.mediafire.com/download/h2gam44a8e2de4t/Craft.exe
Le script en question se trouve ici :
- Code:
#Advanced Recipe Crafting v1.0b
#----------#
#Features: Advanced Recipe crafting! Hold on tight!
#
#Usage: Set up your recipes, learn recipes, make items! Yay!
# $crafting_category = :craft - call before Scene, craft is category
# SceneManager.call(Scene_Crafting) - opens the Crafting menu
# SceneManager.call(Scene_CraftingAll)- opens the category Crafting menu
# learn_recipe(id) - teaches that recipe
# forget_recipe(id) - forgets that recipe
#
#----------#
#-- Script by: V.M of D.T
#
#- Questions or comments can be:
# given by email: sumptuaryspade@live.ca
# provided on facebook: http://www.facebook.com/DaimoniousTailsGames
# All my other scripts and projects can be found here: http://daimonioustails.weebly.com/
#
#- Free to use in any project with credit given, donations always welcome!
module ADV_RECIPE
#Whether or not crafted items use Weapon/Armor Randomization
USE_WA_RANDOMIZATION = false
#The names of the categories for All Crafting Menu, use :All for all recipes
CATEGORIES = [:Alchemy,:Blacksmith,:Tailor,:Armorer,:Carpenter,:Builder,:Etceterer]
#The icons for categories, same order as above
CATEGORY_ICONS = [10,199,284,332,0,0,0]
#The icon for player level
LEVEL_ICON = 117
#Xp needed for crafting level, lvl is used for current level
XP_NEEDED_EQUATION = "100 * lvl"
#Allow the crafting of multiple items
CRAFT_MULTIPLE = true
#Allow or disallow menu access to the crafting scene
ENABLE_MENU_ACCESS = false
#Font Size of Detail window, smaller font size creates more room for materials
DETAIL_FONT_SIZE = 18
#The following options disable the display of certain features. They still work
# however if declared in recipes, so edit recipes accordingly.
#Removes Gold Cost
DISABLE_GOLD_COST = false
#Removes success rate
DISABLE_SUCCESS = false
#Removes player level requirement
DISABLE_PLAYER_LEVEL = false
#Removes crafting level requirement and gauge
DISABLE_CRAFT_LEVEL = false
#Auto-learn all skills (can use forget_recipe to forget certain ones for later)
AUTO_LEARN_RECIPES = true
#The fun (read: complicated) part!
#Recipe symbols:
#
#The crafted item, type is 0 for item, 1 for weapon, 2 for armor
# :result => [type,id,amount]
#
#The materials required, same style as result.
# :materials => [ [type,id,amount],[type,id,amount] ... ],
#
# All the following are optional:
# :gold_cost => amount - amount of gold to craft, can be 0
# :success => percent - base percent chance of successful craft
# :success_gain => percent - percent gain on success per crafting level
# :level => value - Hero level required to craft
# :craft_level => value - Crafting level required to craft
# :category => :category - Crafting category (:Alchemy, :Tailor, etc)
# :multiple => false - disallows multiple crafts
# :xp => amount - base Crafting xp gained per craft
# :xp_deprac => amount - Xp lost per crafting level
# :pxp => amount - Player xp gainer per craft
# Formula for xp gained is as follows and is never negative:
# xp gain = xp - (current_level - recipe_level) * xp_deprac
RECIPES = {
0 => { :result => [0,1,1],
:materials => [[0,4,2]],
:gold_cost => [10,"Cuivre"],
:success => 95,
:success_gain => 1,
:level => 1,
:craft_level => 1,
:category => :Alchemy,
:xp => 50,
:xp_deprac => 15,},
1 => { :result => [0,2,1],
:materials => [[0,4,1],[0,5,2]],
:gold_cost => [50,"Argent"],
:success => 90,
:success_gain => 2,
:level => 15,
:craft_level => 1,
:category => :Alchemy,
:xp => 150,
:xp_deprac => 20,},
2 => { :result => [0,3,1],
:materials => [[0,4,1],[0,5,1],[0,6,2],[0,7,1],[0,8,1]],
:gold_cost => [20,"Or"],
:success => 85,
:success_gain => 3,
:level => 25,
:craft_level => 1,
:category => :Alchemy,
:xp => 250,
:xp_deprac => 25,},
}
end
$crafting_category = :All
class Recipe
attr_accessor :result
attr_accessor :materials
attr_accessor :known
attr_accessor :id
attr_accessor :gold_cost
attr_accessor :level
attr_accessor :category
attr_accessor :xp
def initialize(id,recipe_hash)
@id = id
@result = Material.new(recipe_hash[:result])
@materials = []
for item in recipe_hash[:materials]
@materials.push(Material.new(item))
end
@known = false
recipe_hash[:gold_cost] ? @gold_cost = recipe_hash[:gold_cost] : @gold_cost = 0
recipe_hash[:success] ? @rate = recipe_hash[:success] : @rate = 100
recipe_hash[:success_gain] ? @rated = recipe_hash[:success_gain] : @rated = 0
recipe_hash[:level] ? @level = recipe_hash[:level] : @level = 1
recipe_hash[:category] ? @category = recipe_hash[:category] : @category = CATEGORIES[0]
recipe_hash[:xp] ? @xp = recipe_hash[:xp] : @xp = 0
recipe_hash[:xp_deprac] ? @xpd = recipe_hash[:xp_deprac] : @xpd = 0
recipe_hash[:craft_level] ? @clevel = recipe_hash[:craft_level] : @clevel = 0
recipe_hash[:pxp] ? @pxp = recipe_hash[:pxp] : @pxp = 0
!recipe_hash[:multiple].nil? ? @mult = recipe_hash[:multiple] : @mult = true
@known = ADV_RECIPE::AUTO_LEARN_RECIPES
end
def name
return @result.item.name
end
def multiple?
@mult
end
def has_materials?
for item in @materials
return false unless $game_party.item_number(item.item) >= item.amount
end
return true
end
def has_gold?
$game_party.gold >= @gold_cost
end
def has_craft_level?
craft_level <= $game_party.craft_level_sym(@category)
end
def has_level?
@level <= $game_party.highest_level && has_craft_level?
end
def craftable?
has_gold? && has_materials? && has_level?
end
def craft_level
@clevel
end
def amount_craftable?
mat_amount = []
for item in @materials
mat_amount.push($game_party.item_number(item.item) / item.amount)
end
if @gold_cost > 0
return [$game_party.gold / @gold_cost,mat_amount.min].min
else
return mat_amount.min
end
end
def craft(fail = 0)
remove_materials
if fail < success_rate
return add_result
else
return nil
end
end
def remove_materials
for item in @materials
$game_party.gain_item(item.item,-item.amount)
end
$game_party.gain_gold(-@gold_cost)
end
def add_result
if ADV_RECIPE::USE_WA_RANDOMIZATION
item = $game_party.add_weapon(@result.item.id,@result.amount) if @result.item.is_a?(RPG::Weapon)
item = $game_party.add_armor(@result.item.id,@result.amount) if @result.item.is_a?(RPG::Armor)
item = $game_party.add_item(@result.item.id,@result.amount) if @result.item.is_a?(RPG::Item)
else
$game_party.gain_item(@result.item,@result.amount)
item = @result.item
end
$game_party.gain_craft_exp(category_id, xp_gain)
$game_party.members.each do |actor|
actor.gain_exp(@pxp)
end
item
end
def category_id
ADV_RECIPE::CATEGORIES.index(@category)
end
def xp_gain
level_diff = $game_party.craft_level(category_id) - @clevel
[@xp - @xpd * level_diff,0].max
end
def success_rate
level_diff = $game_party.craft_level(category_id) - @clevel
[@rate + @rated * level_diff,100].min
end
end
class Material
attr_accessor :item
attr_accessor :amount
def initialize(mat)
@item = $data_items[mat[1]] if mat[0] == 0
@item = $data_weapons[mat[1]] if mat[0] == 1
@item = $data_armors[mat[1]] if mat[0] == 2
@amount = mat[2]
end
end
class Game_Party
alias recipe_init initialize
def initialize
recipe_init
@crafting_level = [1]*ADV_RECIPE::CATEGORIES.size
@craft_exp = [0]*ADV_RECIPE::CATEGORIES.size
end
def craft_level(id)
@crafting_level[id]
end
def craft_level_sym(sym)
@crafting_level[ADV_RECIPE::CATEGORIES.index(sym)]
end
def craft_exp(id)
@craft_exp[id]
end
def craft_exp_next(id)
lvl = craft_level(id)
return eval(ADV_RECIPE::XP_NEEDED_EQUATION)
end
def gain_craft_exp(id, val)
@craft_exp[id] += val
while craft_exp(id) >= craft_exp_next(id)
@craft_exp[id] -= craft_exp_next(id)
@crafting_level[id] += 1
end
end
end
module DataManager
class << self
alias rec_cgo create_game_objects
alias rec_msc make_save_contents
alias rec_esc extract_save_contents
end
def self.create_game_objects
rec_cgo
$game_recipes = create_recipes
end
def self.make_save_contents
contents = rec_msc
contents[:recipe] = $game_recipes
contents
end
def self.extract_save_contents(contents)
rec_esc(contents)
$game_recipes = contents[:recipe]
end
def self.create_recipes
recipes = {}
ADV_RECIPE::RECIPES.each_pair do |key, val|
recipes[key] = Recipe.new(key,val)
end
recipes
end
end
class Game_Interpreter
def learn_recipe(id)
return if $game_recipes[id].nil?
$game_recipes[id].known = true
end
def forget_recipe(id)
return if $game_recipes[id].nil?
$game_recipes[id].known = false
end
end
class Window_RecipeList < Window_Selectable
def initialize(x,y,w,h)
super
@data = $game_recipes.values.select {|recipe| include?(recipe)}
refresh
end
def item_max
@data ? @data.size : 1
end
def item
@data && index >= 0 ? @data[index] : nil
end
def current_item_enabled?
enable?(@data[index])
end
def include?(item)
return false unless item.has_craft_level?
return false unless item.known
return true if @category == :All
return @category == item.category
end
def set_category(cat)
return if cat == @category
@category = cat
@data = $game_recipes.values.select {|recipe| include?(recipe)}
refresh
end
def enable?(item)
return false if item.nil?
item.craftable?
end
def draw_item(index)
item = @data[index]
if item
rect = item_rect(index)
rect.width -= 4
draw_item_name(item.result.item, rect.x, rect.y, enable?(item))
if item.amount_craftable? > 0
draw_text(rect.x,rect.y,contents.width,24,"x"+item.amount_craftable?.to_s,2)
end
end
end
def current_item
index >= 0 ? @data[index] : nil
end
def process_ok
if current_item_enabled?
Sound.play_ok
Input.update
call_ok_handler
else
Sound.play_buzzer
end
end
def refresh
create_contents
super
end
def content_heights
item_max * 24
end
end
class Window_RecipeDetail < Window_Base
def initialize(x,y,w,h)
super
@recipe = nil
end
def set_recipe(recipe)
@recipe = recipe
refresh
end
def refresh
contents.clear
contents.font.size = ADV_RECIPE::DETAIL_FONT_SIZE
return if @recipe.nil?
draw_craft_level unless ADV_RECIPE::DISABLE_PLAYER_LEVEL && ADV_RECIPE::DISABLE_CRAFT_LEVEL
draw_materials
draw_success_rate unless ADV_RECIPE::DISABLE_SUCCESS
draw_gold_cost unless ADV_RECIPE::DISABLE_GOLD_COST
end
def draw_craft_level
change_color(system_color, @recipe.has_level?)
draw_text(0,0,contents.width,contents.font.size,"Craft Level:")
change_color(normal_color, @recipe.has_level?)
xx = 0
if !ADV_RECIPE::DISABLE_PLAYER_LEVEL
draw_text(0,0,contents.width,contents.font.size,@recipe.level,2)
draw_icon(ADV_RECIPE::LEVEL_ICON,contents.width - 48,0)
xx += 48
text = @recipe.craft_level.to_s + "/"
else
text = @recipe.craft_level.to_s
end
if !ADV_RECIPE::DISABLE_CRAFT_LEVEL
draw_text(0,0,contents.width - xx,contents.font.size,text,2)
draw_icon(ADV_RECIPE::CATEGORY_ICONS[ADV_RECIPE::CATEGORIES.index(@recipe.category)],contents.width - 56 - xx,0)
end
end
def draw_materials
if ADV_RECIPE::DISABLE_CRAFT_LEVEL && ADV_RECIPE::DISABLE_PLAYER_LEVEL
yy = 0
else
yy = contents.font.size
end
change_color(system_color, @recipe.craftable?)
draw_text(0,yy,self.width,contents.font.size,"Required:")
yy += contents.font.size
for item in @recipe.materials
change_color(normal_color, $game_party.item_number(item.item) >= item.amount)
draw_icon(item.item.icon_index,0,yy)
draw_text(24,yy,self.width,contents.font.size,item.item.name)
string = $game_party.item_number(item.item).to_s + "/" + item.amount.to_s
draw_text(0,yy,self.contents.width,contents.font.size,string,2)
yy += contents.font.size
end
end
def draw_success_rate
change_color(system_color, @recipe.craftable?)
draw_text(0,contents.height-contents.font.size,contents.width,contents.font.size,"Success Rate:")
change_color(normal_color, @recipe.craftable?)
draw_text(0,contents.height-contents.font.size,contents.width,contents.font.size,@recipe.success_rate.to_s + "%",2)
end
def draw_gold_cost
if @recipe.gold_cost > 0
change_color(system_color, @recipe.has_gold?)
draw_text(0,contents.height-contents.font.size*2,contents.width,contents.font.size,"Crafting Cost:")
change_color(normal_color, @recipe.has_gold?)
draw_currency_value(@recipe.gold_cost,Vocab::currency_unit,0,contents.height-contents.font.size*2,contents.width)
end
end
def draw_currency_value(value, unit, x, y, width)
cx = text_size(unit).width
change_color(normal_color,$game_party.gold >= value)
draw_text(x, y, width - cx - 2, contents.font.size, value, 2)
change_color(system_color)
draw_text(x, y, width, contents.font.size, unit, 2)
end
end
class Window_RecipeConfirm < Window_Selectable
attr_accessor :amount
def initialize(x,y,w,h)
super
@amount = 1
refresh
end
def item_max; 1; end;
def enable?(item); true; end;
def refresh
super
draw_text(0,0,self.contents.width,line_height,"Craft",1)
return unless @recipe && @recipe.craftable?
draw_text(0,0,contents.width,line_height,"x"+@amount.to_s,2)
end
def activate
super
select(0)
end
def deactivate
super
select(-1)
end
def set_recipe(rec)
return if rec == @recipe
@recipe = rec
@amount = 1
refresh
end
def cursor_movable?
active && open? && ADV_RECIPE::CRAFT_MULTIPLE && @recipe.multiple?
end
def cursor_down(wrap = false)
change_amount(-10)
end
def cursor_up(wrap = false)
change_amount(10)
end
def cursor_right(wrap = false)
change_amount(1)
end
def cursor_left(wrap = false)
change_amount(-1)
end
def change_amount(val)
Sound.play_cursor
@amount += val
@amount = [[@amount,1].max,@recipe.amount_craftable?].min
refresh
end
end
class Scene_CraftingAll < Scene_Base
def start
super
@help_window = Window_Help.new
width = Graphics.width / 2
height = Graphics.height - @help_window.height - 48
@list_window = Window_RecipeList.new(0,@help_window.height+48,width,height-48)
@list_window.set_handler(:ok, method(:list_success))
@list_window.set_handler(:cancel, method(:cancel))
@list_window.height += 48 if ADV_RECIPE::DISABLE_CRAFT_LEVEL
@list_window.create_contents
@detail_window = Window_RecipeDetail.new(width,@list_window.y,width,height-48*2)
@detail_window.height += 48 if ADV_RECIPE::DISABLE_GOLD_COST
@detail_window.create_contents
height = @detail_window.y + @detail_window.height
@confirm_window = Window_RecipeConfirm.new(width,height,width,48)
@confirm_window.set_handler(:ok, method(:craft_success))
@confirm_window.set_handler(:cancel, method(:confirm_cancel))
if !ADV_RECIPE::DISABLE_GOLD_COST
@gold_window = Window_Gold.new
@gold_window.width = width
@gold_window.y = Graphics.height - 48
@gold_window.x = width
end
@popup_window = Window_RecPopup.new
@popup_window.set_handler(:ok, method(:popup_ok))
@popup_window.set_handler(:cancel, method(:popup_ok))
@command_window = Window_RecCategory.new
@command_window.set_handler(:ok, method(:command_ok))
@command_window.set_handler(:cancel, method(:command_cancel))
@gauge_window = Window_RecGauge.new unless ADV_RECIPE::DISABLE_CRAFT_LEVEL
end
def popup_ok
@popup_window.deactivate
@popup_window.close
@list_window.activate
end
def update
super
@help_window.set_text(@list_window.current_item.result.item.description) if !@list_window.current_item.nil?
@detail_window.set_recipe(@list_window.current_item)
@confirm_window.set_recipe(@list_window.current_item)
@list_window.set_category(ADV_RECIPE::CATEGORIES[@command_window.index])
@gauge_window.set_category(ADV_RECIPE::CATEGORIES[@command_window.index]) unless ADV_RECIPE::DISABLE_CRAFT_LEVEL
return unless @list_window.current_item
if @list_window.current_item.craftable?
@confirm_window.opacity = 255
@confirm_window.contents_opacity = 255
else
@confirm_window.opacity = 75
@confirm_window.contents_opacity = 75
end
end
def list_success
@list_window.deactivate
@confirm_window.activate
end
def craft_success
amount = 0
item = nil
@confirm_window.amount.times do
item2 = @list_window.current_item.craft(rand(100))
if item2
amount += 1
item = item2
end
end
if item
@popup_window.set_text(item, amount)
else
@popup_window.set_text_fail
end
@confirm_window.change_amount(-1000)
@gold_window.refresh unless ADV_RECIPE::DISABLE_GOLD_COST
@list_window.refresh
@gauge_window.refresh unless ADV_RECIPE::DISABLE_CRAFT_LEVEL
@popup_window.activate
end
def confirm_cancel
@confirm_window.deactivate
@list_window.activate
end
def command_cancel
SceneManager.return
end
def cancel
@list_window.select(-1)
@command_window.activate
end
def command_ok
@list_window.select(0)
@list_window.activate
end
end
class Scene_Crafting < Scene_CraftingAll
def start
super
@command_window.index = ADV_RECIPE::CATEGORIES.index($crafting_category)
@command_window.deactivate
@command_window.visible = false
@list_window.height += 48
@list_window.y -= 48
@detail_window.height += 48
@detail_window.y -= 48
@list_window.create_contents
@detail_window.create_contents
@list_window.select(0)
@list_window.activate
end
def cancel
SceneManager.return
end
end
class Window_RecCategory < Window_HorzCommand
def initialize
super(0,72)
end
def window_width; Graphics.width; end
def window_height; 48; end
def make_command_list
ADV_RECIPE::CATEGORIES.each do |command|
add_command(command.to_s,command)
end
end
def item_width
120
end
def draw_item(index)
change_color(normal_color, command_enabled?(index))
rect = item_rect_for_text(index)
draw_text(rect, command_name(index))
draw_icon(ADV_RECIPE::CATEGORY_ICONS[index],rect.x-24,rect.y)
end
def item_rect_for_text(index)
rect = item_rect(index)
rect.x += 28
rect.width -= 28
rect
end
end
class Window_RecPopup < Window_Selectable
def initialize
super(Graphics.width/2-window_width/2,Graphics.height/2-window_height/2,120,48)
self.openness = 0
deactivate
end
def window_width; 120; end
def window_height; 48; end
def set_text(item, amount)
contents.clear
text = amount.to_s + "x " + item.name + " crafted!"
width = contents.text_size(text).width
self.width = width + padding*2
self.x = Graphics.width/2-width/2
create_contents
draw_text(24,0,contents.width,line_height,text)
draw_icon(item.icon_index,0,0)
open
end
def set_text_fail
contents.clear
text = "Crafting failed!"
width = contents.text_size(text).width
self.width = width + padding*2
self.x = Graphics.width/2-width/2
create_contents
draw_text(12,0,contents.width,line_height,text)
open
end
def process_ok
if current_item_enabled?
Input.update
deactivate
call_ok_handler
else
Sound.play_buzzer
end
end
end
class Window_RecGauge < Window_Base
def initialize
super(0,Graphics.height-48,Graphics.width/2,48)
@category = :All
end
def refresh
contents.clear
return if @category == :All
draw_icon(ADV_RECIPE::CATEGORY_ICONS[cat_index],0,0)
draw_text(24,0,contents.width,24,$game_party.craft_level(cat_index))
rate = $game_party.craft_exp(cat_index).to_f / $game_party.craft_exp_next(cat_index)
draw_gauge(48, -3, contents.width-48, rate, tp_gauge_color1, tp_gauge_color2)
if Module.const_defined?(:SPECIAL_GAUGES)
@gauges[[48,-3]].set_extra("XP",$game_party.craft_exp(cat_index),$game_party.craft_exp_next(cat_index))
else
text = $game_party.craft_exp(cat_index).to_s+"/"+$game_party.craft_exp_next(cat_index).to_s
draw_text(0,0,contents.width,24,text,2)
end
end
def set_category(cat)
return if cat == @category
@category = cat
refresh
end
def cat_index
ADV_RECIPE::CATEGORIES.index(@category)
end
end
class Window_MenuCommand < Window_Command
alias recipe_aoc add_original_commands
def add_original_commands
recipe_aoc
add_command("Crafting", :recipe) if ADV_RECIPE::ENABLE_MENU_ACCESS
end
end
class Scene_Menu < Scene_MenuBase
alias recipe_create_command_window create_command_window
def create_command_window
recipe_create_command_window
@command_window.set_handler(:recipe, method(:command_recipe))
end
def command_recipe
SceneManager.call(Scene_CraftingAll)
end
end
Avec ce script, on peut afficher soit une catégorie de craft (Alchimie, Forgeron...), soit toutes les catégories de craft. Je voulais savoir s'il était possible d'afficher une partie seulement de ces catégories, c'est-à-dire plusieurs mais pas toutes.
Egalement, il y a un bug d'affichage lorsqu'on va dans l'écran avec toutes les catégories. Quand on sélectionne une catégorie, le curseur se place automatiquement sur le premier objet à crafter et on peut bouger le curseur de façon normale. Mais quand on annule pour revenir dans le choix des catégories, la description de l'objet sur lequel on a passé le curseur en dernier reste affiché en haut de l'écran. C'est possible de corriger ça, s\'il vous plaît ?
J'ai une démo si ça peut vous aider : http://www.mediafire.com/download/h2gam44a8e2de4t/Craft.exe
- TitouMembre
- Nombre de messages : 560
Age : 28
Localisation : Isère
Distinction : aucune
Date d'inscription : 22/04/2012
Re: Questions Script craft
Mar 5 Mai 2015 - 23:36
Pour le premier problème, essaye de mettre au lieu de :All à la ligne 116 de mettre :Alchemy, et les autres catégories que tu veux. Je pense que ça peut marcher (j'ai pas réussit à faire marcher le script tout court sur mon projet donc je sais pas se que ça vaut)
Pour le deuxième, est-ce que ça change lorsque tu bouge le curseur?
Pour le deuxième, est-ce que ça change lorsque tu bouge le curseur?
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: Questions Script craft
Mer 6 Mai 2015 - 6:57
J'ai voulu faire comme tu as dit pour la ligne 116, comment je dois modifier les scripts call du coup ? Je pense que c'est normal si ça n'a pas marché sur ton projet car j'utilise ce script avec celui de Vincent pour les différentes monnaies, c'est pour cela que j'ai mis une démo à la fin de mon précédent message.
Pour le bug d'affichage, ça ne change pas quand je bouge le curseur entre les différentes catégories. Si j'en sélectionne une autre, la description se met à jour par rapport aux nouveaux objets que je survole mais le problème se pose juste quand je sors de ces sous-menus pour naviguer entre les différentes catégories de craft.
Pour le bug d'affichage, ça ne change pas quand je bouge le curseur entre les différentes catégories. Si j'en sélectionne une autre, la description se met à jour par rapport aux nouveaux objets que je survole mais le problème se pose juste quand je sors de ces sous-menus pour naviguer entre les différentes catégories de craft.
- TitouMembre
- Nombre de messages : 560
Age : 28
Localisation : Isère
Distinction : aucune
Date d'inscription : 22/04/2012
Re: Questions Script craft
Mer 6 Mai 2015 - 8:43
My bad, mon mauvais, le jour où je verrai les lien peut-être que ça ira mieux xD
Alors du coup non c'est pas à la ligne 116 mais bien à la ligne 26 qu'il faut mettre les catégories que tu veux (c'est les caractères en jaunes qu'il faut laisser ou enlever, ou créer, c'est aussi ici ou tu peux changer le nom en français des catégories)
Pour le second bug, je suis pas assez calé, je ne saurai même pas dire à quoi est dû le problème donc faudra attendre un scripteur je pense
Alors du coup non c'est pas à la ligne 116 mais bien à la ligne 26 qu'il faut mettre les catégories que tu veux (c'est les caractères en jaunes qu'il faut laisser ou enlever, ou créer, c'est aussi ici ou tu peux changer le nom en français des catégories)
Pour le second bug, je suis pas assez calé, je ne saurai même pas dire à quoi est dû le problème donc faudra attendre un scripteur je pense
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: Questions Script craft
Mer 6 Mai 2015 - 17:57
Oui, je sais qu'à la ligne 26, on peut définir les catégories. Mais il y a deux moyens d'ouvrir les menus de craft :
SceneManager.call(Scene_Crafting) - pour ouvrir une catégorie de craft
SceneManager.call(Scene_CraftingAll) - pour ouvrir toutes les catégories de craft
Ce que je voudrais, c'est ouvrir plusieurs catégories, mais pas toutes.
SceneManager.call(Scene_Crafting) - pour ouvrir une catégorie de craft
SceneManager.call(Scene_CraftingAll) - pour ouvrir toutes les catégories de craft
Ce que je voudrais, c'est ouvrir plusieurs catégories, mais pas toutes.
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: Questions Script craft
Sam 9 Mai 2015 - 8:18
Petit up
- ZouzakaMembre
- Nombre de messages : 302
Age : 25
Distinction : aucune
Date d'inscription : 25/12/2011
Re: Questions Script craft
Sam 9 Mai 2015 - 18:33
J'ai bidouiller ca :
Les Modification apportés
Avant :
Pour afficher un seul type de catégories :
pour afficher un seul type : (ajout des crochets)
- Spoiler:
- Code:
$crafting_category = [:All]
class Scene_CraftingAll
alias :old_cancel :cancel
def cancel
@help_window.clear
old_cancel
end
end
class Scene_Crafting
def start
super
if $crafting_category.length == 1 ; alternative_start ; end
end
def alternative_start
@command_window.index = ADV_RECIPE::CATEGORIES.index($crafting_category[0])
@command_window.deactivate
@command_window.visible = false
@list_window.height += 48
@list_window.y -= 48
@detail_window.height += 48
@detail_window.y -= 48
@list_window.create_contents
@detail_window.create_contents
@list_window.select(0)
@list_window.activate
end
def cancel
if $crafting_category.length == 1 ; SceneManager.return
else
@list_window.select(-1)
@command_window.activate
@help_window.clear
end
end
end
class Window_RecCategory < Window_HorzCommand
def make_command_list
if SceneManager.scene_is?(Scene_CraftingAll)
ADV_RECIPE::CATEGORIES.each{|command| add_command(command.to_s,command)}
else
$crafting_category.each{|command| add_command(command.to_s,command)}
end
end
end
Les Modification apportés
Avant :
Pour afficher un seul type de catégories :
Maintenant :$crafting_category = :Alchemy
SceneManager.call(Scene_Crafting)
pour afficher un seul type : (ajout des crochets)
Et plusieurs types (ajoute la liste des catégories entre les crochets et séparé par des virgules)$crafting_category = [:Alchemy]
SceneManager.call(Scene_Crafting)
$crafting_category = [:Alchemy,:Builder]
SceneManager.call(Scene_Crafting)
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: Questions Script craft
Sam 9 Mai 2015 - 20:49
Je viens de tester en mettant ton bout de script sous celui du craft, ça marche bien. J'arrive à ouvrir plusieurs catégories et le bug a disparu. J'ai deux autres soucis mais je verrai avec Vincent, c'est lié à son script de monnaie.
Une dernière chose : est-ce qu'il serait possible de récupérer la valeur de niveau de craft (une par catégorie) et de la stocker dans une variable du jeu ?
Une dernière chose : est-ce qu'il serait possible de récupérer la valeur de niveau de craft (une par catégorie) et de la stocker dans une variable du jeu ?
- ZouzakaMembre
- Nombre de messages : 302
Age : 25
Distinction : aucune
Date d'inscription : 25/12/2011
Re: Questions Script craft
Sam 9 Mai 2015 - 23:09
Remplace le script que je t'est donné par celui-ci :
- Spoiler:
- Code:
$crafting_category = [:All]
class Scene_CraftingAll
alias :old_cancel :cancel
def cancel
@help_window.clear
old_cancel
end
end
class Scene_Crafting
def start
super
if $crafting_category.length == 1 ; alternative_start ; end
end
def alternative_start
@command_window.index = ADV_RECIPE::CATEGORIES.index($crafting_category[0])
@command_window.deactivate
@command_window.visible = false
@list_window.height += 48
@list_window.y -= 48
@detail_window.height += 48
@detail_window.y -= 48
@list_window.create_contents
@detail_window.create_contents
@list_window.select(0)
@list_window.activate
end
def cancel
if $crafting_category.length == 1 ; SceneManager.return
else
@list_window.select(-1)
@command_window.activate
@help_window.clear
end
end
end
class Window_RecCategory < Window_HorzCommand
def make_command_list
if SceneManager.scene_is?(Scene_CraftingAll)
ADV_RECIPE::CATEGORIES.each{|command| add_command(command.to_s,command)}
else
$crafting_category.each{|command| add_command(command.to_s,command)}
end
end
end
class Game_Party
def craft_level(id)
if id.class == Symbol
@crafting_level[ADV_RECIPE::CATEGORIES.index(id)]
else
@crafting_level[id]
end
end
end
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: Questions Script craft
Dim 10 Mai 2015 - 9:40
Ça marche super bien. Merci beaucoup !
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: Questions Script craft
Dim 10 Mai 2015 - 13:33
Il reste un petit problème que je n'avais pas vu, c'est du détail. Lorsque je vais dans une catégorie de craft, si je passe le cursor sur un équipement que je peux fabriquer, puis que j'annule pour changer de catégorie, la touche Craft reste activée et ne passe pas en grisâtre. C'est possible de corriger ça ?
- ZouzakaMembre
- Nombre de messages : 302
Age : 25
Distinction : aucune
Date d'inscription : 25/12/2011
Re: Questions Script craft
Dim 10 Mai 2015 - 19:20
Voila : (et j'ai aussi corrigé quelques oublis de ma part ^^' )
- Spoiler:
- Code:
$crafting_category = [:All]
class Scene_CraftingAll
alias :old_cancel :cancel
def cancel
@help_window.clear
old_cancel
end
def update
super
@help_window.set_text(@list_window.current_item.result.item.description) if !@list_window.current_item.nil?
@detail_window.set_recipe(@list_window.current_item)
@confirm_window.set_recipe(@list_window.current_item)
@list_window.set_category(ADV_RECIPE::CATEGORIES[@command_window.index])
@gauge_window.set_category(ADV_RECIPE::CATEGORIES[@command_window.index]) unless ADV_RECIPE::DISABLE_CRAFT_LEVEL
return unless @list_window.current_item
if @list_window.current_item.craftable? and @list_window.active
@confirm_window.opacity = 255
@confirm_window.contents_opacity = 255
else
@confirm_window.opacity = 75
@confirm_window.contents_opacity = 75
end
end
end
class Scene_Crafting
def start
super
if $crafting_category.length == 1 ; alternative_start ; end
end
def alternative_start
@command_window.index = ADV_RECIPE::CATEGORIES.index($crafting_category[0])
@command_window.deactivate
@command_window.visible = false
@list_window.height += 48
@list_window.y -= 48
@detail_window.height += 48
@detail_window.y -= 48
@list_window.create_contents
@detail_window.create_contents
@list_window.select(0)
@list_window.activate
end
def cancel
if $crafting_category.length == 1 ; SceneManager.return
else
@confirm_window.opacity = 75
@confirm_window.contents_opacity = 75
@list_window.select(-1)
@command_window.activate
@help_window.clear
end
end
def update
super
@list_window.set_category($crafting_category[@command_window.index])
end
end
class Window_RecCategory < Window_HorzCommand
def make_command_list
if SceneManager.scene_is?(Scene_CraftingAll)
ADV_RECIPE::CATEGORIES.each{|command| add_command(command.to_s,command)}
else
$crafting_category.each{|command| add_command(command.to_s,command)}
end
end
def draw_item(index)
change_color(normal_color, command_enabled?(index))
rect = item_rect_for_text(index)
draw_text(rect, command_name(index))
if SceneManager.scene_is?(Scene_CraftingAll)
draw_icon(ADV_RECIPE::CATEGORY_ICONS[index],rect.x-24,rect.y)
else
draw_icon(ADV_RECIPE::CATEGORY_ICONS[ADV_RECIPE::CATEGORIES.index($crafting_category[index])],rect.x-24,rect.y)
end
end
end
class Game_Party
def craft_level(id)
if id.class == Symbol
@crafting_level[ADV_RECIPE::CATEGORIES.index(id)]
else
@crafting_level[id]
end
end
end
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: Questions Script craft
Dim 10 Mai 2015 - 20:45
Je viens de tester mais ça pose un problème : la touche Craft devient transparente, même le fond du wallpaper par défaut. En fait, c'est surtout l'écriture qu'il faudrait griser pour montrer que l'option Craft n'est pas disponible à ce stade de navigation dans le menu.
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: Questions Script craft
Mar 12 Mai 2015 - 19:42
Petit up
- ZouzakaMembre
- Nombre de messages : 302
Age : 25
Distinction : aucune
Date d'inscription : 25/12/2011
Re: Questions Script craft
Mar 12 Mai 2015 - 20:05
comme ceci ? :
- Spoiler:
- Code:
$crafting_category = [:All]
class Scene_CraftingAll
alias :old_cancel :cancel
def cancel
@help_window.clear
old_cancel
end
def update
super
@help_window.set_text(@list_window.current_item.result.item.description) if !@list_window.current_item.nil?
@detail_window.set_recipe(@list_window.current_item)
@confirm_window.set_recipe(@list_window.current_item)
@list_window.set_category(ADV_RECIPE::CATEGORIES[@command_window.index])
@gauge_window.set_category(ADV_RECIPE::CATEGORIES[@command_window.index]) unless ADV_RECIPE::DISABLE_CRAFT_LEVEL
return unless @list_window.current_item
end
end
class Scene_Crafting
def start
super
if $crafting_category.length == 1 ; alternative_start ; end
end
def alternative_start
@command_window.index = ADV_RECIPE::CATEGORIES.index($crafting_category[0])
@command_window.deactivate
@command_window.visible = false
@list_window.height += 48
@list_window.y -= 48
@detail_window.height += 48
@detail_window.y -= 48
@list_window.create_contents
@detail_window.create_contents
@list_window.select(0)
@list_window.activate
end
def cancel
if $crafting_category.length == 1 ; SceneManager.return
else
@list_window.select(-1)
@command_window.activate
@help_window.clear
end
end
def update
super
@list_window.set_category($crafting_category[@command_window.index])
if @list_window.active && @list_window.current_item.craftable? or @confirm_window.active
@confirm_window.contents.clear
@confirm_window.change_color(@confirm_window.normal_color, true)
@confirm_window.contents.draw_text(0,0,@confirm_window.contents.width,@confirm_window.line_height,"Craft",1)
else
@confirm_window.contents.clear
@confirm_window.change_color(@confirm_window.normal_color, false)
@confirm_window.contents.draw_text(0,0,@confirm_window.contents.width,@confirm_window.line_height,"Craft",1)
end
end
end
class Window_RecCategory < Window_HorzCommand
def make_command_list
if SceneManager.scene_is?(Scene_CraftingAll)
ADV_RECIPE::CATEGORIES.each{|command| add_command(command.to_s,command)}
else
$crafting_category.each{|command| add_command(command.to_s,command)}
end
end
def draw_item(index)
change_color(normal_color, command_enabled?(index))
rect = item_rect_for_text(index)
draw_text(rect, command_name(index))
if SceneManager.scene_is?(Scene_CraftingAll)
draw_icon(ADV_RECIPE::CATEGORY_ICONS[index],rect.x-24,rect.y)
else
draw_icon(ADV_RECIPE::CATEGORY_ICONS[ADV_RECIPE::CATEGORIES.index($crafting_category[index])],rect.x-24,rect.y)
end
end
end
class Game_Party
def craft_level(id)
if id.class == Symbol
@crafting_level[ADV_RECIPE::CATEGORIES.index(id)]
else
@crafting_level[id]
end
end
end
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: Questions Script craft
Mar 12 Mai 2015 - 22:39
C'est ça oui. Mais j'ai trouvé deux petites erreurs :
- Quand je fais un appel de toutes les catégories de craft, l'icône craft reste disponible lorsque je repasse dans le choix des catégories.
- Quand je fais un appel de plusieurs catégories de craft, si une catégorie n'a pas de craft défini et que je valide cette catégorie, ça me donne un message d'erreur (voir ci-dessous). Ce bug n'apparaît pas lorsque j'appelle toutes les catégories de craft d'un coup.
- Quand je fais un appel de toutes les catégories de craft, l'icône craft reste disponible lorsque je repasse dans le choix des catégories.
- Quand je fais un appel de plusieurs catégories de craft, si une catégorie n'a pas de craft défini et que je valide cette catégorie, ça me donne un message d'erreur (voir ci-dessous). Ce bug n'apparaît pas lorsque j'appelle toutes les catégories de craft d'un coup.
- ZouzakaMembre
- Nombre de messages : 302
Age : 25
Distinction : aucune
Date d'inscription : 25/12/2011
Re: Questions Script craft
Mar 12 Mai 2015 - 22:54
Voila :
- Spoiler:
- Code:
$crafting_category = [:All]
class Scene_CraftingAll
alias :old_cancel :cancel
def cancel
@help_window.clear
old_cancel
end
def update
super
if @list_window.active && @list_window.current_item != nil && @list_window.current_item.craftable? or @confirm_window.active
@confirm_window.contents.clear
@confirm_window.change_color(@confirm_window.normal_color, true)
@confirm_window.contents.draw_text(0,0,@confirm_window.contents.width,@confirm_window.line_height,"Craft",1)
else
@confirm_window.contents.clear
@confirm_window.change_color(@confirm_window.normal_color, false)
@confirm_window.contents.draw_text(0,0,@confirm_window.contents.width,@confirm_window.line_height,"Craft",1)
end
@help_window.set_text(@list_window.current_item.result.item.description) if !@list_window.current_item.nil?
@detail_window.set_recipe(@list_window.current_item)
@confirm_window.set_recipe(@list_window.current_item)
@list_window.set_category(ADV_RECIPE::CATEGORIES[@command_window.index])
@gauge_window.set_category(ADV_RECIPE::CATEGORIES[@command_window.index]) unless ADV_RECIPE::DISABLE_CRAFT_LEVEL
return unless @list_window.current_item
end
end
class Scene_Crafting
def start
super
if $crafting_category.length == 1 ; alternative_start ; end
end
def alternative_start
@command_window.index = ADV_RECIPE::CATEGORIES.index($crafting_category[0])
@command_window.deactivate
@command_window.visible = false
@list_window.height += 48
@list_window.y -= 48
@detail_window.height += 48
@detail_window.y -= 48
@list_window.create_contents
@detail_window.create_contents
@list_window.select(0)
@list_window.activate
end
def cancel
if $crafting_category.length == 1 ; SceneManager.return
else
@list_window.select(-1)
@command_window.activate
@help_window.clear
end
end
def update
super
@list_window.set_category($crafting_category[@command_window.index])
end
end
class Window_RecCategory < Window_HorzCommand
def make_command_list
if SceneManager.scene_is?(Scene_CraftingAll)
ADV_RECIPE::CATEGORIES.each{|command| add_command(command.to_s,command)}
else
$crafting_category.each{|command| add_command(command.to_s,command)}
end
end
def draw_item(index)
change_color(normal_color, command_enabled?(index))
rect = item_rect_for_text(index)
draw_text(rect, command_name(index))
if SceneManager.scene_is?(Scene_CraftingAll)
draw_icon(ADV_RECIPE::CATEGORY_ICONS[index],rect.x-24,rect.y)
else
draw_icon(ADV_RECIPE::CATEGORY_ICONS[ADV_RECIPE::CATEGORIES.index($crafting_category[index])],rect.x-24,rect.y)
end
end
end
class Game_Party
def craft_level(id)
if id.class == Symbol
@crafting_level[ADV_RECIPE::CATEGORIES.index(id)]
else
@crafting_level[id]
end
end
end
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: Questions Script craft
Mer 13 Mai 2015 - 18:52
Un dernier petit bug trouvé avec cette nouvelle version :
- Quand on a les ingrédients pour un craft, si on défile le menu avec d'autres crafts où on n'a pas les ingrédients et qu'on revient sur celui qu'on peut crafter, on peut voir un "x1" qui apparaît et disparaît aussitôt à droite de l'icône Craft. Ça fait un flash à chaque fois qu'on revient sur ce craft qu'on peut faire.
- Quand on a les ingrédients pour un craft, si on défile le menu avec d'autres crafts où on n'a pas les ingrédients et qu'on revient sur celui qu'on peut crafter, on peut voir un "x1" qui apparaît et disparaît aussitôt à droite de l'icône Craft. Ça fait un flash à chaque fois qu'on revient sur ce craft qu'on peut faire.
- ZouzakaMembre
- Nombre de messages : 302
Age : 25
Distinction : aucune
Date d'inscription : 25/12/2011
Re: Questions Script craft
Mer 13 Mai 2015 - 20:12
Et la :
- Spoiler:
- Code:
$crafting_category = [:All]
class Scene_CraftingAll
alias :old_cancel :cancel
def cancel
@help_window.clear
old_cancel
end
def update
super
@help_window.set_text(@list_window.current_item.result.item.description) if !@list_window.current_item.nil?
@detail_window.set_recipe(@list_window.current_item)
@confirm_window.set_recipe(@list_window.current_item)
@list_window.set_category(ADV_RECIPE::CATEGORIES[@command_window.index])
@gauge_window.set_category(ADV_RECIPE::CATEGORIES[@command_window.index]) unless ADV_RECIPE::DISABLE_CRAFT_LEVEL
return unless @list_window.current_item
end
end
class Scene_Crafting
def start
super
if $crafting_category.length == 1 ; alternative_start ; end
end
def alternative_start
@command_window.index = ADV_RECIPE::CATEGORIES.index($crafting_category[0])
@command_window.deactivate
@command_window.visible = false
@list_window.height += 48
@list_window.y -= 48
@detail_window.height += 48
@detail_window.y -= 48
@list_window.create_contents
@detail_window.create_contents
@list_window.select(0)
@list_window.activate
end
def cancel
if $crafting_category.length == 1 ; SceneManager.return
else
@list_window.select(-1)
@command_window.activate
@help_window.clear
end
end
def update
super
@list_window.set_category($crafting_category[@command_window.index])
end
end
class Window_RecCategory < Window_HorzCommand
def make_command_list
if SceneManager.scene_is?(Scene_CraftingAll)
ADV_RECIPE::CATEGORIES.each{|command| add_command(command.to_s,command)}
else
$crafting_category.each{|command| add_command(command.to_s,command)}
end
end
def draw_item(index)
change_color(normal_color, command_enabled?(index))
rect = item_rect_for_text(index)
draw_text(rect, command_name(index))
if SceneManager.scene_is?(Scene_CraftingAll)
draw_icon(ADV_RECIPE::CATEGORY_ICONS[index],rect.x-24,rect.y)
else
draw_icon(ADV_RECIPE::CATEGORY_ICONS[ADV_RECIPE::CATEGORIES.index($crafting_category[index])],rect.x-24,rect.y)
end
end
end
class Game_Party
def craft_level(id)
if id.class == Symbol
@crafting_level[ADV_RECIPE::CATEGORIES.index(id)]
else
@crafting_level[id]
end
end
end
class Window_RecipeConfirm < Window_Selectable
def refresh
super
if @recipe && @recipe.craftable?
change_color(normal_color, true)
draw_text(0,0,self.contents.width,line_height,"Craft",1)
draw_text(0,0,contents.width,line_height,"x"+@amount.to_s,2)
else
change_color(normal_color, false)
draw_text(0,0,self.contents.width,line_height,"Craft",1)
end
end
end
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: Questions Script craft
Mer 13 Mai 2015 - 21:37
Ça a résolu un bug... mais je viens d'en trouver un autre :
- Quand j'appelle plusieurs catégories de craft, les niveaux de chaque catégorie s'affichent dans un ordre pré-défini, pas forcément en rapport avec la catégorie en question. Exemple : admettons que je fasse 4 catégories à savoir Alchimie, Forgeron, Tisserand et Armurier. Si je décide d'appeler les catégories Forgeron et Tisserand, ça va m'afficher en bas à gauche respectivement les catégories Alchimie et Forgeron. En fait, je pense que ça reprend l'ordre de la configuration.
- Quand j'appelle plusieurs catégories de craft, les niveaux de chaque catégorie s'affichent dans un ordre pré-défini, pas forcément en rapport avec la catégorie en question. Exemple : admettons que je fasse 4 catégories à savoir Alchimie, Forgeron, Tisserand et Armurier. Si je décide d'appeler les catégories Forgeron et Tisserand, ça va m'afficher en bas à gauche respectivement les catégories Alchimie et Forgeron. En fait, je pense que ça reprend l'ordre de la configuration.
- ZouzakaMembre
- Nombre de messages : 302
Age : 25
Distinction : aucune
Date d'inscription : 25/12/2011
Re: Questions Script craft
Mer 13 Mai 2015 - 22:26
Exact ! Erreur de ma part
Essai ca :
Essai ca :
- Spoiler:
- Code:
$crafting_category = [:All]
module ADV_RECIPE
@actual_cat = $crafting_category[0]
def self.actual_cat=(i) ; @actual_cat = i ; end
def self.actual_cat ; @actual_cat ; end
end
class Scene_CraftingAll
alias :old_cancel :cancel
def cancel
@help_window.clear
old_cancel
end
def update
super
@help_window.set_text(@list_window.current_item.result.item.description) if !@list_window.current_item.nil?
@detail_window.set_recipe(@list_window.current_item)
@confirm_window.set_recipe(@list_window.current_item)
@list_window.set_category(ADV_RECIPE::CATEGORIES[@command_window.index])
@gauge_window.set_category(ADV_RECIPE::CATEGORIES[@command_window.index]) unless ADV_RECIPE::DISABLE_CRAFT_LEVEL
return unless @list_window.current_item
end
end
class Scene_Crafting
def start
super
if $crafting_category.length == 1 ; alternative_start ; end
end
def alternative_start
@command_window.index = ADV_RECIPE::CATEGORIES.index($crafting_category[0])
@command_window.deactivate
@command_window.visible = false
@list_window.height += 48
@list_window.y -= 48
@detail_window.height += 48
@detail_window.y -= 48
@list_window.create_contents
@detail_window.create_contents
@list_window.select(0)
@list_window.activate
end
def cancel
if $crafting_category.length == 1 ; SceneManager.return
else
@list_window.select(-1)
@command_window.activate
@help_window.clear
end
end
def update
super
if $crafting_category.size > 1
@list_window.set_category($crafting_category[@command_window.index])
else
@list_window.set_category($crafting_category[0])
end
end
end
class Window_RecCategory
def make_command_list
if SceneManager.scene_is?(Scene_CraftingAll)
ADV_RECIPE::CATEGORIES.each{|command| add_command(command.to_s,command)}
else
$crafting_category.each{|command| add_command(command.to_s,command)}
end
end
def draw_item(index)
change_color(normal_color, command_enabled?(index))
rect = item_rect_for_text(index)
draw_text(rect, command_name(index))
if SceneManager.scene_is?(Scene_CraftingAll)
draw_icon(ADV_RECIPE::CATEGORY_ICONS[index],rect.x-24,rect.y)
else
draw_icon(ADV_RECIPE::CATEGORY_ICONS[ADV_RECIPE::CATEGORIES.index($crafting_category[index])],rect.x-24,rect.y)
end
end
alias :old_update :update
def update
old_update
ADV_RECIPE.actual_cat = $crafting_category[index]
end
end
class Game_Party
def craft_level(id)
if id.class == Symbol
@crafting_level[ADV_RECIPE::CATEGORIES.index(id)]
else
@crafting_level[id]
end
end
end
class Window_RecipeConfirm
def refresh
super
if @recipe && @recipe.craftable?
change_color(normal_color, true)
draw_text(0,0,self.contents.width,line_height,"Craft",1)
draw_text(0,0,contents.width,line_height,"x"+@amount.to_s,2)
else
change_color(normal_color, false)
draw_text(0,0,self.contents.width,line_height,"Craft",1)
end
end
end
class Window_RecGauge
def cat_index
if SceneManager.scene_is?(Scene_CraftingAll) or ADV_RECIPE.actual_cat == nil
ADV_RECIPE::CATEGORIES.index(@category)
else
p(ADV_RECIPE.actual_cat)
ADV_RECIPE::CATEGORIES.index(ADV_RECIPE.actual_cat)
end
end
end
- NérylisMembre
- Nombre de messages : 615
Age : 35
Localisation : Seine Maritime
Distinction : aucune
Date d'inscription : 23/11/2014
Re: Questions Script craft
Jeu 14 Mai 2015 - 8:30
Cette fois, ça me semble impeccable. Je n'ai pas vu d'autre bug. Mon dernier souci se trouve au niveau des monnaies mais je vois ça avec Vincent. Je vais valider ce sujet, si je trouve un autre problème lié au menu, je t'enverrai un MP. Merci encore pour ton aide.
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|