Zosimos Posted May 1, 2009 Share Posted May 1, 2009 (edited) Questi script mi faranno uscire pazzo.Pensavo di aver facilmente risolto il problema del cambio font, e di aver imparato. Invece, niente.Mi trovo in difficoltà con questo script di Shop: #===============================================================================# Leon's Shopping System#-------------------------------------------------------------------------------# 3/10/2007# v. 1.0#-------------------------------------------------------------------------------# Instructions:# Place above main, and below the other default scripts.# (Yes, that is all of the instructions)## Features:# Replaces the default shop system.##=============================================================================== #=============================================================================== # Window_Shop_Info#=============================================================================== class Window_Shop_Info def initializesuper(160, 0, 480, 64)self.contents = Bitmap.new(width - 32, height - 32)refreshend def refresh(selection = 0)self.contents.clearif selection == 0self.contents.draw_text(0, 0, 448, 32, "Benvenuti! In cosa posso servirvi?", 1)elseself.contents.draw_text(0, 0, 448, 32, "Premere 'Z' per verificare la compatibilità.", 1)endendend#=============================================================================== # END Window_Shop_Info#=============================================================================== #=============================================================================== # Window_Shop_Option#=============================================================================== class Window_Shop_Option def initializesuper(0, 0, 160, 128)@option = ["Compra", "Vendi", "Esci"]@item_max = @option.sizeself.contents = Bitmap.new(width - 32, height - 32)self.index = 0self.active = truerefreshend def refreshself.contents.clearfor i in 0...@option.sizey = i * 32self.contents.draw_text(0, y, 128, 32, @option, 1)endendend#=============================================================================== # END Window_Shop_Option#=============================================================================== #=============================================================================== # Window_Shop_Gold#=============================================================================== class Window_Shop_Gold def initializesuper(0, 128, 160, 64)self.contents = Bitmap.new(width - 32, height - 32)refreshend def refreshself.contents.clearself.contents.font.color = system_colorself.contents.draw_text(0, 0, 60, 32, $data_system.words.gold + ":")self.contents.font.color = normal_colorself.contents.draw_text(0, 0, 128, 32, $game_party.gold.to_s, 2)endend#=============================================================================== # END Window_Shop_Gold#=============================================================================== #=============================================================================== # Window_Shop_Own#=============================================================================== class Window_Shop_Own def initializesuper(0, 192, 160, 64)self.contents = Bitmap.new(width - 32, height - 32)item = nilrefresh(item)end def refresh(item)self.contents.clearself.contents.font.color = system_colorself.contents.draw_text(0, 0, 48, 32, "Posseduti:")if item == nilreturnendself.contents.font.color = normal_colorcase itemwhen RPG::Itemnumber = $game_party.item_number(item.id)when RPG::Weaponnumber = $game_party.weapon_number(item.id)when RPG::Armornumber = $game_party.armor_number(item.id)endself.contents.draw_text(0, 0, 128, 32, number.to_s, 2)endend#=============================================================================== # END Window_Shop_Own#=============================================================================== #=============================================================================== # Window_Shop_List#=============================================================================== class Window_Shop_List def initialize(shop_goods)super(160, 64, 480, 192)self.contents = Bitmap.new(width - 32, height - 32)self.active = falseself.index = 0self.visible = false@shop_goods = shop_goods@sell = falseend def itemif @data != nilreturn @data[index]endend def refresh@sell = false@option_index = nilif self.contents != nilself.contents.disposeself.contents = nilend@data = []for goods_item in @shop_goodscase goods_item[0]when 0item = $data_items[goods_item[1]]when 1item = $data_weapons[goods_item[1]]when 2item = $data_armors[goods_item[1]]endif item != nil@data.push(item)endend@item_max = @data.sizeif @item_max > 0self.contents = Bitmap.new(width - 32, row_max * 32)for i in 0...@item_maxdraw_item(i)endendend def refresh_sell(option_index)@sell = true@option_index = option_indexif self.contents != nilself.contents.disposeself.contents = nilend@data = []for i in 1...$data_items.sizeif $game_party.item_number(i) > 0@data.push($data_items)endendfor i in 1...$data_weapons.sizeif $game_party.weapon_number(i) > 0@data.push($data_weapons)endendfor i in 1...$data_armors.sizeif $game_party.armor_number(i) > 0@data.push($data_armors)endend@item_max = @data.sizeif @item_max > 0self.contents = Bitmap.new(width - 32, row_max * 32)for i in 0...@item_maxdraw_item(i)endendend def draw_item(index)item = @data[index]case itemwhen RPG::Itemnumber = $game_party.item_number(item.id)when RPG::Weaponnumber = $game_party.weapon_number(item.id)when RPG::Armornumber = $game_party.armor_number(item.id)endif @option_index == nilif item.price self.contents.font.color = normal_colorelseself.contents.font.color = disabled_colorendelseself.contents.font.color = normal_colorendx = 4y = index * 32if item.price == 0self.contents.font.color = disabled_colorelseself.contents.font.color = normal_colorendif @sell == falseif item.price self.contents.font.color = normal_colorelseself.contents.font.color = disabled_colorendendrect = Rect.new(x, y, self.width - 32, 32)self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))bitmap = RPG::Cache.icon(item.icon_name)opacity = self.contents.font.color == normal_color ? 255 : 128self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)if @option_index == nilself.contents.draw_text(x + 350, y, 88, 32, item.price.to_s, 2)elseitem_price = (item.price / 2).roundself.contents.draw_text(x + 350, y, 88, 32, item_price.to_s, 2)endendend#=============================================================================== # END Window_Shop_List#=============================================================================== #=============================================================================== # Window_Shop_Description_Item#=============================================================================== class Window_Shop_Description_Item def initializesuper(90, 256, 460, 192)self.contents = Bitmap.new(width - 32, height - 32)self.visible = falseitem = nilrefresh(item)end def refresh(item)self.contents.clearif item == nilreturnendbitmap = RPG::Cache.icon(item.icon_name)opacity = self.contents.font.color == normal_color ? 255 : 128self.contents.blt(0, 4, bitmap, Rect.new(0, 0, 24, 24), opacity)self.contents.draw_text(28, 0, 120, 32, item.name)self.contents.draw_text(0, 32, 428, 32, item.description)self.contents.font.color = system_colorself.contents.draw_text(0, 64, 120, 32, "Range:")self.contents.draw_text(0, 96, 140, 32, "% HP Recovered:")self.contents.draw_text(0, 128, 140, 32, "% SP Recovered:")self.contents.draw_text(230, 96, 120, 32, "HP Recovered:")self.contents.draw_text(230, 128, 120, 32, "SP Recovered:")self.contents.font.color = normal_colorself.contents.draw_text(150, 96, 90, 32, item.recover_hp_rate.to_s)self.contents.draw_text(150, 128, 90, 32, item.recover_sp_rate.to_s)self.contents.draw_text(360, 96, 90, 32, item.recover_hp.to_s)self.contents.draw_text(360, 128, 90, 32, item.recover_sp.to_s)case item.scopewhen 0self.contents.draw_text(70, 64, 120, 32, "Nessuno")when 1self.contents.draw_text(70, 64, 120, 32, "Un avversario")when 2self.contents.draw_text(70, 64, 120, 32, "Tutti gli avversari")when 3self.contents.draw_text(70, 64, 120, 32, "Un compagno")when 4self.contents.draw_text(70, 64, 120, 32, "L'intera compagnia")when 5self.contents.draw_text(70, 64, 120, 32, "Un compagno caduto")when 6self.contents.draw_text(70, 64, 120, 32, "Tutti i compagni caduti")when 7self.contents.draw_text(70, 64, 120, 32, "Il possessore")endendend#=============================================================================== # END Window_Shop_Description_Item#=============================================================================== #=============================================================================== # Window_Shop_Description_Equipment#=============================================================================== class Window_Shop_Description_Equipment def initializesuper(0, 256, 640, 224)self.contents = Bitmap.new(width - 32, height - 32)self.visible = falseitem = nilrefresh(item)end def refresh(item)self.contents.clearif item == nilreturnendbitmap = RPG::Cache.icon(item.icon_name)opacity = self.contents.font.color == normal_color ? 255 : 128self.contents.blt(0, 4, bitmap, Rect.new(0, 0, 24, 24), opacity)self.contents.draw_text(28, 0, 120, 32, item.name)self.contents.draw_text(0, 32, 460, 32, item.description)self.contents.font.color = system_colorif item.is_a?(RPG::Weapon)self.contents.draw_text(0, 64, 75, 32, "Offesa:")self.contents.draw_text(0, 96, 120, 32, "Difesa:")self.contents.draw_text(0, 128, 120, 32, "Resistenza:")self.contents.draw_text(165, 64, 120, 32, "Forza:")self.contents.draw_text(165, 96, 120, 32, "Destreza:")self.contents.draw_text(165, 128, 120, 32, "Agilità:")self.contents.draw_text(165, 160, 120, 32, "Intelligenza:")self.contents.draw_text(290, 64, 120, 32, "Difende da:")self.contents.draw_text(470, 64, 120, 32, "Infligge danni da:")elseself.contents.draw_text(0, 64, 120, 32, "Difesa:")self.contents.draw_text(0, 96, 120, 32, "Resistenza:")self.contents.draw_text(0, 128, 120, 32, "Evasione:")self.contents.draw_text(0, 160, 120, 32, "Auto:")self.contents.draw_text(165, 64, 120, 32, "Forza:")self.contents.draw_text(165, 96, 120, 32, "Destrezza:")self.contents.draw_text(165, 128, 120, 32, "Agilità:")self.contents.draw_text(165, 160, 120, 32, "Intelligenza:")self.contents.draw_text(370, 64, 120, 32, "Protegge dallo Status:")endself.contents.font.color = normal_colorif item.is_a?(RPG::Weapon)self.contents.draw_text(60, 64, 75, 32, item.atk.to_s)self.contents.draw_text(90, 96, 75, 32, item.pdef.to_s)self.contents.draw_text(90, 128, 75, 32, item.mdef.to_s)self.contents.draw_text(195, 64, 50, 32, item.str_plus.to_s, 2)self.contents.draw_text(195, 96, 50, 32, item.dex_plus.to_s, 2)self.contents.draw_text(195, 128, 50, 32, item.agi_plus.to_s, 2)self.contents.draw_text(195, 160, 50, 32, item.int_plus.to_s, 2)self.contents.font.size = 14for i in 0...item.element_set.sizex = 265 + i % 2 * 75y = 80 + i / 2 * 14self.contents.draw_text(x, y, 120, 32, $data_system.elements[item.element_set])endfor i in 0...item.plus_state_set.sizex = 445 + i % 2 * 75y = 80 + i / 2 * 14self.contents.draw_text(x, y, 120, 32, $data_states[item.plus_state_set].name)endelseself.contents.draw_text(90, 64, 75, 32, item.pdef.to_s)self.contents.draw_text(90, 96, 75, 32, item.mdef.to_s)self.contents.draw_text(60, 128, 75, 32, item.eva.to_s)if $data_states[item.auto_state_id] != nilself.contents.draw_text(55, 160, 75, 32, $data_states[item.auto_state_id].name)endself.contents.draw_text(195, 64, 50, 32, item.str_plus.to_s, 2)self.contents.draw_text(195, 96, 50, 32, item.dex_plus.to_s, 2)self.contents.draw_text(195, 128, 50, 32, item.agi_plus.to_s, 2)self.contents.draw_text(195, 160, 50, 32, item.int_plus.to_s, 2)self.contents.font.size = 14@defense = []for i in 0...item.guard_element_set.size@defense.push($data_system.elements[item.guard_element_set])endfor i in 0...item.guard_state_set.size@defense.push($data_states[item.guard_state_set].name)endfor i in 0...@defense.sizex = 265 + i % 4 * 80y = 80 + i / 4 * 14self.contents.draw_text(x + 15, y, 85, 32, @defense)endendself.contents.font.size = 22endend#=============================================================================== # END Window_Shop_Description_Equipment#=============================================================================== #=============================================================================== # Window_Shop_Actors#=============================================================================== class Window_Shop_Actors def initializesuper(84, 32, 472, 416)self.contents = Bitmap.new(width - 32, height - 32)self.visible = falseself.active = falseself.z += 100item = nilrefresh(item)end def refresh(item)self.contents.clearif item == nilreturnendfor i in 0...$game_party.actors.sizex = i%2 * 236y = i/2 * 192draw_actor_graphic($game_party.actors, x + 16, y + 48)draw_actor_name($game_party.actors, x + 48, y + 8)pdef1 = item.pdefmdef1 = item.mdefstr1 = item.str_plusdex1 = item.dex_plusagi1 = item.agi_plusint1 = item.int_plusatk2 = 0eva2 = 0pdef2 = 0mdef2 = 0str2 = 0dex2 = 0agi2 = 0int2 = 0if item.is_a?(RPG::Weapon)if $data_weapons[$game_party.actors.weapon_id] != nilatk1 = item.atkatk2 = $data_weapons[$game_party.actors.weapon_id].atkpdef2 = $data_weapons[$game_party.actors.weapon_id].pdefmdef2 = $data_weapons[$game_party.actors.weapon_id].mdefstr2 = $data_weapons[$game_party.actors.weapon_id].str_plusdex2 = $data_weapons[$game_party.actors.weapon_id].dex_plusagi2 = $data_weapons[$game_party.actors.weapon_id].agi_plusint2 = $data_weapons[$game_party.actors.weapon_id].int_plusendelseeva1 = item.evacase item.kindwhen 0if $data_armors[$game_party.actors.armor1_id] != nileva2 = $data_armors[$game_party.actors.armor1_id].evapdef2 = $data_armors[$game_party.actors.armor1_id].pdefmdef2 = $data_armors[$game_party.actors.armor1_id].mdefstr2 = $data_armors[$game_party.actors.armor1_id].str_plusdex2 = $data_armors[$game_party.actors.armor1_id].dex_plusagi2 = $data_armors[$game_party.actors.armor1_id].agi_plusint2 = $data_armors[$game_party.actors.armor1_id].int_plusendwhen 1if $data_armors[$game_party.actors.armor2_id] != nileva2 = $data_armors[$game_party.actors.armor2_id].evapdef2 = $data_armors[$game_party.actors.armor2_id].pdefmdef2 = $data_armors[$game_party.actors.armor2_id].mdefstr2 = $data_armors[$game_party.actors.armor2_id].str_plusdex2 = $data_armors[$game_party.actors.armor2_id].dex_plusagi2 = $data_armors[$game_party.actors.armor2_id].agi_plusint2 = $data_armors[$game_party.actors.armor2_id].int_plusendwhen 2if $data_armors[$game_party.actors.armor3_id] != nileva2 = $data_armors[$game_party.actors.armor3_id].evapdef2 = $data_armors[$game_party.actors.armor3_id].pdefmdef2 = $data_armors[$game_party.actors.armor3_id].mdefstr2 = $data_armors[$game_party.actors.armor3_id].str_plusdex2 = $data_armors[$game_party.actors.armor3_id].dex_plusagi2 = $data_armors[$game_party.actors.armor3_id].agi_plusint2 = $data_armors[$game_party.actors.armor3_id].int_plusendwhen 3if $data_armors[$game_party.actors.armor4_id] != nileva2 = $data_armors[$game_party.actors.armor4_id].evapdef2 = $data_armors[$game_party.actors.armor4_id].pdefmdef2 = $data_armors[$game_party.actors.armor4_id].mdefstr2 = $data_armors[$game_party.actors.armor4_id].str_plusdex2 = $data_armors[$game_party.actors.armor4_id].dex_plusagi2 = $data_armors[$game_party.actors.armor4_id].agi_plusint2 = $data_armors[$game_party.actors.armor4_id].int_plusendendendcolor1 = Color.new(25, 210, 25, 255)color2 = Color.new(210, 25, 25, 255)if $game_party.actors.equippable?(item)self.contents.font.color = normal_color# PDEFif (pdef1 - pdef2) > 0self.contents.font.color = color1elsif (pdef1 - pdef2) self.contents.font.color = color2elseself.contents.font.color = normal_colorendself.contents.draw_text(x + 25, y + 80, 70, 32, (pdef1 - pdef2).to_s, 2)# MDEFif (mdef1 - mdef2) > 0self.contents.font.color = color1elsif (mdef1 - mdef2) self.contents.font.color = color2elseself.contents.font.color = normal_colorendself.contents.draw_text(x + 25, y + 112, 70, 32, (mdef1 - mdef2).to_s, 2)# STRif (str1 - str2) > 0self.contents.font.color = color1elsif (str1 - str2) self.contents.font.color = color2elseself.contents.font.color = normal_colorendself.contents.draw_text(x + 125, y + 48, 70, 32, (str1 - str2).to_s, 2)# DEXif (dex1 - dex2) > 0self.contents.font.color = color1elsif (dex1 - dex2) self.contents.font.color = color2elseself.contents.font.color = normal_colorendself.contents.draw_text(x + 125, y + 80, 70, 32, (dex1 - dex2).to_s, 2)# AGIif (agi1 - agi2) > 0self.contents.font.color = color1elsif (agi1 - agi2) self.contents.font.color = color2elseself.contents.font.color = normal_colorendself.contents.draw_text(x + 125, y + 112, 70, 32, (agi1 - agi2).to_s, 2)# INTif (int1 - int2) > 0self.contents.font.color = color1elsif (int1 - int2) self.contents.font.color = color2elseself.contents.font.color = normal_colorendself.contents.draw_text(x + 125, y + 144, 70, 32, (int1 - int2).to_s, 2)if item.is_a?(RPG::Weapon)self.contents.font.color = system_colorself.contents.draw_text(x, y + 48, 80, 32, "Offesa:")self.contents.draw_text(x, y + 80, 80, 32, "Difesa:")self.contents.draw_text(x, y + 112, 80, 32, "Resistenza:")self.contents.draw_text(x + 110, y + 48, 80, 32, "Forza:")self.contents.draw_text(x + 110, y + 80, 80, 32, "Destrezza:")self.contents.draw_text(x + 110, y + 112, 80, 32, "Agilità:")self.contents.draw_text(x + 110, y + 144, 80, 32, "Intelligenza:")self.contents.font.color = normal_color# ATTACKif (atk1 - atk2) > 0self.contents.font.color = color1elsif (atk1 - atk2) self.contents.font.color = color2elseself.contents.font.color = normal_colorendself.contents.draw_text(x + 25, y + 48, 70, 32, (atk1 - atk2).to_s, 2)# ELSE if armor...elseself.contents.font.color = system_colorself.contents.draw_text(x, y + 48, 80, 32, "Evasione:")self.contents.draw_text(x, y + 80, 80, 32, "Difesa:")self.contents.draw_text(x, y + 112, 80, 32, "Resistenza:")self.contents.draw_text(x + 110, y + 48, 80, 32, "Forza:")self.contents.draw_text(x + 110, y + 80, 80, 32, "Destrezza:")self.contents.draw_text(x + 110, y + 112, 80, 32, "Agilità:")self.contents.draw_text(x + 110, y + 144, 80, 32, "Intelligenza:")self.contents.font.color = normal_colorif (eva1 - eva2) > 0self.contents.font.color = color1elsif (eva1 - eva2) self.contents.font.color = color2elseself.contents.font.color = normal_colorendself.contents.draw_text(x + 25, y + 48, 70, 32, (eva1 - eva2).to_s, 2)endelseself.contents.font.color = disabled_colorself.contents.draw_text(x + 10, y + 80, 120, 32, "Impossibile")self.contents.font.color = normal_colorendendendend#=============================================================================== # END Window_Shop_Actors#=============================================================================== #=============================================================================== # Window_Shop_Amount#=============================================================================== class Window_Shop_Amount attr_accessor :amount def initializesuper(80, 208, 480, 96)@item_max = 1self.contents = Bitmap.new(width - 32, height - 32)self.visible = falseself.z += 100@amount = 1item = $data_items[1]option_index = 0refresh(item, option_index)end def refresh(item, option_index)self.contents.clearif item == nilreturnendif option_index == nilreturnendif option_index == 0self.contents.font.color = system_colorself.contents.draw_text(0, 0, 200, 32, "Quanti?")self.contents.font.color = normal_colorif $game_party.gold self.contents.font.color = disabled_colorendbitmap = RPG::Cache.icon(item.icon_name)opacity = self.contents.font.color == normal_color ? 255 : 128self.contents.blt(0, 36, bitmap, Rect.new(0, 0, 24, 24), opacity)self.contents.draw_text(28, 32, 120, 32, item.name)self.contents.draw_text(335, 32, 10, 32, "x")self.contents.draw_text(280, 32, 30, 32, @amount.to_s, 2)self.cursor_rect.set(284, 32, 32, 32)self.contents.draw_text(370, 32, 70, 32, (@amount * item.price).to_s, 2)elseself.contents.font.color = system_colorself.contents.draw_text(0, 0, 200, 32, "Quanti?")self.contents.font.color = normal_colorbitmap = RPG::Cache.icon(item.icon_name)opacity = self.contents.font.color == normal_color ? 255 : 128self.contents.blt(0, 36, bitmap, Rect.new(0, 0, 24, 24), opacity)self.contents.draw_text(28, 32, 120, 32, item.name)self.contents.draw_text(335, 32, 10, 32, "x")self.contents.draw_text(280, 32, 30, 32, @amount.to_s, 2)self.cursor_rect.set(284, 32, 32, 32)self.contents.draw_text(370, 32, 70, 32, (@amount * (item.price / 2)).to_s, 2)endendend#=============================================================================== # END Window_Shop_Amount#=============================================================================== #=============================================================================== # Scene_Shop#=============================================================================== class Scene_Shopdef main@counter = 0@info_window = Window_Shop_Info.new@option_window = Window_Shop_Option.new@gold_window = Window_Shop_Gold.new@own_window = Window_Shop_Own.new@list_window = Window_Shop_List.new($game_temp.shop_goods)@desc_item_window = Window_Shop_Description_Item.new@desc_equip_window = Window_Shop_Description_Equipment.new@actor_window = Window_Shop_Actors.new@amount_window = Window_Shop_Amount.new Graphics.transitionloop doGraphics.updateInput.updateupdateif $scene != selfbreakendendGraphics.freeze @info_window.dispose@option_window.dispose@gold_window.dispose@own_window.dispose@list_window.dispose@desc_item_window.dispose@desc_equip_window.dispose@actor_window.dispose@amount_window.disposeend def update@info_window.update@option_window.update@gold_window.update@own_window.update@list_window.update@desc_item_window.update@desc_equip_window.update@actor_window.update@amount_window.update if @option_window.activeupdate_optionreturnend if @list_window.activeupdate_listreturnend if @actor_window.visibleupdate_actorsreturnend if @amount_window.active and @option_window.index == 0update_amountreturnend if @amount_window.active and @option_window.index == 1update_sellreturnendend def update_option@info_window.refresh(0)if Input.trigger?(Input::B)$game_system.se_play($data_system.cancel_se)$scene = Scene_Map.newreturnendif Input.trigger?(Input::C)case @option_window.indexwhen 0$game_system.se_play($data_system.decision_se)@list_window.refresh@option_window.active = false@list_window.visible = true@list_window.active = true@list_window.index = 0when 1$game_system.se_play($data_system.decision_se)@list_window.refresh_sell(@option_window.index)@option_window.active = false@list_window.visible = true@list_window.active = true@list_window.index = 0when 2$game_system.se_play($data_system.cancel_se)$scene = Scene_Map.newreturnendendend def update_list@info_window.refresh(1)@item = @list_window.itemif @counter != 1if @item.is_a?(RPG::Item)@desc_item_window.refresh(@item)@counter = 1else@desc_equip_window.refresh(@item)@counter = 1endend@own_window.refresh(@list_window.item)if Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN) or Input.repeat?(Input::UP) or Input.repeat?(Input::DOWN)@counter = 0endif @item.is_a?(RPG::Item)if @counter != 1@desc_item_window.refresh(@item)@counter = 1end@desc_item_window.visible = true@desc_equip_window.visible = falseelseif @counter != 1@desc_equip_window.refresh(@item)@counter = 1end@desc_item_window.visible = false@desc_equip_window.visible = trueendif Input.trigger?(Input::B)@counter = 0$game_system.se_play($data_system.cancel_se)@desc_item_window.visible = false@desc_equip_window.visible = false@desc_item_window.refresh(nil)@desc_equip_window.refresh(nil)@option_window.active = true@list_window.visible = false@list_window.active = false@own_window.refresh(nil)returnendif Input.trigger?(Input::A)unless @item.is_a?(RPG::Item)$game_system.se_play($data_system.decision_se)@actor_window.refresh(@item)@actor_window.visible = true@list_window.active = falsereturnelse$game_system.se_play($data_system.buzzer_se)endendif Input.trigger?(Input::C)if @item == nil or @item.id == 0 or @item.price == 0$game_system.se_play($data_system.buzzer_se)returnendif @option_window.index == 0case @itemwhen RPG::Itemif $game_party.item_number(@item.id) >= 99$game_system.se_play($data_system.buzzer_se)returnendwhen RPG::Weaponif $game_party.weapon_number(@item.id) >= 99$game_system.se_play($data_system.buzzer_se)returnendwhen RPG::Armorif $game_party.armor_number(@item.id) >= 99$game_system.se_play($data_system.buzzer_se)returnendendend$game_system.se_play($data_system.decision_se)@amount_window.visible = true@amount_window.active = true@list_window.active = falsereturnendend def update_actorsif Input.trigger?(Input::B)$game_system.se_play($data_system.cancel_se)@actor_window.visible = false@list_window.active = trueendend def update_amount@amount_window.refresh(@item, @option_window.index)if Input.trigger?(Input::B)$game_system.se_play($data_system.cancel_se)@amount_window.amount = 1@amount_window.visible = false@amount_window.active = false@list_window.active = truereturnendif Input.trigger?(Input::C)if $game_party.gold >= (@amount_window.amount * @item.price)$game_system.se_play($data_system.decision_se)$game_party.lose_gold(@amount_window.amount * @item.price)case @itemwhen RPG::Item$game_party.gain_item(@item.id, @amount_window.amount)when RPG::Weapon$game_party.gain_weapon(@item.id, @amount_window.amount)when RPG::Armor$game_party.gain_armor(@item.id, @amount_window.amount)end@gold_window.refresh@amount_window.amount = 1@amount_window.visible = false@amount_window.active = false@list_window.active = true@list_window.refreshreturnelse$game_system.se_play($data_system.buzzer_se)endendif Input.trigger?(Input::LEFT)$game_system.se_play($data_system.cursor_se)@amount_window.amount -= 1if @amount_window.amount == 0@amount_window.amount = 1endreturnendif Input.trigger?(Input::RIGHT)$game_system.se_play($data_system.cursor_se)@amount_window.amount += 1case @itemwhen RPG::Itemif ($game_party.item_number(@item.id) + @amount_window.amount) > 99@amount_window.amount = (99 - $game_party.item_number(@item.id))endwhen RPG::Weaponif ($game_party.weapon_number(@item.id) + @amount_window.amount) > 99@amount_window.amount = (99 - $game_party.weapon_number(@item.id))endwhen RPG::Armorif ($game_party.armor_number(@item.id) + @amount_window.amount) > 99@amount_window.amount = (99 - $game_party.armor_number(@item.id))endendreturnendif Input.trigger?(Input::UP)$game_system.se_play($data_system.cursor_se)@amount_window.amount += 10case @itemwhen RPG::Itemif ($game_party.item_number(@item.id) + @amount_window.amount) > 99@amount_window.amount = (99 - $game_party.item_number(@item.id))endwhen RPG::Weaponif ($game_party.weapon_number(@item.id) + @amount_window.amount) > 99@amount_window.amount = (99 - $game_party.weapon_number(@item.id))endwhen RPG::Armorif ($game_party.armor_number(@item.id) + @amount_window.amount) > 99@amount_window.amount = (99 - $game_party.armor_number(@item.id))endendreturnendif Input.trigger?(Input::DOWN)$game_system.se_play($data_system.cursor_se)@amount_window.amount -= 10if @amount_window.amount @amount_window.amount = 1endreturnendend def update_sell@amount_window.refresh(@item, @option_window.index)if Input.trigger?(Input::B)$game_system.se_play($data_system.cancel_se)@amount_window.amount = 1@amount_window.visible = false@amount_window.active = false@list_window.active = truereturnendif Input.trigger?(Input::C)if @item.price == 0$game_system.se_play($data_system.buzzer_se)returnend$game_system.se_play($data_system.decision_se)case @itemwhen RPG::Item$game_party.gain_gold(@amount_window.amount * (@item.price / 2))$game_party.lose_item(@item.id, @amount_window.amount)when RPG::Weapon$game_party.gain_gold(@amount_window.amount * (@item.price / 2))$game_party.lose_weapon(@item.id, @amount_window.amount)when RPG::Armor$game_party.gain_gold(@amount_window.amount * (@item.price / 2))$game_party.lose_armor(@item.id, @amount_window.amount)end@gold_window.refresh@amount_window.amount = 1@amount_window.visible = false@amount_window.active = false@list_window.active = true@list_window.refresh_sell(@option_window.index)@desc_equip_window.refresh(nil)@desc_item_window.refresh(nil)endif Input.trigger?(Input::LEFT)$game_system.se_play($data_system.cursor_se)@amount_window.amount -= 1if @amount_window.amount @amount_window.amount = 1endendif Input.trigger?(Input::RIGHT)$game_system.se_play($data_system.cursor_se)case @itemwhen RPG::Item@amount_window.amount += 1if @amount_window.amount > $game_party.item_number(@item.id)@amount_window.amount = $game_party.item_number(@item.id)endwhen RPG::Weapon@amount_window.amount += 1if @amount_window.amount > $game_party.weapon_number(@item.id)@amount_window.amount = $game_party.weapon_number(@item.id)endwhen RPG::Armor@amount_window.amount += 1if @amount_window.amount > $game_party.armor_number(@item.id)@amount_window.amount = $game_party.armor_number(@item.id)endendendif Input.trigger?(Input::UP)$game_system.se_play($data_system.cursor_se)case @itemwhen RPG::Item@amount_window.amount += 10if @amount_window.amount > $game_party.item_number(@item.id)@amount_window.amount = $game_party.item_number(@item.id)endwhen RPG::Weapon@amount_window.amount += 10if @amount_window.amount > $game_party.weapon_number(@item.id)@amount_window.amount = $game_party.weapon_number(@item.id)endwhen RPG::Armor@amount_window.amount += 10if @amount_window.amount > $game_party.armor_number(@item.id)@amount_window.amount = $game_party.armor_number(@item.id)endendendif Input.trigger?(Input::DOWN)$game_system.se_play($data_system.cursor_se)@amount_window.amount -= 10if @amount_window.amount @amount_window.amount = 1endendend end Ho provato a mettere la stringa di cambio font OVUNQUE, ma non funziona mai, facendomi crashare il gioco. Potete darmi una mano? Edited May 3, 2009 by Zosimos Gioco in Sviluppo: http://www.studibizantini.it/docs/Logo.png Blog: Ode to my Forthcoming Winter Riferimento Contest: http://rpg2s.net/gif/SCContest2Oct.gifx2 http://rpg2s.net/gif/SCContest1Oct.gifx1 Link to comment Share on other sites More sharing options...
0 giver Posted May 2, 2009 Share Posted May 2, 2009 Se è sempre lo stesso font che vuoi usare in tutto il gioco e ti tocca modificare tutti gli script che usi per poterlo fare, allora dovresti provare ad usare lo script Main modificato da DaD, che dovrebbe coprire tutte le modalità di gestione dei font usati dalle traduzioni non ufficiali del tool, presenti in molti script custom . . . Main Modificato da DaD @ Rpg2S N.B.: Così com'è realizzato lo script, il gioco viene eseguito in finestra durante il Test nel Tool, ma parte a schermo intero quando giocato normalmente, con doppio clic su Game.exe . . . SCRIPT RGSS (RPG Maker XP) VINTAGE LIBRARY [2018+]http://www.rpg2s.net/forum/index.php/topic/21892-vintagevisualsrewrite-enhanced-revised-victory-screen-v-35-da-autori-vari-a-giver/ http://www.rpg2s.net/forum/index.php/topic/21868-eventing-utility-simple-last-battle-events-fix-v-30-by-giver/ http://www.rpg2s.net/forum/index.php/topic/21853-vintagerewrite-constance-menu-per-4-personaggi-da-team-constance-a-giver/ http://www.rpg2s.net/forum/index.php/topic/22126-vintagedoveroso-necroedit-dummy-title-22u-update-per-crearlo-ad-eventi-su-mappa-by-giver/ http://www.rpg2s.net/forum/index.php/topic/22127-vintagevisuals-tale-chapters-save-system-20-by-giver/ Breaking (in ogni senso) News: "Treno deraglia per via del seno di Sakurai Aoi . . ." - Info nello spoiler !! http://afantasymachine.altervista.org/_altervista_ht/NOOOOOOOOOilMIOtreninooooo_500.gifNon riesco a smettere di essere affascinato da immagini come questa . . .http://anime.vl-vostok.ru/art/photos2011/17/78049800/wall_VladAnime_WWA_1885-1680x1050.jpgAlcuni wallpapers che faccio ruotare sul mio vecchio PC . . .http://afantasymachine.altervista.org/_altervista_ht/gits_window.jpghttp://afantasymachine.altervista.org/_altervista_ht/madoka_group01.jpghttp://afantasymachine.altervista.org/_altervista_ht/arisu_picipici_01.jpghttp://afantasymachine.altervista.org/_altervista_ht/phantom_wp01_einzwei.jpg La parte più spassosa della mia vita è quando gli altri cercano di spiegarmi i miei pensieri . . . BBCode TestingTypeface & Size Link to comment Share on other sites More sharing options...
0 Zosimos Posted May 2, 2009 Author Share Posted May 2, 2009 Ciao carissimo, in genere so come modificare il font agli script... è su questo che ho problemi.Conoscevo il Main che mi segnali, ma purtroppo non posso usarlo, giacchè il mio Main è già pesantemente modificato a causa di un particolare menu.Il mio trauma è che nello script del negozio che ho postato sopra non riesco a capire il punto esatto dove inserire la stringa... Ti ringrazio comunque. Hai qualche consiglio? Gioco in Sviluppo: http://www.studibizantini.it/docs/Logo.png Blog: Ode to my Forthcoming Winter Riferimento Contest: http://rpg2s.net/gif/SCContest2Oct.gifx2 http://rpg2s.net/gif/SCContest1Oct.gifx1 Link to comment Share on other sites More sharing options...
0 giver Posted May 2, 2009 Share Posted May 2, 2009 (edited) Se sai come cambiare i font negli script, dovresti aver fatto qualcosa del genere:Usando la funzione cerca dello script editor, hai rintracciato tutte le istruzioni del tipoself.contents = Bitmap.new( . . . )e subito sotto hai inserito l'istruzioneself.contents.font.name = "nome_del_font_indicato_nel_font_inspector_di_windows" Se hai fatto così e ti genera errori, forse qualcosa nello script dello shop non va, altrimenti non saprei . . . Per caso hai degli script che vanno a ritoccare le classi Font o Bitmap ? Oppure, mi passi il tuo script Main per vedere se riesco ad aggiungere la gestione dei Font come in quello di DaD, per verificare se la cosa si può risolvere così ? Edited May 2, 2009 by giver SCRIPT RGSS (RPG Maker XP) VINTAGE LIBRARY [2018+]http://www.rpg2s.net/forum/index.php/topic/21892-vintagevisualsrewrite-enhanced-revised-victory-screen-v-35-da-autori-vari-a-giver/ http://www.rpg2s.net/forum/index.php/topic/21868-eventing-utility-simple-last-battle-events-fix-v-30-by-giver/ http://www.rpg2s.net/forum/index.php/topic/21853-vintagerewrite-constance-menu-per-4-personaggi-da-team-constance-a-giver/ http://www.rpg2s.net/forum/index.php/topic/22126-vintagedoveroso-necroedit-dummy-title-22u-update-per-crearlo-ad-eventi-su-mappa-by-giver/ http://www.rpg2s.net/forum/index.php/topic/22127-vintagevisuals-tale-chapters-save-system-20-by-giver/ Breaking (in ogni senso) News: "Treno deraglia per via del seno di Sakurai Aoi . . ." - Info nello spoiler !! http://afantasymachine.altervista.org/_altervista_ht/NOOOOOOOOOilMIOtreninooooo_500.gifNon riesco a smettere di essere affascinato da immagini come questa . . .http://anime.vl-vostok.ru/art/photos2011/17/78049800/wall_VladAnime_WWA_1885-1680x1050.jpgAlcuni wallpapers che faccio ruotare sul mio vecchio PC . . .http://afantasymachine.altervista.org/_altervista_ht/gits_window.jpghttp://afantasymachine.altervista.org/_altervista_ht/madoka_group01.jpghttp://afantasymachine.altervista.org/_altervista_ht/arisu_picipici_01.jpghttp://afantasymachine.altervista.org/_altervista_ht/phantom_wp01_einzwei.jpg La parte più spassosa della mia vita è quando gli altri cercano di spiegarmi i miei pensieri . . . BBCode TestingTypeface & Size Link to comment Share on other sites More sharing options...
0 Zosimos Posted May 3, 2009 Author Share Posted May 3, 2009 Ti ho mandato un MP. Grazie! Gioco in Sviluppo: http://www.studibizantini.it/docs/Logo.png Blog: Ode to my Forthcoming Winter Riferimento Contest: http://rpg2s.net/gif/SCContest2Oct.gifx2 http://rpg2s.net/gif/SCContest1Oct.gifx1 Link to comment Share on other sites More sharing options...
Question
Zosimos
Questi script mi faranno uscire pazzo.
Pensavo di aver facilmente risolto il problema del cambio font, e di aver imparato. Invece, niente.
Mi trovo in difficoltà con questo script di Shop:
#======================================================================
=========
# Leon's Shopping System
#-------------------------------------------------------------------------------
# 3/10/2007
# v. 1.0
#-------------------------------------------------------------------------------
# Instructions:
# Place above main, and below the other default scripts.
# (Yes, that is all of the instructions)
#
# Features:
# Replaces the default shop system.
#
#===============================================================================
#===============================================================================
# Window_Shop_Info
#===============================================================================
class Window_Shop_Info
def initialize
super(160, 0, 480, 64)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh(selection = 0)
self.contents.clear
if selection == 0
self.contents.draw_text(0, 0, 448, 32, "Benvenuti! In cosa posso servirvi?", 1)
else
self.contents.draw_text(0, 0, 448, 32, "Premere 'Z' per verificare la compatibilità.", 1)
end
end
end
#===============================================================================
# END Window_Shop_Info
#===============================================================================
#===============================================================================
# Window_Shop_Option
#===============================================================================
class Window_Shop_Option
def initialize
super(0, 0, 160, 128)
@option = ["Compra", "Vendi", "Esci"]
@item_max = @option.size
self.contents = Bitmap.new(width - 32, height - 32)
self.index = 0
self.active = true
refresh
end
def refresh
self.contents.clear
for i in 0...@option.size
y = i * 32
self.contents.draw_text(0, y, 128, 32, @option, 1)
end
end
end
#===============================================================================
# END Window_Shop_Option
#===============================================================================
#===============================================================================
# Window_Shop_Gold
#===============================================================================
class Window_Shop_Gold
def initialize
super(0, 128, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(0, 0, 60, 32, $data_system.words.gold + ":")
self.contents.font.color = normal_color
self.contents.draw_text(0, 0, 128, 32, $game_party.gold.to_s, 2)
end
end
#===============================================================================
# END Window_Shop_Gold
#===============================================================================
#===============================================================================
# Window_Shop_Own
#===============================================================================
class Window_Shop_Own
def initialize
super(0, 192, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
item = nil
refresh(item)
end
def refresh(item)
self.contents.clear
self.contents.font.color = system_color
self.contents.draw_text(0, 0, 48, 32, "Posseduti:")
if item == nil
return
end
self.contents.font.color = normal_color
case item
when RPG::Item
number = $game_party.item_number(item.id)
when RPG::Weapon
number = $game_party.weapon_number(item.id)
when RPG::Armor
number = $game_party.armor_number(item.id)
end
self.contents.draw_text(0, 0, 128, 32, number.to_s, 2)
end
end
#===============================================================================
# END Window_Shop_Own
#===============================================================================
#===============================================================================
# Window_Shop_List
#===============================================================================
class Window_Shop_List
def initialize(shop_goods)
super(160, 64, 480, 192)
self.contents = Bitmap.new(width - 32, height - 32)
self.active = false
self.index = 0
self.visible = false
@shop_goods = shop_goods
@sell = false
end
def item
if @data != nil
return @data[index]
end
end
def refresh
@sell = false
@option_index = nil
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@data = []
for goods_item in @shop_goods
case goods_item[0]
when 0
item = $data_items[goods_item[1]]
when 1
item = $data_weapons[goods_item[1]]
when 2
item = $data_armors[goods_item[1]]
end
if item != nil
@data.push(item)
end
end
@item_max = @data.size
if @item_max > 0
self.contents = Bitmap.new(width - 32, row_max * 32)
for i in 0...@item_max
draw_item(i)
end
end
end
def refresh_sell(option_index)
@sell = true
@option_index = option_index
if self.contents != nil
self.contents.dispose
self.contents = nil
end
@data = []
for i in 1...$data_items.size
if $game_party.item_number(i) > 0
@data.push($data_items)
end
end
for i in 1...$data_weapons.size
if $game_party.weapon_number(i) > 0
@data.push($data_weapons)
end
end
for i in 1...$data_armors.size
if $game_party.armor_number(i) > 0
@data.push($data_armors)
end
end
@item_max = @data.size
if @item_max > 0
self.contents = Bitmap.new(width - 32, row_max * 32)
for i in 0...@item_max
draw_item(i)
end
end
end
def draw_item(index)
item = @data[index]
case item
when RPG::Item
number = $game_party.item_number(item.id)
when RPG::Weapon
number = $game_party.weapon_number(item.id)
when RPG::Armor
number = $game_party.armor_number(item.id)
end
if @option_index == nil
if item.price
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
else
self.contents.font.color = normal_color
end
x = 4
y = index * 32
if item.price == 0
self.contents.font.color = disabled_color
else
self.contents.font.color = normal_color
end
if @sell == false
if item.price
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
end
rect = Rect.new(x, y, self.width - 32, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
if @option_index == nil
self.contents.draw_text(x + 350, y, 88, 32, item.price.to_s, 2)
else
item_price = (item.price / 2).round
self.contents.draw_text(x + 350, y, 88, 32, item_price.to_s, 2)
end
end
end
#===============================================================================
# END Window_Shop_List
#===============================================================================
#===============================================================================
# Window_Shop_Description_Item
#===============================================================================
class Window_Shop_Description_Item
def initialize
super(90, 256, 460, 192)
self.contents = Bitmap.new(width - 32, height - 32)
self.visible = false
item = nil
refresh(item)
end
def refresh(item)
self.contents.clear
if item == nil
return
end
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(0, 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(28, 0, 120, 32, item.name)
self.contents.draw_text(0, 32, 428, 32, item.description)
self.contents.font.color = system_color
self.contents.draw_text(0, 64, 120, 32, "Range:")
self.contents.draw_text(0, 96, 140, 32, "% HP Recovered:")
self.contents.draw_text(0, 128, 140, 32, "% SP Recovered:")
self.contents.draw_text(230, 96, 120, 32, "HP Recovered:")
self.contents.draw_text(230, 128, 120, 32, "SP Recovered:")
self.contents.font.color = normal_color
self.contents.draw_text(150, 96, 90, 32, item.recover_hp_rate.to_s)
self.contents.draw_text(150, 128, 90, 32, item.recover_sp_rate.to_s)
self.contents.draw_text(360, 96, 90, 32, item.recover_hp.to_s)
self.contents.draw_text(360, 128, 90, 32, item.recover_sp.to_s)
case item.scope
when 0
self.contents.draw_text(70, 64, 120, 32, "Nessuno")
when 1
self.contents.draw_text(70, 64, 120, 32, "Un avversario")
when 2
self.contents.draw_text(70, 64, 120, 32, "Tutti gli avversari")
when 3
self.contents.draw_text(70, 64, 120, 32, "Un compagno")
when 4
self.contents.draw_text(70, 64, 120, 32, "L'intera compagnia")
when 5
self.contents.draw_text(70, 64, 120, 32, "Un compagno caduto")
when 6
self.contents.draw_text(70, 64, 120, 32, "Tutti i compagni caduti")
when 7
self.contents.draw_text(70, 64, 120, 32, "Il possessore")
end
end
end
#===============================================================================
# END Window_Shop_Description_Item
#===============================================================================
#===============================================================================
# Window_Shop_Description_Equipment
#===============================================================================
class Window_Shop_Description_Equipment
def initialize
super(0, 256, 640, 224)
self.contents = Bitmap.new(width - 32, height - 32)
self.visible = false
item = nil
refresh(item)
end
def refresh(item)
self.contents.clear
if item == nil
return
end
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(0, 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(28, 0, 120, 32, item.name)
self.contents.draw_text(0, 32, 460, 32, item.description)
self.contents.font.color = system_color
if item.is_a?(RPG::Weapon)
self.contents.draw_text(0, 64, 75, 32, "Offesa:")
self.contents.draw_text(0, 96, 120, 32, "Difesa:")
self.contents.draw_text(0, 128, 120, 32, "Resistenza:")
self.contents.draw_text(165, 64, 120, 32, "Forza:")
self.contents.draw_text(165, 96, 120, 32, "Destreza:")
self.contents.draw_text(165, 128, 120, 32, "Agilità:")
self.contents.draw_text(165, 160, 120, 32, "Intelligenza:")
self.contents.draw_text(290, 64, 120, 32, "Difende da:")
self.contents.draw_text(470, 64, 120, 32, "Infligge danni da:")
else
self.contents.draw_text(0, 64, 120, 32, "Difesa:")
self.contents.draw_text(0, 96, 120, 32, "Resistenza:")
self.contents.draw_text(0, 128, 120, 32, "Evasione:")
self.contents.draw_text(0, 160, 120, 32, "Auto:")
self.contents.draw_text(165, 64, 120, 32, "Forza:")
self.contents.draw_text(165, 96, 120, 32, "Destrezza:")
self.contents.draw_text(165, 128, 120, 32, "Agilità:")
self.contents.draw_text(165, 160, 120, 32, "Intelligenza:")
self.contents.draw_text(370, 64, 120, 32, "Protegge dallo Status:")
end
self.contents.font.color = normal_color
if item.is_a?(RPG::Weapon)
self.contents.draw_text(60, 64, 75, 32, item.atk.to_s)
self.contents.draw_text(90, 96, 75, 32, item.pdef.to_s)
self.contents.draw_text(90, 128, 75, 32, item.mdef.to_s)
self.contents.draw_text(195, 64, 50, 32, item.str_plus.to_s, 2)
self.contents.draw_text(195, 96, 50, 32, item.dex_plus.to_s, 2)
self.contents.draw_text(195, 128, 50, 32, item.agi_plus.to_s, 2)
self.contents.draw_text(195, 160, 50, 32, item.int_plus.to_s, 2)
self.contents.font.size = 14
for i in 0...item.element_set.size
x = 265 + i % 2 * 75
y = 80 + i / 2 * 14
self.contents.draw_text(x, y, 120, 32, $data_system.elements[item.element_set])
end
for i in 0...item.plus_state_set.size
x = 445 + i % 2 * 75
y = 80 + i / 2 * 14
self.contents.draw_text(x, y, 120, 32, $data_states[item.plus_state_set].name)
end
else
self.contents.draw_text(90, 64, 75, 32, item.pdef.to_s)
self.contents.draw_text(90, 96, 75, 32, item.mdef.to_s)
self.contents.draw_text(60, 128, 75, 32, item.eva.to_s)
if $data_states[item.auto_state_id] != nil
self.contents.draw_text(55, 160, 75, 32, $data_states[item.auto_state_id].name)
end
self.contents.draw_text(195, 64, 50, 32, item.str_plus.to_s, 2)
self.contents.draw_text(195, 96, 50, 32, item.dex_plus.to_s, 2)
self.contents.draw_text(195, 128, 50, 32, item.agi_plus.to_s, 2)
self.contents.draw_text(195, 160, 50, 32, item.int_plus.to_s, 2)
self.contents.font.size = 14
@defense = []
for i in 0...item.guard_element_set.size
@defense.push($data_system.elements[item.guard_element_set])
end
for i in 0...item.guard_state_set.size
@defense.push($data_states[item.guard_state_set].name)
end
for i in 0...@defense.size
x = 265 + i % 4 * 80
y = 80 + i / 4 * 14
self.contents.draw_text(x + 15, y, 85, 32, @defense)
end
end
self.contents.font.size = 22
end
end
#===============================================================================
# END Window_Shop_Description_Equipment
#===============================================================================
#===============================================================================
# Window_Shop_Actors
#===============================================================================
class Window_Shop_Actors
def initialize
super(84, 32, 472, 416)
self.contents = Bitmap.new(width - 32, height - 32)
self.visible = false
self.active = false
self.z += 100
item = nil
refresh(item)
end
def refresh(item)
self.contents.clear
if item == nil
return
end
for i in 0...$game_party.actors.size
x = i%2 * 236
y = i/2 * 192
draw_actor_graphic($game_party.actors, x + 16, y + 48)
draw_actor_name($game_party.actors, x + 48, y + 8)
pdef1 = item.pdef
mdef1 = item.mdef
str1 = item.str_plus
dex1 = item.dex_plus
agi1 = item.agi_plus
int1 = item.int_plus
atk2 = 0
eva2 = 0
pdef2 = 0
mdef2 = 0
str2 = 0
dex2 = 0
agi2 = 0
int2 = 0
if item.is_a?(RPG::Weapon)
if $data_weapons[$game_party.actors.weapon_id] != nil
atk1 = item.atk
atk2 = $data_weapons[$game_party.actors.weapon_id].atk
pdef2 = $data_weapons[$game_party.actors.weapon_id].pdef
mdef2 = $data_weapons[$game_party.actors.weapon_id].mdef
str2 = $data_weapons[$game_party.actors.weapon_id].str_plus
dex2 = $data_weapons[$game_party.actors.weapon_id].dex_plus
agi2 = $data_weapons[$game_party.actors.weapon_id].agi_plus
int2 = $data_weapons[$game_party.actors.weapon_id].int_plus
end
else
eva1 = item.eva
case item.kind
when 0
if $data_armors[$game_party.actors.armor1_id] != nil
eva2 = $data_armors[$game_party.actors.armor1_id].eva
pdef2 = $data_armors[$game_party.actors.armor1_id].pdef
mdef2 = $data_armors[$game_party.actors.armor1_id].mdef
str2 = $data_armors[$game_party.actors.armor1_id].str_plus
dex2 = $data_armors[$game_party.actors.armor1_id].dex_plus
agi2 = $data_armors[$game_party.actors.armor1_id].agi_plus
int2 = $data_armors[$game_party.actors.armor1_id].int_plus
end
when 1
if $data_armors[$game_party.actors.armor2_id] != nil
eva2 = $data_armors[$game_party.actors.armor2_id].eva
pdef2 = $data_armors[$game_party.actors.armor2_id].pdef
mdef2 = $data_armors[$game_party.actors.armor2_id].mdef
str2 = $data_armors[$game_party.actors.armor2_id].str_plus
dex2 = $data_armors[$game_party.actors.armor2_id].dex_plus
agi2 = $data_armors[$game_party.actors.armor2_id].agi_plus
int2 = $data_armors[$game_party.actors.armor2_id].int_plus
end
when 2
if $data_armors[$game_party.actors.armor3_id] != nil
eva2 = $data_armors[$game_party.actors.armor3_id].eva
pdef2 = $data_armors[$game_party.actors.armor3_id].pdef
mdef2 = $data_armors[$game_party.actors.armor3_id].mdef
str2 = $data_armors[$game_party.actors.armor3_id].str_plus
dex2 = $data_armors[$game_party.actors.armor3_id].dex_plus
agi2 = $data_armors[$game_party.actors.armor3_id].agi_plus
int2 = $data_armors[$game_party.actors.armor3_id].int_plus
end
when 3
if $data_armors[$game_party.actors.armor4_id] != nil
eva2 = $data_armors[$game_party.actors.armor4_id].eva
pdef2 = $data_armors[$game_party.actors.armor4_id].pdef
mdef2 = $data_armors[$game_party.actors.armor4_id].mdef
str2 = $data_armors[$game_party.actors.armor4_id].str_plus
dex2 = $data_armors[$game_party.actors.armor4_id].dex_plus
agi2 = $data_armors[$game_party.actors.armor4_id].agi_plus
int2 = $data_armors[$game_party.actors.armor4_id].int_plus
end
end
end
color1 = Color.new(25, 210, 25, 255)
color2 = Color.new(210, 25, 25, 255)
if $game_party.actors.equippable?(item)
self.contents.font.color = normal_color
# PDEF
if (pdef1 - pdef2) > 0
self.contents.font.color = color1
elsif (pdef1 - pdef2)
self.contents.font.color = color2
else
self.contents.font.color = normal_color
end
self.contents.draw_text(x + 25, y + 80, 70, 32, (pdef1 - pdef2).to_s, 2)
# MDEF
if (mdef1 - mdef2) > 0
self.contents.font.color = color1
elsif (mdef1 - mdef2)
self.contents.font.color = color2
else
self.contents.font.color = normal_color
end
self.contents.draw_text(x + 25, y + 112, 70, 32, (mdef1 - mdef2).to_s, 2)
# STR
if (str1 - str2) > 0
self.contents.font.color = color1
elsif (str1 - str2)
self.contents.font.color = color2
else
self.contents.font.color = normal_color
end
self.contents.draw_text(x + 125, y + 48, 70, 32, (str1 - str2).to_s, 2)
# DEX
if (dex1 - dex2) > 0
self.contents.font.color = color1
elsif (dex1 - dex2)
self.contents.font.color = color2
else
self.contents.font.color = normal_color
end
self.contents.draw_text(x + 125, y + 80, 70, 32, (dex1 - dex2).to_s, 2)
# AGI
if (agi1 - agi2) > 0
self.contents.font.color = color1
elsif (agi1 - agi2)
self.contents.font.color = color2
else
self.contents.font.color = normal_color
end
self.contents.draw_text(x + 125, y + 112, 70, 32, (agi1 - agi2).to_s, 2)
# INT
if (int1 - int2) > 0
self.contents.font.color = color1
elsif (int1 - int2)
self.contents.font.color = color2
else
self.contents.font.color = normal_color
end
self.contents.draw_text(x + 125, y + 144, 70, 32, (int1 - int2).to_s, 2)
if item.is_a?(RPG::Weapon)
self.contents.font.color = system_color
self.contents.draw_text(x, y + 48, 80, 32, "Offesa:")
self.contents.draw_text(x, y + 80, 80, 32, "Difesa:")
self.contents.draw_text(x, y + 112, 80, 32, "Resistenza:")
self.contents.draw_text(x + 110, y + 48, 80, 32, "Forza:")
self.contents.draw_text(x + 110, y + 80, 80, 32, "Destrezza:")
self.contents.draw_text(x + 110, y + 112, 80, 32, "Agilità:")
self.contents.draw_text(x + 110, y + 144, 80, 32, "Intelligenza:")
self.contents.font.color = normal_color
# ATTACK
if (atk1 - atk2) > 0
self.contents.font.color = color1
elsif (atk1 - atk2)
self.contents.font.color = color2
else
self.contents.font.color = normal_color
end
self.contents.draw_text(x + 25, y + 48, 70, 32, (atk1 - atk2).to_s, 2)
# ELSE if armor...
else
self.contents.font.color = system_color
self.contents.draw_text(x, y + 48, 80, 32, "Evasione:")
self.contents.draw_text(x, y + 80, 80, 32, "Difesa:")
self.contents.draw_text(x, y + 112, 80, 32, "Resistenza:")
self.contents.draw_text(x + 110, y + 48, 80, 32, "Forza:")
self.contents.draw_text(x + 110, y + 80, 80, 32, "Destrezza:")
self.contents.draw_text(x + 110, y + 112, 80, 32, "Agilità:")
self.contents.draw_text(x + 110, y + 144, 80, 32, "Intelligenza:")
self.contents.font.color = normal_color
if (eva1 - eva2) > 0
self.contents.font.color = color1
elsif (eva1 - eva2)
self.contents.font.color = color2
else
self.contents.font.color = normal_color
end
self.contents.draw_text(x + 25, y + 48, 70, 32, (eva1 - eva2).to_s, 2)
end
else
self.contents.font.color = disabled_color
self.contents.draw_text(x + 10, y + 80, 120, 32, "Impossibile")
self.contents.font.color = normal_color
end
end
end
end
#===============================================================================
# END Window_Shop_Actors
#===============================================================================
#===============================================================================
# Window_Shop_Amount
#===============================================================================
class Window_Shop_Amount
attr_accessor :amount
def initialize
super(80, 208, 480, 96)
@item_max = 1
self.contents = Bitmap.new(width - 32, height - 32)
self.visible = false
self.z += 100
@amount = 1
item = $data_items[1]
option_index = 0
refresh(item, option_index)
end
def refresh(item, option_index)
self.contents.clear
if item == nil
return
end
if option_index == nil
return
end
if option_index == 0
self.contents.font.color = system_color
self.contents.draw_text(0, 0, 200, 32, "Quanti?")
self.contents.font.color = normal_color
if $game_party.gold
self.contents.font.color = disabled_color
end
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(0, 36, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(28, 32, 120, 32, item.name)
self.contents.draw_text(335, 32, 10, 32, "x")
self.contents.draw_text(280, 32, 30, 32, @amount.to_s, 2)
self.cursor_rect.set(284, 32, 32, 32)
self.contents.draw_text(370, 32, 70, 32, (@amount * item.price).to_s, 2)
else
self.contents.font.color = system_color
self.contents.draw_text(0, 0, 200, 32, "Quanti?")
self.contents.font.color = normal_color
bitmap = RPG::Cache.icon(item.icon_name)
opacity = self.contents.font.color == normal_color ? 255 : 128
self.contents.blt(0, 36, bitmap, Rect.new(0, 0, 24, 24), opacity)
self.contents.draw_text(28, 32, 120, 32, item.name)
self.contents.draw_text(335, 32, 10, 32, "x")
self.contents.draw_text(280, 32, 30, 32, @amount.to_s, 2)
self.cursor_rect.set(284, 32, 32, 32)
self.contents.draw_text(370, 32, 70, 32, (@amount * (item.price / 2)).to_s, 2)
end
end
end
#===============================================================================
# END Window_Shop_Amount
#===============================================================================
#===============================================================================
# Scene_Shop
#===============================================================================
class Scene_Shop
def main
@counter = 0
@info_window = Window_Shop_Info.new
@option_window = Window_Shop_Option.new
@gold_window = Window_Shop_Gold.new
@own_window = Window_Shop_Own.new
@list_window = Window_Shop_List.new($game_temp.shop_goods)
@desc_item_window = Window_Shop_Description_Item.new
@desc_equip_window = Window_Shop_Description_Equipment.new
@actor_window = Window_Shop_Actors.new
@amount_window = Window_Shop_Amount.new
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@info_window.dispose
@option_window.dispose
@gold_window.dispose
@own_window.dispose
@list_window.dispose
@desc_item_window.dispose
@desc_equip_window.dispose
@actor_window.dispose
@amount_window.dispose
end
def update
@info_window.update
@option_window.update
@gold_window.update
@own_window.update
@list_window.update
@desc_item_window.update
@desc_equip_window.update
@actor_window.update
@amount_window.update
if @option_window.active
update_option
return
end
if @list_window.active
update_list
return
end
if @actor_window.visible
update_actors
return
end
if @amount_window.active and @option_window.index == 0
update_amount
return
end
if @amount_window.active and @option_window.index == 1
update_sell
return
end
end
def update_option
@info_window.refresh(0)
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
case @option_window.index
when 0
$game_system.se_play($data_system.decision_se)
@list_window.refresh
@option_window.active = false
@list_window.visible = true
@list_window.active = true
@list_window.index = 0
when 1
$game_system.se_play($data_system.decision_se)
@list_window.refresh_sell(@option_window.index)
@option_window.active = false
@list_window.visible = true
@list_window.active = true
@list_window.index = 0
when 2
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
end
end
def update_list
@info_window.refresh(1)
@item = @list_window.item
if @counter != 1
if @item.is_a?(RPG::Item)
@desc_item_window.refresh(@item)
@counter = 1
else
@desc_equip_window.refresh(@item)
@counter = 1
end
end
@own_window.refresh(@list_window.item)
if Input.trigger?(Input::UP) or Input.trigger?(Input::DOWN) or Input.repeat?(Input::UP) or Input.repeat?(Input::DOWN)
@counter = 0
end
if @item.is_a?(RPG::Item)
if @counter != 1
@desc_item_window.refresh(@item)
@counter = 1
end
@desc_item_window.visible = true
@desc_equip_window.visible = false
else
if @counter != 1
@desc_equip_window.refresh(@item)
@counter = 1
end
@desc_item_window.visible = false
@desc_equip_window.visible = true
end
if Input.trigger?(Input::B)
@counter = 0
$game_system.se_play($data_system.cancel_se)
@desc_item_window.visible = false
@desc_equip_window.visible = false
@desc_item_window.refresh(nil)
@desc_equip_window.refresh(nil)
@option_window.active = true
@list_window.visible = false
@list_window.active = false
@own_window.refresh(nil)
return
end
if Input.trigger?(Input::A)
unless @item.is_a?(RPG::Item)
$game_system.se_play($data_system.decision_se)
@actor_window.refresh(@item)
@actor_window.visible = true
@list_window.active = false
return
else
$game_system.se_play($data_system.buzzer_se)
end
end
if Input.trigger?(Input::C)
if @item == nil or @item.id == 0 or @item.price == 0
$game_system.se_play($data_system.buzzer_se)
return
end
if @option_window.index == 0
case @item
when RPG::Item
if $game_party.item_number(@item.id) >= 99
$game_system.se_play($data_system.buzzer_se)
return
end
when RPG::Weapon
if $game_party.weapon_number(@item.id) >= 99
$game_system.se_play($data_system.buzzer_se)
return
end
when RPG::Armor
if $game_party.armor_number(@item.id) >= 99
$game_system.se_play($data_system.buzzer_se)
return
end
end
end
$game_system.se_play($data_system.decision_se)
@amount_window.visible = true
@amount_window.active = true
@list_window.active = false
return
end
end
def update_actors
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@actor_window.visible = false
@list_window.active = true
end
end
def update_amount
@amount_window.refresh(@item, @option_window.index)
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@amount_window.amount = 1
@amount_window.visible = false
@amount_window.active = false
@list_window.active = true
return
end
if Input.trigger?(Input::C)
if $game_party.gold >= (@amount_window.amount * @item.price)
$game_system.se_play($data_system.decision_se)
$game_party.lose_gold(@amount_window.amount * @item.price)
case @item
when RPG::Item
$game_party.gain_item(@item.id, @amount_window.amount)
when RPG::Weapon
$game_party.gain_weapon(@item.id, @amount_window.amount)
when RPG::Armor
$game_party.gain_armor(@item.id, @amount_window.amount)
end
@gold_window.refresh
@amount_window.amount = 1
@amount_window.visible = false
@amount_window.active = false
@list_window.active = true
@list_window.refresh
return
else
$game_system.se_play($data_system.buzzer_se)
end
end
if Input.trigger?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
@amount_window.amount -= 1
if @amount_window.amount == 0
@amount_window.amount = 1
end
return
end
if Input.trigger?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se)
@amount_window.amount += 1
case @item
when RPG::Item
if ($game_party.item_number(@item.id) + @amount_window.amount) > 99
@amount_window.amount = (99 - $game_party.item_number(@item.id))
end
when RPG::Weapon
if ($game_party.weapon_number(@item.id) + @amount_window.amount) > 99
@amount_window.amount = (99 - $game_party.weapon_number(@item.id))
end
when RPG::Armor
if ($game_party.armor_number(@item.id) + @amount_window.amount) > 99
@amount_window.amount = (99 - $game_party.armor_number(@item.id))
end
end
return
end
if Input.trigger?(Input::UP)
$game_system.se_play($data_system.cursor_se)
@amount_window.amount += 10
case @item
when RPG::Item
if ($game_party.item_number(@item.id) + @amount_window.amount) > 99
@amount_window.amount = (99 - $game_party.item_number(@item.id))
end
when RPG::Weapon
if ($game_party.weapon_number(@item.id) + @amount_window.amount) > 99
@amount_window.amount = (99 - $game_party.weapon_number(@item.id))
end
when RPG::Armor
if ($game_party.armor_number(@item.id) + @amount_window.amount) > 99
@amount_window.amount = (99 - $game_party.armor_number(@item.id))
end
end
return
end
if Input.trigger?(Input::DOWN)
$game_system.se_play($data_system.cursor_se)
@amount_window.amount -= 10
if @amount_window.amount
@amount_window.amount = 1
end
return
end
end
def update_sell
@amount_window.refresh(@item, @option_window.index)
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@amount_window.amount = 1
@amount_window.visible = false
@amount_window.active = false
@list_window.active = true
return
end
if Input.trigger?(Input::C)
if @item.price == 0
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
case @item
when RPG::Item
$game_party.gain_gold(@amount_window.amount * (@item.price / 2))
$game_party.lose_item(@item.id, @amount_window.amount)
when RPG::Weapon
$game_party.gain_gold(@amount_window.amount * (@item.price / 2))
$game_party.lose_weapon(@item.id, @amount_window.amount)
when RPG::Armor
$game_party.gain_gold(@amount_window.amount * (@item.price / 2))
$game_party.lose_armor(@item.id, @amount_window.amount)
end
@gold_window.refresh
@amount_window.amount = 1
@amount_window.visible = false
@amount_window.active = false
@list_window.active = true
@list_window.refresh_sell(@option_window.index)
@desc_equip_window.refresh(nil)
@desc_item_window.refresh(nil)
end
if Input.trigger?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
@amount_window.amount -= 1
if @amount_window.amount
@amount_window.amount = 1
end
end
if Input.trigger?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se)
case @item
when RPG::Item
@amount_window.amount += 1
if @amount_window.amount > $game_party.item_number(@item.id)
@amount_window.amount = $game_party.item_number(@item.id)
end
when RPG::Weapon
@amount_window.amount += 1
if @amount_window.amount > $game_party.weapon_number(@item.id)
@amount_window.amount = $game_party.weapon_number(@item.id)
end
when RPG::Armor
@amount_window.amount += 1
if @amount_window.amount > $game_party.armor_number(@item.id)
@amount_window.amount = $game_party.armor_number(@item.id)
end
end
end
if Input.trigger?(Input::UP)
$game_system.se_play($data_system.cursor_se)
case @item
when RPG::Item
@amount_window.amount += 10
if @amount_window.amount > $game_party.item_number(@item.id)
@amount_window.amount = $game_party.item_number(@item.id)
end
when RPG::Weapon
@amount_window.amount += 10
if @amount_window.amount > $game_party.weapon_number(@item.id)
@amount_window.amount = $game_party.weapon_number(@item.id)
end
when RPG::Armor
@amount_window.amount += 10
if @amount_window.amount > $game_party.armor_number(@item.id)
@amount_window.amount = $game_party.armor_number(@item.id)
end
end
end
if Input.trigger?(Input::DOWN)
$game_system.se_play($data_system.cursor_se)
@amount_window.amount -= 10
if @amount_window.amount
@amount_window.amount = 1
end
end
end
end
Ho provato a mettere la stringa di cambio font OVUNQUE, ma non funziona mai, facendomi crashare il gioco. Potete darmi una mano?
Edited by ZosimosGioco in Sviluppo:
http://www.studibizantini.it/docs/Logo.png
Blog: Ode to my Forthcoming Winter
Riferimento
Contest:
http://rpg2s.net/gif/SCContest2Oct.gifx2 http://rpg2s.net/gif/SCContest1Oct.gifx1
Link to comment
Share on other sites
4 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now