-
Posts
26 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Everything posted by Peco92
-
Ok ho sistemato, scusate ma quando ho messo lo script non riuscivo a scriverlo direttamente nel topic e ho preferito mettere il download ahah.
-
Scusa non so perchè ma era finito come privato. Ora dovrebbe essere tutto ok. Ciao
-
uso c_lar perchè nel for loop disegno la barra in modo che ad ogni pixel il colore cambi un pochino, capito ora? ( e comunque c_lar non è compreso tra 0 e 1 anche se è vero che sembra, ora è tanto che non riprendevo sto script e non ricordo bene come l'avevo fatto). Alla fine però ero riuscito a renderla fluida, grazie lo stesso ^^
-
Vorrei appunto che la barra non scatti ma sia fluida.. qualcuno sa come farla? probabilmente è più semplice farla con immagini, cmq vi posto lo script per provarlo, la scene è: Scene_Fish_Lancio. class Window_Base < Window ######################################################################## ######################################################################## def draw_bar_potenza( x, y, barra_lar, barra_alt, corrente, max, colore) c_lar = barra_lar - 4 c_alt = barra_alt - 4 # ombra ^^ ombra = Color.new(0, 0, 0, 255) self.contents.fill_rect(x + 5, y + 10, c_lar, c_alt, ombra) if max != 0 percent = (corrente.to_f * 100) / max.to_f c_lar = (c_lar.to_f * percent.to_f) / 100.to_f for i in 1..c_lar colore.red -= 1 colore.blue += 0 colore.green += 2 self.contents.fill_rect(x + 5, y + 10, c_lar, c_alt, colore) x += 1 c_lar -= 1 end end end ######################################################################## ########################################################################end ######################################################################################################################################################################################################################################################################################################################################################################## class Window_Direzione_Lancio < Window_Base def initialize super(0, 0, 640, 480) self.contents = Bitmap.new(width - 32, height - 32) self.back_opacity = 0 refresh end def refresh self.contents.font.color = system_color end def refresh1 self.contents.clear end end class Window_Lancio < Window_Base def initialize(lancio, corrente) super(0, 0, 640, 480) self.contents = Bitmap.new(width - 32, height - 32) self.back_opacity = 0 @lancio = lancio @pot = corrente refresh end def refresh self.contents.clear# self.bitmap.clear self.contents.font.color = system_color draw_bar_potenza( 50, 90, 180, 11, @pot, @lancio, knockout_color) end def refresh1 self.contents.clear end end ######################################################################## ######################################################################## ######################################################################## class Scene_Fish_Lancio def initialize if $ino_variables [99] == 0 # canna da pesca 1 scelta @lancio = 500 end if $ino_variables [99] == 1 # canna da pesca 2 scelta @lancio = 60 end @direzione = 0 @potenza = 0 end def main @spriteset = Spriteset_Map.new @message_window = Window_Message.new @lancio_w = Window_Lancio.new(@lancio, @potenza) @dir_w = Window_Direzione_Lancio.new @lancio_w.visible = false @lancio_w.active = false @dir_w.visible = true @dir_w.active = true Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end Graphics.freeze @spriteset.dispose @message_window.dispose @lancio_w.dispose @dir_w.dispose if $scene.is_a?(Scene_Title) Graphics.transition Graphics.freeze end end ######################################################################## def update @spriteset.update @message_window.update @lancio_w.update @dir_w.update if @lancio_w.active update_lancio return end if @dir_w.active update_dir return end end ######################################################################## def update_dir if $ino_variables [98] == 0 @direzione = @direzione + 5 elsif $ino_variables [98] == 1 @direzione = @direzione - 5 end if @direzione == 560 $ino_variables [98] = 1 elsif @direzione == 0 $ino_variables [98] = 0 end if Input.trigger?(Input::C) @dir = @direzione print @dir @dir_w.active = false @dir_w.visible = false @lancio_w.active = true @lancio_w.visible = true end end######################################################################## def update_lancio if @potenza == @lancio + 10 @potenza = 0 end @lancio_w.refresh @potenza = @potenza + 5 @lancio_w = Window_Lancio.new(@lancio + 10, @potenza) @lancio_w.refresh if Input.trigger?(Input::C) @pot = @potenza print @pot $scene = Scene_Fish_Lancio.new(@dir,@pot) end end######################################################################## def refresh end ########################################################################end per visualizzare la barra cliccate due volte sull'omino dove avete posizionato il call script. Grazie in anticipo per l'aiuto! =)
-
Dopo una settimana e passa ritorno al lavoro!! grazie mille tio il tuo è il metodo più funzionante, comunque per farlo funzionare bisogna mettere .to_f anche ai numeri normali tipo: @f = 27.to_f / 4.to_f print @f così @f ha già i decimali e oltre. Se invece viene scritto così non funziona: @f.to_f = 27 / 4 print @f.to_f perchè da errore di sintassi e togliendo alla prima riga .to_f viene restituito un valore intero nella seconda con la virgola e lo zero che segue. grazie a tutti cmq ^^
-
grazie ma essendo su calcoli come faccio a dirgli di considerare poi solo l'ultima cifra?
-
dato che è già la terza volta che incappo nel blocco dei numeri che in rpgm xp non salvano i decimali chiedo se qualcuno può aiutarmi. Qualcuno sa come far si che lo script riconosca un numero decimale salvandolo in una variabile?
-
Ce l'ho fatta!! Ma senza array, mi stanno antipatici xD grazie per l'illuminazione, quando avrò finito lo script con tutto il dovuto lo posterò ^^
-
Aaaahhh!!! Forse mii hai illuminato!! Dovrei aver capito =D. Grazie mille! forse oggi non avrò abbastanza tempo per provarci bene, ma farò sapere gli sviluppi ^^. Grazie ancora!
-
Ecco il punto è prorpio questo ^^, che si crea pian piano va bene per il lancio ma poi non saprei farla apparire tutta di un colpo quando il pesce si muoverà a destra o sinistra.. scusa ma non ho capito come fermare il problema... se non lo metto nel refresh non riesco a disegnarlo.... grazie per l'aiuto che mi stai dando ^^
-
è che è un pochino incasinato... se qualcuno riesce a capirci qualcosa... io lo metto: #================================================================ # ** Window_Help #------------------------------------------------------------------------------ # This window shows skill and item explanations along with actor status. #============================================================================== class Window_Fish < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize ( a, b, c, d) super(0, 0, 640, 480) self.contents = Bitmap.new(width - 32, height - 32) self.back_opacity = 0 @a = a @b = b @c = c @d = d # @mab = @d / @c # @a = @b / @mab # @b = @b - 2 refresh end #-------------------------------------------------------------------------- # * Set Text # text : text string displayed in window # align : alignment (0..flush left, 1..center, 2..flush right) #-------------------------------------------------------------------------- def refresh #self.contents.clear self.contents.font.color = system_color self.contents.draw_text(@a, @b, 10, 32, ".") @mab = @d / @c @a = @b / @mab @b = @b - 2 #@c = 320#x - 320 #@d = 389#364 - y end def refresh1 self.contents.clear end end ######################################################################## ######################################################################## ######################################################################## class Scene_Fishing def main @spriteset = Spriteset_Map.new @message_window = Window_Message.new x = 150 y = 300 @Pesce_x = 50 @Pesce_y = 300 @xc = 0 @yc = 0 @xg = 50#x - 100#320 @yg = 300#364 - y @mab = @yg / (-@xg)#(@yc - @yg) / (@xc - @xg) if @Pesce_y == @yg and @Pesce_x == @xg @y1 = @Pesce_y @Pesce_y = 0 elsif $ino_variables [1] == 1 #abboccato @y1 = @y1 else #@y1 = 0 end # @y1 = @Pesce_y @x1 = @y1 / @mab if @y1 != @yc @o = @x1 + 360 @p = 364 - @y1 # self.draw_text( @o, @p, 10, 32,'-') # @y1 = @y1 - 1 end @w_fish = Window_Fish.new(@o,@p, @xg, @yg) @w_fish.active = true Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end # @w_fish = Window_Fish.new(@o,@p) Graphics.freeze @spriteset.dispose @message_window.dispose @w_fish.dispose if $scene.is_a?(Scene_Title) Graphics.transition Graphics.freeze end end def update @spriteset.update @message_window.update @w_fish.update @w_fish.refresh if @w_fish.active update_command return end end def update_command if Input.trigger?(Input::C) @y1 = @y1 - 20 @o = @y1 / @mab @p = @y1 @w_fish.refresh1 @w_fish = Window_Fish.new(@o,@p, @xg, @yg) @w_fish.refresh end end def refresh end end ecco è questo qui.. bisogna richiamarlo tramite eventi. è agli inizi ma è la parte più importante..
-
Salve! Ho un problemino: sto creando uno script per pescare da capo e la lenza risulta veramente difficile da fare.. Allora per disegnarla ci riesco tramite una window. solo che per fargli disegnare tutti i punti l'ho messa nell'update della scene... ma i punti si disegnano uno alla volta... Qualcuno saprebbe aiutarmi?? la schermata di pesca prevede una normalissima mappa come questa: http://img156.imageshack.us/img156/7961/immaginepa.jpg
-
Fatto!! Scusate il ritardo se a qualcuno interessava ma la scuola ultimamente è un vero casino XD. lo ho postato qui: http://www.rpg2s.net/forum/index.php?showtopic=12581. Se lo usate creditatemi!!
-
Skill Menu Descrizione Script che permette di classificare le skill praticamente in qualsiasi modo si voglia Autore Peco92 (ho preso spunto da un menu per oggetti realizzato da Tio) Allegati un piccolo screen: questo è lo script: se volete lo potete scaricare da qua: http://www.mediafire...39a4z1lr6gesxlc Istruzioni per l'uso scaricate lo script da qua sopra, è un semplice file txt da 28 kb. e copiatene il contenuto incollandolo sopra allo script main, nominatelo come vi pare. eccovi le istruzioni Bugs e Conflitti Noti N/A Altri Dettagli Chiedete pure a me se avete bisogno di modificare un pò lo script. ^^ Ciaooo!!
-
Non ho capito tanto bene quello che intendi, ma quando ho tempo metto a posto lo script con tutte le informazioni che servono per classificare le skill ^^. Così dovrebbe andar bene, no?
-
è che è un pochino base e qualcuno potrebbe non capirne le sue vere capacità. Io lo ho adeguato al mio gioco ma non penso che quello personalizzato sia utile a molti.. Quello base (senza picture, barre e cose varie) è strutturato per dividere le magie in: 1) Sempre utilizzabili 2) Solo in battaglia 3) Solo fuori battaglia 4) Mai Così non sembra avere molta utilità, no? xD Ma se qualcuno mi dà un' idea su come renderlo un pochino usabile da tutti, con funzionalità in più dica pure che lo adeguo e lo pubblico ^^. Nel mio le ho divise per Curative, Offensive, Evocazioni e Non in battaglia. Ma devo ancora decidere come sistemarle meglio.
-
Oggi alla fine mi son deciso e mi son messo a lavorarci su. E con mio stupore ho realizzato ciò che volevo, ora lo devo solo rendere più carino ^^. Grazie comunque. p.s: se a qualcuno può servire fatemi un fischio mandandomi un pm.
-
ok Grazie guardian ora lo riposto: #====================# Script Scene_Menu divisa per categorie ultima modifica 28/04/2006# www.rpgshrine.altervista.org# Script by Tio. Special thanks to RagnarokM #==================== #=========================================================# - Window_Item modificata da RagnarokM #------------------------------------------------------------------------------# E' la finestra che mostra la lista di oggetti posseduti sullo schermo# degli oggetti e della battaglia#=========================================================class Window_Item < Window_Selectable#--------------------------------------------------------------------------# - Inizializzazione dell'oggetto#--------------------------------------------------------------------------def initialize super(0, 64, 320, 416) self.index = -1 self.active = false self.visible = false @column_max = 1 refresh # Durante una finestra si muove al centro dello schermo e diventa # translucente if $game_temp.in_battle self.y = 64 self.height = 256 endend#--------------------------------------------------------------------------# - Acquisizione di un oggetto#--------------------------------------------------------------------------def item return @data[self.index]end#--------------------------------------------------------------------------# - Aggiornamento#--------------------------------------------------------------------------def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] # Aggiunta di un oggetto for i in 1...$data_items.size # Controllo se l'oggetto è utilizzabile. # Se lo è lo inserisco nela lista degli oggetti che è possibile utilizzare. oggetto = $data_items[i] if (oggetto.occasion == 0) or (oggetto.occasion == 1) or (oggetto.occasion == 2) if $game_party.item_number(i) > 0 @data.push($data_items[i]) end end end # Se il numero degli oggetti è 0, verrà creato un bitmap e tutti # gli oggetti verranno disegnati @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 endend #--------------------------------------------------------------------------# - Disegna un oggetto# index : Numero dell'oggetto#--------------------------------------------------------------------------def draw_item(index) item = @data[index] number = $game_party.item_number(item.id) if item.is_a?(RPG::Item) and $game_party.item_can_use?(item.id) self.contents.font.color = normal_color else self.contents.font.color = disabled_color end self.contents.font.name = "Arial" self.contents.font.size = 24 x = 4 + index % 1 * (288 + 32) y = index * 32 rect = Rect.new(x, y, self.width / @column_max - 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) self.contents.draw_text(x + 240, y, 16, 32, ":", 1) self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)end#--------------------------------------------------------------------------# - Aggiornamento del testo di aiuto#--------------------------------------------------------------------------def update_help @help_window.set_text(self.item == nil ? "" : self.item.description)endend #====================================================# - Window_KeyItem Creata da RagnarokM#------------------------------------------------------------------------------# E' la finestra che mostra la lista di oggetti chiave posseduti nella schermata# degli oggetti.#====================================================class Window_KeyItem < Window_Selectable#--------------------------------------------------------------------------# - Inizializzazione dell'oggetto#--------------------------------------------------------------------------def initialize super(0, 64, 320, 416) @column_max = 1 self.index = -1 self.active = false self.visible = false refreshend#--------------------------------------------------------------------------# - Acquisizione di un oggetto#--------------------------------------------------------------------------def itemreturn @data[self.index]end#--------------------------------------------------------------------------# - Aggiornamento#--------------------------------------------------------------------------def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] # Aggiunta di un oggetto for i in 1...$data_items.size oggetto = $data_items[i] # Controllo se l'oggetto è utilizzabile. # Se non lo è inserisco nella lista degli oggetti chiave. if oggetto.occasion == 3 if $game_party.item_number(i) > 0 @data.push($data_items[i]) end end end # Se il numero degli oggetti è 0, verrà creato un bitmap e tutti # gli oggetti verranno disegnati @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 endend#--------------------------------------------------------------------------# - Disegna un oggetto# index : Numero dell'oggetto#--------------------------------------------------------------------------def draw_item(index) item = @data[index] number = $game_party.item_number(item.id) self.contents.font.color = disabled_color self.contents.font.name = "Arial" self.contents.font.size = 24 x = 4 + index % 1 * (288 + 32) y = index * 32 rect = Rect.new(x, y, self.width / @column_max - 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) self.contents.draw_text(x + 240, y, 16, 32, ":", 1) self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)end#--------------------------------------------------------------------------# - Aggiornamento del testo di aiuto#--------------------------------------------------------------------------def update_help @help_window.set_text(self.item == nil ? "" : self.item.description)endend#============================================================# - Window_Target#------------------------------------------------------------------------------# E' lo schermo degli oggetti e delle abilità ed è la finestra dalla quale# si sceglie il personaggio da usare#============================================================ class Window_Target < Window_Selectable#--------------------------------------------------------------------------# - Inizializzazione dell'oggetto#--------------------------------------------------------------------------def initialize super(0, 0, 320, 416) self.index = 0 self.active = false self.z += 10 self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = "Arial" self.contents.font.size = 24 @item_max = $game_party.actors.size refreshend#--------------------------------------------------------------------------# - Aggiornamento#--------------------------------------------------------------------------def refresh self.contents.clear for i in 0...$game_party.actors.size x = 4 y = i * 95 actor = $game_party.actors[i] draw_actor_graphic(actor, x + 10, y + 75) draw_actor_name(actor, x, y) draw_actor_class(actor, x + 144, y) draw_actor_level(actor, x + 20, y + 32) draw_actor_state(actor, x + 20, y + 64) draw_actor_hp(actor, x + 152, y + 32) draw_actor_sp(actor, x + 152, y + 64) endend#--------------------------------------------------------------------------# - Aggiornamento del rettangolo del cursore#-------------------------------------------------------------------------- def update_cursor_rect if @index < 0 self.cursor_rect.empty else self.cursor_rect.set(0, @index * 95, self.width - 32, 96) endendend #================================================================# - Window_Weapon#------------------------------------------------------------------------------# E' la finestra che mostra la lista di oggetti posseduti sullo schermo# degli oggetti e della battaglia#================================================================ class Window_Weapon < Window_Selectable#--------------------------------------------------------------------------# - Inizializzazione dell'oggetto#--------------------------------------------------------------------------def initialize super(0, 64, 320, 416) self.index = -1 self.active = false self.visible = false @column_max = 1 refresh # Durante una finestra si muove al centro dello schermo e diventa # translucente if $game_temp.in_battle self.y = 64 self.height = 256 endend#--------------------------------------------------------------------------# - Acquisizione di un oggetto#--------------------------------------------------------------------------def item return @data[self.index]end#--------------------------------------------------------------------------# - Aggiornamento#--------------------------------------------------------------------------def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] # Aggiunta di un oggetto# Vengono anche aggiunti un'arma e uno scudo se è possibile, # eccetto durante una battaglia unless $game_temp.in_battle for i in 1...$data_weapons.size if $game_party.weapon_number(i) > 0 @data.push($data_weapons[i]) end end end # Se il numero degli oggetti è 0, verrà creato un bitmap e tutti # gli oggetti verranno disegnati @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 endend#--------------------------------------------------------------------------# - Disegna un oggetto# index : Numero dell'oggetto#--------------------------------------------------------------------------def draw_item(index) item = @data[index] number = $game_party.weapon_number(item.id) if item.is_a?(RPG::Item) and $game_party.item_can_use?(item.id) self.contents.font.color = normal_color else self.contents.font.color = disabled_color end self.contents.font.name = "Arial" self.contents.font.size = 24 x = 4 + index % 1 * (288 + 32) y = index * 32 rect = Rect.new(x, y, self.width / @column_max - 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) self.contents.draw_text(x + 240, y, 16, 32, ":", 1) self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)end#--------------------------------------------------------------------------# - Aggiornamento del testo di aiuto#--------------------------------------------------------------------------def update_help @help_window.set_text(self.item == nil ? "" : self.item.description)endend #=================================================================# - Window_Armor#------------------------------------------------------------------------------# E' la finestra che mostra la lista di oggetti posseduti sullo schermo# degli oggetti e della battaglia#================================================================= class Window_Armor < Window_Selectable#--------------------------------------------------------------------------# - Inizializzazione dell'oggetto#--------------------------------------------------------------------------def initialize super(0, 64, 320, 416) self.index = -1 self.active = false self.visible = false @column_max = 1 refresh # Durante una finestra si muove al centro dello schermo e diventa # translucente if $game_temp.in_battle self.y = 64 self.height = 256 endend#--------------------------------------------------------------------------# - Acquisizione di un oggetto#--------------------------------------------------------------------------def item return @data[self.index]end#--------------------------------------------------------------------------# - Aggiornamento#--------------------------------------------------------------------------def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] # Vengono anche aggiunti un'arma e uno scudo se è possibile, # eccetto durante una battaglia unless $game_temp.in_battle for i in 1...$data_armors.size if $game_party.armor_number(i) > 0 @data.push($data_armors[i]) end end end # Se il numero degli oggetti è 0, verrà creato un bitmap e tutti # gli oggetti verranno disegnati @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 endend#--------------------------------------------------------------------------# - Disegna un oggetto# index : Numero dell'oggetto#--------------------------------------------------------------------------def draw_item(index) item = @data[index] number = $game_party.armor_number(item.id) if item.is_a?(RPG::Item) and $game_party.item_can_use?(item.id) self.contents.font.color = normal_color else self.contents.font.color = disabled_color end self.contents.font.name = "Arial" self.contents.font.size = 24 x = 4 + index % 1 * (288 + 32) y = index * 32 rect = Rect.new(x, y, self.width / @column_max - 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) self.contents.draw_text(x + 240, y, 16, 32, ":", 1) self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)end#--------------------------------------------------------------------------# - Aggiornamento del testo di aiuto#--------------------------------------------------------------------------def update_help @help_window.set_text(self.item == nil ? "" : self.item.description)endend #===================================================================# - Scene_Item#------------------------------------------------------------------------------# Scena degli oggetti#=================================================================== class Scene_Item def initialize(menu_index = 0) @menu_index = menu_indexend#--------------------------------------------------------------------------# - Processo Principale#--------------------------------------------------------------------------def main s1 = $data_system.words.item s2 = "Armi" s3 = "Armature" s4 = "Rarità" @command_window = Window_Command.new(160, [s1, s2, s3, s4,]) @command_window.index = @menu_index @command_window.x = 240 @command_window.y = 120 @command_window.index = 0 @command_window.z = 200 @command_window.active = true @dummy_window = Window_Base.new(0, 64, 320, 416) @weapon_window = Window_Weapon.new @armor_window = Window_Armor.new @keyItem_window = Window_KeyItem.new @item_window = Window_Item.new # Creazione finestra d'aiuto @help_window = Window_Help.new @item_window.help_window = @help_window @keyItem_window.help_window = @help_window @armor_window.help_window = @help_window @weapon_window.help_window = @help_window # Creazione finestra dell'obiettivo @target_window = Window_Target.new @target_window.x = 320 @target_window.y = 64 @target_window.index = -1 # Fade Graphics.transition # Loop Principale loop do # Aggiornamento Grafica Graphics.update # Aggiornamento Input Input.update # Aggiornamento Frame update # Quando cambia la scena blocca il loop if $scene != self break end end # Preparazione Fade Graphics.freeze # Eliminazione Finestre @help_window.dispose @item_window.dispose @target_window.dispose @weapon_window.dispose @armor_window.dispose @keyItem_window.dispose @dummy_window.disposeend#--------------------------------------------------------------------------# - Aggiornamento#--------------------------------------------------------------------------def update # Aggiornamento Finestre @help_window.update @item_window.update @target_window.update @command_window.update @weapon_window.update @armor_window.update @keyItem_window.update if @command_window.active update_command return end # Chiama update_item se è attiva la finestra degli oggetti if @item_window.active update_item return end if @weapon_window.active update_weapon return end if @armor_window.active update_armor return end if @keyItem_window.active update_KeyItem return end # Chiama update_target se è attiva la finestra dell'obiettivo if @target_window.active update_target return endend # Quando è attiva la finestra dei comandidef update_command # Quando B è premuto if Input.trigger?(Input::B) # Suona SE Annulla $game_system.se_play($data_system.cancel_se) # Torna al menu @command_window.visible = false @command_window.active = false $scene = Scene_Menu.new (0) return end # Quando C è premuto if Input.trigger?(Input::C) @command_window.visible = false @command_window.active = false # Scelta del comando da eseguire case @command_window.index when 0 # Oggetti # Suona SE Azione $game_system.se_play($data_system.decision_se) # Vai alla scena degli oggetti @item_window.visible = true @item_window.active = true @item_window.index = 0 when 1 #Armi # Suona SE Azione $game_system.se_play($data_system.decision_se) @weapon_window.visible = true @weapon_window.active = true @weapon_window.index = 0 when 2 # Armature # Suona SE Azione $game_system.se_play($data_system.decision_se) @armor_window.visible = true @armor_window.active = true @armor_window.index = 0 when 3 # Rarità # Suona SE Azione $game_system.se_play($data_system.decision_se) @keyItem_window.visible = true @keyItem_window.active = true @keyItem_window.index = 0 end end end#--------------------------------------------------------------------------# - Aggiornamento Frame (Quando è attiva la finestra degli oggetti)#--------------------------------------------------------------------------def update_item # Quando B è premuto if Input.trigger?(Input::B) # Suona SE Annulla $game_system.se_play($data_system.cancel_se) # Torna al menu @command_window.index = @command_window.index @command_window.active = true @command_window.visible = true @item_window.active = false @item_window.visible = false @item_window.index = -1 # Cancella il testo d'aiuto @help_window.set_text("") @dummy_window.visible = true return end # Quando C è premuto if Input.trigger?(Input::C) # Acquisizione dei dati selezionati @item = @item_window.item # Quando l'oggetto è un'arma o un'armatura unless @item.is_a?(RPG::Item) # Suona SE Azione Impossibile $game_system.se_play($data_system.buzzer_se) return end # Quando l'oggetto non può essere usato unless $game_party.item_can_use?(@item.id) # Suona SE Azione Impossibile $game_system.se_play($data_system.buzzer_se) return end # Suona SE Azione $game_system.se_play($data_system.decision_se) # Controlla l'obiettivo dell'oggetto if @item.scope >= 3 # La finestra dell'obiettivo viene attivata @item_window.active = false @target_window.active = true # Setta il cursore in base all'obiettivo if @item.scope == 4 || @item.scope == 6 @target_window.index = -1 else @target_window.index = 0 end # Quando l'obiettivo non sono gli eroi else # Quando c'è un evento comune if @item.common_event_id > 0 # Chiama l'evento comune $game_temp.common_event_id = @item.common_event_id # Suona SE dell'oggetto $game_system.se_play(@item.menu_se) # Se l'oggetto si consuma if @item.consumable # Elimina un oggetto $game_party.lose_item(@item.id, 1) # Aggiorna la finestra degli oggetti @item_window.draw_item(@item_window.index) end # Torna alla mappa $scene = Scene_Map.new return end end return endend #--------------------------------------------------------------------------# - Aggiornamento Frame (Quando è attiva la finestra delle armi)#--------------------------------------------------------------------------def update_weapon # Quando B è premuto if Input.trigger?(Input::B) # Suona SE Annulla $game_system.se_play($data_system.cancel_se) # Torna al menu @command_window.index = @command_window.index @command_window.active = true @command_window.visible = true @weapon_window.active = false @weapon_window.visible = false @weapon_window.index = -1 # Cancella il testo d'aiuto @help_window.set_text("") @dummy_window.visible = true return endend #--------------------------------------------------------------------------# - Aggiornamento Frame (Quando è attiva la finestra delle armature)#--------------------------------------------------------------------------def update_armor # Quando B è premuto if Input.trigger?(Input::B) # Suona SE Annulla $game_system.se_play($data_system.cancel_se) # Torna al menu @command_window.index = @command_window.index @command_window.active = true @command_window.visible = true @armor_window.active = false @armor_window.visible = false @armor_window.index = -1 # Cancella il testo d'aiuto @help_window.set_text("") @dummy_window.visible = true return endend #--------------------------------------------------------------------------# - Aggiornamento Frame (Quando è attiva la finestra delle armi)#--------------------------------------------------------------------------def update_KeyItem # Quando B è premuto if Input.trigger?(Input::B) # Suona SE Annulla $game_system.se_play($data_system.cancel_se) # Torna al menu @command_window.index = @command_window.index @command_window.active = true @command_window.visible = true @keyItem_window.active = false @keyItem_window.visible = false @keyItem_window.index = -1 @dummy_window.visible = true # Cancella il testo d'aiuto @help_window.set_text("") return endend #--------------------------------------------------------------------------# - Aggiornamento Frame (Quando è attiva la finestra dell'obiettivo)#--------------------------------------------------------------------------def update_target # Quando B è Premuto if Input.trigger?(Input::B) # Suona SE Annulla $game_system.se_play($data_system.cancel_se) # Quando l'oggetto non può essere usato unless $game_party.item_can_use?(@item.id) # Aggiornamento finestra degli oggetti @item_window.refresh end # Eliminazione finestra dell'obiettivo @item_window.active = true @target_window.active = false @target_window.index = -1 return end # Quando c è premuto if Input.trigger?(Input::C) # Quando un oggetto è finito if $game_party.item_number(@item.id) == 0 # Suona SE Azione Impossibile $game_system.se_play($data_system.buzzer_se) return end # Quando l'obiettivo sono tutti gli eroi if @target_window.index == -1 # L'effetto dell'oggetto colpisce tutti gli eroi used = false for i in $game_party.actors used |= i.item_effect(@item) end end # Quando l'obiettivo è un eroe if @target_window.index >= 0 # L'effetto dell'oggetto colpisce l'eroe selezionato target = $game_party.actors[@target_window.index] used = target.item_effect(@item) end # Quando l'oggetto viene usato if used # Suona SE dell'oggetto $game_system.se_play(@item.menu_se) # Se l'oggetto si consuma if @item.consumable # Elimina un oggetto $game_party.lose_item(@item.id, 1) # Aggiorna la finestra degli oggetti @item_window.draw_item(@item_window.index) end # Aggiorna la finestra dell'obiettivo @target_window.refresh # Se gli eroi muoiono if $game_party.all_dead? # Vai al gameover $scene = Scene_Gameover.new return end # Se c'è un evento comune if @item.common_event_id > 0 # Chiama l'evento comune $game_temp.common_event_id = @item.common_event_id # Torna alla mappa $scene = Scene_Map.new return end end # Se l'oggetto non è stato usato unless used # Suona SE Azione Impossibile $game_system.se_play($data_system.buzzer_se) end return endendend ma così viene un pò lunghino.. Comunque squall non voglio dividerle per tipo (acqua, fuoco o roba del genere) ma solo in base al loro occasion poi me lo ultimo da solo. Capito? =)
-
Assì.. scusate mi spiego meglio. Gli oggetti qua sono classificati in base al loro occasion ( se possono essere usati in battaglia o meno) e poi in armi e armature. A me basta che togliendo la parte armature e armi, funzioni allo stesso modo degli oggetti ma per le magie. Ripeto ci avevo già provato a cambiarlo ma sbagliavo qualcosa e non funzionava. Squall: come faccio a postarlo in codice ruby? comunque divide la schermata degli oggetti in due (oggetti e target), in più aggiunge al centro una finestrella dove puoi scegliere il tipo di oggetti da utilizzare (oggetti normali, armi, armature, rari) MasterSion: più o meno è quello che intendi tu, comunque un pochino me la cavo con gli script, quindi mi basta che qualcuno riesca a sistemarmelo come detto poco fa. Poi il resto me lo modifico io. Grazie in anticipo!! =) se qualcuno lo fa xD
-
Io ho uno script per il menu degli oggetti. Avevo già provato a modificarlo ma qualcosa andava storto e non andava. Qualcuno può modificare questo script facendolo funzionare per le skill? #==================== # Script Scene_Menu divisa per categorie ultima modifica 28/04/2006 # www.rpgshrine.altervista.org # Script by Tio. Special thanks to RagnarokM #==================== #========================================================= # - Window_Item modificata da RagnarokM #------------------------------------------------------------------------------ # E' la finestra che mostra la lista di oggetti posseduti sullo schermo # degli oggetti e della battaglia #========================================================= class Window_Item < Window_Selectable #-------------------------------------------------------------------------- # - Inizializzazione dell'oggetto #-------------------------------------------------------------------------- def initialize super(0, 64, 320, 416) self.index = -1 self.active = false self.visible = false @column_max = 1 refresh # Durante una finestra si muove al centro dello schermo e diventa # translucente if $game_temp.in_battle self.y = 64 self.height = 256 end end #-------------------------------------------------------------------------- # - Acquisizione di un oggetto #-------------------------------------------------------------------------- def item return @data[self.index] end #-------------------------------------------------------------------------- # - Aggiornamento #-------------------------------------------------------------------------- def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] # Aggiunta di un oggetto for i in 1...$data_items.size # Controllo se l'oggetto è utilizzabile. # Se lo è lo inserisco nela lista degli oggetti che è possibile utilizzare. oggetto = $data_items[i] if (oggetto.occasion == 0) or (oggetto.occasion == 1) or (oggetto.occasion == 2) if $game_party.item_number(i) > 0 @data.push($data_items[i]) end end end # Se il numero degli oggetti è 0, verrà creato un bitmap e tutti # gli oggetti verranno disegnati @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 #-------------------------------------------------------------------------- # - Disegna un oggetto # index : Numero dell'oggetto #-------------------------------------------------------------------------- def draw_item(index) item = @data[index] number = $game_party.item_number(item.id) if item.is_a?(RPG::Item) and $game_party.item_can_use?(item.id) self.contents.font.color = normal_color else self.contents.font.color = disabled_color end self.contents.font.name = "Arial" self.contents.font.size = 24 x = 4 + index % 1 * (288 + 32) y = index * 32 rect = Rect.new(x, y, self.width / @column_max - 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) self.contents.draw_text(x + 240, y, 16, 32, ":", 1) self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2) end #-------------------------------------------------------------------------- # - Aggiornamento del testo di aiuto #-------------------------------------------------------------------------- def update_help @help_window.set_text(self.item == nil ? "" : self.item.description) end end #==================================================== # - Window_KeyItem Creata da RagnarokM #------------------------------------------------------------------------------ # E' la finestra che mostra la lista di oggetti chiave posseduti nella schermata # degli oggetti. #==================================================== class Window_KeyItem < Window_Selectable #-------------------------------------------------------------------------- # - Inizializzazione dell'oggetto #-------------------------------------------------------------------------- def initialize super(0, 64, 320, 416) @column_max = 1 self.index = -1 self.active = false self.visible = false refresh end #-------------------------------------------------------------------------- # - Acquisizione di un oggetto #-------------------------------------------------------------------------- def item return @data[self.index] end #-------------------------------------------------------------------------- # - Aggiornamento #-------------------------------------------------------------------------- def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] # Aggiunta di un oggetto for i in 1...$data_items.size oggetto = $data_items[i] # Controllo se l'oggetto è utilizzabile. # Se non lo è inserisco nella lista degli oggetti chiave. if oggetto.occasion == 3 if $game_party.item_number(i) > 0 @data.push($data_items[i]) end end end # Se il numero degli oggetti è 0, verrà creato un bitmap e tutti # gli oggetti verranno disegnati @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 #-------------------------------------------------------------------------- # - Disegna un oggetto # index : Numero dell'oggetto #-------------------------------------------------------------------------- def draw_item(index) item = @data[index] number = $game_party.item_number(item.id) self.contents.font.color = disabled_color self.contents.font.name = "Arial" self.contents.font.size = 24 x = 4 + index % 1 * (288 + 32) y = index * 32 rect = Rect.new(x, y, self.width / @column_max - 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) self.contents.draw_text(x + 240, y, 16, 32, ":", 1) self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2) end #-------------------------------------------------------------------------- # - Aggiornamento del testo di aiuto #-------------------------------------------------------------------------- def update_help @help_window.set_text(self.item == nil ? "" : self.item.description) end end #============================================================ # - Window_Target #------------------------------------------------------------------------------ # E' lo schermo degli oggetti e delle abilità ed è la finestra dalla quale # si sceglie il personaggio da usare #============================================================ class Window_Target < Window_Selectable #-------------------------------------------------------------------------- # - Inizializzazione dell'oggetto #-------------------------------------------------------------------------- def initialize super(0, 0, 320, 416) self.index = 0 self.active = false self.z += 10 self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = "Arial" self.contents.font.size = 24 @item_max = $game_party.actors.size refresh end #-------------------------------------------------------------------------- # - Aggiornamento #-------------------------------------------------------------------------- def refresh self.contents.clear for i in 0...$game_party.actors.size x = 4 y = i * 95 actor = $game_party.actors[i] draw_actor_graphic(actor, x + 10, y + 75) draw_actor_name(actor, x, y) draw_actor_class(actor, x + 144, y) draw_actor_level(actor, x + 20, y + 32) draw_actor_state(actor, x + 20, y + 64) draw_actor_hp(actor, x + 152, y + 32) draw_actor_sp(actor, x + 152, y + 64) end end #-------------------------------------------------------------------------- # - Aggiornamento del rettangolo del cursore #-------------------------------------------------------------------------- def update_cursor_rect if @index < 0 self.cursor_rect.empty else self.cursor_rect.set(0, @index * 95, self.width - 32, 96) end end end #================================================================ # - Window_Weapon #------------------------------------------------------------------------------ # E' la finestra che mostra la lista di oggetti posseduti sullo schermo # degli oggetti e della battaglia #================================================================ class Window_Weapon < Window_Selectable #-------------------------------------------------------------------------- # - Inizializzazione dell'oggetto #-------------------------------------------------------------------------- def initialize super(0, 64, 320, 416) self.index = -1 self.active = false self.visible = false @column_max = 1 refresh # Durante una finestra si muove al centro dello schermo e diventa # translucente if $game_temp.in_battle self.y = 64 self.height = 256 end end #-------------------------------------------------------------------------- # - Acquisizione di un oggetto #-------------------------------------------------------------------------- def item return @data[self.index] end #-------------------------------------------------------------------------- # - Aggiornamento #-------------------------------------------------------------------------- def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] # Aggiunta di un oggetto # Vengono anche aggiunti un'arma e uno scudo se è possibile, # eccetto durante una battaglia unless $game_temp.in_battle for i in 1...$data_weapons.size if $game_party.weapon_number(i) > 0 @data.push($data_weapons[i]) end end end # Se il numero degli oggetti è 0, verrà creato un bitmap e tutti # gli oggetti verranno disegnati @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 #-------------------------------------------------------------------------- # - Disegna un oggetto # index : Numero dell'oggetto #-------------------------------------------------------------------------- def draw_item(index) item = @data[index] number = $game_party.weapon_number(item.id) if item.is_a?(RPG::Item) and $game_party.item_can_use?(item.id) self.contents.font.color = normal_color else self.contents.font.color = disabled_color end self.contents.font.name = "Arial" self.contents.font.size = 24 x = 4 + index % 1 * (288 + 32) y = index * 32 rect = Rect.new(x, y, self.width / @column_max - 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) self.contents.draw_text(x + 240, y, 16, 32, ":", 1) self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2) end #-------------------------------------------------------------------------- # - Aggiornamento del testo di aiuto #-------------------------------------------------------------------------- def update_help @help_window.set_text(self.item == nil ? "" : self.item.description) end end #================================================================= # - Window_Armor #------------------------------------------------------------------------------ # E' la finestra che mostra la lista di oggetti posseduti sullo schermo # degli oggetti e della battaglia #================================================================= class Window_Armor < Window_Selectable #-------------------------------------------------------------------------- # - Inizializzazione dell'oggetto #-------------------------------------------------------------------------- def initialize super(0, 64, 320, 416) self.index = -1 self.active = false self.visible = false @column_max = 1 refresh # Durante una finestra si muove al centro dello schermo e diventa # translucente if $game_temp.in_battle self.y = 64 self.height = 256 end end #-------------------------------------------------------------------------- # - Acquisizione di un oggetto #-------------------------------------------------------------------------- def item return @data[self.index] end #-------------------------------------------------------------------------- # - Aggiornamento #-------------------------------------------------------------------------- def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] # Vengono anche aggiunti un'arma e uno scudo se è possibile, # eccetto durante una battaglia unless $game_temp.in_battle for i in 1...$data_armors.size if $game_party.armor_number(i) > 0 @data.push($data_armors[i]) end end end # Se il numero degli oggetti è 0, verrà creato un bitmap e tutti # gli oggetti verranno disegnati @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 #-------------------------------------------------------------------------- # - Disegna un oggetto # index : Numero dell'oggetto #-------------------------------------------------------------------------- def draw_item(index) item = @data[index] number = $game_party.armor_number(item.id) if item.is_a?(RPG::Item) and $game_party.item_can_use?(item.id) self.contents.font.color = normal_color else self.contents.font.color = disabled_color end self.contents.font.name = "Arial" self.contents.font.size = 24 x = 4 + index % 1 * (288 + 32) y = index * 32 rect = Rect.new(x, y, self.width / @column_max - 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) self.contents.draw_text(x + 240, y, 16, 32, ":", 1) self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2) end #-------------------------------------------------------------------------- # - Aggiornamento del testo di aiuto #-------------------------------------------------------------------------- def update_help @help_window.set_text(self.item == nil ? "" : self.item.description) end end #=================================================================== # - Scene_Item #------------------------------------------------------------------------------ # Scena degli oggetti #=================================================================== class Scene_Item def initialize(menu_index = 0) @menu_index = menu_index end #-------------------------------------------------------------------------- # - Processo Principale #-------------------------------------------------------------------------- def main s1 = $data_system.words.item s2 = "Armi" s3 = "Armature" s4 = "Rarità" @command_window = Window_Command.new(160, [s1, s2, s3, s4,]) @command_window.index = @menu_index @command_window.x = 240 @command_window.y = 120 @command_window.index = 0 @command_window.z = 200 @command_window.active = true @dummy_window = Window_Base.new(0, 64, 320, 416) @weapon_window = Window_Weapon.new @armor_window = Window_Armor.new @keyItem_window = Window_KeyItem.new @item_window = Window_Item.new # Creazione finestra d'aiuto @help_window = Window_Help.new @item_window.help_window = @help_window @keyItem_window.help_window = @help_window @armor_window.help_window = @help_window @weapon_window.help_window = @help_window # Creazione finestra dell'obiettivo @target_window = Window_Target.new @target_window.x = 320 @target_window.y = 64 @target_window.index = -1 # Fade Graphics.transition # Loop Principale loop do # Aggiornamento Grafica Graphics.update # Aggiornamento Input Input.update # Aggiornamento Frame update # Quando cambia la scena blocca il loop if $scene != self break end end # Preparazione Fade Graphics.freeze # Eliminazione Finestre @help_window.dispose @item_window.dispose @target_window.dispose @weapon_window.dispose @armor_window.dispose @keyItem_window.dispose @dummy_window.dispose end #-------------------------------------------------------------------------- # - Aggiornamento #-------------------------------------------------------------------------- def update # Aggiornamento Finestre @help_window.update @item_window.update @target_window.update @command_window.update @weapon_window.update @armor_window.update @keyItem_window.update if @command_window.active update_command return end # Chiama update_item se è attiva la finestra degli oggetti if @item_window.active update_item return end if @weapon_window.active update_weapon return end if @armor_window.active update_armor return end if @keyItem_window.active update_KeyItem return end # Chiama update_target se è attiva la finestra dell'obiettivo if @target_window.active update_target return end end # Quando è attiva la finestra dei comandi def update_command # Quando B è premuto if Input.trigger?(Input::B) # Suona SE Annulla $game_system.se_play($data_system.cancel_se) # Torna al menu @command_window.visible = false @command_window.active = false $scene = Scene_Menu.new (0) return end # Quando C è premuto if Input.trigger?(Input::C) @command_window.visible = false @command_window.active = false # Scelta del comando da eseguire case @command_window.index when 0 # Oggetti # Suona SE Azione $game_system.se_play($data_system.decision_se) # Vai alla scena degli oggetti @item_window.visible = true @item_window.active = true @item_window.index = 0 when 1 #Armi # Suona SE Azione $game_system.se_play($data_system.decision_se) @weapon_window.visible = true @weapon_window.active = true @weapon_window.index = 0 when 2 # Armature # Suona SE Azione $game_system.se_play($data_system.decision_se) @armor_window.visible = true @armor_window.active = true @armor_window.index = 0 when 3 # Rarità # Suona SE Azione $game_system.se_play($data_system.decision_se) @keyItem_window.visible = true @keyItem_window.active = true @keyItem_window.index = 0 end end end #-------------------------------------------------------------------------- # - Aggiornamento Frame (Quando è attiva la finestra degli oggetti) #-------------------------------------------------------------------------- def update_item # Quando B è premuto if Input.trigger?(Input::B) # Suona SE Annulla $game_system.se_play($data_system.cancel_se) # Torna al menu @command_window.index = @command_window.index @command_window.active = true @command_window.visible = true @item_window.active = false @item_window.visible = false @item_window.index = -1 # Cancella il testo d'aiuto @help_window.set_text("") @dummy_window.visible = true return end # Quando C è premuto if Input.trigger?(Input::C) # Acquisizione dei dati selezionati @item = @item_window.item # Quando l'oggetto è un'arma o un'armatura unless @item.is_a?(RPG::Item) # Suona SE Azione Impossibile $game_system.se_play($data_system.buzzer_se) return end # Quando l'oggetto non può essere usato unless $game_party.item_can_use?(@item.id) # Suona SE Azione Impossibile $game_system.se_play($data_system.buzzer_se) return end # Suona SE Azione $game_system.se_play($data_system.decision_se) # Controlla l'obiettivo dell'oggetto if @item.scope >= 3 # La finestra dell'obiettivo viene attivata @item_window.active = false @target_window.active = true # Setta il cursore in base all'obiettivo if @item.scope == 4 || @item.scope == 6 @target_window.index = -1 else @target_window.index = 0 end # Quando l'obiettivo non sono gli eroi else # Quando c'è un evento comune if @item.common_event_id > 0 # Chiama l'evento comune $game_temp.common_event_id = @item.common_event_id # Suona SE dell'oggetto $game_system.se_play(@item.menu_se) # Se l'oggetto si consuma if @item.consumable # Elimina un oggetto $game_party.lose_item(@item.id, 1) # Aggiorna la finestra degli oggetti @item_window.draw_item(@item_window.index) end # Torna alla mappa $scene = Scene_Map.new return end end return end end #-------------------------------------------------------------------------- # - Aggiornamento Frame (Quando è attiva la finestra delle armi) #-------------------------------------------------------------------------- def update_weapon # Quando B è premuto if Input.trigger?(Input::B) # Suona SE Annulla $game_system.se_play($data_system.cancel_se) # Torna al menu @command_window.index = @command_window.index @command_window.active = true @command_window.visible = true @weapon_window.active = false @weapon_window.visible = false @weapon_window.index = -1 # Cancella il testo d'aiuto @help_window.set_text("") @dummy_window.visible = true return end end #-------------------------------------------------------------------------- # - Aggiornamento Frame (Quando è attiva la finestra delle armature) #-------------------------------------------------------------------------- def update_armor # Quando B è premuto if Input.trigger?(Input::B) # Suona SE Annulla $game_system.se_play($data_system.cancel_se) # Torna al menu @command_window.index = @command_window.index @command_window.active = true @command_window.visible = true @armor_window.active = false @armor_window.visible = false @armor_window.index = -1 # Cancella il testo d'aiuto @help_window.set_text("") @dummy_window.visible = true return end end #-------------------------------------------------------------------------- # - Aggiornamento Frame (Quando è attiva la finestra delle armi) #-------------------------------------------------------------------------- def update_KeyItem # Quando B è premuto if Input.trigger?(Input::B) # Suona SE Annulla $game_system.se_play($data_system.cancel_se) # Torna al menu @command_window.index = @command_window.index @command_window.active = true @command_window.visible = true @keyItem_window.active = false @keyItem_window.visible = false @keyItem_window.index = -1 @dummy_window.visible = true # Cancella il testo d'aiuto @help_window.set_text("") return end end #-------------------------------------------------------------------------- # - Aggiornamento Frame (Quando è attiva la finestra dell'obiettivo) #-------------------------------------------------------------------------- def update_target # Quando B è Premuto if Input.trigger?(Input::B) # Suona SE Annulla $game_system.se_play($data_system.cancel_se) # Quando l'oggetto non può essere usato unless $game_party.item_can_use?(@item.id) # Aggiornamento finestra degli oggetti @item_window.refresh end # Eliminazione finestra dell'obiettivo @item_window.active = true @target_window.active = false @target_window.index = -1 return end # Quando c è premuto if Input.trigger?(Input::C) # Quando un oggetto è finito if $game_party.item_number(@item.id) == 0 # Suona SE Azione Impossibile $game_system.se_play($data_system.buzzer_se) return end # Quando l'obiettivo sono tutti gli eroi if @target_window.index == -1 # L'effetto dell'oggetto colpisce tutti gli eroi used = false for i in $game_party.actors used |= i.item_effect(@item) end end # Quando l'obiettivo è un eroe if @target_window.index >= 0 # L'effetto dell'oggetto colpisce l'eroe selezionato target = $game_party.actors[@target_window.index] used = target.item_effect(@item) end # Quando l'oggetto viene usato if used # Suona SE dell'oggetto $game_system.se_play(@item.menu_se) # Se l'oggetto si consuma if @item.consumable # Elimina un oggetto $game_party.lose_item(@item.id, 1) # Aggiorna la finestra degli oggetti @item_window.draw_item(@item_window.index) end # Aggiorna la finestra dell'obiettivo @target_window.refresh # Se gli eroi muoiono if $game_party.all_dead? # Vai al gameover $scene = Scene_Gameover.new return end # Se c'è un evento comune if @item.common_event_id > 0 # Chiama l'evento comune $game_temp.common_event_id = @item.common_event_id # Torna alla mappa $scene = Scene_Map.new return end end # Se l'oggetto non è stato usato unless used # Suona SE Azione Impossibile $game_system.se_play($data_system.buzzer_se) end return end end end Grazieee!!! biggrin.gif
-
Ok, forse ho capito. In effetti così non arriverà mai nessuno ad aiutarmi xD. Grazie Guardian. Ora spiego un pochino di cosa si tratta: Allora innanzi tutto non è un gran progetto, volevo solo fare un giochino divertente e non molto lungo giusto per imparare e poi buttarsi in un progetto più grande. Diciamo che molto non ho ancora costruito, però la trama sostanzialmente è questa: Il protagonista si ritrova alle prese con una fata che chiederà aiuto, decidendo di aiutarla recluterai persone e partirai per il mondo delle fate. Una fata oppressa dal male ucciderà le proprie compagne per usarle come sacrificio: non solo il mondo fatato è in pericolo, ma anche quello umano anzi, quest'ultimo subisce più conseguenze. Sventato il tentativo di distruggere il magico mondo partirai alla liberazione della terra. Per quanto riguarda l'ambientazione, non riguarda di certo gli anni moderni diciamo più o meno il tempo medievale. Il sistema di battaglia sarebbe quasi un final fantasy 5, avevo preso uno script che sto finendo di modificare, assieme ai vari menu. Visto? sembrerebbe proprio un progetto da buttare xD. Quel che richiedo non è un bravissimo grafico, ma qualcuno che vuole provare a fare qualcosina; non farà solo il grafico, ma ci aiuteremo su tutto il progetto. Il nome del progetto è: The fairy world secret. :unsure: p.s: in seguito metterò screen e più informazioni.
-
Salve ho iniziato da poco un nuovo progetto per prenderci un pò di più la mano con script, dialoghi e roba del genere, ma di disegnare e pixellare non ne ho proprio voglia!! e anche se ne avessi verrebbe comunque da schifo xD. Aspetto compagni! :unsure:
-
Veramente un bellissimo script, però ho un prolemino xD. Nel gioco che sto creando vorrei che l'arma poi risulti scomponibile.. Si può fare? jojo dovresti avere tutte le informazioni necessarie xD sennò prova a dirci cosa non riesci a fare =)
-
Grazie mille!! sbagliavo perchè non mettevo set xD
-
Infatti xD, così sarebbe un pò bruttino. Io intendevo chiedere qualche linea di script che richiamasse il nome dell'elemento o il suo ID (poi dal numero riesco a far appariare il nome che voglio), da poterlo mettere in diversi menu tipo status, equip e dove serve. Capito? xD
